Forum categories

"Index36" - основной шаблон сайта для Cotonti. Руководство по установке

Инструкция по установке темы "Index36" на сайт Cotonti Siena CMF. Удачной установки и красивого сайта на Cotonti! Если у вас возникнут проблемы с конкретными ошибками, не стесняйтесь обращаться на форум и описывать проблему — я помогу разобраться.

webitproff
webitproff • 2026-07-13 20:40 #564

однако нормальное замечание. 

активация темы действительно выполняется через файл конфига. 

а в админке мы форсируем применение шаблона/темы указанной в админке для каждого пользователя.

Почему так? - это чисто особенность движка, исторически в прошлых версиях и сейчас теоретически, каждый пользователь мог в настройках профиля выбрать для себя свой шаблон, если их есть несколько. Также при регистрации, в определенное поле -  user_theme таблицы cot_users БД пишется код шаблона, который вставляется из глобального значения Cot::$cfg['defaulttheme'] при выполнении функции cot_add_user, которая вызывается при успешной регистрации. Но это не единственный сценарий. Поэтому, что бы переопрделить значение user_theme у каждого пользователя, при установке новой темы, мы должны принудительно переопределить это значение, если у пользователя там устаревшие записи названия темы сайта. 

Зачем это нужно?

Котонти, любому зарегистрированному пользователю шаблон показывает исходя из глобальной переменной $usr['theme'] а она получает свое значение вот так

$usr['theme'] = $cfg['forcedefaulttheme'] ? $cfg['defaulttheme'] : $row['user_theme'];

Мы в панели администратора, в разделе конфигурации, принудительно ставим установку темы по умолчанию для всех пользователей. Таким образом, мы пишем 1 (единицу) в глобальный массив $cfg['forcedefaulttheme']  
запись строки кода выше проверяет условие $cfg['forcedefaulttheme'] есть истина или ложь, который хранится в глобальном массиве настроек $cfg.
Если 1, то берётся значение из $cfg['defaulttheme'] (тема оформления по умолчанию в нашем файле конфигурации).
Если флаг равен false (выключен, 0, пусто) то уже берётся значение из $row['user_theme'] (персональная тема, которую выбрал конкретный пользователь, хранящаяся в массиве данных $row), а нам как раз этого нужно избежать.

Поэтому что бы $usr['theme'] был всегда равен $cfg['defaulttheme'] мы идем в админку и форсируем тему, устанавливая нашу единицу в $cfg['forcedefaulttheme'].   

надеюсь разобрались с вопросом ))

2/2/0

🗿

🧙‍♂️ Well met, good traveler! Fate has guided your steps to our humble realm. Here, wise sages and masters of the coding craft ⚒️📜 gather to unravel the mysteries of the code ✨⚙️, share their knowledge, and add new chapters to our chronicles.
⬅️ To the left lie ancient scrolls 📚 filled with forgotten wisdom. ⬆️ Straight ahead, friendly folk offer counsel 💬 to those in need. ➡️ To the right, you may become a chronicler ✍️ yourself, sharing your craft and leaving words of wisdom for those yet to come.
📝 Delay no longer—tell us the name by which you are known, complete the rite of registration 🛡️, and join our fellowship!
🏰 Our brotherhood holds no secret initiation, yet many halls remain closed to wandering guests, for some knowledge 💎 is reserved for those who choose to walk this path beside us.