Хаки скинов дают возможность изменять и дополнять данные, передаваемые в скин. Вы можете полностью изменить контент, генерируемый оригинальным шаблоном скина или изменить подготовленные скриптом данные так, как вам нужно.
Сначала нужно создать и настроить хак в Админке. На закладке “Hook Files” укажите имя файла и класса, выберите действие “Skin Overloader” и определите имя класса, (skin_ *), который нужно перегрузить.
Попробуем создать что-то полезное, вместо бестолкового примера из мануала IPB - несложный хак, добавляющий рекламную область после первого и последнего сообщения в теме для рекламных объявлений Yandex Direct.
Читать запись полностью »
58200 / 16353
Для работы с пользовательскими аккаунтами в IP.Board 3 существует класс IPSMember. Методы класса доступны везде, все необходимые действия по синхронизации связанного с аккаунтом контента (аватары, изображения профиля и прочее) производятся автоматически и нет необходимости задумываться о чистке контента после удаления пользователя. Также методы класса могут использоваться для получения и отображения информации о пользователе.
Физически класс обитает в admin/sources/base/core.php, в конце файла.
Параметры:
1. array - поля для сохранения в формате: array (’имя таблицы’ => array (’поле’ => ‘значение’))
array( ‘members’ => array( ‘email’ => ‘test@test.com’)
Допустимые таблицы: members, pfields_content, profile_portal.
66815 / 18401
Файл предназначен для загрузки значений в таблицы core_sys_settings_titles и core_sys_conf_settings, т.е. для загрузки системных настроек приложения. Формат xml файла полностью соответствует полям таблиц базы, структуры для обеих таблиц находятся в одном файле.
Значение тега<conf_is_title>1</conf_is_title> описывает данные для первой таблицы, записи с тегом <conf_is_title>0</conf_is_title> - для второй.
Заполнять эту структуру руками тяжело, да и не нужно. В админке вы можете создать и группу настроек и конкретные настройки для вашего приложения через стандартные экранные формы, проверить их работу и выгрузить в XML файлы.
86054 / 24833
Файл cache/skin_cache/masterMap.php предназначен для связи ID скина с директориями master*, используемых при работе админки в режиме разработчика.
Более простое объяснение: если щелкнуть по выпадающему меню скина (в режим разработчика), то у скинов xml и lofi можно увидеть дополнительные пункты import и export. У скина html (skin_key=’default’) и любого созданного вами этого меню нет.
Второе важное значение этого файла (этого почему-то нигде не написано): при переключении в режим разработчика нужно выгружать в master директории не только файлы скинов, но и файлы css, в противном случае форум отобразится без стилей.
86131 / 24523
Дополнение по теме редактирования языковых файлов в режиме разработчика.
В IP.Board 3.0 радикально изменился подход к редактированию lang файлов. Если раньше (в версии 2.x) для внесения изменений достаточно было отредактировать соответствующий файл в директории cache/lang_cache/xx, то теперь увы, все языковые конструкции хранятся в базе. Файлы на диске, в директории cache/lang_cache/~id~, представляют собой кешированные данные, внесение в них изменений не имеет смысла, данные будут обновлены при обновлении кешей. Также теперь нет директорий en и ru, директории называются по индексу языкового пакета.
В обычном режиме админки вы можете только добавлять языковые файлы для своего и других приложений, но не можете экспортировать их в формате XML для включания в инсталляционный пакет. Переключание в режим разработчика включает необходимые функции экспорта и импорта.
87205 / 24885
В IP.Board 3 есть полезная для разработчика фича, переключение в режим ‘developer mode‘, в котором можно более просто редактировать скины и языки. Также включаются некоторые недоступные в стандартном режиме функции (экспорт различных настроек и др.) Переключение в этот режим описано ниже.
1. Редактирование conf_global.php.
Найти:
define( ‘IN_DEV’, 0 );
Заменить на
define( ‘IN_DEV’, 1 );
Если этой строчки нет в вашем conf_global.php (это бывает после апгрейда на версию 3.0) - добавьте ее самостоятельно в любое место до закрывающего тэга “?>”.
Также может оказаться полезным включить вывод предупреждений и ошибок PHP, добавив еще одну строку в файл conf_global.php
ini_set(’display_errors’,1);
89684 / 25077
В админке ip.board есть удобный инструментарий для автоматизации рутинных операций создания структуры приложения и структур модулей.
Первым создается приложение.
Зайдите в админку, закладка System и кликните на строке Manage Applications & Modules. Вы попадете в модуль управления приложениями. В таблице показаны уже установленные приложения, они сгруппированы следующим образом:
Root Applications - системные приложения, основные модули форума.
IPS Add Ons - приложения, разработанные фирмой IPS.
Third Party Add Ons - пользовательские приложения.
Приложение, создаваемое пользователем всегда помещается в раздел Third Party Add Ons.
84896 / 24251
Приношу свои извинения за утерянные комментарии.
Включил регистрацию и возможность комментирования.
84594 / 22894
Этот файл (admin/applications_addon/other/[app]/setup/versions/install/knownsettings.php) отвечает за присвоение значений переменным System Settings, которые задаются ключами ‘conf_key’ в файле xml/[app]_settings.php, если нужно установить значения, которые могут зависить от конкретного форума и неизвестны разработчику приложения.
Данные в файле должны содержаться в массиве $knownSettings:
$knownSettings = array(
‘myapp_path’ => ipsRegistry::$settings['upload_dir'],
‘myapp_url’ => ipsRegistry::$settings['upload_url'],
);
Соответственно, в файле xml/[app]_settings.xml должны быть записи <conf_key>myapp_path</conf_key> и <conf_key>myapp_url</conf_key>.
Импорт файла производится только если найден файл xml/[app]_settings.xml, элементы массива $knownSettings, для которых нет соответствия, отбрасываются.
79434 / 22875