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

Evg Evg 17 Октября 2023

Давайте попробуем создать новый шаблон для этого сайта. Засек время, на всё ушло около 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. Yori Yori 17 Октября 2023 (ред.)

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

    1. Evg Evg 17 Октября 2023 (ред.)

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

  1. pupsik pupsik 17 Октября 2023

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

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

    1. Evg Evg 17 Октября 2023 (ред.)

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

  1. VEri VEri 17 Октября 2023

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

  1. jayabie jayabie 17 Октября 2023

    Good Step @evg

  1. pupsik pupsik 18 Октября 2023 (ред.)

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

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

    1. Evg Evg 18 Октября 2023 (ред.)

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

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

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

  1. Nikita Nikita 17 Октября

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

    1. Evg Evg 17 Октября (ред.)

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

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

      ./global/base-footer.php

      Как-то так…

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