Вывод title от зависимости категории

iLyang

Новичок
Регистрация
1 Мар 2017
Сообщения
83
Реакции
6
Баллы
8
Нужно вывести разные title в зависимости от категории, Пример:

1. Категория фильмы: Смотреть фильмы "название фильма" онлайн
2. Категория сериалы: "Название сериала" "Само название категории Сериалы" смотреть онлайн
3. Категория мультфильмы: "Название категории" "Название мультфильма" (Год)-выводится из доп. поля онлайн
4. Категория новости: "Название категории" и само название новости из глобального тега
{title}


Как то так если что не понятно перепоясню, спасибо!
 

Rockem

Новичок
Регистрация
1 Апр 2017
Сообщения
29
Реакции
19
Баллы
3
В show.full.php после:
Код:
$xfields = xfieldsload();
Вставить:
Код:
// Меняем тайтл для сериалов
        $myxfields = $row['xfields'];
        $myxfdata = xfieldsdataload( $myxfields );

        $first_cat_id = explode(",", $row['category']);

// Сериалы (21 - ид родительской категории)
if($cat_info[$first_cat_id[0]]['parentid'] == 21) {

    $series_title = "Сериал ".$row['title']." (".$myxfdata['year'].") смотреть онлайн";
    $row['metatitle'] = $series_title;

}

// Конец
 
Последнее редактирование:

Orange

Новичок
Регистрация
3 Апр 2017
Сообщения
60
Реакции
19
Баллы
8

Karambole

Новичок
Регистрация
1 Мар 2017
Сообщения
189
Реакции
137
Баллы
43
Модуль ерунда, нужен хардкор - правки в движке.
@Rockem дело говорит, я искал такие правки, но не нашёл нужную.
@Rockem, подскажи, пожалуйста, ещё раз подробнее (для таких как я))):
Допустим нужно сделать следующие правки:
1. Для категории фильмов (id- 3): Смотреть фильм {title} (год) онлайн бесплатно.
2. Для категории сериалов (id- 8): Сериал {title} смотреть онлайн бесплатно.
3. Для категории мультов (id- 12): Мультфильм {title} (год) смотреть онлайн.

В файле show.full.php как правильно записать и куда подставлять id категорий ?
Нужно ли для каждой категории писать полностью этот код:
// Меняем тайтл для сериалов
$myxfields = $row['xfields'];
$myxfdata = xfieldsdataload( $myxfields );

$first_cat_id = explode(",", $row['category']);

// Сериалы (21 - ид родительской категории)
if($cat_info[$first_cat_id[0]]['parentid'] == 21) {

$series_title = "Сериал ".$row['title']." (".$myxfdata['year'].") смотреть онлайн";
$row['metatitle'] = $series_title;
}
// Конец
Подскажи, пожалуйста, какой код прописать для всех этих трёх категорий?
 

GENERIC

Гуру
Кодер
Регистрация
22 Фев 2017
Сообщения
455
Реакции
195
Баллы
43
Модуль ерунда, нужен хардкор - правки в движке.
@Rockem дело говорит, я искал такие правки, но не нашёл нужную.
@Rockem, подскажи, пожалуйста, ещё раз подробнее (для таких как я))):
Допустим нужно сделать следующие правки:
1. Для категории фильмов (id- 3): Смотреть фильм {title} (год) онлайн бесплатно.
2. Для категории сериалов (id- 8): Сериал {title} смотреть онлайн бесплатно.
3. Для категории мультов (id- 12): Мультфильм {title} (год) смотреть онлайн.

В файле show.full.php как правильно записать и куда подставлять id категорий ?
Нужно ли для каждой категории писать полностью этот код:


Подскажи, пожалуйста, какой код прописать для всех этих трёх категорий?
Вот так попробуй)
Код:
// Меняем тайтл
$myxfields = $row['xfields'];
$myxfdata = xfieldsdataload( $myxfields );

$first_cat_id = explode(",", $row['category']);

// Для категории сериалов (id- 8):
if($cat_info[$first_cat_id[0]]['parentid'] == 8) {
$series_title = "Сериал ".$row['title']." (".$myxfdata['year'].") онлайн бесплатно";
$row['metatitle'] = $series_title;
}

// Для категории фильмов (id- 3)
if($cat_info[$first_cat_id[0]]['parentid'] == 3) {
$series_title = "Смотреть фильм ".$row['title']." (".$myxfdata['year'].") онлайн бесплатно";
$row['metatitle'] = $series_title;
}

// Для категории мультов (id- 12):
if($cat_info[$first_cat_id[0]]['parentid'] == 12) {
$series_title = "Мультфильм ".$row['title']." (".$myxfdata['year'].") смотреть онлайн";
$row['metatitle'] = $series_title;
}

// Конец
 

Rockem

Новичок
Регистрация
1 Апр 2017
Сообщения
29
Реакции
19
Баллы
3
Код:
// Меняем тайтл для сериалов
        $myxfields = $row['xfields'];
        $myxfdata = xfieldsdataload( $myxfields );

        $first_cat_id = explode(",", $row['category']);

