Два вопроса по фильтру контента

InstantCMS 2.X
#1 29 февраля 2020 в 22:27
Возникло пару вопросов с фильтром, подскажите возможно ли их решить:
1. Изменить название поля в фильтре на другое, отличное от того, которое указано при добавлении контента
2. При фильтрации поля "Список: мультивыбор" ограничить выбор только одним пунктом.

Может это возможно все таки сделать средствами cms?
#2 29 февраля 2020 в 23:47

Может это возможно все таки сделать средствами cms?

Region67
Таки средствами cms не знаю (не встречал таких кнопочек в админке). По 1., возможно, когда-то и будет (смысл явно есть), а вот по п.2 весьма сомневаюсь (читается как-то так: вот тебе, Марьюшка, 7 пирогов; ты можешь съесть их все, но 6 должны остаться целыми)
Пока можете п.1 решить так:
Замените строку на:
  1.  
  2. <?php if($field['name'] == 'date_pub') { //date_pub - системное имя поля?>
  3. Уже не дата публикации
  4. <?php } else { ?>
  5. <div class="title"><?php echo $field['title']; ?></div>
  6. <?php } ?>
  7.  
Если нужно не везде, а только в опредённом ТК, то ещё и нахождение в них надо проверить.
п.2 разве скриптом (по идее, тоже не сложно)
#3 1 марта 2020 в 10:45
Спасибо Олег Васильевич.
По 1 пункту — было бы хорошо в разных ТК свои значения.
А по 2: Например автор указывает из предустановленных значений (красный, синий, зеленый) какие заборы он строит: красный и зеленый.
Пользователь не определившийся с цветом забора, выбирает в фильтре красный, синий, зеленый но ничего не находит. А вот если был бы выбор только одного значения, то выбрал красный и нашёл бы.
Надеюсь понятно объяснил в чем возникли у меня сложности.
#4 1 марта 2020 в 11:41

По 1 пункту — было бы хорошо в разных ТК свои значения.

Region67
Актуально только в том случае, если поле с таким именем есть в других ТК. Короче, если нужно изменить только в одном, то так пробуйте:
  1.  
  2. <div class="title">
  3. <?php if($css_prefix == 'board' && $field['name'] == 'date_pub') { ?>
  4. Здесь новое название в ТК "board" для поля с именем "date_pub"
  5. <?php } else { ?>
  6. <?php echo $field['title']; ?>
  7. <?php } ?>
  8. </div>
  9.  
если более одного, то (конструкцию elseif можете повторить столько раз, сколько нужно):
  1.  
  2. <div class="title">
  3. <?php if($css_prefix == 'board' && $field['name'] == 'date_pub') { ?>
  4. Здесь новое название в ТК "board" для поля с именем "date_pub"
  5. <?php } elseif($css_prefix == 'articles' && $field['name'] == 'date_pub') { ?>
  6. Здесь новое название в ТК "articles" для поля с именем "date_pub"
  7. <?php } else { ?>
  8. <?php echo $field['title']; ?>
  9. <?php } ?>
  10. </div>
  11.  
По п.2 я тоже склоняюсь к тому, что логика в поле "список мультивыбор" выстроена не верно (там явно напрашивается в фильтре "или" вместо "и"). Вопрос не раз поднимался, но разработчик системы считает иначе.
Посмотрел поле. Каюсь. Разработчик прав (впрочем, как всегда).
Решается либо написанием отдельного поля, либо скриптом. Если записей уже много и ломать их не хочется, то остаётся только вариант со скриптом. Но решать его надо уже под конткретный сайт (иначе возникает слишком уточняющих вопросов).
Удачи!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.