setCacheDir() 공개 메소드

Set cache directory
public setCacheDir ( string $cache_dir ) : Smarty
$cache_dir string directory to store cached templates in
리턴 Smarty current Smarty instance for chaining
예제 #1
0
 /**
  * @param waSystem $system
  * @param array $options
  * @return waSmarty3View
  */
 public function __construct(waSystem $system, $options = array())
 {
     $this->smarty = new Smarty();
     parent::__construct($system, $options);
     if (isset($options['auto_literal'])) {
         $this->smarty->auto_literal = $options['auto_literal'];
     }
     if (isset($options['left_delimiter'])) {
         $this->smarty->left_delimiter = $options['left_delimiter'];
     }
     if (isset($options['right_delimiter'])) {
         $this->smarty->right_delimiter = $options['right_delimiter'];
     }
     $this->smarty->setTemplateDir(isset($options['template_dir']) ? $options['template_dir'] : $system->getAppPath());
     $this->smarty->setCompileDir(isset($options['compile_dir']) ? $options['compile_dir'] : $system->getAppCachePath('templates/compiled/'));
     $this->smarty->setCacheDir($system->getAppCachePath('templates/cache/'));
     if (ini_get('safe_mode')) {
         $this->smarty->use_sub_dirs = false;
     } else {
         $this->smarty->use_sub_dirs = true;
     }
     // not use
     //$this->smarty->setCompileCheck(wa()->getConfig()->isDebug()?true:false);
     $this->smarty->addPluginsDir($system->getConfig()->getPath('system') . '/vendors/smarty-plugins');
     $this->smarty->loadFilter('pre', 'translate');
 }
예제 #2
0
 /**
  * Initialize the view
  * Require the class to have an instance of the provider
  *
  * @param string $templateFolder Optional template folder to use instead of the default /frontend/module/views/
  * @return Viewable
  */
 protected function initializeView($templateFolder = null)
 {
     if (!$this->view) {
         $this->view = new \Smarty();
         $configuration = $this->getConfiguration();
         $appFolder = $configuration->get('system.app.folder');
         if ($templateFolder === null) {
             $module = $this->getModuleFromNamespace();
             $templateFolder = $appFolder . '/frontend/' . $module . '/views/';
         }
         // setup the template folder
         $this->view->setTemplateDir($templateFolder);
         // setup the temporary folders
         $tempFolder = $configuration->get('system.temp.folder');
         $this->view->setCompileDir($this->checkWritable($tempFolder . '/smarty_compiled/'));
         $this->view->setCacheDir($this->checkWritable($tempFolder . '/smarty_cache/'));
         $this->view->setConfigDir($this->checkWritable($tempFolder . '/smarty_config/'));
         // add all the plugin folders to the view
         foreach ($configuration->get('view.plugin.folders', array()) as $pluginFolder) {
             $this->view->addPluginsDir($pluginFolder);
         }
         $this->view->addPluginsDir($appFolder . '/../vendor/mystlabs/mistyforms/src/MistyForms/smarty_plugins');
         $this->view->addPluginsDir($appFolder . '/../vendor/mystlabs/mistyapp/src/MistyApp/smarty_plugins');
         // if we are in development mode we want to regenerate the views at every render
         if ($configuration->get('system.development.mode', false)) {
             $this->view->compile_check = true;
             $this->view->force_compile = true;
         }
     }
     return $this;
 }
예제 #3
0
 public function __construct()
 {
     @session_start();
     $this->smarty = new Smarty();
     $this->smarty->setTemplateDir(realpath('../install/templates/'));
     $this->smarty->setCompileDir(nZEDb_LIBS . 'smarty/templates_c/');
     $this->smarty->setConfigDir(nZEDb_LIBS . 'smarty/configs/');
     $this->smarty->setCacheDir(nZEDb_LIBS . 'smarty/cache/');
 }