if($cat_info[$first_cat_id[0]]['parentid'] == 8) { // Сериалы (8 - ид родительской категории)

    $new_title = "Сериал {$row['title']} ({$myxfdata['year']}) смотреть онлайн";

} elseif($cat_info[$first_cat_id[0]]['parentid'] == 3) { // Фильмы (3 - ид родительской категории)

    $new_title = "Фильмы {$row['title']} ({$myxfdata['year']}) смотреть онлайн";

} elseif($cat_info[$first_cat_id[0]]['parentid'] == 12) { // Мультфильмы (12 - ид родительской категории)

    $new_title = "Мультфильмы {$row['title']} ({$myxfdata['year']}) смотреть онлайн";

} else {
    $new_title = $row['metatitle'];
}


$row['metatitle'] = $new_title;
// Конец
 
Последнее редактирование:

Karambole

Новичок
Регистрация
1 Мар 2017
Сообщения
189
Реакции
137
Баллы
43
чёт ничего не получается :(
в DLE 11.2 такой метод не работает, тайтлы вообще не меняются.

Работает похожий метод от Геймера:
Открыть /engine/modules/show.full.php найти :
Ниже вставить :
$myxfields = $row['xfields'];
Открыть /engine/engine.php найти :
Ниже есть строка:
$metatags['title'] = $titl_e . $page_extra . ' » ' . $config['home_title'];
Вот эту строку нужно заменить на:
if($dle_module == "showfull")
{
$myxfdata = xfieldsdataload( $myxfields );

if ( $myxfdata['Тут название доп поля "год" '] != '' )
{
$xfield_data = ' ('. $myxfdata['Тут название доп поля "год" '] . ')';
}
$metatags['title'] = $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
}
Вот такой способ работает - добавляет к тайтлам новостей дату (год выхода фильма) + фразу "смотреть онлайн бесплатно".
Но ко всем категориям одинаковую фразу добавляет.

А вот как сделать чтоб к каждой категории отдельно дописывать перед названием новости слова: "Фильм" (для категории фильмов), "Сериал" (для категории сериалов) и т.д.

Чтоб получалось в тайтле: Фильм {title} (год) смотреть онлайн...
В категории сериалов вначале было слово "Сериал" и т.д.

Методы выше у меня чёт не заработали (дле 11.2)
 
Последнее редактирование:

Dmitry808

Новичок
Регистрация
6 Мар 2017
Сообщения
64
Реакции
8
Баллы
8
Методы выше у меня чёт не заработали (дле 11.2)
Код:
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '16', '17', '19', '20', '21', '24', '28', '29', '33', '34', '44','45')) ) $metatags['title'] = 'Скачать торрент, сомтреть онлайн '.$metatags['title'];
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('18')) ) $metatags['title'] = 'Скачать торрент, сомтреть онлайн мультфильм '.$metatags['title'];
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('15', '25', '35')) ) $metatags['title'] = 'Смотреть трейлер '.$metatags['title'];
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('26')) ) $metatags['title'] = 'Прослушать аудиопередачу '.$metatags['title'];
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('27')) ) $metatags['title'] = 'Смотреть онлайн сериал '.$metatags['title'];

$metatags = <<<HTML
<title>{$metatags['title']}</title>

попробуй это использовать вместе с гамерским кодом по доп полю.
 

shirshov1

Приватовец
Приватовец
Регистрация
4 Мар 2017
Сообщения
63
Реакции
16
Баллы
8
Если есть возможность, закрепите в начале темы, рабочий метод, а то хер поймёшь какой из них верный.
 

Karambole

Новичок
Регистрация
1 Мар 2017
Сообщения
189
Реакции
137
Баллы
43
попробуй это использовать вместе с гамерским кодом по доп полю.
Спасибо! С этим кодом заработало!
Всё вместе получается так:

Открыть /engine/modules/show.full.php найти :
$xfields = xfieldsload();
Ниже вставить :
$myxfields = $row['xfields'];
Открыть /engine/engine.php найти :
} elseif ($titl_e) {
Ниже есть строка:
$metatags['title'] = $titl_e . $page_extra . ' &raquo; ' . $config['home_title'];
Эту строку нужно заменить на:

if($dle_module == "showfull")
{
$myxfdata = xfieldsdataload( $myxfields );

if ( $myxfdata['year'] != '' )
{
$xfield_data = ' ('. $myxfdata['year'] . ')';
}
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('3')) ) $metatags['title'] = 'Фильм '. $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('8')) ) $metatags['title'] = 'Сериал '.$titl_e . $xfield_data . ' смотреть онлайн бесплатно';
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('12')) ) $metatags['title'] = 'Мультфильм '. $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
}
Вот таким методом заработало - у каждой категории в тайтле своё "слово" перед {title} + дата фильма + "доп.фраза"

Т.е. в коде от Геймера (который я написал чуть выше), я эту строчку:
$metatags['title'] = $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
заменил на этот код от @Dmitry808,:
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('3')) ) $metatags['title'] = 'Фильм '. $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('8')) ) $metatags['title'] = 'Сериал '.$titl_e . $xfield_data . ' смотреть онлайн бесплатно';
if( ($subaction == 'showfull' or $newsid ) AND in_array( $category_id, array('12')) ) $metatags['title'] = 'Мультфильм '. $titl_e . $xfield_data . ' смотреть онлайн бесплатно';
Но предупреждаю, что я в php не шарю (знал бы - не спрашивал бы как сделать), я разбираюсь только в html.

Поэтому просьба к тем, кто шарит в php: правильно ли я сделал и не будет ли ошибок в коде (конфликтов между тегами) и т.д.?

А потом (как подсказал @shirshov1) можно и закрепить в начальный пост рабочий (правильный) метод.
 
Сверху Снизу