Drupal: возможно ли вставлять переменные php из одного узла в другой? - PullRequest
0 голосов
/ 14 июня 2009

Я пытаюсь использовать node_load для передачи переменных php (как переменных!) Из одного узла в другой, но безуспешно.

Другими словами, в node / 1 я перечислил несколько переменных, которые я хочу использовать для разбора php в node / 2.

Возможно ли это?

редактирование:

Страница 1 (www.something.com/node/1) имеет следующий текст:

<br>
    $var1 = "Some text"; 
    

Страница 2 (www.something.com/node/2) имеет следующий текст в теле:

    
    $node = node_load(1); 
    print $node->body; 
    print $var1; 
  

Я хочу использовать содержимое узла (в виде включенного файла), как если бы я использовал PHP-функцию include

Ответы [ 5 ]

1 голос
/ 15 июня 2009

Похоже, вы спрашиваете об использовании eval () для содержимого первого узла.

Я действительно должен спросить, почему вы хотите сделать что-то подобное, как бы то ни было. Такой дизайн действительно кричит: «Он не знает, что делает, и полностью упускает суть». Что это за данные, которые вы хотите хранить в Node1? Зачем вам это нужно в другом узле? Есть ли причина, по которой вы не можете сохранить его как атрибут этого узла?

0 голосов
/ 17 июня 2009

Вы также можете использовать переменные сеанса PHP, чтобы получить этот эффект.

На странице 1:

$_SESSION['variableName'] = 'somevalue';

и на странице 2:

<?php print $_SESSION['variableName'] ?>

Drupal делает некоторые странные вещи, когда вы пытаетесь установить свой собственный cookie и т. Д., Но переменные сеанса, похоже, работают. Просто не забудьте убирать за собой! (установите переменную в '' после того, как вы распечатаете ее или что-то в этом роде)

Jason

0 голосов
/ 16 июня 2009

Так как сайт, над которым я работаю, не относится к сообществу, имеет единственную целевую страницу, и мне очень не хватает времени, чтобы найти быстрое и грязное решение, я решил воспользоваться предложением Dan U.

Страница 1:

variable_set('var1','Some text');

Страница 2:

$getvar = variable_get('var1',NULL);
 print "var1 is " . $getvar;

Вкратце, я создаю в drupal то, что правильно делать в PHP, но у меня нет выбора ...

60 почти идентичных целевых страниц с информацией, относящейся к URL, 2 разных графических календаря с регистрацией событий, всплывающими описаниями и другими прибамбасами. Я хотел сделать это в ПРОСМОТРАХ с аргументом, но всплывающие окна убили меня. Мне нужно несколько элементов для загрузки на каждой странице в качестве универсальных переменных, чтобы редактирование было управляемым, когда неизбежно произошли изменения.

Извините, если это неясно, это сложно, трудно объяснить, и я сильно ограничен во времени ... еще раз спасибо!

0 голосов
/ 15 июня 2009

Если вам действительно нужно сделать что-то подобное, я бы хотел создать текстовое поле CCK с неограниченными значениями, возможно, с именем field_value, и перейти на экран, чтобы скрыть его от просмотра. Тогда вы могли бы сделать что-то вроде:

$other_node = node_load(1);
print $other_node->field_value[0]['value'];

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

0 голосов
/ 15 июня 2009

Я не уверен, что это возможно при использовании node_load, но вы можете использовать variable_set и variable_get следующим образом:

Страница 1:

variable_set('var1','Some text');

Страница 2:

$getvar = variable_get('var1',NULL);
print "var1 is " . $getvar;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...