Как создать свой шаблон (для LibArea)?

Давайте попробуем создать новый шаблон для этого сайта. Засек время, на всё ушло около 10 минут. Сейчас осталось облагородить и залить сюда этот дизайн.

Создаю папку light (а в вашем случае другую) в папке: /resources/views/. В ней разместим следующие папки (2 папки: css и global) и файлы:

README.md
meta.php
css
  -- custom.css
  -- build.css

Файл build.css является обязательным.

Его содержание:

@import 'custom.css';

Т.е. файл custom.css подключается из build.css. При перестройке скрипт будет искать «файл для сборки» — build.css.

В файле README.md размещаем документацию по своему шаблону.

Всего 4 файла! При создание шаблона не стоит копировать всё содержимое папки default в свой шаблон. Пусть будут только те файлы, где были изменения. Мы открываем свой шаблон и если видим там файл, то знаем, что именно этот файл заменен. Если мы скопируем всю папку default и там будем править, то спустя уже 1 день мы понятия иметь не будем, что там изменили.

Отвлёкся…

Свои стили пишем в файл resources/views/light/css/custom.css своего шаблона. Папка light это и есть папка нашего шаблона.

Сейчас они вот такие:

body { background-color: #f3f3f3; }

.box,
.indent-body { background-color: #fff; }

.indent-body { padding: 15px; }

ul.nav > li.active {
  background-color: #111;
  color: #fff;
}

ul.nav > li.active > a { color: #fff; }

Готово!

Чтобы шаблон появился и был доступен для выбора в файл:

./config/general.php

Добавим в массив, где шаблоны строку:

'light' => 'Light',

Должно получиться:

    'templates'         => [
            'default'   => 'Default',
            'qa'        => 'Q&A',
            'minimum'   => 'Minimum',
            'light'     => 'Light',
        ],

Следом в админ- панель и пересобираем css.

Теперь подключаем собранный css непосредственно в шаблон. Для этого в файле шаблона: /meta.php добавим строку:

<link rel="stylesheet" href="/assets/css/light.css?<?= config('general', 'version'); ?>" type="text/css">

Должно получиться:

<link rel="stylesheet" href="/assets/css/style.css?<?= config('general', 'version'); ?>" type="text/css">
<link rel="stylesheet" href="/assets/css/light.css?<?= config('general', 'version'); ?>" type="text/css">

Вот собственно и всё.

Новый дизайн LibArea

Обновляем кэш браузера (или меняем счетчик в файле config/general.php) и смотрим, что вышло.

P.S. на этом примере можно сделать свой шаблон.

Вот папка light собранная: https://libarea.ru/dev/light.zip

10 Ответов

  1. Файл build.css может быть загрузочным в новом шаблоне. Хорошая идея!

    1. Ок. Так и сделаем. Перепишу сегодня код и статью. Уберу лишнее.

  1. При создание шаблона не стоит тупо копировать папку default.

    Если вы это про ДЛЕ, то там без этого никак. Там каждый шаблон не зависит от другого. Если файла в шаблоне нет с «Default» он ничего брать не будет. Тупо напишет что файла нет. В инстант по другому.

    1. Чуток о другом пишу. Создаю я допустим шаблон XXX, папку сделал и туда слил все файлы с Default. А далее правлю их. В новь созданном шаблоне файлы должны (для удобства) находиться только те, где были изменения. Сама папка, шаблон Default, это шаблон по умолчанию и от туда берутся (если нет) файлы и стили… Пост подкорректировал.

  1. А было бы здорово сделать такой шаблон по умолчанию. И тут тоже такой поставить🙂

  1. Good Step @evg

  1. Надо бы еше что-то сделать вам с этой папкий /public/. Не все хостинги дают возможность переписи парк домаин на другую папку, только суб домаин.
    .htaccess тоже не очень вариант.

    Многие просто не захотят с этим возится. Это я так, мысли вслух.

    1. Эта папка связана вот с чем. Тут этот вопрос важный. :)

      LibArea использует подход «белого списка» к веб-безопасности. Это сделано потому, что мы считаем, что держать весь наш системный код в корневой папке — не очень хорошая идея. (Аналогично обстоят дела и с Content Security Policy).

      См. статья по этому поводу на libarea

  1. Работает ли данный способ для последней версии?!

    1. Да. Сейчас проверил и подкорректировал. Файлы статьи (шаблон) архив разместил.

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

      ./global/base-footer.php

      Как-то так…

      P.S. в файле custom.css лучше всё стереть и писать свой код, чтобы не путаться. Написанный код нужен только для примера, в создаваемом дизайне он не нужен.