Простая конфигурация вычисляемого поля в Drupal 6

#drupal #field

#drupal #поле

Вопрос:

У меня есть одно поле с именем field_domain

У меня есть вычисляемое поле под названием field_graph

field_domain заполняется пользователем. Например, это может быть: drupal.org

Мне нужно вычисляемое поле, чтобы ввести значение field_domain в качестве переменной в field_graph, вот так:

 <a href='http://siteanalytics.compete.com/drupal.org/?metric=uv'><img src='http://grapher.compete.com/drupal.org_uv.png' /></a>
  

Таким образом, field_domain превращается в переменную и помещается в html

Пример:

field_domain имеет значение drupal.org . Это значение преобразуется в переменную $domain

Выходные данные вычисляемого поля:

 <a href='http://siteanalytics.compete.com/$domain/?metric=uv'><img src='http://grapher.compete.com/$domain$under.png' /></a>
  

Помещаем значение field_domain везде, где находится $domain.

У меня есть код для выполнения преобразования, но я не знаю, как поместить его в вычисляемое поле:

 <?php
$domain = "drupal.org";
$under = "_uv";
echo "<a href='http://siteanalytics.compete.com/$domain/?metric=uv'><img src='http://grapher.compete.com/$domain$under.png' /></a>";
?>
  

Ответ №1:

У вас есть доступ к ряду переменных в вычисляемом поле. Там прямо указано, где вы его создаете — смотрите текст справки под текстовой областью, где вы вводите свой PHP? Кроме того, откуда берется $under? Если это не жестко запрограммировано, вам пришлось бы немного изменить этот код, но суть вот в чем:

 $domain = $node->field_domain[0]['value'];
$node_field[0]['value'] = "<a href='http://siteanalytics.compete.com/$domain/?metric=uv'><img src='http://grapher.compete.com/{$domain}_uv.png' /></a>";
  

Комментарии:

1. исходный html-код <a href=’ siteanalytics.compete.com/drupal.org/?metric=uv ‘><img src=’ grapher.compete.com/drupal.org_uv.png ‘ /></a>. На изображении src, its, домен, за которым следует _uv.png. Но если я использую $domain_uv.png вместо $ domain $в.png, это не будет отображаться правильно. Я должен использовать его как переменную. Есть ли способ лучше?

2. Я оставил формат отображения по умолчанию как есть и использовал ваш код в вычисляемом коде, и это сработало. Большое вам спасибо.

3. Смотрите мою правку. Вы не смогли выполнить $domain_uv, потому что PHP проанализировал это как имя переменной, которое не имеет значения. Если поместить $domain в фигурные скобки, все будет хорошо.

4. Ааааа, упростилось еще больше. Еще раз спасибо.