Или вот еще. Система проверяет вложенность тегов друг в друга прямо на сайте
И при нарушении вложенности тегов в друг друга выводится сообщение
Показывает путь до файла с нарушенной версткой а также последний тег на котором найден сбой.
http://phar.mpak.su/pages:test Учитывается вложенность php тегов друг в друга
Там много чего есть. Быстрая установка это лишь конкретное решение. До этого все работало на mysql и без фара.
Немного доработав получилось удачное решение для быстрой установки. Его описание и представил в статье.
Он входит в портальную систему, но не входит в фар архив. Я вам показал скрипт по которому он собирается. В репозитории есть несколько скриптов и файлов которые несут администраторскую функцию. Обязуюсь разобраться с этим скриптом в ближайшее время. И удалить его если он нигде не используется. Спасибо вам за бдительность.
Это не мой код. Я бы не стал писать ничего похожего. Код был взял с откуда то с форума.
И если посмотрите скрипт который собирает phar архив то данный кусок кода в него не входит
Предлагаю хабросообществу тест. Есть сайт на котором я проводил последние изменения. Я изменил пароль администратора на admin admin в нутри в админке видно кто находится на сайте. Пишется каждоая сессия реферер, ip, заголовок браузера, количество посещенных страниц также все боты и метрики. Войти в админку можно здесь.
http://phar.mpak.su/admin
Список сессий можно посмотреть тут http://phar.mpak.su/sess:admin/r:mp_sess
Нет никакой функциональности. В адресе вы используете имя раздела и файла. А php файлы и шаблоны подключаются обычным инклюдом с небольшой обработкой. Все, что будут работать при обычном инклюде будет работать если положите это в директорию со своим модулем. Адресация тоже простая «http://имя-сайта.рф/имя-раздела: файл» есть еще адресация которая тоже подминяется, но на скрипты внутри раздела это никак не сказывается. Права доступа обрабатываются системой. Выдача 404 ошибки, динамическая генерация тайтлов и дескрипшнов все это система. Есть четкая грань между работой системы и скриптами раздела. Но эта грань очень четкая и никогда не пересекается. Модуль не берет на себя работу системы а система ничего не знает о том, что делает модуль.
Предлагаю все-таки приводить доводы основанные на опыте. Из того что я читал разработчики sqlite достаточно грамотно подходят к своему делу. Верю что можно сделать достаточно хорошее решение. А подходит или не подходит лучше утверждать на цифрах. При таком количестве решение приемлемо, при большем — не подходит. Границы приемлемости данного решения еще не понятны. Будем тестировать.
Так и делал. Наверно это маркетинговое решение и было бы востребовано при активном продвижении. А так как сайты делаются по работе, родственникам и знакомым то и в самой демке необходимости нет. Тут больше будет полезным описания возможностей и решений до которых все руки не доходят. Если не сольют планирую радовать сообщество своими шедеврами. :)
Так как обновление идет одним файлов index.phar там уже идут все измененные части для новой структуры. А про пользовательские разделы система ничего не знает они расположены в файловой системе сайта и их система никогда не трогает. Их может поменять только сам разработчик. Это не совсем готовая цмс — скорее набор инструментов которыми можно реализовать практически любую логику. Создав новый модуль мы получаем новый раздел в админке со своей структурой бд, пространством имен и директорией со скриптами и шаблонами. По умолчанию устанавливаются только пять разделов от которых зависит работа самой системы.
Блоки, Модули, Пользователи, Настройки и СЕО раздел отвечающий за адресацию. То, что используется независимо от сайта. Дальше список функционала расширяется индивидуально исходя их требований сайта.
Легче сказать что она не умеет. Все задачи, которые ставятся мне в рамках разработки и продвижения решаются в рамках данной системы.
Я планирую время от времени подкидывать описания основных возможностей системы. Если меня конечно не сольют.
Не в коем случае. Скорее у нас разные опыт, методики, цели, решения, инструменты, жизненные позиции. Так уж повелось что люди разные. Для этого и разговариваем чтобы найти точки соприкосновения.
Повторюсь — куда кинул там и работает.
Ситуация в которой вы можете просто закинуть файлы на хостинг и они будут работать не задумываясь о версии бд, хосте конфигах.
Кстати никто не заметил а тем не менее эта система совсем без конфигов. Точнее они там есть, но для данной бд достаточно дефолтного конфига который будет искать бд прямо в корне сайта.
Есть особенность в ее работе. Демка без возможности изменение — бесполезна. А каждый второй наровит все поломать удалив нужные блоки или играясь с правами доступа к разделам. Систему с записью и постоянно работающую не получилось сделать. Так и стоит все время сломанная.
Если надо менять структуру — она меняется. К примеру тут
https://github.com/mpak2/mpak.su/blob/master/index.php#L118
Логика работы уже не меняется лет пять. Не представляю ситуации чтобы она поменялась в дальнейшем.
С sqlite небольшой опыт работы. Все решения до этого момента были с mysql но в sqlite вижу определенные перспективы, поэтому решил попробовать. Будет положительный или отрицательный опыт обязательно поделюсь.
И при нарушении вложенности тегов в друг друга выводится сообщение
Показывает путь до файла с нарушенной версткой а также последний тег на котором найден сбой.
http://phar.mpak.su/pages:test Учитывается вложенность php тегов друг в друга
Немного доработав получилось удачное решение для быстрой установки. Его описание и представил в статье.
Если авторизоваться администратором, система показывает файл из которого выводится верстка
< !-- Начало: phar:///srv/www/vhosts/phar.mpak.su/index.phar/modules/pages/index.tpl — >
Бла бла какой то код шаблона
< !-- Окончание: phar:///srv/www/vhosts/phar.mpak.su/index.phar/modules/pages/index.tpl — >
Сделал специально для вертальщика, так как возникали сложности с поиском файлов верстки
И если посмотрите скрипт который собирает phar архив то данный кусок кода в него не входит
https://github.com/mpak2/mpak.su/blob/master/phar/mpak.php#L31
http://phar.mpak.su/admin
Список сессий можно посмотреть тут http://phar.mpak.su/sess:admin/r:mp_sess
Проверим сразу на хабронагрузке.
Блоки, Модули, Пользователи, Настройки и СЕО раздел отвечающий за адресацию. То, что используется независимо от сайта. Дальше список функционала расширяется индивидуально исходя их требований сайта.
Я планирую время от времени подкидывать описания основных возможностей системы. Если меня конечно не сольют.
Сайты уже точно исчисляются сотнями. Возможно за тысячу.
Не на sqlite конечно. Его я еще буду какое то время тестировать перед внедрением.
Ситуация в которой вы можете просто закинуть файлы на хостинг и они будут работать не задумываясь о версии бд, хосте конфигах.
Кстати никто не заметил а тем не менее эта система совсем без конфигов. Точнее они там есть, но для данной бд достаточно дефолтного конфига который будет искать бд прямо в корне сайта.
https://github.com/mpak2/mpak.su/blob/master/include/config.php
Он лежит прямо в index.phar и заменить его мы можем положив по тому же пути файл в фс сайта.
https://github.com/mpak2/mpak.su/blob/master/index.php#L118
Логика работы уже не меняется лет пять. Не представляю ситуации чтобы она поменялась в дальнейшем.
С sqlite небольшой опыт работы. Все решения до этого момента были с mysql но в sqlite вижу определенные перспективы, поэтому решил попробовать. Будет положительный или отрицательный опыт обязательно поделюсь.