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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [smarty] доступ к константам 
V
    Опции темы
Ksarien
Дата 25.1.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нужна помощь. мне нужно в шаблоне смарти получить значение константы, которая объявлена в php сценарии 
Код

define('MY_CONST', 999);


в мануале смарти нашел:
Код

{$smarty.const.MY_CONST}


не работает. 

смарти выдает ошибку
Код

Fatal error:  Smarty: [in index.tpl line 40]: syntax error: $smarty.const is an unknown reference in F:\wwwroot\agatcms\smarty\Smarty_Compiler.class.php on line 1387

помогите плиз


Это сообщение отредактировал(а) Ksarien - 26.1.2007, 17:04
PM MAIL   Вверх
euginewm
Дата 20.2.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Drupal Development



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

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



прошу обратить внимание на переменные класса Smarty.class.php

Цитата

$security_settings
Это используется для изменения или указания настроек безопасности когда безопасносить (security) включена. Допустимые значения: 

ALLOW_CONSTANTS - true/false. Если установлено в true, разрешается использование констант вида {$smarty.const.name}. По умолчанию равно "false" из соображений безопасности.


Внутри класса это выглядит так:
Код

    /**
     * This enables template security. When enabled, many things are restricted
     * in the templates that normally would go unchecked. This is useful when
     * untrusted parties are editing templates and you want a reasonable level
     * of security. (no direct execution of PHP in templates for example)
     *
     * @var boolean
     */
    var $security       =   false;

    /**
     * These are the security settings for Smarty. They are used only when
     * {@link $security} is enabled.
     *
     * @var array
     */
    var $security_settings  = array(
                                    'PHP_HANDLING'    => false,
                                    'IF_FUNCS'        => array('array', 'list',
                                                               'isset', 'empty',
                                                               'count', 'sizeof',
                                                               'in_array', 'is_array',
                                                               'true', 'false', 'null'),
                                    'INCLUDE_ANY'     => false,
                                    'PHP_TAGS'        => false,
                                    'MODIFIER_FUNCS'  => array('count'),
                                    'ALLOW_CONSTANTS'  => false
                                   );


Необходимо передать в объект класса значение переменной:
Код

$smarty->security  = true;  // включить настройки безопасности
$smarty->security_settings['ALLOW_CONSTANTS'] = true;   // разрешить доступ к констрантам

PM MAIL Skype   Вверх
maykoff
Дата 5.3.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как вариант - выйти из смарти
php
Код

{php}
$smarty->assign('const',CONST);
{/php}

html
Код

{$const}

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


Добрый кот
***


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

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



maykoff
Не, это не дело! Во-первых по умолчанию тэги {php} не обрабатываются, во-вторых -- просто нехорошо.
Лучше просто в нашем коде, а не в Smarty:
Код

$smarty->assign('const',CONST);
$smarty->display('my.tpl');




--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Ksarien
Дата 28.7.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



все заработало
требовалось 'ALLOW_CONSTANTS'  => true
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




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


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

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