Столкнулся с проблемой при написании своего модуля.
Мне нужно сделать проверку на наличие у текущей ноды определенного термина в определенном словаре. Сломал всю голову, как это сделать именно в модуле?
не вижу ничего сумбурного. $result как видно из кода возвращается из функции taxonomy_select_nodes. или не видно? как узнать nid текущей ноды вам виднее должно быть, вы же модуль пишете. вообще же зависит от того какой хук вы обрабатываете, как правило nid текущей ноды можно узнать из объекта $node, который передается в функциях хука. на будущее: вы хотя бы код модуля приводите и поподробнее описывайте проблему, здесь телепатов нет.
не вижу ничего сумбурного. $result как видно из кода возвращается из функции taxonomy_select_nodes. или не видно? как узнать nid текущей ноды вам виднее должно быть, вы же модуль пишете. вообще же зависит от того какой хук вы обрабатываете, как правило nid текущей ноды можно узнать из объекта $node, который передается в функциях хука. на будущее: вы хотя бы код модуля приводите и поподробнее описывайте проблему, здесь телепатов нет.
Из поля профиля пользователя берется размер скидки, который вычитается из цены товара.
Теперь пытаюсь сделать условие, что бы скидка не срабатывала, если у товара есть термин "Скидки" (что бы не делать скидку на еще одну скидку).
Так же пытался найти хук для ubercart, что бы делать проверку на cost (как альтернатива первому варианту с термином таксономии), но что-то безуспешно:
// Implements hook_nodeapi // http://api.drupal.org/api/drupal/developer!hooks!core.php/function/hook_... function my_module_nodeapi(&$node, $op){ if(($op == 'view')||($op == 'load')){ $terms = $node->taxonomy; //тут foreach`ем перебирай переменную $terms. //В ней все термины всех словарей,прикрепленных к текущей ноде. // Если найдешь свой термин - добавь в объект ноды то что тебе нужно, потом выведешь в шаблоне. } }
Комментарии
http://api.drupal.org/api/drupal/modules!taxonomy!taxonomy.module/functi...
foreach($result as $nid){
if ($nid == "id текущей ноды"){
}
}
как вариант так
спасибо, но немного сумбурно...
Резалт возвращается из какой ф-ции? Nid как узнать в модуле?
не вижу ничего сумбурного. $result как видно из кода возвращается из функции taxonomy_select_nodes. или не видно? как узнать nid текущей ноды вам виднее должно быть, вы же модуль пишете. вообще же зависит от того какой хук вы обрабатываете, как правило nid текущей ноды можно узнать из объекта $node, который передается в функциях хука. на будущее: вы хотя бы код модуля приводите и поподробнее описывайте проблему, здесь телепатов нет.
Согласен с вами, не посмотрел внимательно.
У меня пока есть такое начало:
function mydiscount_cart_item($op, &$item) {
global $user;
profile_load_profile($user);
$userdiscount = $user->profile_discount;
$percentload = $item->price/100 * $userdiscount;
$item->price = $item->price - $percentload;
}
?>
Из поля профиля пользователя берется размер скидки, который вычитается из цены товара.
Теперь пытаюсь сделать условие, что бы скидка не срабатывала, если у товара есть термин "Скидки" (что бы не делать скидку на еще одну скидку).
Так же пытался найти хук для ubercart, что бы делать проверку на cost (как альтернатива первому варианту с термином таксономии), но что-то безуспешно:
function mydiscount_product($op, &$item) {
$outcost = $item->cost;
}
if ($outcost == '0.00000'):
?>
<?php
function mydiscount_cart_item($op, &$item) {
$item->price = $item->price;
}
?>
<?php else: ?>
<?php
function mydiscount_cart_item($op, &$item) {
global $user;
profile_load_profile($user);
$userdiscount = $user->profile_discount;
$percentload = $item->price/100 * $userdiscount;
$item->price = $item->price - $percentload;
}
?>
<?php endif; ?>
з.ы. прошу прощения за быдлокод, пока просто пробую все варианты, что сработает, а потом уже причесывать буду.
// http://api.drupal.org/api/drupal/developer!hooks!core.php/function/hook_...
function my_module_nodeapi(&$node, $op) {
if(($op == 'view') || ($op == 'load')){
$terms = $node->taxonomy;
//тут foreach`ем перебирай переменную $terms.
//В ней все термины всех словарей,прикрепленных к текущей ноде.
// Если найдешь свой термин - добавь в объект ноды то что тебе нужно, потом выведешь в шаблоне.
}
}