Denis VIP
Total posts: 78
17 Апр 2015 18:24

Как из поиска исключить некоторые типы статей?

QIP Shot - Screen 045

Последние изменения: 24 Апр 2015


Sergey
Total posts: 13,748
23 Апр 2015 02:51

Это хороший вопрос! Получается что ни как. И добавить не могу новый параметре в тип так как этот файл уже перенесен в ветке Кобальта 9. Могу только спланировать это на Кобальт 9.


Denis VIP
Total posts: 78
23 Апр 2015 09:08

В каком году ожидать выход Кобальт 9?


Paul_I VIP
Total posts: 89
23 Апр 2015 18:02

Проблема довольно просто решается доработкой стандартного шаблона. Если есть желание попробовать, могу подсказать что и как сделать.


Denis VIP
Total posts: 78
23 Апр 2015 18:06

Paul_I Если есть желание попробовать, могу подсказать что и как сделать.

Да, желание есть. Подскажите. Только с поправкой, что я только начинаю дружить с правками шаблонов. И могу затупить.


Paul_I VIP
Total posts: 89
23 Апр 2015 18:19
  1. Создаете копию стандартного шаблона default_markup_default.php
  2. Назначаете его в качестве шаблона основной разметки.
  3. В новом шаблоне ищете цикл foreach в строке 519, в этом цикле выводятся назначенные типы контента для раздела. В этот цикл надо добавить условие проверки на нужный/ненужный вам тип контента.

Точнее написать не могу, надо посмотреть состав переменной $type с помощью var_dump(). Я думаю, в ней должен быть id типа контента, вот по нему можно сделать условие проверки.


Paul_I VIP
Total posts: 89
23 Апр 2015 18:34

Посмотрел. В переменной $type как раз находится id типа контента. Фрагмент кода будет выглядеть примерно так:

<?php foreach ($this->total_types AS $type):?>
    //Наша вставка
    <?php if ($type _условие проверки на нужный/ненужный id контента_) : ?>
        <div class="span3">
                <label class="checkbox">
                    <input id="type-<?php echo $type?>" type="checkbox" name="filters[type][]" value="<?php echo $type?>"<?php echo @$this->submission    _types[$type]->filter_checked?>>
                    <?php echo $this->submission_types[$type]->name;?>
                </label>
        </div>
    <?php endif; ?>
<?php endforeach;?>

Denis VIP
Total posts: 78
23 Апр 2015 18:53

Где исправлять я нашёл. Как это условие прописать? Мне нужно исключить тип контента имеющий id 27.


Paul_I VIP
Total posts: 89
23 Апр 2015 19:11

Тогда будет так

<?php if ($type != 27) : ?>

Должно заработать :-)


Denis VIP
Total posts: 78
23 Апр 2015 19:59

Чудеса! Заработало!


Paul_I VIP
Total posts: 89
23 Апр 2015 20:01

Никаких чудес :-) Просто не надо бояться экспериментировать с шаблонами- это огромное достоинство Cobalt. :-)


Denis VIP
Total posts: 78
23 Апр 2015 20:03

И ещё, вы написали "условие проверки на нужный/ненужный id контента". Мы исключили не нужный. А какой командой выбрать только нужный? Это мне на будующее. Вдруг понадобится.


Paul_I VIP
Total posts: 89
24 Апр 2015 05:12

Тут возможно несколько вариантов, в зависимости от того, чего больше- нужных или ненужных. Можно добавить еще одно условие по ИЛИ, можно изменить проверку с неравенства на равенство, можно управлять циклом foreach с помощью continue и т.д. Если Вам интересна эта тема, посмотрите учебник по PHP.


Denis VIP
Total posts: 78
24 Апр 2015 11:48

Paul_I Если Вам интересна эта тема, посмотрите учебник по PHP.

Конечно интересно, но у меня пока нет временной возможности углубиться в чтение. По этому надеюсь на подсказки знатока. Напишите пример кода где для показа выбрано только два типа контента: с id 20 и 21.

Работает на Cobalt