Портирование некоторого PHP на ColdFusion - PullRequest
2 голосов
/ 26 апреля 2010

ОК, я работаю с преобразованием некоторого очень простого PHP в порт для сервера разработки, где у клиента есть только CF. Я никогда не работал с ним, и мне просто нужно знать, как портировать пару вещей:

<?php
      $pageTitle = 'The City That Works';
      $mainCSSURL = 'header_url=../images/banner-home.jpg&amp;second_color=484848&amp;primary_color=333&amp;link_color=09c&amp;sidebar_color=f2f2f2';
      require('includes/header-inc.php');
?>

Я знаю:

<cfinclude template="includes/header-inc.cfm">

но как мне получить переменную, которая будет передана во включаемый файл, и как мне использовать ее в последующем включенном файле?

Также в моем CSS (main.php) у меня есть (вверху):

<?php
    header('Content-type: text/css');
    foreach($_GET as $css_property => $css_value) {define(strtoupper($css_property),$css_value);}
?>

и я использую эти константы, как это:

#main-content a {color:#<?= LINK_COLOR ?>;}

Как мне заставить это работать и с CF?

Никогда не думал, что буду работать с CF:)

Ответы [ 2 ]

3 голосов
/ 26 апреля 2010

Coldfusion имеет несколько областей видимости, которые имеют разные уровни видимости.

Я не слишком знаком с PHP, но, полагаю, эти объявления переменных доступны для любого кода в запросе?

Эквивалентом этого является объем запроса.

Любые переменные, заданные в области запроса, доступны любому коду при обработке запроса.

Чтобы установить переменную в области запроса, вы просто делаете:

<cfset request.myVariable = myValue>

Или в cfscript:

request.myVariable = myValue;

Другая наиболее часто используемая область - это область «переменных». Это область по умолчанию, если вы не указали область, поэтому:

<cfset myVariable = myValue>

эквивалентно

<cfset variables.myVariable = myValue>

Область переменных видна для кода, включенного в CFInclude, поэтому в вашем конкретном случае вы можете использовать область переменных или область запроса.

Вот ссылка на Scopes в CF:

http://livedocs.adobe.com/coldfusion/8/htmldocs/Variables_30.html

2 голосов
/ 26 апреля 2010

В CF массив $ _GET становится структурой url. Чтобы пройти через него, вы используете cfloop:

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_j-l_16.html#2393950

<cfoutput>
<ul>
<cfloop collection = #url# item = "key">
 <li>#key# = #url[key]#</li>
</cfloop>
</ul>
</cfoutput>
...