• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

DomiTori

Постоялец
Регистрация
15 Июл 2015
Сообщения
92
Реакции
88
Начал разрабатывать сайт на свежей 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
Для просмотра ссылки Войди или Зарегистрируйся

344-5791401987146bfc8c997066a190824b.jpg

Оживлю и дополню старый хак, который еще на 10.x DLE выкладывал. С его помощью можно массово задать title, description и keywords на страницах поиска по доп полям. Есть несколько модулей, которые выполяют эту задачу, но когда в 1 доп поле тысячи значений настройка таких доп полей в модулях занимает пол жизни, тут и пригодится данный хак.


Разработчик: DomiTori
Версия DLE: 11.x

Инструкция:
Правим всего 1 единственный файл.
Открываем /engine/engine.php и ищем в нем код
PHP:
elseif ($do == 'xfsearch') $nam_e = $xf;
заменяем на код
PHP:
elseif ($do == 'xfsearch' && $xfname == 'имя_доп_поля') {[/FONT][/FONT]
[FONT=Georgia][FONT=Verdana]$nam_e = "Тайтл к доп полю " . $xf . " текст меняем на свое";
$metatags['description'] = "Дискрипшн доп поля" . $xf . " который задаем" ;
$metatags['keywords'] = "первое ключевое слово " . $xf . ", второе ключевое слово " . $xf . ", третье ключевое слово " . $xf ;
}

имя_доп_поля - латинское название дополнительного поля, на котором мы задаем мета теги. Для подключения несколько раз вставьте приведенный выше код друг за другом, меняя имя_доп_поля и само описание мета тегов.

Добавлю пример для лучшего понимания. Вставив такой код
PHP:
elseif ($do == 'xfsearch' && $xfname == 'actor') {
$nam_e = "Список всех фильмов с участием актера " . $xf ;
$metatags['description'] = "На данной странице представлен список всех фильмов с участием актера " . $xf . ", которые доступны к просмотру онлайн на нашем сайте" ;
$metatags['keywords'] = "фильмы с " . $xf . ", где снимался " . $xf . ", актер " . $xf ;
}
elseif ($do == 'xfsearch' && $xfname == 'genre') {
$nam_e = "Список всех фильмов в жанре " . $xf ;
$metatags['description'] = "На данной странице представлен список всех фильмов в жанре " . $xf . ", которые доступны к просмотру онлайн на нашем сайте" ;
$metatags['keywords'] = "фильмы в жанре " . $xf . ", жанр " . $xf . ", список " . $xf ;
}

Скриншоты:
Screenshot_3.jpg
Screenshot_4.jpg

-------------------------------------------------------------------------------------------------------------------

UPD. По просьбе добавил возможность использовать h1 на страницах поиска по доп полям.
Все в том же /engine/engine.php находим код
PHP:
elseif ($do == 'xfsearch') $nam_e = $xf;
заменяем на код
PHP:
elseif ($do == 'xfsearch' && $xfname == 'имя_доп_поля') {$nam_e = "Тайтл к доп полю " . $xf . " текст меняем на свое";[/FONT][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT]
[FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana]$metatags['description'] = "Дискрипшн доп поля" . $xf . " который задаем" ;
$metatags['keywords'] = "первое ключевое слово " . $xf . ", второе ключевое слово " . $xf . ", третье ключевое слово " . $xf ;
$h_1 = "Сюда мы пишем ваш h1 текст, который относится к значению " . $xf . ", этот текст сможем использовать на страницах поиска по доп полям";
}
Далее ищем примерно такой код
PHP:
if ( ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) OR (isset($_GET['news_page']) AND intval($_GET['news_page']) > 1) ){
ВЫШЕ вставляем
PHP:
$tpl->load_template ( 'h1_xfield.tpl' );[/FONT][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT][/FONT]
[FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana][FONT=Georgia][FONT=Verdana]    $tpl->set ( '{h1_xfield}', $h_1 );
    $tpl->compile ( 'h1_xfield' );
    $tpl->clear ();

Теперь открываем /engine/modules/main.php и ищем в нем код
PHP:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
ниже вставляем
PHP:
$tpl->set ( '{h1_xfield}', $tpl->result['h1_xfield'] );

В папке с вашим шаблоном создаем файл h1_xfield.tpl с таким содержимым
HTML:
{h1_xfield}
или
HTML:
<h1>{h1_xfield}</h1>
или
HTML:
<div><h1>{h1_xfield}</h1></div>
оформляем по своему...

И наконец открываем main.tpl и в то место, где хотим выводить описание вставляем
HTML:
[available=xfsearch]{h1_xfield}[/available]
Скрин:
Screenshot_7.jpg

На пиво, чипсы и прочую отраву:
R417794992142
Z244912848144
U357368699010
 
Последнее редактирование:
Хак не работает, если ссылка без xfsearch, так же не работает на второй странице, т.к. в ссылке на вторую страницу нет $xfname в url ссылки... Можно как то подправить, чтобы работало даже если в ссылках убрано xfsearch? :ah:
 
Или вот покупал хак, отдаю бесплатно так как автор gameer на игноре. после того как оплатил.
 

Вложения

  • mata-in-xf.zip
    8,3 KB · Просмотры: 70
Или вот покупал хак, отдаю бесплатно так как автор gameer на игноре. после того как оплатил.
У меня ошибку при установке выдало....
5xiudayw1tqmwicn70mleypo5.png
 
Просто пишет что такая колонка уже есть! Установка хака темы или модуля выложенного потом?
модуля выложенного потом.
Странно, но в допполях такое имя я не создавал...
Версия дле 11.2

А если заменить url_name в модуле на другое? Получится, или он напортит все в базе данных?
 
модуля выложенного потом.
Странно, но в допполях такое имя я не создавал...
Версия дле 11.2

А если заменить url_name в модуле на другое? Получится, или он напортит все в базе данных?
Можно использовать любое уникальное имя, только везде в правках кода нужно его так же заменять.
 
Обновил пост. Заменил не актуальные правки на актуальные.
 
Как добавить фото актера рядом с h1, по вашему хаку? Кстати все работает на 12 версии дле, спасибо.
 
Как добавить фото актера рядом с h1, по вашему хаку? Кстати все работает на 12 версии дле, спасибо.
Смотря какие фото и откуда они браться будут. Если просто одно статичное фото то можно добавить по аналогии с переменными для метатегов
 
Назад
Сверху