Добрый день!
Каталог товаров интернет магазина на Ubercart'е формируется на основе терминов таксономии. Так вот даже если в термине таксономии ввести page title, то в каталоге в соответствующем разделе этот page_title не появится. Наверно потому ,что в данный момент страница конкретно не из таксономии, а из каталога. Хотя если заходить в taxonomy/term/2 - page_title выводится правильно.
но вот в catalog/2 он подставляется просто как "термин | заголовок сайта" , как если бы модуль page_title вообще не был установлен.
page_title у товаров и других нод выводится правильно.
Т.е. тут заморочка лишь в том, что у терминов таксономии выводится, а у каталога, который формируется на основе терминов - не выводится. SEO из-за этого недоразвитое выходит...
Комментарии
Переспрошу.
Даже не знаю как это решить не залезая в код. Но вот нашел куски кода, если я правильно понимаю своим взглядом, который не разбирается в пхп
Сдается мне, что нужно частично какой-то код перенести и заменить из page_title.module в файл uc_catalog.pages.inc или в uc_catalog.module
Т.е. подменить в коде формирования страниц каталога кусок кода отвечающий за получение тайтла страницы.
Не помню что там было, но я исправлял это дело.
Вот пример http://demo.drupal-shop.ru/product/gran-turismo
Покупайте мою сборку
Не спортивно такие ответы давать.
поделился бы файликами, я попробовал бы разобраться что изменено.
если не охота вспоминать.
Вообще хаки стараюсь документировать, чтобы после апгрейда модуля можно было снова добавить хак.
Сегодня боролся с такой-же проблемой, решил так:
модуль page title для всего кроме таксономии
модуль taxonomy_title для таксономии+модуль патч к нему, для корректной обработки уберкартовского каталога+ модуль Utility .
С помощью Utility выставляется вес модулей: -1 для taxonomy_title и 1 для page_title.
zlogr@drupal.org, сделал как написали Вы - работает: теперь у категории свой title, но, этот же title дублируется в H1, в котором раньше был записан сам термин, что мне и было нужно. Можно ли сделать, чтобы H1 не зависил от title?
oleg220, title в H1 выводится из page.tpl.php:
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
Попробуйте переписать так, чтобы в случае если страница является категорией каталога, в title писался термин таксономии.
UPDATE: Вижу уже разобрались Кстати спасибо за devel_themer, обязательно попробую..
Я поступил проще, добавив пару строк в модуль page title, чтобы он распространял своё влияние на каталог.
Открываем файл "page_title.module", который находится в www\modules\page_title
Ищем там строку "function page_title_get_title()"
И добавляем например перед комментом "// If we're looking at a taxonomy term page, get the term title"
кусок кода:
<?php elseif (arg(0) == 'catalog' && is_numeric(arg(1)) && module_exists('taxonomy')) {
$term = taxonomy_get_term(arg(1));
if (variable_get('page_title_vocab_'. $term->vid .'_showfield', 0) && ($term_title = page_title_load_title($term->tid, 'term'))) {
$title = $term_title;
}
}?>
Заметил такую неприятную вещь. Титлы у разделов каталога меняются и показываются, но, время от времени некоторые из них просто пропадают. Сначала я думал, что это я просто забыл указать титл у термина, но, сейчас это повторилась и я даже посмотрел в кеш поисковиков, в кеше был заданный мною титл, а теперь показывает просто название термина.
Кто-нибудь с таким уже сталкивался?
subscribe
Ядрена! Помогло. Спасибо. Действительно page_title вроде и помогает при таксономии - но вот с уберкартовским каталогом не помогаело.
Ваш код помог.
И не нужно лишних модулей, которых и так как грязи.
Спасибо.
смотрю тема давно не обсуждается, столкнулся с этой же проблемой(надо было изменить на рабочем сайте тайтлы-только в заголовке страницы).
Вот мое решение проблемы)
<?php
function THEM_NAME_preprocess_page(&$vars) {
if(
arg(1) == 'term'){
$res = db_result(db_query("SELECT t.page_title FROM {page_title} as t WHERE t.type='%s' AND t.id=%d",'term',arg(2)));
if($res) $vars['head_title'] = $res;
}
}
?>
Здравствуйте, у меня нет в файле page_title.module нет строки function page_title_get_title()! Куда вставлять код?
обновил модуль до версии page_title-6.x-2.7 заработало все хорошо ))
Аналогичная проблема, но на drupal 7.
Нет строки function page_title_get_title()! Куда вставлять код?
Как побороть данную проблему?
И все? тишина? Хорошая поддержка у друпала... нечего сказать. Второй день бьюсь, не найду решения! Нет этой строчки - куда код вставлять!?!
Мы вам вернем деньги, которые вы заплатили за поддержку)
На 7ке данная проблема не наблюдалась. Попробуйте во вьюсе, где выводятся страницы каталога отключить переопределение заголовков. Так же отлично с тайтлами разбирается модуль simple_page_title.
а модуль хакать не нужно...