Пользовательские страницы на IP.Board 3 - Дизайн и модификация Invision Power Board

Перейти к содержимому

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

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

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

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

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


И вопрос.

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

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

Buskopan 11 ноября 2010 - 09:56 сказал(а):

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

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

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

Скорее всего, для полноценного функционала нужен другой способ, через регистрацию страницы в АЦ. Напишу позже, как и что.
Здесь же форум нечего "не знает" о новых страницах
1
А если есть готовый index.php страницы, как можно его использовать?
0
А если есть готовый index.php страницы, как можно его использовать?
0
Не понял.
0
И где правильный способ?
0
А можно ли закрыть страницу от гостей? Чтобы они не могли ее просматривать.
0
Можно все. Как закрыть ссылку на эту страницу, так для гостей сделать вывод пустой странице или другого контента
0
на 3.2.3 этот вариант не пашет
0
Здравствуйте, проделал всё по инструкции, контент выводится, но используется не тот шаблон. По-умолчанию стоит шаблон css_3 (он третий по списку, ставлю его по-умолчанию, нажимаю Ок и после мне пишет, что обновлены файлы в папке css_3), а стили берутся для созданной страницы из папки css_1 (смотрю уже файербагом по факту). Может это через константу какую можно установить, какой шаблон использовать для страницы?
0
Поправите для ipb 3.3.4 а то не работает.
0
создание пользовательских страниц (для версии 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
1
Страница 1 из 1

Обратные ссылки на эту запись [ URL для обратной ссылки ]

Нет обратных ссылок на эту запись

Случайное изображение

Каинды

0 посетителей

0 гостей
0 пользователей
0 скрытых

Теги

    Категории

    Последние посетители

    • Strategius  »
      26 Ноя 2016 - 11:24
    • awam  »
      24 Ноя 2016 - 20:41
    • namut  »
      20 Ноя 2016 - 20:47
    • Eloim  »
      14 Ноя 2016 - 19:27
    • siv1987  »
      14 Ноя 2016 - 19:21

    MyBlogLog

    Twitter


    Контактная информация

    Вопросы по работе сайта

    +7 (917) 501-4765
    C 10 до 20 в рабочие дни (время московское)

    Техническая поддержка

    Контактные данные специалистов

    Дизайн форумов

    IPB 3.x ¦ IPB 2.x

    Бесплатные шаблоны

    IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
    Лицензия на использование ¦ Ваша поддержка ¦ О проекте
    Copyright © 2005-2017 IPBSkins.ru Team
    При копировании материалов с сайта
    прямая ссылка на источник обязательна