Forums / National / Russian / Скины и дизайн / Кукизы в cotemplate

Kopusha
#43252 2018-02-06 16:40

Для folio.list.tpl (не принципиально, может быть и для page.list и тд) у меня есть 2 абсолютно разные сложные верстки (каждая затрагивающая свои js и свои шаблоны создания файлов и тд.)

В настройках юзера создал экстраполе "показывать черепицей/показывать в рядочек" и при переключении проверяю в самом листе <!-- IF {PHP.usr.profile.user_экстраполе} == '1' --> показывай один вид else другой. 

Вопрос - я хочу вынести эту переключалку из профиля юзера в низ самих листов. Максимально информативно увидеть пример можно на http://www.wedlife.ru/photos/ - внизу "показывать  квадратные или стандартные  превью".

Но возник вопрос как это правильно сделать и главное - сохранить на лету - в примере просто меняется стиль отображения страницы - при этом грузятся все файлы нужные для двух вариантов отображения. 

Все что я пока придумал - сделать кнопки 1 и 2, 1 по умолчанию, создать куки со значением 1, при выводе шаблона проверять куки и если куки 1 то выводить версию 1, если 2 то два. и при нажатии на кнопку 2
- перезаписать куки на значение 2
- перегрузить текущую страницу. По идее она загрузится со второй версией верстки.

Вопросы 

1) Может есть проще и элегантнее способ? 
(в идеале как я вижу - как то вынести радиобокс из профиля в листы и там при нажатии на радиобокс записать в бд значение 1/2 без кнопки "сохранить" и перегрузить страницу.)

2) Если по 1 нет советов - как в tpl проверить средствами cotemplate значение кукиз? Как писать условие?

Заранее спасибо!

Added 5 hours later:

Разобрался сам.
Записываю нужное куки стандартно яваскриптом при выборе верстки, потом в кастомфункциях темы делаю

function get_folio_cookie () {
      $folio_cookie = cot_import('folio_cookie', 'C', 'ALP');
     return $folio_cookie;
}

И уже в фолио получаю через {PHP|get_folio_cookie} значение. Его можно проверить в условиях. 

PS Жаль что цикл ROW даже в условиях нельзя дважды использовать.
Типа IF что то BEGIN ROW --- END ROW else BEGIN
 ROW --- END ROW - так срабатывает только второй цикл(

This post was edited by Kopusha (2018-02-06 22:22, 6 years ago)