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

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

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1128
Всем привет.

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

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

Преамбула

При миграции старого сайта едиинственное узкое менсто - это таблица 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

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

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

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

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


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

Хочется услышать мнения, особенно гуру кодинга по данному вопросу, его целесообразности и возможности реализации
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3322
Поддерживаю всё вами скзанное! Надо немедленно внедрить в систему.
Вот только с этим не согласен:
Андрей:
не больше 10 символов, только английскими буквами и цифрами
Надо 12 и без привязки к каким-то английским буквам.
К примеру, тысячам бедных японских пользователей InstantCms 1-х что по вашему делать? zlo
Редактировалось: 2 раз (Последний: 17 июня 2020 в 23:08)
Украинский для инстант
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1128
Олег Васильевич я:
К примеру, тысячам бедных японских пользователей InstantCms 1-х что по вашему делать?

харакири...

или выучить английский :)
Комплексный подход к Вашему онлайн-бизнесу: домены, хостинг, сайты.
Продажа качественных доменов.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2042
на сайте
Андрей, твое предложение порочно и ведет в тупик.
Напомню, на первой ветке идеология работы модулей (на пальцах) такова:
1. Движок из таблицы cms_modules выбирает все включенные модули, которые должны выводиться на текущей странице, и формирует из них массив.
2. Массив перебирается. По имени модуля вызывается тело модуля, которое получает из базы контент модуля, обрабатывает и передает шаблону модуля для отображения.
3. Движок ищет шаблон сперва в текущем шаблоне, если не находит, берет из дефолтного.

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

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

PS. Олег Васильевич, а ты не подначивай.
NOP
Посетитель
small user social cms
Медаль
Сообщений: 668
Кирилл Эдуардович (Странник):
Андрей, твое предложение порочно и ведет в тупик.
Это действительно так. И причина банальна: Овчинка выделки не стоит.
А кнопка "добавить новый шаблон", вообще анекдот (шаблон - это каталог в папке templates).
Требуется лишь файловая идентичность шаблонов (не велики затраты).

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

Успехов.
Редактировалось: 1 раз (Последний: 18 июня 2020 в 12:54)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.