Ошибки из-за модуля subdomain

Аватар пользователя Shardach Shardach 20 ноября 2012 в 23:34

Добрый день,

Подскажите, пожалуйста, по вопросу: в журнале Drupal обнаружил большое кол-во ошибок вида:
PDOException: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "1860&post=-3164243_76" LINE 5: WHERE td.vid = '2' AND n.nid = '1860&post=-3164243_7... ^: SELECT tn.tid FROM {taxonomy_index} tn INNER JOIN {node} n on tn.nid = n.nid INNER JOIN {taxonomy_term_data} td on tn.tid = td.tid WHERE td.vid = :vid AND n.nid = :nid AND n.type NOT IN (:types_0); Array ( [:vid] => 2 [:nid] => 1860&post=-3164243_76 [:types_0] => ) в функции subdomain_mode_term->get_content_subdomain() (строка 43 в файле /home3/ruspolei/public_html/sites/all/modules/subdomain/includes/subdomain_mode_term.inc).

Причиной является модуль subdomain, а вернее его часть функция:
function get_content_subdomain($nid) {
static $subdomains;

if (!isset($subdomains[$nid])) {
// Get first group_nid
$vid = variable_get('subdomain_vocab', '');
$sid = db_query("SELECT tn.tid
FROM {taxonomy_index} tn
INNER JOIN {node} n on tn.nid = n.nid
INNER JOIN {taxonomy_term_data} td on tn.tid = td.tid
WHERE td.vid = :vid AND n.nid = :nid AND n.type NOT IN (:types)",
array(':vid' => $vid, ':nid' => $nid, ':types' => _subdomain_filtered_content_types()))
->fetchField();
$subdomains[$nid] = subdomain_get_subdomain($sid);
}
return $subdomains[$nid];
}

В которую как переменную :nid подается подается все что есть в адресе после последнего слэша, в рассматриваемом случае "1860&post=-3164243_76".

В принципе, проблему могла бы решить стандартная проверка значения nid is_numeric() и перенаправление на Страница не найдена.

Подскажите, пожалуйста, как сделать?

Заранее большое спасибо.

Комментарии

Аватар пользователя K0r5hun K0r5hun 20 ноября 2012 в 23:47

1) Посмотреть на орге ишью, возможно есть уже готовые патчи, либо почитать инфу и написать патч самому. (Лично я патчи пока не писал, советовать всегда легче :-D)
2) Склонировать/Переименовать модуль, соответственно функции и править как душе угодно.
3) Попробовать разместить изменения на орге, авось добавят в модуль.
4) Хардкод Biggrin

Примерный список моих действий в порядке убывания...