Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
  • entries
    11
  • comments
    54
  • views
    83,293

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

Sign in to follow this  
Ph-A

445 views

Иногда на форуме требуется создание индивидуальных статических страниц, сохраняя оформление форума. Для этого советуют использовать (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

  • Upvote 5
Sign in to follow this  


13 Comments


Recommended Comments

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

Share this comment


Link to comment

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

 

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

 

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

 

 

И вопрос.

 

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

 

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

  • Upvote 2

Share this comment


Link to comment

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

 

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

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

 

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

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

  • Upvote 1

Share this comment


Link to comment

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

Share this comment


Link to comment

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

Share this comment


Link to comment
Guest uaanvi

Posted

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

Share this comment


Link to comment

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

Share this comment


Link to comment
Guest SerJant

Posted

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

Share this comment


Link to comment
Guest sergey_webdok

Posted

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

Share this comment


Link to comment

создание пользовательских страниц (для версии 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

  • Upvote 1

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...