Как в DLE вывести в title значение дополнительного поля?

12
piratstvo
На сайте с 15.04.2009
Offline
123
2150

Коллеги-сайтостроители, подскажите пожалуйста, как вывести в title страниц значение дополнительного поля?

Для страниц, принадлежащих к категориям ID-1, ID-2 в title нужно вывести значение дополнительного поля {year}.

Раньше был код, который решал эту проблему, но на DLE 11.1 он уже не работает.

if( ($subaction == 'showfull') AND in_array( intval($category_id), array('1', '2')) ){

$metatags['title'] = 'Общая фраза '.$xfieldsdata['year'] . '. '.$metatags['title']. '';
}

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

lutskboy
На сайте с 22.11.2013
Offline
185
#1

in_array( intval($category_id), array('1', '2')) ---> count(array_intersect($cat_list, array('1', '2')))

piratstvo
На сайте с 15.04.2009
Offline
123
#2
lutskboy:
in_array( intval($category_id), array('1', '2')) ---> count(array_intersect($cat_list, array('1', '2')))

Спасибо за желание помочь!

К сожалению, не работает! Вы проверяли у себя?

lutskboy
На сайте с 22.11.2013
Offline
185
#3

проверяли

работает

piratstvo
На сайте с 15.04.2009
Offline
123
#4
lutskboy:
проверяли
работает

значит вы неправильно опубликовали код. может он неполный.

его нужно выделить тегом code.

maximka77
На сайте с 15.10.2011
Offline
239
#5
piratstvo:
его нужно выделить тегом code

А куда вы его вставляете?

- Базы чатов и каналов Телеграм ( https://base-top.ru/ ) - Тематические ссылки с главных страниц ( https://tier1buy.ru/ )
piratstvo
На сайте с 15.04.2009
Offline
123
#6
maximka77:
А куда вы его вставляете?

Код, указанный в первом посте, вставлял в файл engine.php перед строкой $metatags = <<<HTML.

lutskboy
На сайте с 22.11.2013
Offline
185
#7

а что не понятно

in_array( intval($category_id), array('1', '2')) ---> count(array_intersect($cat_list, array('1', '2')))

означает что это in_array( intval($category_id), array('1', '2'))

заменить на это count(array_intersect($cat_list, array('1', '2')))

if( ($subaction == 'showfull') AND count(array_intersect($cat_list, array('41', '80'))) ){

$metatags['title'] = 'Общая фраза '.$xfieldsdata['year'] . '. '.$metatags['title']. '';

}

piratstvo
На сайте с 15.04.2009
Offline
123
#8
lutskboy:
а что не понятно

Всё понятно. Так и делаю.

А вот результат (вместо года выводится "о."):

<title>Общая фраза o. Сноуден</title>

lutskboy
На сайте с 22.11.2013
Offline
185
#9

в show.full.php

ищем

if( strpos( $tpl->copy_template, "xfvalue" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) {

$xfieldsdata = xfieldsdataload( $row['xfields'] );

после него вставить

$xf_year = $xfieldsdata['year'];

потом вместо

$metatags['title'] = 'Общая фраза '.$xfieldsdata['year'] . '. '.$metatags['title']. '';

это

$metatags['title'] = 'Общая фраза '.$xf_year . '. '.$metatags['title'];

piratstvo
На сайте с 15.04.2009
Offline
123
#10
lutskboy:
в show.full.php

спасибо! все вышеуказанные правки делать только в show.full.php ?

а где в последнем коде указывается принадлежность страниц к категории?

UPDATE: Год появился, но теперь этот title изменился абсолютно на всех страницах сайта, в том числе и на главной, а нужно для страниц, определённых категорий.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий