Сегодня: 21:11:2024 Доброго вам вечера!

I live ExBB and CMS Limbo!  I live ExBB and CMS Limbo!
Логин :
Пароль :
Регистрация?  Забыли пароль? 
 


 Страниц (1): [1]   

> Описание: Попытка сделать шаблоны без фиксированных путей

  Супермодератор
Отправлено: 11 марта 2018 — 12:30
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Вчера случайно наткнулся на факт, что очень много привязок к дефолтному шаблону наглухо вшито в код движка. Так же в самих шаблонах часто прописаны фиксированные пути, что мешает делать клоны шаблонов. Честно говоря я слегка в шоке. А потому задвигаю все дела на потом и плотно занимаюсь именно этим...

Выбор какой шаблон использовать прописан в fm.class.php в функции _Locale()
На выходе функции получаем константу DEF_SKIN которую и нужно прописать везде, где стиль наглухо прописан в код.
 
 Top

  Супермодератор
Отправлено: 11 марта 2018 — 12:36
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Столкнулся с проблемой вставки DEF_SKIN в шаблоны.
Обычно что бы вставить в шаблон переменную мы просто обрамляем её фигурными скобками
 Цитата:
<span style="margin-left:15px;">{$fm->_Banner}</span>

В случае с DEF_SKIN такой метод не работает.
Шаблонизатор после открытой фигурной скобки скорее всего ищет признак переменной $ а тут её нет. Как быть пока не знаю. Огорчение

Я вроде где-то встречал, как такое вставлять, но сейчас не могу найти...
 
 Top

  Супермодератор
Отправлено: 11 марта 2018 — 16:15
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Короче способ передать DEF_SKIN я так и не нашел, а потому проблему решил по другому...

В файле fm.class.php после строки
PHP:
define("DEF_SKIN",$defskin);

добавил строку, вводящую новую переменную, которая является псевдонимом DEF_SKIN
PHP:
$this->def_skin = DEF_SKIN;

затем чуть ниже в том же файле после строки
PHP:
include('./language/'.DEF_LANG.'/lang_front_all.php');

я добавил подключение языкового файла из шаблона, т.к. понял что он необходим
PHP:
include('./templates/'.DEF_SKIN.'/language/'.DEF_LANG.'.php');


После этого в папке с шаблоном создал новую директорию language где создал файл russian.php с таким содержимым
PHP:
<?php if (!defined('IN_EXBB')) die('Hack attempt!');

?>


Затем в файле topic.php в двух местах заменил текст InvisionExBB текстом '.DEF_SKIN.'

Строки InvisionExBB встречаются в файле boardinfo.php и в файлах данных пользователей - там ничего менять не нужно.
Так же не нужно ничего менять в файлах frontindex.php в модулях belong и chat
 
 Top

  Супермодератор
Отправлено: 11 марта 2018 — 16:30
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Начинаем править сам шаблон...

Для начала некоторые файлы нужно отредактировать руками, т.к. там нестандартные вставки.

Открываем файл all_header.tpl в котором ищем строку
PHP:
<link rel="stylesheet" href="./templates/InvisionExBB/style.css" type="text/css">

которую меняем строкой
PHP:
<link rel="stylesheet" href="./templates/{$GLOBALS['fm']->def_skin}/style.css" type="text/css">


Затем в файлах

news_add.tpl
pm_new.tpl
post_addnew.tpl
post_edit.tpl
post_fastedit.tpl
post_form.tpl
post_reply.tpl

в самом верху ищем строки
PHP:
include('./templates/InvisionExBB/form_code.tpl');
include('./templates/InvisionExBB/smile_map.tpl');

которые заменяем строками
PHP:
include('./templates/'.DEF_SKIN.'/form_code.tpl');
include('./templates/'.DEF_SKIN.'/smile_map.tpl');


После этого можно запускать глобальный поиск по всем файлам шаблона текста InvisionExBB и заменять его текстом {$fm->def_skin}

Теперь файлы шаблона не привязаны жёстко к названию папки в которой они лежат. Можно делать копию текущего скина, сменить название папки и вот вам новый рабочий стиль...
 
 Top

  Супермодератор
Отправлено: 11 марта 2018 — 16:45
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Хочу пояснить зачем я в шаблон добавил папку с языковыми файлами.
Дело в том, что в процессе адаптации стиля под свой вкус пользователь хочет добавить свои элементы интерфейса. Текстовые переменные обычно дописывали в базовый языковой файл, а это с моей точки зрения неверно, т.к. все особенности шаблона должны оставться в папке шаблона - только в этом случае он будет перемещаемым.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« ExBB Community »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 

> Темы, похожие на тему "Наведение порядка в шаблонах"
Темы Форум Информация о теме Обновление
ExBB FAQ
Решение типичных проблем
ExBB Community Ответов: 1
Автор темы: технарь
20 июля 2012 — 02:04
Автор: технарь
Массовая рассылка через приват
ExBB Community Ответов: 0
Автор темы: технарь
3 января 2016 — 17:31
Автор: технарь
Добавляем в админку новые параметры
ExBB Community Ответов: 0
Автор темы: технарь
13 декабря 2015 — 01:18
Автор: технарь
 


Powered by ExBB v1.1.180311