Своя таблица модулей

InstantCMS 1.X

Обсуждаем возможности

#1 17 июня 2020 в 22:01
Всем привет.

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

--------------------------------------------------------------------

Преамбула

При миграции старого сайта едиинственное узкое менсто — это таблица cms_modules, в которой содержатся данные о расположении
модулей и их шаблонах.

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

Решение

Для каждого шаблона необходима своя таблица cms_modules

Реализация

В админке, в настройках сайта, на вкладке "Дизайн", добавить кнопку "добавить новый шаблон"
по нажатию на кнопку, появляется поле, предлагающее ввести имя шаблона (не больше 10 символов, только английскими буквами и цифрами)
Например, mytemplate

Далее, в базе данных создается таблица с названием cms_modules_mytemplate
в нее копируется таблица cms_modules

Далее, нам нужна переменная, которая будет содержать наименование нужной нам таблицы, допустим $tplname
при выборе дефолтного шаблона, она принимает значение "cms_modules"
при выборе альтернативного шаблона — "cms_modules_mytemplate"

после чего необходимо заменить в ядре все прямые вызовы таблицы cms_modules на вызовы через переменную.

та же история со второй таблицей cms_modules_bind
и альтернативной для нее таблицей cms_modules_bind_mytemplate

Что мы имеем в итоге:

Для каждого шаблона подключается СВОЯ таблица модулей, что позволяет откатить сайт в случае краша через замену названия
шаблона в файле-конфигураторе (на крайний случай)

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

Саму переменную можно хранить в том же файле-конфигураторе, чтобы не изменять базу


---------------------

Хочется услышать мнения, особенно гуру кодинга по данному вопросу, его целесообразности и возможности реализации
#2 17 июня 2020 в 22:51
Поддерживаю всё вами скзанное! Надо немедленно внедрить в систему.
Вот только с этим не согласен:

не больше 10 символов, только английскими буквами и цифрами

Андрей
Надо 12 и без привязки к каким-то английским буквам.
К примеру, тысячам бедных японских пользователей InstantCms 1-х что по вашему делать? zlo
#3 17 июня 2020 в 23:46

К примеру, тысячам бедных японских пользователей InstantCms 1-х что по вашему делать?

Олег Васильевич я

харакири...

или выучить английский :)
#4 18 июня 2020 в 11:10
Андрей, твое предложение порочно и ведет в тупик.
Напомню, на первой ветке идеология работы модулей (на пальцах) такова:
1. Движок из таблицы cms_modules выбирает все включенные модули, которые должны выводиться на текущей странице, и формирует из них массив.
2. Массив перебирается. По имени модуля вызывается тело модуля, которое получает из базы контент модуля, обрабатывает и передает шаблону модуля для отображения.
3. Движок ищет шаблон сперва в текущем шаблоне, если не находит, берет из дефолтного.

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

Андрей, tсли уж тебе так приспичило иметь для модуля несколько шаблонов, курочить движок ни к чему. Достаточно в модуле ручками прописать нужный шаблон. Все.

PS. Олег Васильевич, а ты не подначивай.
#5 18 июня 2020 в 12:53

Андрей, твое предложение порочно и ведет в тупик.

Кирилл Эдуардович (Странник)
Это действительно так. И причина банальна: Овчинка выделки не стоит.
А кнопка "добавить новый шаблон", вообще анекдот (шаблон — это каталог в папке templates).
Требуется лишь файловая идентичность шаблонов (не велики затраты).

Кроме модулей следует также обратить внимание на используемые Шаблоны статей.
К примеру: com_content_read_50%.tpl и com_content_read_01.tpl на сайте 107.icms.su
используются для вывода — 107.icms.su/stati/psihologija/yempiricheskii-kontrast-metodologija-i-osobennosti.html
и 107.icms.su/novosti/audio-i-video-na-saite.html
Все шаблоны сайта должны быть идентичны.

Успехов.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.