<?php
/**
* Interface class for Zend_View compatible template engine implementations
*
* @category Zend
* @package Zend_View
* @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
interface Zend_View_Interface
{
/**
* Return the template engine object, if any
*
* If using a third-party template engine, such as Smarty, patTemplate,
* phplib, etc, return the template engine object. Useful for calling
* methods on these objects, such as for setting filters, modifiers, etc.
*
* @return mixed
*/
public function getEngine();
/**
* Set the path to find the view script used by render()
*
* @param string|array The directory (-ies) to set as the path. Note that
* the concrete view implentation may not necessarily support multiple
* directories.
* @return void
*/
public function setScriptPath($path);
/**
* Retrieve all view script paths
*
* @return array
*/
public function getScriptPaths();
/**
* Set a base path to all view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function setBasePath($path, $classPrefix = 'Zend_View');
/**
* Add an additional path to view resources
*
* @param string $path
* @param string $classPrefix
* @return void
*/
public function addBasePath($path, $classPrefix = 'Zend_View');
/**
* Assign a variable to the view
*
* @param string $key The variable name.
* @param mixed $val The variable value.
* @return void
*/
public function __set($key, $val);
/**
* Allows testing with empty() and isset() to work
*
* @param string $key
* @return boolean
*/
public function __isset($key);
/**
* Allows unset() on object properties to work
*
* @param string $key
* @return void
*/
public function __unset($key);
/**
* Assign variables to the view script via differing strategies.
*
* Suggested implementation is to allow setting a specific key to the
* specified value, OR passing an array of key => value pairs to set en
* masse.
*
* @see __set()
* @param string|array $spec The assignment strategy to use (key or array of key
* => value pairs)
* @param mixed $value (Optional) If assigning a named variable, use this
* as the value.
* @return void
*/
public function assign($spec, $value = null);
/**
* Clear all assigned variables
*
* Clears all variables assigned to Zend_View either via {@link assign()} or
* property overloading ({@link __get()}/{@link __set()}).
*
* @return void
*/
public function clearVars();
/**
* Processes a view script and returns the output.
*
* @param string $name The script name to process.
* @return string The script output.
*/
public function render($name);
}
<?php
require_once 'smartylib/Smarty.class.php';
class Lq_View_Smarty implements Zend_View_Interface {
/**
* Smarty object
*
* @var Smarty
*/
protected $_smarty;
/**
* Constructor
*
* @param $tmplPath string
* @param $extraParams array
* @return void
*/
public function __construct($tmplPath = null, $extraParams = array()) {
$this->_smarty = new Smarty ();
if (null !== $tmplPath) {
$this->setScriptPath ( $tmplPath );
}
foreach ( $extraParams as $key => $value ) {
$this->_smarty->$key = $value;
}
}
/**
* Return the template engine object
*
* @return Smarty
*/
public function getEngine() {
return $this->_smarty;
}
/**
* Set the path to the templates
*
* @param $path string
* The directory to set as the path.
* @return void
*/
public function setScriptPath($path) {
if (is_readable ( $path )) {
$this->_smarty->template_dir = $path;
return;
}
throw new Exception ( 'Invalid path provided' );
}
/**
* Retrieve the current template directory
*
* @return string
*/
public function getScriptPaths() {
return array ($this->_smarty->template_dir );
}
/**
* Alias for setScriptPath
*
* @param $path string
* @param $prefix string
* Unused
* @return void
*/
public function setBasePath($path, $prefix = 'Zend_View') {
return $this->setScriptPath ( $path );
}
/**
* Alias for setScriptPath
*
* @param $path string
* @param $prefix string
* Unused
* @return void
*/
public function addBasePath($path, $prefix = 'Zend_View') {
return $this->setScriptPath ( $path );
}
/**
* Assign a variable to the template
*
* @param $key string
* The variable name.
* @param $val mixed
* The variable value.
* @return void
*/
public function __set($key, $val) {
$this->_smarty->assign ( $key, $val );
}
/**
* Retrieve an assigned variable
*
* @param $key string
* The variable name.
* @return mixed The variable value.
*/
public function __get($key) {
return $this->_smarty->get_template_vars ( $key );
}
/**
* Allows testing with empty() and isset() to work
*
* @param $key string
* @return boolean
*/
public function __isset($key) {
return (null !== $this->_smarty->get_template_vars ( $key ));
}
/**
* Allows unset() on object properties to work
*
* @param $key string
* @return void
*/
public function __unset($key) {
$this->_smarty->clear_assign ( $key );
}
/**
* Assign variables to the template
*
* Allows setting a specific key to the specified value, OR passing an array
* of key => value pairs to set en masse.
*
* @see __set()
* @param $spec string|array
* The assignment strategy to use (key or array of key
* => value pairs)
* @param $value mixed
* (Optional) If assigning a named variable, use this
* as the value.
* @return void
*/
public function assign($spec, $value = null) {
if (is_array ( $spec )) {
$this->_smarty->assign ( $spec );
return;
}
$this->_smarty->assign ( $spec, $value );
}
/**
* Clear all assigned variables
*
* Clears all variables assigned to Zend_View either via {@link assign()} or
* property overloading ({@link __get()}/{@link __set()}).
*
* @return void
*/
public function clearVars() {
$this->_smarty->clear_all_assign ();
}
/**
* Processes a template and returns the output.
*
* @param $name string
* The template to process.
* @return string The output.
*/
public function render($name) {
ob_start();
echo $this->_smarty->fetch ( $name );
unset($name);
}
}
[production] includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" autoloadernamespaces.lq = "Lq_" pluginpaths.Lq_View_Smarty = "Lq/View/Smarty" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 1 phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
/**
* Initialize Smarty view
*/
protected function _initSmarty() {
$smarty = new Lq_View_Smarty ();
$smarty->setScriptPath('/www/zf_demo1/application/views/scripts');
return $smarty;
}
}
<?php
class IndexController extends Zend_Controller_Action {
public function init() {
/*
* Initialize action controller here
*/
}
public function indexAction() {
$this->_helper->getHelper('viewRenderer')->setNoRender();
$this->view = $this->getInvokeArg ( 'bootstrap' )->getResource ( 'smarty' );
$this->view->book = 'Hello World! ';
$this->view->author = 'by smarty';
$this->view->render('index/index.tpl');
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
{$book}
{$author}
</body>
</html>
/**
* Initialize new Smarty object
*
*/
public function __construct()
{
// selfpointer needed by some other class methods
$this->smarty = $this;
if (is_callable('mb_internal_encoding')) {
mb_internal_encoding(Smarty::$_CHARSET);
}
$this->start_time = microtime(true);
// set default dirs
$this->setTemplateDir('/www/zf_demo1/temp/smarty' . DS . 'templates' . DS)
->setCompileDir('/www/zf_demo1/temp/smarty' . DS . 'templates_c' . DS)
->setPluginsDir(SMARTY_PLUGINS_DIR)
->setCacheDir('/www/zf_demo1/temp/smarty' . DS . 'cache' . DS)
->setConfigDir('/www/zf_demo1/temp/smarty' . DS . 'configs' . DS);
$this->debug_tpl = 'file:' . dirname(__FILE__) . '/debug.tpl';
if (isset($_SERVER['SCRIPT_NAME'])) {
$this->assignGlobal('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有