Создание темы для Cotonti
08.12.2023
Как создать свою тему ( скин ) для Cotonti ?

Самый простой способ создать свою тему для Cotonti  - взять уже существующую тему , переименовать её и начать её редактировать.

1) Темы хранятся в каталоге движка ../themes

../themes/admin - тема админ-панели самого движка ( тема панели управления движка ) Видна администраторам.

../themes/имя_каталога = имя_темы 

т.е. имя каталога и есть имя темы которую должен видеть движок в списке доступных тем для применения к вашему сайту.

 

Правила названия каталога содержащего тему и , собственно, самой темы следующие :

для наглядности приведу конкретный пример имени темы :../themes/Day_Light 

Day_Light  - имя темы которую мы хотим создать.

1.1) Имя темы не должно содержать пробелы !!!

1.2) Заглавные буквы в имени имеют значение !!!

1.3) Каталог содержащий тему должен обязательно содержать следующие файлы и подкаталоги

Day_Light.en.lang.php  - файл с переменными для локализации английского языка

Day_Light.ru.lang.php  - файл с переменными для локализации русского языка

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

 

пример содержимого файла Day_Light.en.lang.php

<?php
/**
 * User English Language File for Day Light Skin
 *
 * @package Cotonti
 * @copyright (c) Имя автора
 * @license 
 */

defined('COT_CODE') or die('Wrong URL.');

/**
 * Put your theme-specific language strings here
 */

$L['Contact'] = 'Contact';
$L['Follow_Twitter'] = 'Follow us on Twitter!';
$L['Sitemap'] = 'Sitemap';

пример содержимого файла Day_Light.ru.lang.php

<?php
/**
 * User English Language File for Day Light
 *
 * @package Cotonti
 * @copyright (c) имя автора
 * @license какая лицензия и где получить
 */

defined('COT_CODE') or die('Wrong URL.');

/**
 * Put your theme-specific language strings here
 */

$L['Contact'] = 'Контакт';
$L['Follow_Twitter'] = 'Мы в Твиттере!';
$L['Sitemap'] = 'Карта сайта';

 

Day_Light.php главный файл описания темы

пример содержимого файла Day_Light.php

<?php
/* ====================
[BEGIN_COT_THEME]
Name=Day_Light
Version=1.0.0
Schemes=default:Default
[END_COT_THEME]
==================== */

/**
 * Cotonti Model Theme
 *
 * @package Cotonti
 * @copyright (c) имя автора
 * @license 
 */

defined('COT_CODE') or die('Wrong URL');

 

Разберём по частям содержимое Day_Light.php

 

[BEGIN_COT_THEME] - Тег начала описания темы

Name=Day_Light - имя темы отображаемое в меню для выбора темы ( должно совпадать с каталогом в папке ../themes/

Version=1.0.0 - версия темы.  Для отслеживания обновлений и версий

Schemes=default:Default

[END_COT_THEME] - Тег окончания описания темы

 


 

Day_Light.rc.php - файл с подключаемыми CSS и JS для темы

в нём указывается путь и имена всех CSS и JS которые использует тема.

пример Day_Light.rc.php :

<?php
/**
 * JavaScript and CSS loader for Day Light theme
 *
 * @package Cotonti
 * @copyright (c) имя автора
 * @license 
 */

defined('COT_CODE') or die('Wrong URL.');

Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/main.css');
Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/flex_blocks.css');
Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/buttons.css');
Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/div.css');
Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/navigation.css');
Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/tables.css');

Resources::addFile($cfg['themes_dir'].'/'.$usr['theme'].'/js/js.js');

 

в каталоге ../themes/css хранятся CSS которые использует тема

в каталоге ../themes/img хранятся изображения которые использует тема

в каталоге ../themes/inc хранятся дополнительные *.tpl  которые использует тема

в каталоге ../themes/js хранятся JavaScrypt *.js  которые использует тема

 

в каталоге ../themes/modules хранятся каталоги с именем модулей для которых ваша тема подменяет внешний вид  = использует свои *.tpl файлы внешнего вида

например : ../themes/modules/forums/forums.editpost.tpl -  файл от модуля forums движка с именем forums.editpost.tpl котрый будет отображаться вместо штатного файла с именем forums.editpost.tpl хранящегося в каталоге от модуля forum по адресу .../modules/forums/tpl/forums.editpost.tpl

точно так же для плагинов

в каталоге ../themes/plugins/имя_плагина/имя_файла.tpl хранятся *.tpl которые будут отображаться вместо оригинальных *.tpl находящихся в каталогах плагинов ../plugins/имя_плагина/tpl/имя.tpl 

т.е.  все файлы которые тема замещает своими вы переопределяете в своей теме

для плагинов : ../themes/plugins/имя_плагина/имя_файла.tpl или

для модулей : ../themes/modules/имя_модуля/имя_файла.tpl.

 

Файлы которые вы не создаёте в каталогах темы берутся и отображаются по умолчанию из модулей и плагинов по их месту нахождения

для плагинов ../plugins/имя_плагина/tpl/имя.tpl 

для модулей ../modules/имя_модуля/tpl/имя.tpl .