[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Доступ к елементам ноды Drupal
Basili4
Не знал проблем и вот началось....
Задача простая. Есть нода по сохранению которой данные из её элементов должны разнестись по нескольким таблицам при этом должны выполнится не которые вычисления с ними.

код хука


function pay_doit_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL)
{
$target="pay";

if ($op=='alter' && $node->type==$target)
{
// вот тут надо получить доступ к значению поля field_pay

}

}




Кто подскажет как ??



Спустя 19 минут, 30 секунд (13.05.2011 - 14:15) Michael написал(а):
1) А причем к сохранению операция alter?
2) девел установлен? Посмотри, что показывает dsm($node).

Спустя 14 минут, 39 секунд (13.05.2011 - 14:29) Basili4 написал(а):
нет не установлен. Щас поставлю.

Спустя 1 час, 54 минуты, 47 секунд (13.05.2011 - 16:24) Basili4 написал(а):
вроде стало прояснятся модуль Devel помог

Код изменился

$target="pay";
//$target="page";

if ( $node->type==$target && $op=='presave')
{
$pay_value=$node->field_pay[0]['value'];
$student_value=$node->field_student[0]['nid'];
$group_value=$node->field_group[0]['nid'];
$paydate_value=$node->field_paydate[0]['value'];


............


}



Теперь вот вопрос, в некоторых полях нет значения value есть только nid

вот как зная этот nid узнать значение этих полей ?

Спустя 12 минут, 35 секунд (13.05.2011 - 16:37) Michael написал(а):
Цитата (Basili4 @ 13.05.2011 - 15:24)
Теперь вот вопрос, в некоторых полях нет значения value есть только nid

вот как зная этот nid узнать значение этих полей ?

эти поля наверное чем то отличаются, может типом? Гадать в друпале очень сложно, много ситуаций.
Это же сск поля у тебя. Вот и глянь как они хранятся в БД. Увидишь каким запросом подтянуть если надо. Хотя по идее должно из ноды все получаться.

Спустя 8 минут, 10 секунд (13.05.2011 - 16:45) Basili4 написал(а):
Michael
ну да эти поля представлены в ноде как выпадающий список. Конечно можно и в базе их по искать но хотелось бы красиво из ноды вытаскивать.

Спустя 24 минуты, 15 секунд (13.05.2011 - 17:09) Michael написал(а):
Посмотри dsm($node) в операции update и insert.

Спустя 55 минут, 14 секунд (13.05.2011 - 18:04) Basili4 написал(а):
Тоже самое

Спустя 31 минута, 20 секунд (13.05.2011 - 18:36) Michael написал(а):
Я у себя посмотрел, все прекрасно показывается...
Единственное где встретил "только nid", так это тип такой - Node Referrence, т.е. номером ноды представлен.

Спустя 5 минут, 22 секунды (13.05.2011 - 18:41) Basili4 написал(а):
Ссылка на материал. Да это она.
Два поля представлены как ссылки на другой материал. Вся беде в том как получить значения выбранные пользователем??

Спустя 12 минут (13.05.2011 - 18:53) Michael написал(а):
Так этот nid и является значением, выбранным пользователем :) .
Тебе нужен тот текст, который в выпадающем списке?
Ну если не обращать внимание на производительность, то так:
$nid = ...
$n = node_load($nid);
print $n->title;

, но лучше все таки запросик соорудить к табличке node

Спустя 5 минут, 20 секунд (13.05.2011 - 18:58) Basili4 написал(а):
Michael
Да, совершенно верно я понял, что из себя представляет этот nid.


_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.