форум vBSupport.ru > vBulletin > vBulletin 4.0.x-4.1.х > Вопросы по vBulletin 4.0.x-4.1.х
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Makdak
Простоузер
Default Как исполнить php код в шаблоне VB CMS v. 4.1.5
0

Здравствуйте.
На форуме нашел несколько веток по этому вопросу. Все их прочел.
Сделал как там рекомендуют.

1. Админка-->Продукты и модули-->Добавить новый модуль

добавил модуль.
- Продукт - Vbulletin CMS
- Местоположение модуля - global_complete (пробовал и global_start)
- Заголовок - Komment
- Код PHP модуля:

PHP Code:
vB_Template::preRegister('vbcms_content_article_page',array('includedphp' => $includedphp)); 
  
  
ob_start();
  include(
'kommentarii/comment.php');
  
$includedphp ob_get_contents();
  
ob_end_clean(); 
Результат файла comment.php я хочу вывести в шаблоне vbcms_content_article_page.

Туда и разместил следующую строчку - {vb:raw includedphp}

Подскажите что я делаю не правильно? Не работает.
Спасибо.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
frodomogoni
Продвинутый
Default Я сделал так
0

Задача состоял в том, чтобы вывести последнюю запись дневника:
1)Создал шаблон top_slider:
HTML Code:
<a href="http://rottifuss.loc/entry.php?b={vb:raw slider.blogid}">{vb:raw slider.title}</a>
<p>{vb:raw slider.pagetext}</p>
- это будет подстановщик
2) В нужный шаблон вставил:
HTML Code:
{vb:raw template_hook.slider}
- Сюда выведется результат работы модуля
3) Создал модуль с кодом:
PHP Code:

$sql 
"SELECT * 
FROM  `forum_blog` AS t1
LEFT JOIN  `forum_blog_text` AS t2 ON t1.`blogid` = t2.`blogid` 
ORDER BY t1.`dateline` DESC 
LIMIT 1"
;
$query mysql_query($sql);
$row mysql_fetch_assoc($query);

$slider['blogid'] = $row['blogid'];
$slider['title'] = $row['title'];
$slider['pagetext'] = $row['pagetext'];

$templater vB_Template::create('top_slider'); 
$templater->register('slider'$slider); 
    
$template_hook['slider'] .= $templater->render(); //опытным путем я установил, что данный массив распарсивается при генерации страницы и заменяет конструкцию а ля {vb:raw template_hook.slider} 
Местоположение "global_start".

Вывод работает.

"А теперь вопрос, уважаемые знатоки!"
Почему в этом же коде не работает парсинг bb-кода:
PHP Code:
$bb = new vB_BbCodeParser
$slider['pagetext'] = $bb->do_parse($row['pagetext']); 
Пишет, что нет такого класса "vB_BbCodeParser".
Естественно, что первой мыслью было:
PHP Code:
 require_once(DIR '/includes/class_bbcode.php'); 
в этом случае система жалуется, что не знает метода "query_read_slave"("class_bbcode.php"[250]).
Подключать API заново - это криво.
Как сделать нормально?

Доп. материалы
https://www.vbulletin.com/docs/html?...rsion=40105604
http://members.vbulletin.com/api/
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
1

frodomogoni, попробуй подключить global.php
 
 
frodomogoni
Продвинутый
Default
0

SMak044, спасибо!
И того, общий выход модуля выглядит след. образом:
PHP Code:
require_once('global.php');
require_once(
'includes/class_bbcode.php');
//объявляем новый объект класса парсера
$parser = new vB_BbCodeParser($vbulletinfetch_tag_list());

//делаем выборку из бд
$sql "SELECT * 
FROM  `forum_blog` AS t1
LEFT JOIN  `forum_blog_text` AS t2 ON t1.`blogid` = t2.`blogid` 
ORDER BY t1.`dateline` DESC 
LIMIT 1"
;
$query mysql_query($sql);
$row mysql_fetch_assoc($query);

//распихиваем получившуюся выборку. Действие очень условное в надобности, скорее для наглдности  
$slider['blogid'] = $row['blogid'];
$slider['title'] = $row['title'];
//обращаемся к методу касса парсера
$slider['pagetext'] = $parser->parse$row['pagetext']);

//следующая конструкция выводит содержимое массива $slider
$templater vB_Template::create('top_slider'); 
$templater->register('slider'$slider); 
    
$template_hook['slider'] .= $templater->render(); 
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 11:59 AM.


Powered by vBulletin® Version 3.0.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...