РЕШЕНО! Подскажиет как правильно в блоке оформить ссылку с "?" и "destination"

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 26 февраля 2013 в 10:45

Необходимо вывести в блоке динамическую ссылку такого типа 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))

?>

выдает ошибкуууууууууууууу

Комментарии

Аватар пользователя aa2ndrew aa2ndrew 26 февраля 2013 в 12:49

Так надо:

<?php
print l(t('financing'), 'node/add/financing',  array('query' => array('field_entity_ref_financing_link' => $node->niddrupal_get_destination()), 'absolute' => TRUE));
?>
Аватар пользователя iNFerNo iNFerNo 26 февраля 2013 в 12:49

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')))

?>

Аватар пользователя iNFerNo iNFerNo 26 февраля 2013 в 12:51

"aa2ndrew" wrote:

Так надо:

так я уже пробовал. там не проходит

'field_entity_ref_financing_link' => $node->nid,

без $node->nid

/node/add/financing?field_entity_ref_financing_link&destination=node/1072

Аватар пользователя aa2ndrew aa2ndrew 26 февраля 2013 в 12:53

"iNFerNo" wrote:
так я уже пробовал. там не проходит

Только что проверял, все там проходит. Нода точно загружена?

Аватар пользователя iNFerNo iNFerNo 26 февраля 2013 в 13:06

я ноду гружу так

$node = node_load(); и сяк $node = node_load($nid);
и дальше код

<?php
print l(t('financing'), 'node/add/financing',  array('query' => array('field_entity_ref_financing_link' => $node->niddrupal_get_destination()), 'absolute' => TRUE));?>
Аватар пользователя aa2ndrew aa2ndrew 26 февраля 2013 в 13:08

"iNFerNo" wrote:
$node = node_load(); и сяк $node = node_load($nid);

Нужно так:

<?php
$node 
node_load($nid); //Где $nid - id ноды
?>

Откуда ты береш $nid?

Аватар пользователя iNFerNo iNFerNo 26 февраля 2013 в 13:11

так у меня сотни нод... и для каждой ссылку.

текущая же нода есть пусть берет из аргумента

типа

$node = node_load(arg(1))

Аватар пользователя aa2ndrew aa2ndrew 26 февраля 2013 в 13:11

Этот блок, я так понимаю, на странице ноды? Он выводиться на других страницах?
Эсли не выводиться на других страницах, то $nid = arg(1);
Вариант топорный, но рабочий.

Аватар пользователя aa2ndrew aa2ndrew 26 февраля 2013 в 13:14

Рабочий код должен быть следующий:

<?php
$node 
node_load(arg(1));
if (
$node) {
  print 
l(t('financing'), 'node/add/financing',  array('query' => array('field_entity_ref_financing_link' => $node->niddrupal_get_destination()), 'absolute' => TRUE));
}
?>

Так должно работать 100%, если не работает, то дело не в коде, а в чем-то еще.

Аватар пользователя ser_house ser_house 26 февраля 2013 в 16:10

"iNFerNo" wrote:
текущая же нода есть пусть берет из аргумента

А-а, так вот откуда у Вас постоянно эта node_load().

Смотрим node_load и видим, что без аргументов она возвращает FALSE.

В комментариях же к ней приводится другая функция, которая действительно вернет текущую ноду.

Smile