Делая интеграцию проще
IP.Board динамично развивающийся продукт, однако все годы своего развития он изменялся только внутри, в то время как модификации всегда были чем-то вроде дополнительного софта надстраеваемого над IPB. Существовали некоторые точки интеграции позволяющие интегрируемым решениям гладко работать вместе, но разделенность кода приводила к тому, что и функциональность IP.Board и компонентов так же становилась раздельной. Одной из наших основных задач при разработке Invision Power Board 3 стала задача более тесной интеграции ядра системы с модификациями, и для решения этой задачи мы работаем над созданием множества точек интеграции во всей нашей системе.
Мы не будем приводить исчерпывающий список новых возможностей здесь, мы просто пройдемся по самым значимым областям интеграции в IP.Board.Обычно встречающаяся необходимость для модулей IP.Board, это необходимость предоставления настроек группы и пользователя. Ранее необходимо было изменять исходный код форм или создавать совершенно новую страницу для администраторов, чтобы управлять этими настройками. В IPB 3 мы учли эту проблему, сделав формы редактирования групп и пользователя модульными. Ваши приложения теперь смогут предоставить класс, в котором будут содержаться HTML, который будет добавляться в формы и обработчик, который будет сохранять отправленные данные из формы. В результате ваши приложения могут добавлять формы настройки для групп и пользователя без изменения файлов самого IP.Board, и без необходимости создания новых страниц в АЦ. Ну а для конечного пользователя (администратора) выгода будет в том, что управлять всеми настройками группы и пользователя он сможет с одной страницы.
Invison Power Board теперь может собирать RSS с каждого приложения и выполнять всю грязную работу по его обработке — ваше приложение должно будет только предоставить актуальный RSS контент для вывода. Данная возможность позволяет IP.Board добавить RSS ссылку на каждую страницу, избавляя вас от необходимости вручную выводить ссылку где-либо. Это позволяет и посетителям и браузерам легко находить все RSS каналы, которые есть на вашем форуме.
Так же в предыдущих записях мы уже рассказывали о новых возможностях использования нашей централизованной системы проверки прав. Более того, мы так же рассказали о том, что вы можете интегрировать свои приложения в глобальную поисковую систему IP.Board 3, которая позволяет индексировать содержимое вашего приложения и делает его доступным для централизованной поисковой системы форума.
Конечно же мы оставили возможность загрузки кеша и управления сессиями, которая была в IP.Board 2, так же как и возможность интегрировать приложение в пользовательскую панель управления. Но мы сделали несколько небольших улучшений для этих возможностей. Например, теперь вы можете указать всю информацию необходимую для перестройки кеша — впоследствии перестроив ваш кеш (из любого файла в IP.Board) простым способом:
$this->cache->rebuildCache( 'cache_name', 'application' );
Так же вы сможете добавить управление частями в редакторе сообщений при использовании оного в вашем приложении, тем самым разрешая администраторам гибко настраивать использование bbcode в вашем приложении.
Изменения коснулись и ipb_member_sync.php который был полностью отправлен на свалку и переписан в виде простого модуля, позволяющего каждому приложению указать собственные требования необходимые для удаления пользователя. Это позволит легко устранять старые пользовательские данные при удалении самого пользователя.
Для разработчиков это означает более легкий доступ ко всем преимуществам каркаса и кода IP.Board без необходимости изобретения велосипеда каждый раз.Конечно, мы перечислили не все возможные способы интеграции доступные в Invision Power Board 3, но даже перечисленные выше должны дать вам небольшое представление тех путей, которые мы реализовали, чтобы сделать разработку модификаций более простой, а сами модификации были больше частью системы нежели отдельными дополнениями.