Теория управления компонентами из админки

К вопросу о устройстве идеальной CMS, на основе модулей. Некоторые размышления кодо-человечных взаимодействий. То есть – как научить заказчика самостоятельно вносить изменения в коды через понятный ему интерфейс. Либо настраивать сотни схожих проектов под нужды заказчика, чтобы избежать повторений в коде. Материал немного сжат и рассчитан на подготовленного пользователя. В конце – парочка теоретических примеров

Надеюсь, размышления наработки помогут мне и Вам в создании данного механизма, если он еще будет актуален

Используем широко распространенный PHP и шаблонизатор Smarty

В смарти все шаблоны расположены в отдельной папки. Назовем ее по-умолчанию templates. Предполагается, что там можно создать отдельную папку плагины plugins. При этом читая код можно включить в компилятор указание нужных величин. Это словно использовать методы существующего класса, только плюс еще веб интерфейс.

Настройки каждого компонента и компиляция PHP и шаблона на выходе. Шаблон подключается методом insert. В названии шаблона компилится название плагина, который она использует. В шаблоне в комментах хранятся настройки которые были скомпилены. И админка читает их и позволяет перепросить

Готовый шаблон


шаблон
{* название и версия плагина *}
{* параметр1 = значение *}

Из админки происходит чтение папки с плагинами

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

В php файле на основе компиляции плагинов - создаются такие же комментарии, говорящие о версии и названии плагина

#plugin 1

Каждый плагин содержит отдельный класс, который подключается в php файл. В том месте где используется, с помощью оператора require_once

Это могут быть для всей классы для всей программы – включаются в setup.
Классы для шаблона – включаются в файл шаблона.
Классы функций – включаются в функцию при использовании

Какие примеры классов можно подключить и как это будет выглядеть в целом?

Класс авторизация

Включается в setup

В комментах написано #authorization v.1

Класс с авторизацией содержит функции для проверки пароля. Он позволяет для всей программы использовать новые переменные. Их он заносит в отдельную таблицу с комментами что это за переменная. Список всех переменных отображает при изменении шаблона для сайта

Как использовать файл с классом в шаблоне?

Для этого нужно подключить форму для авторизации include file=plugins/auth… и тот созданный компонент

Что нужно сделать чтобы запретить вход на сайт без авторизации?

Разместить параметр


{if $uId==…} или {if $uGrade==…} … {else}{include file=plugins/auth…}{/if}

Нет

Для этого в параметрах php указывается переадресация на страницу с авторизацией. Header=location…

Шаблоны от этого не используются. А в глобальных настройках указывается, создавать ли отдельный шаблон для авторизации или использовать ли запрет для входа без авторизации.

Авторизация работает как с файлами так и с базами данных

Плагин с возможностью редактирования контента внутри шаблона с шапкой. В шаблоне в место контента который зависит от параметра action, ставится блок {include file=plugins/content…}

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

Если файла нету – плагин возвращает шаблон с пустой надписью. Этот шаблон настраивается из настроек плагина. Возможность включить и отклюить его в админке, а также можно привязать возможность к правам модуля авторизации

Для редактирования появляется карандашик. Это плагин расчитывает перед выводом – появляется карандашик

В php файл записывает свои команды перед выводом содержания на страницу. Добавляется процедура проверки на то был ли изменен шаблон и редактирует файл шаблона. Соответственно плагин позволяет легко создать неограниченное число статических страниц, или страниц не сильно зависящих от программного кода.

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

В php плагин лишь вносит инфу про запись шаблона в случае правки содержания и расчет карандаша. Плагин для админки для редактирования базы данных с помощью админки. Myadminlite. Человек может зайти и отредактировать любую таблицу из админки

Простой и понятный плагин без лишних вопросов о том как создать таблицы и управлять ими

Плагин для голосовалки

При установки создается база данных с параметрами.

Копируется класс для взаимодействия с этой базой.

В шаблон в то место где должна быть голосовалка пишется insert

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

С помощью админки можно самостоятельно изменять базовые функции, такие как вид кнопок, выдача ответа методом Аякса

С помощью админки в класс php записывается информация о правилах проведения опроса.

Как часто человек может голосовать, сколько раз на один вопрос он может отвечать и выбор срока окончания голосования

Это все пишется шаблон

Условия голосования задаются отдельно и все настройки хранятся в отдельных файлах.

Плагин для вывода таблиц

Это и новости и данные и курсы и любые данные которые можно получить при помощи запросов и вывести в виде таблицы.

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

Настраивается все в отдельности, но плагин устанавливается вместе с этими компонентами. В шаблон вывода таблиц подключаются тем же методом шаблоны фильтра, построничника

Запросы плагин может писать автоматически, преобразуя на русский большую часть фраз, но для сложных запросов – только использовать язык sql. Сложности также могут быть при работе с уже существующей базой данных.

Продолжение, возможно, следует

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 514
  • Комментариев: 0
  • Создан: 29.11.2008 13:53

Комментарии (0)