Среда , 14 Ноябрь 2018
Home / Vbulletin 4 / Создаем собственную Vbuletin страницу
Страница Vbulletin
Страница Vbulletin

Создаем собственную Vbuletin страницу

Инструкции о том как создать собственную страницу:

1. Создать PHP-страницу:
– Создать новый файл, и назвать его как вам больше нравится (в нашем случае скажем test.php).
– Откройте test.php и добавить следующее (замените в коде TEST на то, как называется ваш шаблон – ВНИМАНИЕ!! Имя шаблона с учетом регистра):

Автор: Алексей Раков

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'test');
define('CSRF_PROTECTION', true);
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('TEST',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir ('/path/to/your/forums');
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = construct_navbits(array('' => 'Test Page'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'My Page Title';

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());

?>

– Будьте внимательны и проверьте, что вы изменили “ТЕСТ” на фактическое имя вашего шаблона (ВНИМАНИЕ: имя шаблона чувствительны к регистру!), И измините ‘тест’ в имени файла на уникальное имя для данной страницы.
Кроме того,изменените “Test Page» и  ‘My Page Title’, чтобы все, что выхотите показать в navbits, отображалось правильно (просто пример).
2. Создание шаблона:
– Если вы находитесь в режиме отладки, создайте шаблон в “MASTER STYLE”, так чтобы он появился во всех ваших стилях, в противном случае убедитесь, что вы создаете шаблон в том стиле который вы используете.
Если вы все это выполнили, заполняем наш шаблон TEST (ВНИМАНИЕ:! Имя шаблона с учетом регистра) со следующим содержанием:

{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <head>
    <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
    {vb:raw headinclude}
    {vb:raw headinclude_bottom}
  </head>
  <body>

    {vb:raw header}

    {vb:raw navbar}

    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>

    <h2 class="blockhead">Title</h2>
    <div class="blockbody">
      <div class="blockrow">
        Text
      </div>
    </div>

    {vb:raw footer}
  </body>
</html>

Ну вот вроде бы и все Но стоит еще над моментом задуматься, создали страницу это хорошо, но когда пользователь смотрит на нее, в блоке кто онлайн будет показанно что пользователь находится в неизвестном местоположении.
Но мы то хотим что бы было все красиво?

Ищем хукonline_location_process и добавляем в него следующий код:

switch ($filename)
{
    case 'test.php':
        $userinfo['activity'] = 'mypage';
        break;
// add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all.
}

Ищем online_location_unknown и добавляем:

switch ($userinfo['activity'])
{
    case 'mypage':
        $userinfo['where'] = '<a href="test.php?'.$vbulletin->session->vars[sessionurl].'">My Page</a>';
        $userinfo['action'] = "Viewing My Page";
        $handled = true;
        break;
// add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all.
}

About artscripts

Check Also

восстановление vbulletin часть 6

Взломали форум — начинаем восстанавливать (Часть 6)

Настала время заменить все файлы Vbulletin форума новой копией. Для этого скачаем новый zip архив …

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.