форум vBSupport.ru > vBulletin > Old vB versions (3.0.x & 2.x.x) > vBulletin 3.6.x > vBulletin [3.6] Troubleshooting and Problems
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
skif
Почти новичок
Question вывод хака при помощи templatecache
0

Пишу хак. Застрял вот на чем. Место, откуда хак выводится в шаблон FORUMHOME выглядит так
Code:
$vbulletin->templatecache['FORUMHOME'] = str_replace ( '<!--SK-->',$sk, $vbulletin->templatecache['FORUMHOME']);
вроде бы все нормально работает, но когда в переменную $sk попадает что-то вроде
Code:
<param name="bgcolor" value="000000" />
(это необходимо для вывода flash-ролика), то сразу вываливается ошибка
Code:
Parse error:  parse error, unexpected T_STRING in z:\home\test1.ru\www\forum\index.php(540) : eval()'d code on line 16
Опытным путем выяснилось, что ошибку вызывает появление в текстовой переменной $sk двойных кавычек.. т.е. ". Вот как это можно все-таки вывести текст, в котором он содержится с помощью замены подстроки в $vbulletin->templatecache['FORUMHOME']. Или может вообще как-то по-другому это делается?

ps. и ещё в нагрузку такой маленький вопросец, если можно.. чем отличаются перехватчики событий <hook>forumhome_start</hook> и <hook>forumhome_complete</hook>?

-
Code:
 <hooktype type="forumhome">
     <hook>forumhome_start</hook> 

    <hook>forumhome_event</hook> 

    <hook>forumhome_loggedinuser</hook> 

    <hook>forumhome_complete</hook> 

 </hooktype>
ADD: проблема-таки решилась.. просто нужно экранировать эти кавычки (использую ф-ию addslashes). все выводится. Но может кто объяснит с какого перепугу требуется эта операция?

Last edited by skif : 08-16-2007 at 09:38 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
g0rn
Гуру
Default
0

мда. выучи хотя бы основы пхп синтаксиса. кавычки - это спец-символ, можно использовать addslashes, можно просто ставить перед кавычкой \
а хуки вроде не чем не отличаются.
 
 
skif
Почти новичок
Default
0

Quote:
Originally Posted by g0rn View Post
мда. выучи хотя бы основы пхп синтаксиса.
спасибо за совет, но я скорее просто туплю ... иногда.

Меня другое интересует. Видишь-ли, когда я, например, вывожу любой текст ( echo(), print() ) ну или просто работаю с текстовыми переменными, мне не обязательно экранировать спец. символы. Это нужно делать в запроса к БД, при пересылке данных ($_POST ..) . Так вот я к чему.. $vbulletin->templatecache['FORUMHOME'] - это по сути просто текстовая переменная ... и ,по идее, для такой операции, как str_replace не надо ничего экранировать. Как считаешь?

Quote:
Originally Posted by g0rn View Post
а хуки вроде не чем не отличаются.
это, честно говоря несколько удивляет... н-да
 
 
g0rn
Гуру
Default
1

нет. надо. в templatecache попадает обработанный шаблон, то есть заменяются <if> и т.д.
потом будет eval этого кода. а у тебя в нем неэкраннированные спец-символы...
 
 
skif
Почти новичок
Default
0

ну вот.. теперь понял почему. с vb ещё толком-то не работал, поэтому не знаю как-там что функционирует.
 


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 03:18 AM.


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