VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
[Статья] Создание собственного раздела меню в кабинете пользователя
17
Часто возникает желание создать свой контент, доступ к которому будет из кабинета.
Эта статья описывает порядок действий при создании своего раздела меню.
Создаем файл содержания
Пример файла exemlpemenu1.php (файл во вложении)
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array('user', 'timezone', 'posting', 'cprofilefield', 'cppermission');
// get special data templates from the datastore
$specialtemplates = array(
'smiliecache',
'bbcodecache',
'banemail',
'ranks',
'noavatarperms'
);
// pre-cache templates used by all actions
$globaltemplates = array(
'USERCP_SHELL'
);
$exemplemenu1positioncontent = 'Пример содержания страницы позиции № 01 в разделе № 01 меню';
// draw cp nav bar
construct_usercp_nav('menu_01_item_01');
// $navbits[''] = $vbphrase['название страницы'];
$navbits[''] = 'Пример содержания страницы позиции № 01 в разделе № 01 меню';
$templatename = 'exemplemenu1_template';
}
IF($_REQUEST['do'] == 'position2')
{
$exemplemenu1positioncontent = 'Пример содержания страницы позиции № 02 в разделе № 01 меню';
// draw cp nav bar
construct_usercp_nav('menu_01_item_02');
// $navbits[''] = $vbphrase['название страницы'];
$navbits[''] = 'Пример содержания страницы позиции № 02 в разделе № 01 меню';
$templatename = 'exemplemenu1_template';
}
IF($_REQUEST['do'] == 'position3')
{
$exemplemenu1positioncontent = 'Пример содержания страницы позиции № 03 в разделе № 01 меню';
// draw cp nav bar
construct_usercp_nav('menu_01_item_03');
// $navbits[''] = $vbphrase['название страницы'];
$navbits[''] = 'Пример содержания страницы позиции № 03 в разделе № 01 меню';
$templatename = 'exemplemenu1_template';
}
IF($_REQUEST['do'] == 'position4')
{
$exemplemenu1positioncontent = 'Пример содержания страницы позиции № 04 в разделе № 01 меню';
// draw cp nav bar
construct_usercp_nav('menu_01_item_04');
// $navbits[''] = $vbphrase['название страницы'];
$navbits[''] = 'Пример содержания страницы позиции № 04 в разделе № 01 меню';
$templatename = 'exemplemenu1_template';
}
IF($_REQUEST['do'] == 'position5')
{
$exemplemenu1positioncontent = 'Пример содержания страницы позиции № 05 в разделе № 01 меню';
// draw cp nav bar
construct_usercp_nav('menu_01_item_05');
// $navbits[''] = $vbphrase['название страницы'];
$navbits[''] = 'Пример содержания страницы позиции № 05 в разделе № 01 меню';
$templatename = 'exemplemenu1_template';
}
// #############################################################################
// spit out final HTML if we have got this far
if ($templatename != '')
{
// make navbar
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
В общем и целом в этом файле все просто.
Для нас важны несколько элементов:
construct_usercp_nav('menu_01_item_01'); - эта функция дает возможность отображать текущее положение позиции меню, вызванной ссылкой exemlpemenu1.php?do=position1
$navbits[''] = 'Пример содержания страницы позиции № 01 в меню'; - это значение будет выведено в навигационной панели.
$templatename = 'exemplemenu1_template'; - это шаблон, который будет вызван для вывода желаемого содержания. Например:
HTML Code:
$exemplemenu1positioncontent
можно обойтись и без шаблона, но тогда результат набо вывести в переменную $HTML, в этом случае оставте переменную $templatename пустой
PHP Code:
$templatename = '';
($hook = vBulletinHook::fetch_hook('exemlpemenu1_usercp_complete')) ? eval($hook) : false; - эта строка позволяет вывести наше новое меню при выводе нашего содержания. Для работы этой строки необходимо сделать файл типа hooks_exemlpemenu1.xml в каталоге includes/xml/
Создаем модуль вставки элементов массива.
Это необходимо для корректного отображения текущей позиции в меню.
Модуль надо повесить на хук usercp_nav_start
Содержание: