Задача простая. Есть нода по сохранению которой данные из её элементов должны разнестись по нескольким таблицам при этом должны выполнится не которые вычисления с ними.
код хука
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).
2) девел установлен? Посмотри, что показывает dsm($node).
Спустя 14 минут, 39 секунд (13.05.2011 - 14:29) Basili4 написал(а):
нет не установлен. Щас поставлю.
Спустя 1 час, 54 минуты, 47 секунд (13.05.2011 - 16:24) Basili4 написал(а):
вроде стало прояснятся модуль Devel помог
Код изменился
Теперь вот вопрос, в некоторых полях нет значения value есть только nid
вот как зная этот nid узнать значение этих полей ?
Код изменился
$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, т.е. номером ноды представлен.
Единственное где встретил "только nid", так это тип такой - Node Referrence, т.е. номером ноды представлен.
Спустя 5 минут, 22 секунды (13.05.2011 - 18:41) Basili4 написал(а):
Ссылка на материал. Да это она.
Два поля представлены как ссылки на другой материал. Вся беде в том как получить значения выбранные пользователем??
Два поля представлены как ссылки на другой материал. Вся беде в том как получить значения выбранные пользователем??
Спустя 12 минут (13.05.2011 - 18:53) Michael написал(а):
Так этот nid и является значением, выбранным пользователем :) .
Тебе нужен тот текст, который в выпадающем списке?
Ну если не обращать внимание на производительность, то так:
, но лучше все таки запросик соорудить к табличке node
Тебе нужен тот текст, который в выпадающем списке?
Ну если не обращать внимание на производительность, то так:
$nid = ...
$n = node_load($nid);
print $n->title;
, но лучше все таки запросик соорудить к табличке node
Спустя 5 минут, 20 секунд (13.05.2011 - 18:58) Basili4 написал(а):
Michael
Да, совершенно верно я понял, что из себя представляет этот nid.
Да, совершенно верно я понял, что из себя представляет этот nid.
_____________