#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. Ааааа, упростилось еще больше. Еще раз спасибо.