Редактор темы

Реклама
Реклама
Реклама
Реклама

Хак - свой title при поиске по дополнительным полям [dle 11.x]

DLEPlugins

Кодер
Регистрация
29 Ноя 2015
Сообщения
1.601
Рейтинг реакций
968
Баллы
113
1/3
Автор темы
Начал разрабатывать сайт на свежей DLE 11.0 и задался вопросом как сделать общий тайтл для всех значений определённого доп поля при их поиске. Не получив ответа, поковырялся и допёр.
Для ограниченного количества значений доп поля, например жанры или страны я советую использовать этот модуль. Ну а для тех доп полей, в которых бесчисленное множество значений проще сделать общий тайтл. Вот собственно как:

Открываем /engine/engine.php и ищем в нем
Код:
elseif ($do == 'xfsearch') $nam_e = $xf;
заменяем код на
Код:
elseif ($do == 'xfsearch')
{
if ($xfname == 'year') $nam_e = "Список всех фильмов за ".$xf." год";
elseif ($xfname == 'director') $nam_e = "Список всех фильмов, в которых ".$xf." выступил режиссёром";
elseif ($xfname == 'creator') $nam_e = "Список всех фильмов, в которых ".$xf." выступил сценаристом или автором оригинала";
elseif ($xfname == 'actor') $nam_e = "Список всех фильмов с участием актера ".$xf;
elseif ($xfname == 'producer') $nam_e = "Список всех фильмов, которые продюсировал ".$xf;
elseif ($xfname == 'provider') $nam_e = "Список всех фильмов, в которых ".$xf." выступил оператором";
elseif ($xfname == 'musicby') $nam_e = "Список всех фильмов, для которых композитор ".$xf." написал музыку";
elseif ($xfname == 'keywords') $nam_e = "Список всех фильмов с ключевым словом ".$xf;
else $nam_e = $xf;
}

Где в коде

year - это латинское название доп поля содержащее год выпуска
director - режиссер
creator - сценарист
actor - актеры
producer - продюсеры
provider - оператор
musicby - композитор
keywords - ключевые слова фильма

Конечно вы можете использовать свои имена доп полей ну и описание написать своё. Хак будет работать только на версии DLE 11.x и выше.

Автор хака: DomiTori
Демо
 
там нету переменой $xfname она только в 11.0 появилась, ибо там доп поля начали записывать в отдельную таблицу
да главное смысл понять, а переменную подправить недолго 🙂
 
1к рублей... дороговато выходит 🙁
Поддержка + продукт который упрощает работу - думаю это того стоит.

Могу сделать открытую версию, без привязки. Можете складчину провести.
 
Автор темы
а какая переменна есть?)
Если проделать http://coderlaba.net/hacks/dle-hacks/1241-fxfield-dle-102-10x.html
И после вместо
$xfname
использовать в коде
$xn
Думаю должно прокачать
Либо отдельно писать свою переменную, которая будет в себя вписывать латинское название доп поля
 
Всё пашет отлично на 11.0!
Спасибо автору!
 
а как выводить остальное? по типу дискришин и кейворд?
 
Начал разрабатывать сайт на свежей DLE 11.0 и задался вопросом как сделать общий тайтл для всех значений определённого доп поля при их поиске. Не получив ответа, поковырялся и допёр.
Для ограниченного количества значений доп поля, например жанры или страны я советую использовать этот модуль. Ну а для тех доп полей, в которых бесчисленное множество значений проще сделать общий тайтл. Вот собственно как:

Открываем /engine/engine.php и ищем в нем
Код:
elseif ($do == 'xfsearch') $nam_e = $xf;
заменяем код на
Код:
elseif ($do == 'xfsearch')
{
if ($xfname == 'year') $nam_e = "Список всех фильмов за ".$xf." год";
elseif ($xfname == 'director') $nam_e = "Список всех фильмов, в которых ".$xf." выступил режиссёром";
elseif ($xfname == 'creator') $nam_e = "Список всех фильмов, в которых ".$xf." выступил сценаристом или автором оригинала";
elseif ($xfname == 'actor') $nam_e = "Список всех фильмов с участием актера ".$xf;
elseif ($xfname == 'producer') $nam_e = "Список всех фильмов, которые продюсировал ".$xf;
elseif ($xfname == 'provider') $nam_e = "Список всех фильмов, в которых ".$xf." выступил оператором";
elseif ($xfname == 'musicby') $nam_e = "Список всех фильмов, для которых композитор ".$xf." написал музыку";
elseif ($xfname == 'keywords') $nam_e = "Список всех фильмов с ключевым словом ".$xf;
else $nam_e = $xf;
}

Где в коде

year - это латинское название доп поля содержащее год выпуска
director - режиссер
creator - сценарист
actor - актеры
producer - продюсеры
provider - оператор
musicby - композитор
keywords - ключевые слова фильма

Конечно вы можете использовать свои имена доп полей ну и описание написать своё. Хак будет работать только на версии DLE 11.x и выше.

Автор хака: DomiTori
Демо
а нельзя ли и с description и keywords зделать так же ?
 
Автор темы
а нельзя ли и с description и keywords зделать так же ?
PHP:
elseif ($do == 'xfsearch')
{
if ($xfname == 'year') {
$nam_e = "Список всех фильмов за ".$xf." год";
$metatags['description'] = "Мы собрали для вас список всех аниме за ".$xf." год";
$metatags['keywords'] = "Мы собрали для вас список всех аниме за ".$xf." год";
}
elseif ($xfname == 'director') {
$nam_e = "Список всех фильмов, в которых ".$xf." выступил режиссёром";
$metatags['description'] = "Мы собрали для вас список всех фильмов, в которых ".$xf."выступил режиссёром";
$metatags['keywords'] = "Мы собрали для вас список всех фильмов, в которых ".$xf."выступил режиссёром";
}
else $nam_e = $xf;
}
 
PHP:
elseif ($do == 'xfsearch')
{
if ($xfname == 'year') {
$nam_e = "Список всех фильмов за ".$xf." год";
$metatags['description'] = "Мы собрали для вас список всех аниме за ".$xf." год";
$metatags['keywords'] = "Мы собрали для вас список всех аниме за ".$xf." год";
}
elseif ($xfname == 'director') {
$nam_e = "Список всех фильмов, в которых ".$xf." выступил режиссёром";
$metatags['description'] = "Мы собрали для вас список всех фильмов, в которых ".$xf."выступил режиссёром";
$metatags['keywords'] = "Мы собрали для вас список всех фильмов, в которых ".$xf."выступил режиссёром";
}
else $nam_e = $xf;
}
на dle 11.1 все идеально работает и сейчас все seo теги title,description , keywords выводится спасибо большой .
 
А насчёт категорий есть?
 
x360kg зачем тебе таким макаром писать к категориям что либо?)
 
А на 17.2 это будет работать? engine.php отредактировал, но никаких изменений.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху