А то агент Виталий не отметился в данной теме.
Я не самый зверь в супер-программировании, это надо Марину призывать в топик. А Марина пространственно рассусоливать не будет
Ей вот эти не предметные фразы не скажут ничего:
Далее в 90% случаев не достаточно вставить собственный код в начало или в конец метода, по причине в начале обрабатывать ещё нечего, а в конце уже поздно что либо обрабатывать, потому как всё уже улетело на пк пользователя. Вот и приходится переопределять Методы полностью.
. Она спросит "Дайте конкретную задачу и проблему, мы скажем/подскажем, как лучше её решить. А если есть загвоздка в ядре, поправим ядро".
Еще одну реплику приведу, проявляющую истинную проблему:
Проблем с кастомизацией ещё много. Потребовалось подправить файл - "prettyPhoto.css", в результате, система восстановила оригинальный файл, а изменённый запихнула в папку темы.Всё бы хорошо, ведь, как пишут в документации, кастомные файлы имееют преимущества, но .. В файле " hemesfunctionsshow_head.php", если я правильно понял, "prettyPhoto.css" подключается только в корне сайта, без проверки на наличие кастомного файла.
Получается, после обновления - править файл снова!
Так вот, это не проблема кастомизации! Это проблема неиспользования кастомизации! Конечно, если файл стилей подключен напрямую, система увидит, что файл новый и перекинет его в кастом, но как система узнает, как это файл был подключен и на каком основании она будет править пути?
Здесь все просто: с учетом тем и кастомизации работает тег
<insert name="show_css" files="default.css, style.css">
В этом случае, если поправить style.css, при обновлении исходный восстановится, правленный перекинется в папку темы, а система поймет, что в теме есть кастомизированный файл и подключит именно его.
Или надо использовать PATH в скриптах или <insert name=path> в шаблонах, они тоже путь делают правильный, в зависимости от того, есть ли кастомный файл или нет.
Т.е. решить вопрос с prettyPhoto.css очень просто: поправили сам файл, поправьте также и путь к нему, заменив относительный / на path и всё.
Вот об этом я больше года назад говорил Виталию, о том что штамповать классные шаблоны с красивой кастомизацией и потом их поддерживать будет для одного человека не реально!!! (при частом выходе всяких латаний багаов - это просто превращается в бесконечность...)
Виталий говорит про модули, а не шаблоны. У нас шаблоны самые старые конца 2014 года и они работают сейчас, в середине 2016, без доработок.
В случае с программным модулями, затрагивающими ядро, ситуация сложнее, конечно, но тут тоже вопрос только использования кастомизации. В частности, я бы придерживался идеи как можно меньше затрагивать системного, если возможно. Например
Для того чтобы создать интерфейс управления модулем порой необходимо добавить стили в файл adm/css/main.css
- зачем? В своем модуле подключите другой CSS, и положите его в папку своего модуля в тему. Просто переопределите в нем нужные системные стили, добавьте свои и все. Исходный файл не тронут, задача выполнена.
Ещё один пример есть файл js/site.js этот скриптик выполняет очень много важной работы, например помогает доставить информацию заполненной формы в СМS и вернуть ответ пользователю. На тех или иных участках необходимо выполнять небольшие задачки, например отправка сигналов различным системам типа Яндекс Метрики, Гугол аналитики.
То же самое, но говорить лучше предметно. Какие именно сигналы нужно отправлять, откуда, из какого модуля, как именно отправлять и т.д. Я уверен, задачу можно решить соседним JS-файлом, без правки системного.
Чуть сложнее с РНР-файлами ядра, но есть их частичная кастомизация, кода мы так же не трогаем исходный файл, а переопределяем и добавляем новый функционал через
new или replace. Для этого они и сделаны, чтобы не трогать исходный файл и не зависеть от обновлений.
Это и есть та самая "
платформа для изоляции таких модулей, чтобы они могли работать всегда и вездее не зависимо от внутренних изменений CMS и фундаментальных модулей."
Поэтому -> возможность скачивать версии привязаные к версиям СМS это всего лишь полу меры.
Это вообще не вариант.