예제 #4
0
 /**
  * Enables Smarty.
  */
 private function enableSmarty()
 {
     if ($this->smarty !== NULL) {
         return;
     }
     $this->smarty = new Smarty();
     $this->smarty->setTemplateDir(PUBLIC_DIR);
     $this->smarty->setCompileDir(PUBLIC_DIR . 'smarty' . DSC . 'compile');
     $this->smarty->setCacheDir(PUBLIC_DIR . 'smarty' . DSC . 'cache');
 }
예제 #5
0
 /**
  * Возращает экземпляр \Smarty использует синглтон
  *
  * @return \Smarty
  */
 public static function getSmarty()
 {
     if (self::$smarty === null) {
         self::$smarty = new \Smarty();
         list($compiledPath, $cachedPath) = self::getSmartyDirectories();
         self::$smarty->setTemplateDir(__DIR__ . '/../View/');
         self::$smarty->setCompileDir($compiledPath);
         self::$smarty->setCacheDir($cachedPath);
     }
     return self::$smarty;
 }
예제 #6
0
 /**
  * 构造方法
  *
  * @return void
  */
 protected function __construct()
 {
     \Yaf_Loader::import(APP_PATH . 'library/Thirdpart/Smarty/libs/Smarty.class.php');
     $this->_smarty = new \Smarty();
     $this->_smarty->setTemplateDir('');
     $this->_smarty->setCompileDir(TMP_PATH . 'smarty-compile/');
     $this->_smarty->setCacheDir(TMP_PATH . 'smarty-cache/');
     $this->_smarty->setPluginsDir(APP_PATH . 'library/Smarty/Plugins/');
     $this->_smarty->left_delimiter = '<!--{';
     $this->_smarty->right_delimiter = '}-->';
     $this->_smarty->enableSecurity('Comm\\Smarty_Security_Policy');
 }
예제 #7
0
 /**
  * Constructor
  *
  * @access public
  */
 public function __construct()
 {
     $this->smarty = new \Smarty();
     $this->smarty->compile_dir = TMP_PATH . '/templates_c/';
     $this->smarty->setCacheDir(TMP_PATH . '/templates_t/');
     $this->smarty->registerPlugin('block', 't', 'smarty_block_translation');
     $this->smarty->registerPlugin('modifier', 'date_format', 'smarty_modifier_datetime_format');
     $this->smarty->registerPlugin('modifier', 'datetime_format', 'smarty_modifier_datetime_format');
     $this->smarty->registerPlugin('function', 'snippet', 'smarty_function_snippet');
     $this->smarty->registerPlugin('modifier', 'markdown', 'smarty_modifier_markdown');
     $this->smarty->debugging = Config::$debug;
     $this->smarty->error_reporting = Config::$error_reporting;
 }
예제 #8
0
 /**
  * Initialize view motor
  */
 public function initializeSmarty()
 {
     $this->smarty = new Smarty();
     $this->smarty->setCompileDir(_CACHE_DIR_ . DS . 'smarty' . DS . 'compile');
     $this->smarty->setCacheDir(_CACHE_DIR_ . DS . 'smarty' . DS . 'cache');
     $this->smarty->force_compile = Env::get('smarty.force_compile');
     $this->smarty->compile_check = Env::get('smarty.compile_check');
     // Assignation des variables utiles
     $this->smarty->assign('link', $this->link);
     $this->smarty->assign('tpl_dir', _VIEW_PATH_);
     $this->smarty->assign('base_uri', _BASE_URI_);
     $this->smarty->assign('app', Env::get('app'));
 }
