Индивидуальная доработка кода и дополнения
Изменение файлов проекта
Внесение индивидуальных изменений в файлы и код отвечающий за логику продукта приводит к ситуации когда стандартные обновления недоступны по причине возможной потери данных изменений. Для того, чтобы свести такие ситуации к минимуму доступно несколько механизмов исключающих внесение изменений в стандартный код приложения, но с сохранением гибкости его изменения.
Для работы с файлами шаблонов (php) доступно создание собственных тем. Кроме файлов шаблонов, также можно вносить изменения в javascript / css файлы и файлы изображений.
Для изменения и доработки функций (кода php) оптимально создать свой собственный плагин, который позволяет расширять имеющиеся функции при помощи системы хуков и фильтров, а также других инструментов.
Для добавления контента на страницы платформы версии 3.x необходимо использовать блоки.
Эти механизмы позволяют вносить изменения во все файлы проекта, при этом ситуация с конфликтами при выходе новых обновлений сводится к минимуму. В случае если вы вносили изменения в файлы продукта непосредственно (не через тему/плагин) при установке обновления все ваши изменения будут утеряны.
Изменение файлов дополнений
В случае если требуется вносить изменения в уже существующие дополнения доступен механизм кастомизации файлов - возможность подмены файлов путем их копирования в специальную директорию /custom/ с последующим редактированием. Структура вложенности файлов при этом должна быть сохранена.
Пример кастомизации php файлов (кода и шаблонов) плагина:
Путь к исходному файлу плагина (в который требуется внести изменения) - /plugins/pluginDir/pluginFile.php
Путь к файлу копии для редактирования - /custom/plugins/pluginDir/pluginFile.php
Где видно, что вложенность директорий при копировании файла в директорию кастомизации осталась аналогичной исходному расположению файла.
Пример кастомизации файлов статики (js/css/изображений) плагина:
Путь к исходному файлу плагина (в который требуется внести изменения) - /public_html/plugins/pluginDir/static/file.js
Путь к файлу копии для редактирования - /public_html/custom/plugins/pluginDir/static/file.js
Идентичный подход и с файлами темы.
Учитывайте что с выходом и установкой обновлений дополнений в измененных вами таким образом файлах не будет содержать обновлений. Подробнее о том каким образом получить список внесенных в обновлении темы изменений читайте здесь.
В случае если вы вносили изменения в файлы плагина/темы непосредственно (не используя механизм кастомизации) при установке обновления все ваши изменения будут утеряны.
Системные настройки
Множество настроек проекта, таких как например количество записей в списках или же пре-/постмодерация настраиваются в разделе "Настройки сайта / Системные настройки", по коду они обычно выглядят подобным образом:
config::sysAdmin('contacts.captcha', true, TYPE_BOOL);
config::sys('contacts.captcha', true, TYPE_BOOL);
Где вторым параметром можно увидеть значение по-умолчанию, не меняйте его в коде, ищите соответствующую настройку в админ-панели, либо же если таковой нет, добавьте строку в файл системных настроек /config/sys.php.
Для примера изменим значение на false
:
'contacts.captcha' => false,
В большинстве форм при валидации входящих данных можно встретить ограничение по длине строки, например:
'name' => array(TYPE_NOTAGS, 'len' => 50, 'len.sys' => 'form.name.limit'),
В примере текст указанный в поле name
будет урезан до 50 символов, параметр len.sys
сообщает о том что это значение может быть переопределено при помощи системной настройки, например расширим его до 100 символов путем добавления следующей строки в файл системных настроек /config/sys.php:
'form.name.limit' => 100,
Значение найтроки получаемой посредством config::sys
будет браться из файла системных настроек /config/sys.php, а вызов config::sysAdmin
проверит в первую очередь не указывалось ли значение в админ. панели, в разделе "Настройки сайта / Системные настройки" и если нет, проверит файл системных настроек.
Подробнее о доступных типах настроек читайте в статье "Настройки приложения"
Локализация интерфейса
В случае если необходимо изменить некоторые фразы встречаемые в интерфейсе, как например названия кнопок, полей, заголовки форм и подобное, не вносите их в файлы, используйте для этого функцию Локализации, более подробную документацию вы найдете в разделе "Настройки сайта / Локализация" к продукту.
Также не забывайте что большинство H1 заголовков на страницах редактируется в соответствующих настройках SEO.
Локализация расширений выполняется посредством встроенных в дополнения функций lang
и langAdmin
, подробности читайте здесь.
Подробнее о локализации приложения читайте в разделе "Локализация приложения"