Forums / National / Russian / Модули и плагины / Отделить свои плагины от коробочных

Предусмотрена ли такая возможность?

dedushka
#1 2011-04-29 10:58

В другом месте (http://www.cotonti.com/forums.php?m=posts&p=28079) уже описывалась недокументированная возможность отделить файлы ядра от собственных модификаций. Есть ли что-то подобное для плагинов? В идеале, хотелось бы иметь возможность указывать несколько областей поиска плагинов в переменной $cfg['plugins_dir']. Актуально при использовании одного движка для нескольких субдоменов.

Возможно, существует какой-то более изощренный простой способ реализации.


Dit bericht is bewerkt door dedushka (2011-04-29 11:00, 14 jaren ago)
esclkm
#2 2011-04-29 20:42

что за паранойа?

в стандартном комплекте такой возможности нет

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#3 2011-04-30 06:38

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

May the Source be with you!
Kort
#4 2011-04-30 06:51

С путями там затык выходит. Решается или очень изощренно (через размещение "сателлитов" в подкаталогах основного сайта) или никак.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Trustmaster
#5 2011-04-30 08:02

А можно подробнее, в чём затык? Может, его разрулить получится.

May the Source be with you!
dedushka
#6 2011-04-30 09:16

Затык в том, что стандартные плагины обновляются вместе с движком, и для обновления своих плагинов приходится влезать в его каталоги, где стандартные и нестандартные - все в куче. В субдоменах использование includ'ов в корневых файлах (page.php, list.php и пр.) позволяет гарантировать актуальность версии, однако, с плагинами такое организовать не удается или я не могу понять как.

PS Хотелось бы иметь представление о "линии партии" (Trustmaster, спасибо) в организации мультисайта.

Добавлено 1 дня спустя:

Кстати, чтобы нормально работать с admin.php в субдомене, приходится дублировать system/admin/img/*.* Т.е. переменная $cfg['system_dir'] не везде учитывается.


Dit bericht is bewerkt door dedushka (2011-05-01 14:47, 14 jaren ago)
Trustmaster
#7 2011-05-01 15:32

Мультисайтами всерьёз не занимались ещё со времён ветки genesis. Тогда придумали решение с примерно такой структурой.

Движок распаковывается куда-то в доступное для всех хостов место, где хранятся основные файлы, в том числе и общий пул доступных к установке плагинов:

  • /vhosts/common/images
  • /vhosts/common/js
  • /vhosts/common/plugins
  • /vhosts/common/system

Далее добавляются сателлиты, каждый из которых имеет корневые скрипты и индивидуальные папки, т.е.:

  • /vhosts/example.com/datas
  • /vhosts/example.com/skins
  • /vhosts/example.com/admin.php
  • ...

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

system/admin/img явно прописано, насколько показал поиск, в admin.resources.php. Это хорошее замечание, я заменю там литерал на переменную к следующей версии. Правда, будут ли работать изображения, если там будет нечто вроде ../common/system/admin/img?

May the Source be with you!

Dit bericht is bewerkt door Trustmaster (2011-05-01 15:34, 14 jaren ago)
dedushka
#8 2011-05-01 18:01

Решение нереканий не вызывает, особенно, если вместо корневых скриптов использовать одноименные с содержанием типа:

PHP
1
<?php include_once('../common/'.basename (__FILE__)); ?>

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

Есть ли какие-то нюансы в использовании таблиц БД для сателитов?

Добавлено 5 дня спустя:

Если можно, несколько слов о работе install.php на сателитах. Каков вообще порядок развертывания сателита? Требуется ли запускать install.php при его установке? Требуется ли его запускать после обновления файлов основного движка?


Dit bericht is bewerkt door dedushka (2011-05-06 10:17, 14 jaren ago)
Trustmaster
#9 2011-05-06 13:32

Основная задача install.php - обновление БД и конфигурации. А именно БД и конфигурацией сателлиты различаются. Вывод: install.php необходимо запускать при установки и обновлении на каждом сателлите.

May the Source be with you!
dedushka
#10 2011-05-06 19:05

Спасибо за ориентировку.