COTONTI.CMSWORKS.RU
Сборка фриланс-биржи на cotonti

Подскажите по верстке.

Автор Сообщение

kopusha

#1/06.02.2018 19:40
0

Пользователи

Карма: +101

Для 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 значение кукиз? Как писать условие?

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

Сообщения: 264

Cmsworks

#2/06.02.2018 21:25
0

Администраторы

Карма: +868

Самое простое, использовать плагин jQuery.cookie.

Сообщения: 2435 Доступный хостинг для ваших проектов

kopusha

#3/06.02.2018 21:50
0

Пользователи

Карма: +101

Как проверить условием куки в тпл? Я точно не иду по пути "грузи оба варианта и яваскриптом и цсс скрывай один". Нужно на стадии загрузки как то проверить.

Добавлено 1 час спустя:

Думаю решить таким образом - записываю нужное куки стандартно яваскриптом при выборе верстки, потом в кастомфункциях темы делаю что то типа

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

И уже в фолио получаю через {PHP|get_folio_cookie}

Верный ход мысли?

Добавлено 2 часа спустя:

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

 

Сообщения: 264

kopusha

#4/14.02.2018 23:58
0

Пользователи

Карма: +101

Может кто подскажет

В tpl я условием <!-- IF {PHP|get_folio_cookie} != 2 --> получаю какой тип отображения folio.list подгрузить. В файле кастомфанкшнз темы есть для этого

function get_folio_cookie () {

      $folio_cookie = cot_import('folio_cookie', 'C', 'ALP');

     return $folio_cookie;

}

Есть необходимость для одного варианта грузить 10 фолио в цикл на одной странице, для второго более компактного (без тайтлов, аватарок автора и тд) хочу грузить 30-40. Как в inc/folio.list.php поймать значение куки для maxrowsperpage?

ПС - заранее спасибо)

Добавлено 2 минуты спустя:

Что то я туплю

Скорее всего этой же функцией там поймать тоже можно?

Добавлено 6 минут спустя:

)))

У меня так совпало что куки где надо как в настройках модуля по умолчанию это 1 а где надо в 2 раза больше грузить то значение 2
Потому-  

$maxrowsperpage = $maxrowsperpage * $folio_cookie;
 

Добавлено 11 минут спустя:

PPS заодно познакомился и с if ($_COOKIE['folio_cookie'] но и так как выше работает. 

Сообщения: 264