Здравствуйте, у меня была задача, которую я решил тем путём - что перезаписал функцию taxonomy_select_nodes (одна из функций, расположенных в taxonomy.module). Но дело в том, что так как это - функция ядра - то нужно её переопределить, и я не имею права лезть в taxonomy.module конечно же. Подскажите - как это сделать правильнее всего. У меня есть вариант, но я не думаю - что вариант правильный.
Какой бы вариант вы посоветовали?
заранее большое спасибо.
Комментарии
Если вопрос ставится именно как - изменить логику работы функции taxonomy_select_nodes то без патча никак.
А чем вызвано такое желание можно полюбопытствовать?
Правильно - скопировать папку модуля в sites/all/modules и там вносить изменения, но и следить за заплатами придется в последствии самому.
_своймодуль_taxonomy_select_nodes
угу, причина нужна, может какая оптимизация или фикс, тогда прямиком в хидеры дру
да нет - не оптимизация или фикс - просто мне нужна другая сортировка терминов таксономии, вернее - нужно её дополнить, а сортировка осуществляется именно этой функцией, так вот я в ней всё переделал - перезаписал запрос конкретно, но - это конечно же неправильно - править прямо там.
вообще склоняюсь уже к тому - что надо скорее переписать taxonomy_menu (ведь именно там изначально нужная мне функция и вызывается), только вот непонятно - если я пропишу в своём модуле хук моймодуль_menu, и пропишу в нём свою функцию для того же самого пути, для которого прописан хук taxonomy_menu, то какой из хуков будет вызываться друпалом для отображения данной страницы - мой или taxonomy_menu?
извините за дополнительное беспокойство..
там вообще вызове то есть сортировка параметр
$order = 'n.sticky DESC, n.created DESC'
если этого не хватает, ятак понимаю вы хотите переопределить сортировку в на странице taxonomy/term/% ?
если так, то можете просто переопределить theme_taxonomy_term_page.
либо если недостаточно или не то, просто создайте свой модуль, копипаст с таксономии, и готово с вызовом своих функций.
да не - не оптимизация или фикс, правил исключительно для собственных нужд.
Nikit, _своймодуль_taxonomy_select_nodes - если прописать такую функцию в своём модуле - то она будет заменять собой taxonomy_select_nodes ? дело в том, что эта функция вызывается из другой функции, которая в свою очередь вызывается из taxonomy_menu.
может написать тогда хук своймодуль_menu, в котором я прописываю свою функцию для данного адреса taxonomy/term/TERMID - но вот - вопрос, какой из хуков тогда будет вызывать Друпал - мой или taxonomy_menu? (для отображения контента по данному УРЛу).
извини за беспокойство..
проверка
нет, просто предлагаю заменить и сделать своё.
тот у которого weight модуля выше (или ниже), не помню.
Есть разные способы перекрыть стандартный функционал в данном случае
1) hook_menu_alter и свой обработчик
2) hook_db_rewrite_sql подправить запрос
3) custom_url_rewrite_inbound
4) использовать views