Перейти к содержимому


использование специальной переменной ADDITIONAL_JAVASCRIPT


Сообщений в теме: 11

#1 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 26 Апрель 2011 - 23:39

в одной из тем упоминалась переменная $ADDITIONAL_JAVASCRIPT
попытался передать ей скрипт в вычислениях в таблице - нулевой результат
необходимо скрипт запускать после формирования всей страницы (причем это страница с таблицей, а не отдельной записью), находить необходимый элемент и вносить изменения в работу
как реализовать?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Апрель 2011 - 09:48

Просмотр сообщенияandibrag (27.4.2011, 0:39) писал:

в одной из тем упоминалась переменная $ADDITIONAL_JAVASCRIPT
Не напомните, в какой именно? Честно говоря первый раз слышу.

#3 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Апрель 2011 - 11:20

Просмотр сообщенияРазработчик (27.4.2011, 9:48) писал:

Не напомните, в какой именно? Честно говоря первый раз слышу.
http://clientbase.ru/forum/index.php?showt...ONAL_JAVASCRIPT

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#4 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2011 - 11:21

Вычисления в таблице, срабатывают только при сохранении записи.
Поэтому ваш код не добавляется. Вам следует например сделать одно из выводимых полей вычисляемым, и в данном вычислении заполнять переменную.

#5 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Апрель 2011 - 11:26

Просмотр сообщенияAnalitic (27.4.2011, 11:21) писал:

Вычисления в таблице, срабатывают только при сохранении записи.
Поэтому ваш код не добавляется. Вам следует например сделать одно из выводимых полей вычисляемым, и в данном вычислении заполнять переменную.
вычисления в поле при выводе всей таблицы будут осуществляться столько раз сколько отображается записей на странице?
или код в поле отрабатывает только при выводе конкретной записи?
возможно в настройках реализовать поле для добавления скрипта в эту переменную по тому же принципу, как сделано с альтернативным CSS?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#6 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2011 - 11:57

> вычисления в поле при выводе всей таблицы будут осуществляться столько раз сколько отображается записей на странице?
да, вам следуюет использовать глобальную переменную чтобы вычисление срабатывало один раз.
> или код в поле отрабатывает только при выводе конкретной записи?
код будет срабатывать при каждом выводе поля на экран.
>возможно в настройках реализовать поле для добавления скрипта в эту переменную по тому же принципу, как сделано с альтернативным CSS?
возможно, в одной из будущих версий, будет реализован отдельный редактор этого кода. но на текущий момент, изменение переменной smarty, возможно только через вычисляемые поля.

#7 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Апрель 2011 - 12:08

Просмотр сообщенияAnalitic (27.4.2011, 11:57) писал:

вам следует использовать глобальную переменную чтобы вычисление срабатывало один раз
на текущий момент, изменение переменной smarty, возможно только через вычисляемые поля.
т.о. получается, что если я в вычисляемом поле пропишу $ADDITIONAL_JAVASCRIPT=" ... мой яваскрипт ... "; это не возымеет действия, поскольку значение переменная получает уже после того, как к ней произошло обращение из index_top.tpl
смысл в этой переменной?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#8 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2011 - 12:18

Просмотр сообщенияandibrag (27.4.2011, 12:08) писал:

т.о. получается, что если я в вычисляемом поле пропишу $ADDITIONAL_JAVASCRIPT=" ... мой яваскрипт ... "; это не возымеет действия, поскольку значение переменная получает уже после того, как к ней произошло обращение из index_top.tpl
смысл в этой переменной?
Возможно вам стоит почитать про шаблонизатор Smarty. Хотя бы базовые понятия.
Например переменая задается в виде $smarty->assign("ADDITIONAL_JAVASCRIPT","ваш скрипт");
Интерпретация шаблона сматри происходит уже после вычисления всех вычисляемых полей.

#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Апрель 2011 - 13:56

Просмотр сообщенияAnalitic (27.4.2011, 12:18) писал:

переменая задается в виде $smarty->assign("ADDITIONAL_JAVASCRIPT","ваш скрипт");
прописал в вычисляемом поле
$smarty->assign('ADDITIONAL_JAVASCRIPT' , 'alert("12345678");');
выскакивает
Fatal error: Call to a member function assign() on a non-object in /home/m/megatavr/public_html/cb/include/functions1.php(132) : eval()'d code on line 1

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#10 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2011 - 14:02

вставьте
global $smarty;
в начале вычислений.

#11 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Апрель 2011 - 14:04

Просмотр сообщенияAnalitic (27.4.2011, 14:02) писал:

вставьте
global $smarty;
в начале вычислений.
я думал она предопределена
все работает
спасибо

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#12 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2011 - 14:10

В php cуществует такое понятие как область видимости. $smarty предопределена. Но чтобы использовать глобальную переменную, вы должы указать это явно.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных