Кавычки в popup

Nikit

Guest
Кавычки в popup

Описание проблемы:
popup не приниает двойные кавычки, а при изменении их на простые - экранирует.

Подробнее:
1. Затаскиваю implod'ом tpl-файл в переменную.
ВАЖНО: в шаблоне уже есть вставки {...}
$asd=implode(''',file.....
2. $smarty->assign("help1", $asd);
3. Компилирую страницу из шаблона.
...
<A HREF="" {popup sticky=true capicon="img/info4.gif" caption="" trigger=onClick closecolor=#ffffff closetext="" delay=10 fgcolor=#fffff5 autostatus=true bgcolor=#737365 text=$help1}onclick="return false;">
...
4. В итоге - см. описание проблемы.

Может, кто-нибудь сталкивался. Посоветуйте, чтоб не придумывать велосипеда.

Спасибо.
 

nw

Новичок
Может я чего не понял, но зачем имплодом в переменную?
$asd = $smarty->fetch("bla-bla.tpl");
 

Nikit

Guest
пробовал сперва через fetch- не помогает. потом стал пробовать нативными средствами PHP - показал последний вариант.
 

nw

Новичок
Попробовал проделать то же самое (насколько это возможно). Все помоему сработало. Правда text="$help1" в кавычки завернул (в примере text=$help1).
Причем с фетчем.

-~{}~ 24.03.05 16:14:

В некоторых случаях, в тексте, который идет в параметр text, можно кавычки заменять на спецсимволы & quot;
 

Nikit

Guest
Спасибо, но промоделировать все полностью Вам действительно сложно.

Могу подробнее.

Внутри tpl, который забираю fetch'em есть смартовский select, значения которого инклудятся из глобального массива.

Сбой лежит именно в этой комбинации, на мой взгляд.

Т.е. страница компилится корректно, только значения селекта не показываются, потому как выглядят они примерно так:

<select>
<option label=\'asd\' value=\'asd\'>
</select>

Соответственно, сам селект показывается, только пустой.

Спасибо.

-~{}~ 24.03.05 16:19:

пробовал и & quot - не помогает.

Думаю, что в overlib'е дело. Он экранирует все кавычки в любом случае. :((
И html этого конечно не поймет.

Спасибо

-~{}~ 25.03.05 08:47:

Разобрался. Так и есть как предполагал в прошлом посте.
Исправил "function.html_options.php" (двойные кавычки на экранированные обычные).


99 строка теперь выглядит так:
$_html_result = '<option label=\'' . smarty_function_escape_special_chars($value) . '\' value=\'' .

100 строка теперь выглядит так:
smarty_function_escape_special_chars($key) . '\'';

111 строка теперь выглядит так:
$optgroup_html = '<optgroup label=\'' . smarty_function_escape_special_chars($key) . '\'>' . "\n";

Спасибо,
 
Сверху