После создание темы в блоге "Пользовательские страницы на IP.Board 3", постоянно получаю в личку просьбу продолжить тему. Для простых страничек, лучше использовать старый совет. Если надо сделать, что-то сложное, с PHP логикой, работа с базой данной, то можно использовать следующее решения:
Создаем новое, простое приложение MyCustomPage.
В admin/applications_addon/other/ создаем папку mycustompage
Как правило приложения включают в себя следующие разделы (папки):
Для начала, мы создадим две папки.
В skin_cp положим иконку appIcon.png. Иконку можно взять в любом приложение, хотя все будет работать и без нее. Иконка применяется в АдминЦентре в списке приложений.
В modules_public создаем одну папку, назовем ее например modulename
В этой папке создаем два файла.
Первый основной (он должен быть всегда): defaultSection.php
firstname - имя второго файла. Относительный путь на сайте у него будет
admin/applications_addon/other/mycustompage/modules_public/modulename/firstname.php
Это важно:
mycustompage - Директория всего приложения
modulename - Имя директории, содержащей файлы модуля (Ключ модуля)
firstname.php - Имя файла
Это название отражается и в главном классе файла firsname.php
class public_mycustompage_modulename_firstname extends ipsCommand
Понятно, что название могут быть любые. Но замена название в одном месте, должно быть заменено везде, где оно фигурирует.
И сам файл firstname.php
Можно сказать это необходимый минимум. Мы не описали lang - файлы, не подключили свой шаблон. Но уже такое решение, вполне рабочее.
Теперь надо только рассказать IP.Board, что у нас есть "готовое" приложение.
Для этого идем в АЦ
Панель управления > Приложения > Управление модулями > Список модулей > Приложения -> Добавить приложение
My Control Panel > Applications & Modules > Manage Applications & Modules > Applications -> Add New Application


В этой форме, важны два поля
Публичное имя приложения ( Application Public Title ) - имя под котором приложение будет присутствовать в меню.
Директория приложения ( Application Directory ) - место где находится наше приложение. И он же адрес странички: /index.php?app=mycustompage
Но в данный момент приложение доступно только по прямой ссылке, в меню ссылка еще не работает.
Регистрируем публичный модуль нашего приложения.

Добавить публичный модуль

Здесь важно правильно написать
Ключ модуля (Module Key) и естественно включить модуль: Модуль включен? (Module Enabled).
Для безопасности во все вновь созданные директории, можно положить защитные (пустые) файлы index.html
Вот и все.
Будет ли продолжение? Не знаю. Не сделано многое. Нет администраторского модуля, нет своих языковых файлов. Одним словом нечего нет.
Буду делать, конкретное приложение для себя, то выложу его исходники и опишу. Если не будет задачи, описывать сферического коня в вакууме, не очень интересно
Повторюсь, для простых вещей, гораздо удобнее решение описанное здесь: Пользовательские страницы на IP.Board 3
Для сложных решений, проще использовать IP.Content. Проще и быстрей. Он стоит своих денег.
Создаем новое, простое приложение MyCustomPage.
В admin/applications_addon/other/ создаем папку mycustompage
Как правило приложения включают в себя следующие разделы (папки):
extensions modules_admin modules_public setup skin_cp
Для начала, мы создадим две папки.
modules_public skin_cp
В skin_cp положим иконку appIcon.png. Иконку можно взять в любом приложение, хотя все будет работать и без нее. Иконка применяется в АдминЦентре в списке приложений.
В modules_public создаем одну папку, назовем ее например modulename
В этой папке создаем два файла.
Первый основной (он должен быть всегда): defaultSection.php
<?php $DEFAULT_SECTION = 'firstname'; ?>
firstname - имя второго файла. Относительный путь на сайте у него будет
admin/applications_addon/other/mycustompage/modules_public/modulename/firstname.php
Это важно:
mycustompage - Директория всего приложения
modulename - Имя директории, содержащей файлы модуля (Ключ модуля)
firstname.php - Имя файла
Это название отражается и в главном классе файла firsname.php
class public_mycustompage_modulename_firstname extends ipsCommand
Понятно, что название могут быть любые. Но замена название в одном месте, должно быть заменено везде, где оно фигурирует.
И сам файл firstname.php
<?php
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class public_mycustompage_modulename_firstname extends ipsCommand {
public function doExecute( ipsRegistry $registry ) {
$this->output = "Текущая дата: " .strftime('%d %B %Y'); // Здесь формируем контент
$this->registry->output->setTitle( "Название" );
$this->registry->output->addContent( $this->output );
$this->registry->output->sendOutput();
}
}
?>Можно сказать это необходимый минимум. Мы не описали lang - файлы, не подключили свой шаблон. Но уже такое решение, вполне рабочее.
Теперь надо только рассказать IP.Board, что у нас есть "готовое" приложение.
Для этого идем в АЦ
Панель управления > Приложения > Управление модулями > Список модулей > Приложения -> Добавить приложение
My Control Panel > Applications & Modules > Manage Applications & Modules > Applications -> Add New Application


В этой форме, важны два поля
Публичное имя приложения ( Application Public Title ) - имя под котором приложение будет присутствовать в меню.
Директория приложения ( Application Directory ) - место где находится наше приложение. И он же адрес странички: /index.php?app=mycustompage
Но в данный момент приложение доступно только по прямой ссылке, в меню ссылка еще не работает.
Регистрируем публичный модуль нашего приложения.

Добавить публичный модуль

Здесь важно правильно написать
Ключ модуля (Module Key) и естественно включить модуль: Модуль включен? (Module Enabled).
Для безопасности во все вновь созданные директории, можно положить защитные (пустые) файлы index.html
Вот и все.
Будет ли продолжение? Не знаю. Не сделано многое. Нет администраторского модуля, нет своих языковых файлов. Одним словом нечего нет.
Буду делать, конкретное приложение для себя, то выложу его исходники и опишу. Если не будет задачи, описывать сферического коня в вакууме, не очень интересно
Повторюсь, для простых вещей, гораздо удобнее решение описанное здесь: Пользовательские страницы на IP.Board 3
Для сложных решений, проще использовать IP.Content. Проще и быстрей. Он стоит своих денег.
4 комментариев
Страница 1 из 1
Обратные ссылки на эту запись [ URL для обратной ссылки ]
Новые записи
-
-
-
Регистрируем персональные страницы для IP.Board 3– Май 04 2011 08:39
-
-
Ссылки на мой блог
Новые комментарии
0 посетителей
0 гостей
0 пользователей
0 скрытых
0 пользователей
0 скрытых







blaga 24 Май 2011 - 07:39 сказал(а):
Как минимум надо понять о чем писать.
blaga 24 Май 2011 - 07:39 сказал(а):
Информации нет. Но можно просто посмотреть, как устроен любой модуль для IP.Board
В общем по данной теме очень много интересного, пишите хоть о чем.
blaga 25 Май 2011 - 05:37 сказал(а):
Через инсталятор.
blaga 25 Май 2011 - 05:37 сказал(а):
Это другая песня ...
Тем началась, когда спросили, как сделать статические странички, как в IP.Board 3.2. Все...
Для отчуждаемых приложений, совершенно другой подход. Вся регистрация в системе, должна идти через xml файл, который сам создаст многое из того, что я здесь расписывал.
Тогда приложения можно распространять.
blaga 25 Май 2011 - 05:37 сказал(а):
Время ... Да чем дальше, тем больше хочется переписать с чего начинал.