Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Пользовательские страницы на IP.Board 3

(0 отзывов)

Иногда на форуме требуется создание индивидуальных статических страниц, сохраняя оформление форума. Для этого советуют использовать (DP31) Custom Pages или IP.Content. Это оправдано, когда пользовательские страницы необходимо в определенном количестве. Для одной одной или двух страниц, покупать IP.Content или разбирается с (DP31) Custom Pages не совсем оправданно.

 

Есть два способа быстрого создания таких страничек. Правильный способ, через регистрацию своего приложения через административную панель но есть другой "неправильный" способ. Быстрый и простой.

Для начала рассмотрим неправильный способ.

 

Стоит задача сделать свою страницу по адресу "ваш форум/MyCustomPage/". Создаем папку MyCustomPage. В папку кладем файл, например index.php со следующим содержанием:

 

<?php
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( '../initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance(); 
$registry->init();
$registry->output->setTitle('Ваше название'); 
$registry->output->addContent('Ваш контент');  
$registry->output->sendOutput();
?>

 

'Ваш контент' - содержание вашей страницы. Здесь может быть любой текст или простой html код. Главное что бы в нем не присутствовала одиночная кавычка ( ' ).

 

Если код html сложный, используется пользовательский CSS и javascript, то в $registry->output->addContent('Ваш контент') меняем 'Ваш контент' на переменную $content.

$content может содержать массив, результат из базы данных или другие данные.

 

Получаем следующий пример.

 

<?php

define( 'IPB_THIS_SCRIPT', 'public' );
require_once( '../initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$content        = <<<BLK

Ваш контент 

BLK;

$registry = ipsRegistry::instance(); 
$registry->init();
$registry->output->setTitle('Название'); 
$registry->output->addContent($content);  
$registry->output->sendOutput();
?>

 

Здесь $content информация которая находится в блоге между BLK.

 

Ваша первая "Пользовательские страница" на IP.Board 3 готова. Осталось поместить ее в меню: Добавление своих ссылок в верхнее меню форума IPB 3.0

 

Важно: ссылка на вашу страницу, должна быть полной. Если вы создали файл index.php в папке MyCustomPage, то короткая ссылка "ваш форум/MyCustomPage/" вызовет ошибку. А ссылка "ваш форум/MyCustomPage/index.php" откроет нужную страницу.

 

Название папки и имя файла может быть произвольным.

 

Источник: community.invisionpower.com и моя обработка полученных знаний :)

 

Продолжение: Регистрируем персональные страницы для IP.Board 3

13 комментариев

Рекомендованные комментарии

Buskopan

IPB Specialist

Опубликовано:

Спасибо большое! Очень полезный материал. Будем практиковать.

Buskopan

IPB Specialist

Опубликовано:

Вот живой пример :)

 

Кроссворд на форуме.

 

Удалите если расцените как рекламу.

 

 

И вопрос.

 

А что пишет система в профиле пользователя когда он сидит на одной из таких самодельных страниц?

 

"Смотрит главную страницу" ? - это реально подправить? скажем на "играет в кроссворд".

Опубликовано:

А что пишет система в профиле пользователя когда он сидит на одной из таких самодельных страниц?

 

"Смотрит главную страницу" ? - это реально подправить? скажем на "играет в кроссворд".

Не смотрел. Смотрел как на очень простой инструмент создание пользовательской странице.

 

Скорее всего, для полноценного функционала нужен другой способ, через регистрацию страницы в АЦ. Напишу позже, как и что.

Здесь же форум нечего "не знает" о новых страницах

Buskopan

IPB Specialist

Опубликовано:

А если есть готовый index.php страницы, как можно его использовать?

Buskopan

IPB Specialist

Опубликовано:

А если есть готовый index.php страницы, как можно его использовать?

Andrey_O

Пользователи

Опубликовано:

И где правильный способ?

Гость uaanvi

Гость uaanvi

Гости

Опубликовано:

А можно ли закрыть страницу от гостей? Чтобы они не могли ее просматривать.

Опубликовано:

Можно все. Как закрыть ссылку на эту страницу, так для гостей сделать вывод пустой странице или другого контента

Гость SerJant

Гость SerJant

Гости

Опубликовано:

на 3.2.3 этот вариант не пашет

Гость sergey_webdok

Гость sergey_webdok

Гости

Опубликовано:

Здравствуйте, проделал всё по инструкции, контент выводится, но используется не тот шаблон. По-умолчанию стоит шаблон css_3 (он третий по списку, ставлю его по-умолчанию, нажимаю Ок и после мне пишет, что обновлены файлы в папке css_3), а стили берутся для созданной страницы из папки css_1 (смотрю уже файербагом по факту). Может это через константу какую можно установить, какой шаблон использовать для страницы?

Ghost_SS

Пользователи

Опубликовано:

Поправите для ipb 3.3.4 а то не работает.

Viktar83

Пользователи

Опубликовано:

создание пользовательских страниц (для версии 3.4.6):

 

создать файл .php в корне сайта или в отдельной директории

 

<?php

define( 'IPB_THIS_SCRIPT', 'public' );
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
require_once( IPS_ROOT_PATH . 'sources/base/darkLAE.php' );

$content        = <<<BLK

Ваш контент 

BLK;

$registry = ipsRegistry::instance(); 
$registry->init();
$registry->output->setTitle('Название'); 
$registry->output->addContent($content);  
$registry->output->sendOutput();
?>

 

при этом надо учитывать условный путь до initdata.php, например:

 

если файл в корне сайта, то

require_once( 'initdata.php' );

 

если в папке, то

require_once( '../initdata.php' );

 

Способ годиться для 1-2 страниц.

Для большого количества страниц рекомендуется использовать соответствующее приложение (Pages, EasyPages)

Если размещаете файл в отдельной созданной директории (например сайт/папка/файл.php), то обзовите его index.php (в папке должен обязательно присутствовать файл index, можно просто пустой index.html, для защиты директории от посторонних глаз).

 

Проверено на 3.4.6 rus

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.