Решено Как поставить условие для {category}?

Feuer

Новичок
Регистрация
3 Июл 2017
Сообщения
467
Реакции
94
Баллы
28
Друзья, подскажите как решить проблему.
Есть у меня допполе "Жанр".
http://joxi.ru/n2YXaNWtjk84vm - вот так выглядит код.
Знаю по подсказке seopirata,
http://skrinshoter.ru/s/080817/CUxQdcO1.png
что если поле пустое - оборачиваешь в тэг [xfgiven_x] и все хорошо.
Но как быть с тегом {category}?
 

aeneas

Новичок
Регистрация
27 Фев 2017
Сообщения
2.960
Реакции
1.346
Баллы
113
Друзья, подскажите как решить проблему.
Есть у меня допполе "Жанр".
http://joxi.ru/n2YXaNWtjk84vm - вот так выглядит код.
Знаю по подсказке seopirata,
http://skrinshoter.ru/s/080817/CUxQdcO1.png
что если поле пустое - оборачиваешь в тэг [xfgiven_x] и все хорошо.
Но как быть с тегом {category}?
зачем тебе условия с категориями то ? фильмы не могут быть без них, если в КП нет категорий - выберай придумывай свою, жанр у всех должен быть какой то
 

aeneas

Новичок
Регистрация
27 Фев 2017
Сообщения
2.960
Реакции
1.346
Баллы
113
{category} эта хрень выводит список тех категорий в которых фильм есть
 

Juker7

Гуру
Кодер
Приватовец
Регистрация
22 Фев 2017
Сообщения
239
Реакции
133
Баллы
43
PunPun написал(а):
Второй хак разделение категорий на выводы, как это сделано на kinogo.club Альтернатива "плохому" варианту от @DomiTori

Открываем /engine/modules/functions.php найти
PHP:
function get_url($id) {
Выше вставить:
PHP:
function checkCatFunction($data, $cat_list)
{
    $flag_checkCatFunction = false;
    if(substr_count($data[1],","))
    {
        $cat_array = array();
        $cat_array = explode(",", $data[1]);
        foreach($cat_array as $value)
        {
            if(in_array($value, $cat_list))
                $flag_checkCatFunction = true;
        }
    }
    else
    {
        if(in_array($data[1], $cat_list))
            $flag_checkCatFunction = true;
    }
    return ($flag_checkCatFunction == true) ? $data[2] : "";
}
function catFunction($data, $cat_list, $config)
{
    $get_cat = array();
    if(substr_count($data[1],","))
    {
        $cat_array = array();
        $cat_array = explode(",", $data[1]);
        foreach($cat_array as $value)
        {
            if(in_array($value, $cat_list))
                $get_cat[] = getCatInfo($value, $config);
        }
    }
    else
    {
        if(in_array($data[1], $cat_list))
            $get_cat[] = getCatInfo($data[1], $config);
    }
    return implode($config['category_separator'] . ' ', $get_cat);
}
function getCatInfo($id, $config)
{
    global $cat_info, $PHP_SELF;
    if( $config['allow_alt_url'] ) $catInfo = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";
    else $catInfo = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\">{$cat_info[$id]['name']}</a>";
    return $catInfo;
}
Открываем /engine/modules/show.short.php show.full.php show.custom.php находим первый
PHP:
$tpl->compile( 'content' );
Выше вставляем:
PHP:
$tpl->copy_template = preg_replace_callback( "#\[cat\:(.+?)\](.+?)\[/cat\]#is", function($data) use ($cat_list)
{
    return checkCatFunction($data, $cat_list);
}, $tpl->copy_template );
$tpl->copy_template = preg_replace_callback( "#{cat\:(.+?)}#is", function($data) use ($cat_list, $config)
{
    return catFunction($data, $cat_list, $config);
}, $tpl->copy_template );
Использование:
В шаблонах краткой новости, полной и шаблонах custom доступен теги:
{cat:1} или {cat:1,2,3} - выведет ссылку на эти категории которые указаны.
[cat:1] текст [/cat] или [cat:1,2,3] текст [/cat] - выведет текст внутри тегов если категория выбрана для новости.
Имей ввиду, что разметка жанров слетит )
 

Feuer

Новичок
Регистрация
3 Июл 2017
Сообщения
467
Реакции
94
Баллы
28
зачем тебе условия с категориями то ? фильмы не могут быть без них, если в КП нет категорий - выберай придумывай свою, жанр у всех должен быть какой то
у меня эта проблема только с сериалами: после того, как парсер заполняет все поля, в поле жанр (по видеоинструкции) вместо всех предлагаемых добавляю "сериалы" и , к примеру, "зарубежные сериалы". Но при публикации эта графа почему то остаётся пустой ((

После всех комментариев пришёл к выводу, что нужно разбираться почему её не заполняет парсер, а не условие добавлять
 
Последнее редактирование:

Seopirat

Admin
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.168
Реакции
1.556
Баллы
113
парсер и не будет заполнять, он заполняет, только те категории которые есть на кинопоиске, а категории зарубежные сериалы там нет, поэтому тут категории только вручную править
 

Feuer

Новичок
Регистрация
3 Июл 2017
Сообщения
467
Реакции
94
Баллы
28
парсер и не будет заполнять, он заполняет, только те категории которые есть на кинопоиске, а категории зарубежные сериалы там нет, поэтому тут категории только вручную править
Так я руками вношу, а в публикации пусто!!!
 

Анна

Модератор
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
23 Апр 2017
Сообщения
1.377
Реакции
540
Баллы
113
Так я руками вношу, а в публикации пусто!!!
Скорей всего в движке делались правки и категории сериалы, зарубежные, новинки и т.д убирались. Посмотри в этих файлах /engine/modules/show.short.php, show.custom.php, show.full.php вот такую строку
Код:
if(in_array($element,array(1,4))) continue;
Где 1,4 id категорий которые нужно скрыть
 

Feuer

Новичок
Регистрация
3 Июл 2017
Сообщения
467
Реакции
94
Баллы
28
Скорей всего в движке делались правки и категории сериалы, зарубежные, новинки и т.д убирались. Посмотри в этих файлах /engine/modules/show.short.php, show.custom.php, show.full.php вот такую строку
Код:
if(in_array($element,array(1,4))) continue;
Где 1,4 id категорий которые нужно скрыть
нашел такое
PHP:
if (!in_array($element, array(2,3,4,5,6,7,8,9,11,12,13,14,16,18,19,20,21,22,23,24,28))) continue;
я в пхп не шарю, js немного учил и по логике вижу, что типа если в массиве не присутствуют озвученные элементы, то - продолжай. Как то так.
И как раз моих категорий там нет))
Я вот думаю - строку закоментить или добавить свои категории?
 

Feuer

Новичок
Регистрация
3 Июл 2017
Сообщения
467
Реакции
94
Баллы
28
По итогу я добавил отсутствующие категории и заработало. Анна, спасибо. Респект тебе и уважуха ;)
 
Сверху Снизу