Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 10, 2007 09:55:20

NilovSerge
От:
Зарегистрирован: 2007-02-15
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

Всем привет!
Подскажите, пожалуйста, кто знает. Есть ZPT-страница. И ней в JavaScript-секции я хочу значение значение одной из переменных
определить используя python-скрипт. Делаю так:

<script language="javascript">
...
      var S=  '<span tal:replace="python:here.get_data_select_LabelName( label_code= &nbsp;DemographicsTitle&nbsp;, surv_lang_id= 2)" ';
      alert(S);
...
</script>
И в результате на экран выводится мой первозданный “<span” как я его и ввел. То есть Zope даже не обрабатывал TAL конструкцию. Он что
не обрабатывает то что внутри <script language=“javascript”>? С dtml-документами такое вроде работает.



Офлайн

#2 Июнь 12, 2007 11:37:06

nss
От:
Зарегистрирован: 2007-01-06
Сообщения: 103
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

Вообще, для жаваскриптов лучше использовать dtml, а в zpt писать <script src=“path-to-dtml-page” language=“javascript”>.



Офлайн

#3 Июнь 13, 2007 15:32:42

NilovSerge
От:
Зарегистрирован: 2007-02-15
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

Попробовал как советовал nss И не получилось :
Сначала в ZPT подключаю js-файл

<script language="JavaScript" src="dtml_func.js" type="text/javascript"></script>

Вызываю функцию из dtml_func.js :
var S= GetDemographicsTitle('DemographicsTitle', 2); 

В dtml_func.js определяю :
function GetDemographicsTitle(DemographicsTitle, LanguageId ) {
  alert( 'GetDemographicsTitle  DemographicsTitle::'+DemographicsTitle+'   LanguageId::'+LanguageId );
  Res= "<dtml-var expr=&nbsp;get_data_select_LabelName( 'DemographicsTitle', 2)&nbsp; >";
  alert(Res);
  return Res;
} 
И второй alert выводит на экран dtml-выражение а не значение из скрипта get_data_select_LabelName который лежит на директорию выше



Офлайн

#4 Июнь 14, 2007 09:10:12

tabajara
От:
Зарегистрирован: 2007-01-02
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

Zope не обрабатывает TAL внутри <script language=“javascript”>
<script language="javascript">
...
      var S=  '<span tal:replace="python:here.get_data_select_LabelName( label_code= &nbsp;DemographicsTitle&nbsp;, surv_lang_id= 2)" ';
      alert(S);
...
</script> 
Я думаю що всередині <script language=“javascript”> тали працюють. Вони обробляються в тегах, а var S= ‘<span tal:replace=“python:here.get_data_select_LabelName( label_code= &nbsp;DemographicsTitle&nbsp;, surv_lang_id= 2)” ’; - не тег а стрічка



Офлайн

#5 Июнь 14, 2007 12:21:17

nss
От:
Зарегистрирован: 2007-01-06
Сообщения: 103
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

NilovSerge
Res= "<dtml-var expr=&nbsp;get_data_select_LabelName( 'DemographicsTitle', 2)&nbsp; >";
alert(Res);
return Res;
}
И второй alert выводит на экран dtml-выражение а не значение из скрипта get_data_select_LabelName который лежит на директорию выше
Это точно валидный дтмл-код? Посмотрите как в плоне сделаны Resource Registries (portal_javascripts, portal_css)



Офлайн

#6 Июнь 18, 2007 10:33:35

NilovSerge
От:
Зарегистрирован: 2007-02-15
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

tabajara
Вони обробляються в тегах.
А нельзя ли чуть подробнее? Как это должно быть написано ?

С плоном к сожалению не знаком. dtml-выражение вроде правильное.



Офлайн

#7 Июнь 18, 2007 12:00:20

nss
От:
Зарегистрирован: 2007-01-06
Сообщения: 103
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

> Как это должно быть написано ?

Никак. ZPT предназначен только для xml-подобных документов, то есть для документа с древовидной структурой. конструкции tal:* позволяют менять эту древовидную структуру. Для не-xml документов (джаваскрипты, цсс, и т. п.) следует использовать только dtml.

Почитайте в Zope Book в каких случаях следует использовать zpt, а в каких – dtml.

Так как полностью вашего кода не видно, а с дтмл я почти не работал, то лично мне найти ошибку тяжело.



Отредактировано (Июнь 18, 2007 12:03:04)

Офлайн

#8 Июнь 18, 2007 16:03:22

tabajara
От:
Зарегистрирован: 2007-01-02
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Zope не обрабатывает TAL внутри <script language="javascript"> ?

nss Правильно! +1



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version