Копия модуля

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
ehaldur
Forum Members
Forum Members
Posts: 23
Joined: Thu Apr 26, 2012 4:23 pm

Копия модуля

Post by ehaldur »

Здравствуйте.

Интересует, каким образом можно установить копию модуля News, чтобы изменив функционал, получить второй аналогичный модуль с другим названием и работающий параллельно?

Насколько это вообще реально? ??? ???

Дело в том, что требуется собрать свой модуль, и за основу хочу взять готовый (news очень подходит).

Заранее спасибо за отклик.
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: Копия модуля

Post by von-hamster »

Это сделать можно, но займет некоторое время.

Если вкратце - то для того, чтобы создать копию модуля нужно изменить следующие моменты:
1. Название папки
2. Название основного файла модуля
3. Название класса
4. Названия таблиц базы (а соответственно - прошерстить весь код модуля на предмет запросов).
5. Проверить, чтобы не пересекались названия функций, классов, маршрутов для ЧПУ если такие есть.
6. Для новостей есть упрощенный вызов модуля, тоесть для нового нужно либо писать свой smarty тэг либо вызывать через cms_module

Возможно забыл еще что.

Кстати - я начал писать статью про особенности написания модуля для данной системы - посмотри, может что интересного найдешь: http://von-hamster.ru/programmizm/php/c ... a-modulya/
ehaldur
Forum Members
Forum Members
Posts: 23
Joined: Thu Apr 26, 2012 4:23 pm

Re: Копия модуля

Post by ehaldur »

Спасибо.

По 4. и 5. пунктам требуется разъяснение.

Статья твоя как никогда актуальна!
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: Копия модуля

Post by von-hamster »

По четвертому пункту:
Если не менялась стандартная структура таблиц модуля и планируется использовать именно ее, то можно ничего не менять. Но в этом случае оба модуля будут работать с одними и теми-же данными.
Вообще текущее состояние модулей таково, что практически все запросы написаны вручную, каждый раз вычисляется название таблиц как в момент установки, так и во время выборок данных. Тоесть не достаточно поменять названия таблицы в одном месте - нужно просмотреть весь код и поправить все названия. Это для того, чтобы создать полностью автономный модуль. К сожалению, система пока (надеюсь, что именно пока :) ) не достигла того уровня, когда можно создавать модули при помощи наследования (ну тоесть теоретически можно, но не все, и это не удобно).

По пятому:
Если подключить 2 файла с одинаковыми названиями функций или классов - генерируется ошибка. Тоесть если установить оба модуля есть вероятность как раз запросить файлы с одинаковыми названиями.
По маршрутам - в модуле есть возможность создания шаблонов для чпу, если будет создано 2 одинаковых шаблона - то будет вызван первый попавшийся в списке (так было раньше, в новой версии пока до этого не дошел). Например, если задать два маршрута с шаблоном /news/, один для стандартного модуля, второй для своего - будет обработан первый в списке, причем как определен порядок в списке - я не очень понял.
Post Reply

Return to “Russian - русский”