Необходимо вывести в блоке динамическую ссылку такого типа node/add/financing?field_entity_ref_financing_link=1072?destination=node/1072
где 1072 это Nid открытой ноды
пробовал так
<?php
print l(t('financing'), 'node/add/financing', array('query' => 'field_entity_ref_financing_link='. $node->nid . '&destination=node/' . $node->nid, 'absolute' => TRUE))
?>
выдает ошибкуууууууууууууу
Комментарии
как $node->nid вставить правильно в массив array( 'query' => )
http://api.drupal.org/api/drupal/includes!common.inc/function/l/7 там в примерах есть
Я там уже смотрел там нет ничего как $node->nid засунуть в такую ссылку ?field_entity_ref_financing_link=$node->nid
Так надо:
<?php
print l(t('financing'), 'node/add/financing', array('query' => array('field_entity_ref_financing_link' => $node->nid, drupal_get_destination()), 'absolute' => TRUE));
?>
node/add/financing?field_entity_ref_financing_link=$node->nid
не подставляется нид ноды
код такой
<?php
$node = node_load(arg(1));
print l('Title', 'node/add/financing', array('query' => array('field_entity_ref_financing_link' => '$node->nid')))
?>
так я уже пробовал. там не проходит
'field_entity_ref_financing_link' => $node->nid,
без $node->nid
/node/add/financing?field_entity_ref_financing_link&destination=node/1072
Только что проверял, все там проходит. Нода точно загружена?
я ноду гружу так
$node = node_load(); и сяк $node = node_load($nid);
и дальше код
<?php
print l(t('financing'), 'node/add/financing', array('query' => array('field_entity_ref_financing_link' => $node->nid, drupal_get_destination()), 'absolute' => TRUE));?>
Нужно так:
<?php
$node = node_load($nid); //Где $nid - id ноды
?>
Откуда ты береш $nid?
так у меня сотни нод... и для каждой ссылку.
текущая же нода есть пусть берет из аргумента
типа
$node = node_load(arg(1))
Этот блок, я так понимаю, на странице ноды? Он выводиться на других страницах?
Эсли не выводиться на других страницах, то $nid = arg(1);
Вариант топорный, но рабочий.
я и аргумент делал.
опаньки........ получилось..........
мерси.
Рабочий код должен быть следующий:
<?php
$node = node_load(arg(1));
if ($node) {
print l(t('financing'), 'node/add/financing', array('query' => array('field_entity_ref_financing_link' => $node->nid, drupal_get_destination()), 'absolute' => TRUE));
}
?>
Так должно работать 100%, если не работает, то дело не в коде, а в чем-то еще.
все норм, грасиас.
кстати а в links можно рабочий код выше вставить?
А-а, так вот откуда у Вас постоянно эта node_load().
Смотрим node_load и видим, что без аргументов она возвращает FALSE.
В комментариях же к ней приводится другая функция, которая действительно вернет текущую ноду.