Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [smarty] Smarty & JawaScript 
:(
    Опции темы
grebnev
Дата 27.3.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



Есть форма, в к.т. хочу проверять правильность ввода на JawaScript. Форма представляет собой файл шаблона, обрабатываемый библиотекой Smarty. При выполнении скрипта возникает ошибка.
Вопрос: можно-ли использовать JawaScript в шаблонах Smarty, если да, то чево нужно или не нужно делать???
PM MAIL   Вверх
StachelDraht
Дата 27.3.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 19.1.2006

Репутация: нет
Всего: 1



вопрос не по теме
что за библиотека Smarty???
PM MAIL   Вверх
skalex
Дата 27.3.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Что за ошибка возникает ?

StachelDraht, читай тут: http://smarty.php.net/

Это сообщение отредактировал(а) skalex - 27.3.2006, 17:41
PM   Вверх
smartov
Дата 27.3.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



grebnev, можно использовать, но надо обрамлять тегами {literal}

типа

Код

{literal}

<script>
function validate()
{
  if ......
}
</script>

{/literal}

PM MAIL   Вверх
skalex
Дата 27.3.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



PM   Вверх
Alone
Дата 4.5.2006, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



кроме всего прочего не стоит забывать и о том, что тег {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> 


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
smartov
Дата 4.5.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Alone
Цитата(Alone @  4.5.2006,  12:37 Найти цитируемый пост)
function a(){ldelim}
    var z=0;
    return;
{rdelim}

Представляю себе такие функции
Код

function a(){ldelim}
    if (...){ldelim}
    ...
    {rdelim} else {ldelim}
    ...
    {rdelim}
    var z=0;
    return;
{rdelim}


Крясота неописсуемая ;) А если еще и delim-ы стоят не { тогда вообще зашибись все станет smile
ИМХО этот способ лучше не юзать никогда 
PM MAIL   Вверх
Alone
Дата 4.5.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Понимаю, но юзать приходится.

Как вариант могу предложить отдельный последовательный вывод парсеных блоков и хтмл кода с яваскриптом. Типа:
Код

$smarty->display("header.tpl");
include("javascript.html");
$smarty->display("content.tpl");
$smarty->display("footer.tpl");


Хотя тоже не лучшее решение...

PS: Не забывайте что это специфическая проблема тех случаев, когда действительно надо смешивать яваскрипт код и теги смарти, и не так уж и часто встречающаяся.
Так что не надо "загонять под плинтус" smile  

Это сообщение отредактировал(а) Alone - 4.5.2006, 17:19


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
smartov
Дата 4.5.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Alone, хм. Ну а не лучше ли тогда
1.
Код

{literal}
<script>
function myfunc()
{
    alert({/literal}{$variable_from_smarty){literal});
}
</script>
{/literal}


2. Переназначить 
ldelim = {%
rdelim = %}
Тогда о проблеме фигурных скобок можно забыть 
PM MAIL   Вверх
Ksarien
Дата 25.5.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2006

Репутация: нет
Всего: нет



можно переназначить еще так
{ - <{
} - }> 
PM MAIL   Вверх
st0neC0ld
Дата 4.8.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



я вставляю яваскрипт, как часть контента:

Код

<?php
..skipped..
$smarty = new Smarty();

$js='<script>..skipped..</script>';

$smarty->assign('java1',$js);

$smarty->display('templ.tpl');
?>


Код

<html><head></head><body>
{$java1} text 123 123
</body></html>


или скрипты изменять нет возможности?

Это сообщение отредактировал(а) st0neC0ld - 4.8.2006, 16:03
PM   Вверх
Alone
Дата 11.8.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Ksarien,  не забываем также и о читабельности такого кода...
Ко всему прочему, если к примеру на 77% завершения работы над проектом тебе понадобилось вставить яваскрипт, и ты решил пойти путем замены тэгов, то врят ли кто назовет такой ход умным... smile

На данный момент я для себя решил задачу так:
Если яваскрипт не содержит переменных Smarty (а по логике вещей, он не должен их содержать) то выносим код скрипта в подгружаемый файл и инклудим этот файл в шаблоне.

а-ля: {include file="jscript.js"}


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
ewolf
Дата 19.8.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



Во-первых, чем не устраивает 

Код


<script>
{literal}

function Foo()
{

}

{/literal}
</script>



?

Во-вторых чем плох такой способ

Код


<script type="text/javascript" src='script.js'></script>



?

И зачем использовать такой ужас, как 

Код

$smarty->display("header.tpl");
include("javascript.html");
$smarty->display("content.tpl");
$smarty->display("footer.tpl");


при котором вся идея шаблонизации уезжает далеко и надолго? smile
PM MAIL ICQ   Вверх
smartov
Дата 19.8.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



ewolf
Предлагаю тебе читать тему сначала, внимательно и вдумчиво а мессаги только потом постить.
PM MAIL   Вверх
ST_Falcon
Дата 11.11.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Ksarien
Цитата

можно переназначить еще так
{ - <{
} - }>  


ага... прикольно будет выглядеть например:
Код

<a href="<{url}>">text</a>

 smile 
PM MAIL ICQ   Вверх
Ksarien
Дата 6.2.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.5.2006

Репутация: нет
Всего: нет



2 ST Falcon
а что прикольного?? не вижу принципиальной разницы между '{' и '<{'.
юзаю и пока вопросов не возникало. зато не приходится js выносить в отдельный файл.
PM MAIL   Вверх
euginewm
Дата 20.2.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Drupal Development



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.9.2006
Где: Zaporozhye

Репутация: нет
Всего: нет



Получается, что тут как минимум 3 варианта:

1) переназначать фигурные скобки.
2) брать весь скрипт в {literal} {/literal}
3) выносить JS в отдельный файл

кому уж как удобнее.  smile 
PM MAIL Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.1009 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.