Привет.
Функция проверяет id термина и в случае совпадения присваивает ему вес:
<?php
$cat_weight = array(
'492' => -5,
'493' => -4,
'387' => -3,
'494' => -2,
'1479' => -1,
'499' => 1,
'430' => 2,
);
if (array_key_exists(intval($termID), $cat_weight)) {
$tid = sync_element_get_from_sync($termID);
if ($tid) {
db_query('UPDATE {term_data} SET weight = %d WHERE tid = %d', $cat_weight[$termID], $tid);
}
}
?>
Прикол в том, что функция работает в отдельном файле с подключенным bootstrap.inc и не работает в модуле.
Если кто знает причину глюка подскажите.
Комментарии
Если это весь код, то я удивлён, что он работает
Код не весь, загвоздка в array_key_exists(), в том что он глючит в модуле.
$termID - 100% целое число, для полной уверенности обернул в intval().
$cat_weight = array(
'492' => -5,
'493' => -4,
'387' => -3,
'494' => -2,
'1479' => -1,
'499' => 1,
'430' => 2,
);
if (array_key_exists(intval($termID), $cat_weight)) {
echo 'ok';
}
if (array_key_exists((int)$termID, $cat_weight)) {
echo 'ok';
}
У меня оба варианта сработали.
dpm($termID); сделай перед объявлением массива.
А зачем у вас tid-ы терминов стринговые?
Спасибо за подсказки, все банально $termID был ни разу не число, a (Object) SimpleXMLElement)
Которые в массиве? Это я уже пробовал разные варианты)