Модуль page title не работает в каталоге Ubercart

Главные вкладки

Аватар пользователя Bakdimkaz Bakdimkaz 31 мая 2010 в 16:51

Добрый день!

Каталог товаров интернет магазина на Ubercart'е формируется на основе терминов таксономии. Так вот даже если в термине таксономии ввести page title, то в каталоге в соответствующем разделе этот page_title не появится. Наверно потому ,что в данный момент страница конкретно не из таксономии, а из каталога. Хотя если заходить в taxonomy/term/2 - page_title выводится правильно.
но вот в catalog/2 он подставляется просто как "термин | заголовок сайта" , как если бы модуль page_title вообще не был установлен.
page_title у товаров и других нод выводится правильно.
Т.е. тут заморочка лишь в том, что у терминов таксономии выводится, а у каталога, который формируется на основе терминов - не выводится. SEO из-за этого недоразвитое выходит...

Sad

Комментарии

Аватар пользователя Bakdimkaz Bakdimkaz 31 мая 2010 в 22:36

Переспрошу.
Даже не знаю как это решить не залезая в код. Но вот нашел куски кода, если я правильно понимаю своим взглядом, который не разбирается в пхп Smile

Сдается мне, что нужно частично какой-то код перенести и заменить из page_title.module в файл uc_catalog.pages.inc или в uc_catalog.module

Т.е. подменить в коде формирования страниц каталога кусок кода отвечающий за получение тайтла страницы.

Аватар пользователя Bakdimkaz Bakdimkaz 1 июня 2010 в 0:25

Не спортивно такие ответы давать.

поделился бы файликами, я попробовал бы разобраться что изменено.
если не охота вспоминать.

Вообще хаки стараюсь документировать, чтобы после апгрейда модуля можно было снова добавить хак.

Аватар пользователя zlogr@drupal.org zlogr@drupal.org 1 июня 2010 в 20:42

Сегодня боролся с такой-же проблемой, решил так:
модуль page title для всего кроме таксономии
модуль taxonomy_title для таксономии+модуль патч к нему, для корректной обработки уберкартовского каталога+ модуль Utility .
С помощью Utility выставляется вес модулей: -1 для taxonomy_title и 1 для page_title.

Аватар пользователя oleg220 oleg220 27 октября 2010 в 11:41

zlogr@drupal.org, сделал как написали Вы - работает: теперь у категории свой title, но, этот же title дублируется в H1, в котором раньше был записан сам термин, что мне и было нужно. Можно ли сделать, чтобы H1 не зависил от title?

Аватар пользователя zlogr@drupal.org zlogr@drupal.org 31 октября 2010 в 20:21

oleg220, title в H1 выводится из page.tpl.php:


<?php if ($title): ?>
<h1 class="title"><?php print $title?></h1>
<?php endif; ?>

Попробуйте переписать так, чтобы в случае если страница является категорией каталога, в title писался термин таксономии.

UPDATE: Вижу уже разобрались Smile Кстати спасибо за devel_themer, обязательно попробую..

Аватар пользователя accel accel 7 декабря 2010 в 21:39

Я поступил проще, добавив пару строк в модуль 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;
    }
  }
?>
Аватар пользователя oleg220 oleg220 26 января 2011 в 15:32

Заметил такую неприятную вещь. Титлы у разделов каталога меняются и показываются, но, время от времени некоторые из них просто пропадают. Сначала я думал, что это я просто забыл указать титл у термина, но, сейчас это повторилась и я даже посмотрел в кеш поисковиков, в кеше был заданный мною титл, а теперь показывает просто название термина.
Кто-нибудь с таким уже сталкивался?

Аватар пользователя NIKS_ArtReaktor NIKS_ArtReaktor 17 апреля 2011 в 1:59

"accel" wrote:
Я поступил проще, добавив пару строк в модуль 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;
}
}?>

Ядрена! Помогло. Спасибо. Действительно page_title вроде и помогает при таксономии - но вот с уберкартовским каталогом не помогаело.
Ваш код помог.
И не нужно лишних модулей, которых и так как грязи.

Спасибо.

Аватар пользователя ArmRus ArmRus 6 марта 2012 в 12:31

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

<?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;
}
}
?>
Аватар пользователя seda84 seda84 7 июня 2012 в 18:57

Здравствуйте, у меня нет в файле page_title.module нет строки function page_title_get_title()! Куда вставлять код?
обновил модуль до версии page_title-6.x-2.7 заработало все хорошо ))

Аватар пользователя Firsev Firsev 12 ноября 2012 в 11:58

Аналогичная проблема, но на drupal 7.
Нет строки function page_title_get_title()! Куда вставлять код?
Как побороть данную проблему?

Аватар пользователя mckey72 mckey72 21 марта 2013 в 14:31

И все? тишина? Хорошая поддержка у друпала... нечего сказать. Второй день бьюсь, не найду решения! Нет этой строчки - куда код вставлять!?!

Аватар пользователя ArmRus ArmRus 11 апреля 2013 в 5:43

"mckey72" wrote:
И все? тишина? Хорошая поддержка у друпала... нечего сказать. Второй день бьюсь, не найду решения! Нет этой строчки - куда код вставлять!?!

Мы вам вернем деньги, которые вы заплатили за поддержку)

"Firsev" wrote:
Аналогичная проблема, но на drupal 7.
Нет строки function page_title_get_title()! Куда вставлять код?
Как побороть данную проблему?

На 7ке данная проблема не наблюдалась. Попробуйте во вьюсе, где выводятся страницы каталога отключить переопределение заголовков. Так же отлично с тайтлами разбирается модуль simple_page_title.

а модуль хакать не нужно...