예제 #9
0
 /**
  * Constructor del nucleo
  *
  * Inicializa el objeto smarty y guarda los parametros
  *
  */
 private function __construct()
 {
     //Cargar Smarty Principal y su configuraci�n
     $this->smarty = new Smarty();
     $dirabs = "http://" . dirname($_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
     $this->smarty->setTemplateDir('app/vistas/');
     $this->smarty->setCompileDir('tmp/templates_c/');
     $this->smarty->setConfigDir('app/configuracion/');
     $this->smarty->setCacheDir('tmp/cache/');
     $this->smarty->assign("publico", $dirabs . '/app/publico');
     $this->smarty->caching = false;
     $this->parametros = $_REQUEST;
     $this->get = $_GET;
     $this->post = $_POST;
 }
예제 #10
0
파일: Page.php 프로젝트: jankal/mvc
 private static function prepareSmartyObject()
 {
     self::$smarty = new Smarty();
     self::$smarty->setTemplateDir(HOME_DIR . '/templates/' . app::get('template') . '/');
     self::$smarty->setCompileDir(HOME_DIR . '/templates_c/');
     self::$smarty->setConfigDir(HOME_DIR . '/configs/');
     self::$smarty->setCacheDir(HOME_DIR . '/cache/');
     self::$smarty->force_compile = true;
     self::$smarty->debugging = \app::get('debug');
     self::$smarty->caching = true;
     self::$smarty->cache_lifetime = 120;
     foreach (self::$assign as $key => $value) {
         self::$smarty->assign($key, $value);
     }
 }
예제 #11
0
 /**
  * Create a new template object
  * @return object
  */
 public static function create()
 {
     // Try/catch statement
     try {
         // Smarty installation
         $configDir = Config::read('smarty');
         // Required Smarty libraries
         require_once $configDir . '/libs/Smarty.class.php';
         // Smarty v3.1 or newer
         $smarty = new Smarty();
         $smarty->setTemplateDir(Config::read('pwd') . '/templates/' . Config::read('template'));
         $smarty->setCompileDir($configDir . '/templates_c');
         $smarty->setCacheDir($configDir . '/cache');
         // Disable caching
         $smarty->force_compile = true;
         $smarty->compile_check = true;
         $smarty->setCaching(Smarty::CACHING_OFF);
         // Return Smarty object
         return $smarty;
     } catch (Exception $e) {
         Log::error("Error while loading template engine");
         // Exception error
         return false;
     }
 }
예제 #12
0
 public function Display($file = false, $echo = true)
 {
     global $CMS, $DB, $USER;
     $smarty = new Smarty();
     //set cache and compile dir
     $smarty->setCacheDir("./data/data__hoang_taka_com/cache/");
     $smarty->setCompileDir("./data/data__hoang_taka_com/template_c/");
     $smarty->force_compile = $this->force_compile;
     $smarty->debugging = $this->debugging;
     $smarty->caching = $this->caching;
     $smarty->cache_lifetime = $this->cache_lifetime;
     if ($file) {
         //check template website use.
         $file_dir = "themes/" . $file . ".tpl";
         if (is_file($file_dir)) {
             $smarty->assign($this->data);
             if ($echo) {
                 return $smarty->display($file_dir);
             } else {
                 return $smarty->fetch($file_dir);
             }
         } else {
             echo "File: <b>{$file_dir}</b> is missing.";
         }
     }
 }
 public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
 {
     $config = $container->get('Configuration');
     $config = $config['smarty'];
     /** @var $pathResolver \Zend\View\Resolver\TemplatePathStack */
     $pathResolver = clone $container->get('ViewTemplatePathStack');
     $pathResolver->setDefaultSuffix($config['suffix']);
     /** @var $resolver \Zend\View\Resolver\AggregateResolver */
     $resolver = $container->get('ViewResolver');
     $resolver->attach($pathResolver);
     $engine = new \Smarty();
     $engine->setCompileDir($config['compile_dir']);
     $engine->setEscapeHtml($config['escape_html']);
     $engine->setTemplateDir($pathResolver->getPaths()->toArray());
     $engine->setCaching($config['caching']);
     $engine->setCacheDir($config['cache_dir']);
     $engine->addPluginsDir($config['plugins_dir']);
     if (file_exists($config['config_file'])) {
         $engine->configLoad($config['config_file']);
     }
     $renderer = new Renderer();
     $renderer->setEngine($engine);
     $renderer->setSuffix($config['suffix']);
     $renderer->setResolver($resolver);
     return $renderer;
 }
예제 #14
0
 /**
  * Create a new template object
  * @return object
  */
 public static function create()
 {
     // Try/catch statement
     try {
         // Required Smarty libraries
         require_once dirname(__DIR__) . '/smarty/libs/Smarty.class.php';
         // Optional - load custom security features
         //require_once(__DIR__.'/smartysecuritycustom.inc.php');
         // Smarty v3.1 or newer
         $smarty = new Smarty();
         $smarty->setTemplateDir(Config::read('smarty|templateDirectory'));
         $smarty->setCompileDir(Config::read('smarty|compileDirectory'));
         $smarty->setCacheDir(Config::read('smarty|cacheDirectory'));
         // Optional - override configs
         //$smarty->setConfigDir(Config::read('smarty|configDirectory'));
         // Optional - override plugins
         //$smarty->setPluginsDir(Config::read('smarty|pluginsDirectory'));
         $smarty->setCacheLifetime(Config::read('smarty|cacheLifetime'));
         // Disable caching
         $smarty->force_compile = true;
         $smarty->compile_check = true;
         $smarty->setCaching(Smarty::CACHING_OFF);
         // Optional - enable security restrictions
         //$smarty->enableSecurity('SmartySecurityCustom');
         // Return Smarty object
         return $smarty;
     } catch (Exception $e) {
         Log::error("Error while loading template engine");
         // Exception error
         return false;
     }
 }
예제 #15
0
 /**
  * initTemplate($tmpl_path = '', array $options = [ ], array $extres = [ ])
  *
  * テンプレートエンジンのインスタンスを生成する
  *
  * @access    private
  *
  * @param     string $tmpl_path テンプレートファイルが格納されているディレクトリのパス
  * @param     array  $options Smartyに引き渡すオプション
  * @param     array  $extres 外部リソースの定義
  *
  * @return    object    テンプレートエンジンのインスタンス
  */
 private function initTemplate($tmpl_path = '', array $options = ['cache' => ['mode' => \Smarty::CACHING_LIFETIME_SAVED, 'lifetime' => 3600, 'modified_check' => true], 'compile' => ['check' => true, 'force' => false], 'debug' => ['enable' => false, 'ctrl' => 'NONE']], array $extres = [])
 {
     // テンプレートパスをアプリケーション格納フォルダ配下に限定
     $tmpl_path = str_replace(DS . DS, DS, RISOLUTO_APPS . 'RisolutoApps/' . str_replace('../', '', $tmpl_path));
     // テンプレートエンジン関連定義(Smartyを使用)
     $tmpl = new \Smarty();
     //--- テンプレートキャッシュの設定
     $tmpl->setCacheDir(RISOLUTO_CACHE);
     $tmpl->caching = isset($options['cache']['mode']) ? $options['cache']['mode'] : \Smarty::CACHING_LIFETIME_SAVED;
     $tmpl->cache_lifetime = isset($options['cache']['lifetime']) ? $options['cache']['lifetime'] : 3600;
     $tmpl->cache_modified_check = isset($options['cache']['modified_check']) ? $options['cache']['modified_check'] : true;
     //--- コンパイル済みテンプレートの設定
     $tmpl->setCompileDir(RISOLUTO_CACHE);
     $tmpl->compile_check = isset($options['compile']['check']) ? $options['compile']['check'] : true;
     $tmpl->force_compile = isset($options['compile']['force']) ? $options['compile']['force'] : false;
     //--- テンプレート用コンフィグファイルの設定
     $tmpl->setConfigDir($tmpl_path);
     //--- テンプレートのデバッグ設定
     $tmpl->debugging = isset($options['debug']['enable']) ? $options['debug']['enable'] : false;
     $tmpl->debugging_ctrl = isset($options['debug']['ctrl']) ? $options['debug']['ctrl'] : 'NONE';
     //--- テンプレートファイルのパス
     $tmpl->setTemplateDir($tmpl_path);
     // 外部リソースの登録
     if (isset($extres)) {
         foreach ($extres as $dat) {
             if (isset($dat['name']) and isset($dat['class'])) {
                 $tmpl->register_resource($dat['name'], [$dat['class'], 'getTemplate', 'getTimeStamp', 'getSecure', 'getTrusted']);
             }
         }
     }
     return $tmpl;
 }
예제 #16
0
 /**
  * Render the template and return the HTML content
  *
  * @author salvipascual
  * @param Service $service, service to be rendered
  * @param Response $response, response object to render
  * @return String, template in HTML
  * @throw Exception
  */
 public function renderHTML($service, $response)
 {
     // get the path
     $di = \Phalcon\DI\FactoryDefault::getDefault();
     $wwwroot = $di->get('path')['root'];
     // select the right file to load
     if ($response->internal) {
         $userTemplateFile = "{$wwwroot}/app/templates/{$response->template}";
     } else {
         $userTemplateFile = "{$wwwroot}/services/{$service->serviceName}/templates/{$response->template}";
     }
     // creating and configuring a new Smarty object
     $smarty = new Smarty();
     $smarty->addPluginsDir("{$wwwroot}/app/plugins/");
     $smarty->setTemplateDir("{$wwwroot}/app/layouts/");
     $smarty->setCompileDir("{$wwwroot}/temp/templates_c/");
     $smarty->setCacheDir("{$wwwroot}/temp/cache/");
     // disabling cache and debugging
     $smarty->force_compile = true;
     $smarty->debugging = false;
     $smarty->caching = false;
     // list the system variables
     $systemVariables = array("APRETASTE_USER_TEMPLATE" => $userTemplateFile, "APRETASTE_SERVICE_NAME" => strtoupper($service->serviceName), "APRETASTE_SERVICE_RELATED" => $this->getServicesRelatedArray($service->serviceName), "APRETASTE_SERVICE_CREATOR" => $service->creatorEmail, "APRETASTE_TOP_AD" => "", "APRETASTE_BOTTOM_AD" => "");
     // merge all variable sets and assign them to Smarty
     $templateVariables = array_merge($systemVariables, $response->content);
     $smarty->assign($templateVariables);
     // renderig and removing tabs, double spaces and break lines
     $renderedTemplate = $smarty->fetch("email_default.tpl");
     return preg_replace('/\\s+/S', " ", $renderedTemplate);
 }
예제 #17
0
 public static function run($action)
 {
     ConfigurationChecks::loadChecks();
     ConfigurationChecks::performChecks();
     $smarty = new Smarty();
     $smarty->muteExpectedErrors();
     $smarty->setCacheDir(SYSTEM_ROOT . '/classes/smarty/cache/');
     $smarty->setCompileDir(SYSTEM_ROOT . '/classes/smarty/templates_c/');
     $smarty->setTemplateDir(SYSTEM_ROOT . '/install/view/');
     $smarty->caching = Smarty::CACHING_OFF;
     $smarty->force_compile = true;
     $smarty->assign('title', 'Installation');
     switch ($action) {
         case 'tables':
             self::insertTables($smarty);
             break;
         case 'user':
             self::createUser($smarty);
             break;
         case 'success':
             self::success($smarty);
             break;
         default:
             self::checkRequirements($smarty);
             break;
     }
 }
예제 #18
0
 /**
  * Get the evaluated contents of the view.
  *
  * @param  string $path
  * @param  array  $data
  *
  * @throws \Exception
  * @return string
  */
 public function get($path, array $data = array())
 {
     ob_start();
     try {
         $smarty = new \Smarty();
         $smarty->caching = $this->config->get('smarty-view::caching');
         $smarty->debugging = $this->config->get('smarty-view::debugging');
         $smarty->cache_lifetime = $this->config->get('smarty-view::cache_lifetime');
         $smarty->compile_check = $this->config->get('smarty-view::compile_check');
         $smarty->error_reporting = $this->config->get('smarty-view::error_reporting');
         if (\App::environment('local')) {
             $smarty->force_compile = true;
         }
         $smarty->setTemplateDir($this->config->get('smarty-view::template_dir'));
         $smarty->setCompileDir($this->config->get('smarty-view::compile_dir'));
         $smarty->setCacheDir($this->config->get('smarty-view::cache_dir'));
         $smarty->registerResource('view', new ViewResource());
         $smarty->addPluginsDir(__DIR__ . '/plugins');
         foreach ((array) $this->config->get('smarty-view::plugins_path', array()) as $pluginPath) {
             $smarty->addPluginsDir($pluginPath);
         }
         foreach ($data as $key => $value) {
             $smarty->assign($key, $value);
         }
         $smarty->display($path);
     } catch (\Exception $e) {
         ob_get_clean();
         throw $e;
     }
     return ltrim(ob_get_clean());
 }
예제 #19
0
function rx_set_smarty_paths(Smarty $viewModel)
{
    $viewModel->setTemplateDir(app\service\Smarty::$VIEW_PATH);
    $viewModel->setConfigDir(CONFIG_PATH);
    $CACHE_PATH = BUILD_PATH . 'smarty_cache';
    if (!file_exists($CACHE_PATH)) {
        if (!mkdir($CACHE_PATH, 0777, true)) {
            die('Failed to create folders:' . $CACHE_PATH);
        }
    }
    $viewModel->setCacheDir($CACHE_PATH);
    $TEMP_PATH = BUILD_PATH . 'smarty_temp';
    if (!file_exists($TEMP_PATH)) {
        if (!mkdir($TEMP_PATH, 0777, true)) {
            die('Failed to create folders:' . $TEMP_PATH);
        }
    }
    $viewModel->setCompileDir($TEMP_PATH);
    $LOCAL_PLUGIN_PATH = APP_PATH . "SMARTY_PLUGINS";
    if (file_exists($LOCAL_PLUGIN_PATH)) {
        $viewModel->addPluginsDir($LOCAL_PLUGIN_PATH);
    }
    foreach (app\service\Smarty::$PLUGINS_DIR as $path) {
        $viewModel->addPluginsDir($path);
    }
}
예제 #20
0
 /**
  * Initialize smarty
  */
 protected function InitializeSmarty()
 {
     require_once GITPHP_SMARTYDIR . 'Smarty.class.php';
     $this->tpl = new Smarty();
     $this->tpl->error_reporting = E_ALL & ~E_NOTICE;
     $this->tpl->merge_compiled_includes = true;
     $this->tpl->addPluginsDir(GITPHP_INCLUDEDIR . 'smartyplugins');
     if ($this->config->GetValue('cache')) {
         $cacheDir = GITPHP_CACHEDIR . 'templates';
         if (file_exists($cacheDir)) {
             if (!is_dir($cacheDir)) {
                 throw new Exception($cacheDir . ' exists but is not a directory');
             } else {
                 if (!is_writable($cacheDir)) {
                     throw new Exception($cacheDir . ' is not writable');
                 }
             }
         } else {
             if (!mkdir($cacheDir, 0777)) {
                 throw new Exception($cacheDir . ' could not be created');
             }
             chmod($cacheDir, 0777);
         }
         $this->tpl->setCacheDir($cacheDir);
         $this->tpl->caching = Smarty::CACHING_LIFETIME_SAVED;
         if ($this->config->HasKey('cachelifetime')) {
             $this->tpl->cache_lifetime = $this->config->GetValue('cachelifetime');
         }
         $servers = $this->config->GetValue('memcache');
         if (isset($servers) && is_array($servers) && count($servers) > 0) {
             $this->tpl->registerCacheResource('memcache', new GitPHP_CacheResource_Memcache($servers));
             $this->tpl->caching_type = 'memcache';
         }
     }
 }
예제 #21
0
 protected function _initalizeSmarty()
 {
     $configKey = $this->_sConfigKey;
     $caching = $this->config[$configKey . 'caching'];
     $cache_lifetime = $this->config[$configKey . 'cache_lifetime'];
     $debugging = $this->config[$configKey . 'debugging'];
     $template_path = $this->config[$configKey . 'template_path'];
     $compile_path = $this->config[$configKey . 'compile_path'];
     $cache_path = $this->config[$configKey . 'cache_path'];
     // Get the plugins path from the configuration
     $plugins_paths = $this->config[$configKey . 'plugins_paths'];
     //$this->_oSmarty = new \Smarty();
     require_once dirname(__FILE__) . '/Smarty/libs/Smarty.class.php';
     $this->_oSmarty = new \Smarty();
     $this->_oSmarty->setTemplateDir($template_path);
     $this->_oSmarty->setCompileDir($compile_path);
     $this->_oSmarty->setCacheDir($cache_path);
     // Add the plugin folder from the config to the Smarty object.
     // Note that I am using addPluginsDir here rather than setPluginsDir
     // because I want to add a secondary folder, not replace the
     // existing folder.
     foreach ($plugins_paths as $path) {
         $this->_oSmarty->addPluginsDir($path);
     }
     $this->_oSmarty->debugging = $debugging;
     $this->_oSmarty->caching = $caching;
     $this->_oSmarty->cache_lifetime = $cache_lifetime;
     $this->_oSmarty->compile_check = true;
 }
예제 #22
0
 /**
  * Get the evaluated contents of the view at the given path.
  *
  * @param string $path
  * @param array $data
  * @return string
  */
 protected function evaluatePath($__path, $__data)
 {
     $caching = $this->config('caching');
     $cache_lifetime = $this->config('cache_lifetime');
     $debugging = $this->config('debugging');
     $template_path = $this->config('template_path');
     $compile_path = $this->config('compile_path');
     $cache_path = $this->config('cache_path');
     $plugins_paths = (array) $this->config('plugins_paths');
     $config_paths = (array) $this->config('config_paths');
     $escape_html = $this->config('escape_html', false);
     // Create smarty object.
     $smarty = new \Smarty();
     $smarty->setTemplateDir($template_path);
     $smarty->setCompileDir($compile_path);
     $smarty->setCacheDir($cache_path);
     foreach ($plugins_paths as $path) {
         $smarty->addPluginsDir($path);
     }
     foreach ($config_paths as $path) {
         $smarty->setConfigDir($path);
     }
     $smarty->debugging = $debugging;
     $smarty->caching = $caching;
     $smarty->cache_lifetime = $cache_lifetime;
     $smarty->compile_check = true;
     // set the escape_html flag from the configuration value
     //
     $smarty->escape_html = $escape_html;
     $smarty->error_reporting = E_ALL & ~E_NOTICE;
     foreach ($__data as $var => $val) {
         $smarty->assign($var, $val);
     }
     return $smarty->fetch($__path);
 }
예제 #23
0
 public function action_default()
 {
     if (\count($this->arguments) < 2) {
         \Core::show_404();
     }
     $uri_arr = $this->arguments;
     $app = \array_shift($uri_arr) . DS . \array_shift($uri_arr);
     if (!$uri_arr) {
         $uri_arr = array('index');
     }
     # 检查是否已开启
     if (!is_file(\DIR_APPS . $app . \DS . '.installed')) {
         $this->show_error('指定的APP还没有安装,请先安装');
     }
     # 配置文件
     $config_file = \DIR_APPS . $app . \DS . 'config.ini';
     # 读取配置文件
     if (\is_file($config_file)) {
         $app_config = @\parse_ini_file($config_file, \INI_SCANNER_NORMAL, true);
         if (!$app_config) {
             $app_config = array();
         }
     }
     # 当前控制器
     $controller = \DIR_APPS . $app . \DS . '[admin]' . \DS . \implode(\DS, $uri_arr) . '.html';
     if (!\is_file($controller)) {
         $this->show_error('指定的APP控制器不存在');
     }
     # 载入APP类库
     $libraries = \Core::config('core.libraries.app');
     if ($libraries) {
         # 逆向排序
         \rsort($libraries);
         foreach ($libraries as $library_name) {
             if (!$library_name) {
                 continue;
             }
             \Core::import_library($library_name);
         }
     }
     # Smarty缓存目录
     $big_dir = \DIR_CACHE . 'apps' . \DS . $app . \DS . 'smarty' . \DS . 'admin' . \DS;
     $smarty = new \Smarty();
     # 设置缓存目录
     $smarty->setCacheDir($big_dir . 'cache' . \DS);
     # 设置模板编译目录
     $smarty->setCompileDir($big_dir . 'templates_c' . \DS);
     # 设置模板目录
     $smarty->setTemplateDir(\DIR_APPS . $app . \DS . '[admin]' . \DS . 'tpl' . \DS);
     foreach (\Core::$include_puth as $path) {
         if (\is_dir($path . 'smarty_plugins')) {
             # 增加Smarty插件目录
             $smarty->addPluginsDir($path . 'smarty_plugins');
         }
     }
     # 输出
     $smarty->display($controller);
 }
예제 #24
0
function initSmarty()
{
    $smarty = new Smarty();
    $smarty->setTemplateDir(__SITEPATH__ . '/smarty/templates');
    $smarty->setCompileDir(__SITEPATH__ . '/smarty/templates_c');
    $smarty->setCacheDir(__SITEPATH__ . '/smarty/cache');
    $smarty->setConfigDir(__SITEPATH__ . '/smarty/configs');
    return $smarty;
}
예제 #25
0
 /**
  * smarty
  * @access private
  * @return void
  */
 private function setConfigure()
 {
     $this->smarty->left_delimiter = Config::get('smarty::left_delimiter');
     $this->smarty->right_delimiter = Config::get('smarty::right_delimiter');
     $this->smarty->setTemplateDir(Config::get('smarty::template_path'));
     $this->smarty->setCompileDir(Config::get('smarty::compile_path'));
     $this->smarty->setCacheDir(Config::get('smarty::cache_path'));
     //
     foreach (Config::get('smarty::plugins_paths') as $plugins) {
         $this->smarty->addPluginsDir($plugins);
     }
     $this->smarty->debugging = Config::get('smarty::debugging');
     $this->smarty->caching = Config::get('smarty::caching');
     $this->smarty->cache_lifetime = Config::get('smarty::cache_lifetime');
     $this->smarty->compile_check = Config::get('smarty::compile_check');
     $this->smarty->force_compile = true;
     $this->smarty->error_reporting = E_ALL & ~E_NOTICE;
 }
예제 #26
0
 function execute()
 {
     Load::file('Smarty.class.php', $this->source_dir);
     $smarty = new Smarty();
     $smarty->setCompileDir(File::mkdir(TEMP_DIR . DS . $this->name . DS . 'templates_c') . DS);
     $smarty->setConfigDir(File::mkdir(TEMP_DIR . DS . $this->name . DS . 'configs') . DS);
     $smarty->setCacheDir(File::mkdir(TEMP_DIR . DS . $this->name . DS . 'cache') . DS);
     return $smarty;
 }
예제 #27
0
function setup_smarty()
{
    $smarty = new Smarty();
    $smarty->setTemplateDir('templates/');
    $smarty->setCompileDir('libs/smarty/templates_c/');
    $smarty->setConfigDir('libs/smarty/configs/');
    $smarty->setCacheDir('libs/smarty/cache/');
    return $smarty;
}
예제 #28
0
 /**
  * Loads a Smarty instance if it is not already loaded.
  */
 private function loadSmarty()
 {
     if (is_null($this->smartyInstance)) {
         $this->smartyInstance = new Smarty();
         // Then prepare all variables
         $this->smartyInstance->setCompileDir(Core::$tempDir . DS . 'Smarty' . DS . 'Compile');
         $this->smartyInstance->setCacheDir(Core::$tempDir . DS . 'Smarty');
     }
 }
예제 #29
0
 function setSmarty()
 {
     global $SMARTY;
     $view = new Smarty();
     $view->setTemplateDir($SMARTY[0]['template']);
     $view->setCompileDir($SMARTY[0]['logs']);
     $view->setCacheDir($SMARTY[0]['cache']);
     $view->setConfigDir($SMARTY[0]['config']);
     return $view;
 }
예제 #30
0
 /**
  */
 function _init()
 {
     require_php_lib('smarty');
     $smarty = new Smarty();
     $smarty->setTemplateDir(YF_PATH . tpl()->TPL_PATH);
     $smarty->setCompileDir(STORAGE_PATH . 'templates_c/');
     $smarty->setCacheDir(STORAGE_PATH . 'smarty_cache/');
     #		$smarty->setConfigDir(STORAGE_PATH.'smarty_configs/');
     $this->smarty = $smarty;
 }