| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Libraries > [smarty] Smarty & JawaScript |
| Автор: grebnev 27.3.2006, 15:51 |
| Есть форма, в к.т. хочу проверять правильность ввода на JawaScript. Форма представляет собой файл шаблона, обрабатываемый библиотекой Smarty. При выполнении скрипта возникает ошибка. Вопрос: можно-ли использовать JawaScript в шаблонах Smarty, если да, то чево нужно или не нужно делать??? |
| Автор: StachelDraht 27.3.2006, 17:21 |
| вопрос не по теме что за библиотека Smarty??? |
| Автор: skalex 27.3.2006, 17:40 |
| Что за ошибка возникает ? StachelDraht, читай тут: http://smarty.php.net/ |
| Автор: smartov 27.3.2006, 17:45 | ||
| grebnev, можно использовать, но надо обрамлять тегами {literal} типа
|
| Автор: skalex 27.3.2006, 17:45 |
| И читали ли Вы вот это? http://smarty.php.net/manual/ru/language.function.literal.php http://smarty.php.net/manual/ru/language.escaping.php |
| Автор: Alone 4.5.2006, 13:37 |
| кроме всего прочего не стоит забывать и о том, что тег {literal} прекращает интерпретацию Smarty тегов. Т.е. если между {literal} будет находится Smarty тег, то он проигнорируется {if isset($var)} ddd {/if} в данном случае if - игнорируется {/literal} как вариант можно использовать {ldelim} & {rdelim} они заменяют { и } соответственно. пример: <script language="javascript" type="text/javascript"> function a(){ldelim} var z=0; return; {rdelim} </script> |
| Автор: smartov 4.5.2006, 14:42 | ||
| Alone, Представляю себе такие функции
Крясота неописсуемая ;) А если еще и delim-ы стоят не { тогда вообще зашибись все станет ИМХО этот способ лучше не юзать никогда |
| Автор: Alone 4.5.2006, 17:18 | ||
| Понимаю, но юзать приходится. Как вариант могу предложить отдельный последовательный вывод парсеных блоков и хтмл кода с яваскриптом. Типа:
Хотя тоже не лучшее решение... PS: Не забывайте что это специфическая проблема тех случаев, когда действительно надо смешивать яваскрипт код и теги смарти, и не так уж и часто встречающаяся. Так что не надо "загонять под плинтус" |
| Автор: smartov 4.5.2006, 19:00 | ||
| Alone, хм. Ну а не лучше ли тогда 1.
2. Переназначить ldelim = {% rdelim = %} Тогда о проблеме фигурных скобок можно забыть |
| Автор: Ksarien 25.5.2006, 22:49 |
| можно переназначить еще так { - <{ } - }> |
| Автор: st0neC0ld 4.8.2006, 16:03 | ||||
я вставляю яваскрипт, как часть контента:
или скрипты изменять нет возможности? |
| Автор: Alone 11.8.2006, 17:45 |
| Ksarien, не забываем также и о читабельности такого кода... Ко всему прочему, если к примеру на 77% завершения работы над проектом тебе понадобилось вставить яваскрипт, и ты решил пойти путем замены тэгов, то врят ли кто назовет такой ход умным... На данный момент я для себя решил задачу так: Если яваскрипт не содержит переменных Smarty (а по логике вещей, он не должен их содержать) то выносим код скрипта в подгружаемый файл и инклудим этот файл в шаблоне. а-ля: {include file="jscript.js"} |
| Автор: ewolf 19.8.2006, 00:05 | ||||||
Во-первых, чем не устраивает
? Во-вторых чем плох такой способ
? И зачем использовать такой ужас, как
при котором вся идея шаблонизации уезжает далеко и надолго? |
| Автор: smartov 19.8.2006, 23:03 |
| ewolf, Предлагаю тебе читать тему сначала, внимательно и вдумчиво а мессаги только потом постить. |
| Автор: ST_Falcon 11.11.2006, 19:28 | ||||
Ksarien,
ага... прикольно будет выглядеть например:
|
| Автор: Ksarien 6.2.2007, 09:29 |
| 2 ST Falcon а что прикольного?? не вижу принципиальной разницы между '{' и '<{'. юзаю и пока вопросов не возникало. зато не приходится js выносить в отдельный файл. |
| Автор: euginewm 20.2.2007, 12:10 |
| Получается, что тут как минимум 3 варианта: 1) переназначать фигурные скобки. 2) брать весь скрипт в {literal} {/literal} 3) выносить JS в отдельный файл кому уж как удобнее. |