<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Writing a CMS/Community with Smarty and the Zend Framework Part 4</title>
	<link>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/</link>
	<description>Dev related notes, tutorials and anecdotes</description>
	<pubDate>Mon, 08 Sep 2008 16:12:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Henrik</title>
		<link>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-32</link>
		<dc:creator>Henrik</dc:creator>
		<pubDate>Tue, 20 Nov 2007 11:48:55 +0000</pubDate>
		<guid>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-32</guid>
		<description>There is none so far as it is not finished yet and much can change, however here is the config I'm using at the moment:

&lt;pre&gt;&lt;code&gt;
[general]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = 
db.config.dbname = ce

[css]
txtfield_fail = txtfield_fail

[paths]
kick_path = /ce/user/login/
site_url  = server/ce/

[email]
port = 
username = 
password = 
server = 
from_mail = 
from_subject = 
subject = 

[phone]
ip = 
&lt;/code&gt;&lt;/pre&gt;

And extended smarty class:

&lt;pre&gt;&lt;code&gt;
require("libs/Smarty.class.php");
class Smarty_Zend extends Smarty 
{
   function Smarty_Sunrise()
   {
		$this-&gt;Smarty();
		$path = "./";
		$this-&gt;template_dir 	= $path . 'templates';
		$this-&gt;config_dir 		= $path . 'configs';
		$this-&gt;compile_dir 		= $path . 'templates_c';
		$this-&gt;cache_dir 		= $path . 'cache';
   }
}
&lt;/code&gt;&lt;/pre&gt;

The bootstrap index.php file looks like this:

//error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
//error_reporting(E_ERROR &#124; E_WARNING &#124; E_PARSE &#124; E_NOTICE);
set_include_path('.' . PATH_SEPARATOR . './models/' . PATH_SEPARATOR . '../../PEAR' . PATH_SEPARATOR . get_include_path());
date_default_timezone_set('Asia/Bangkok');

include_once("Smarty_Zend.php");
include_once("Zend/Loader.php");

Zend_Loader::loadClass('Zend_Translate');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Db_Table_Abstract');
Zend_Loader::loadClass('Zend_Session');
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Controller_Action');
Zend_Loader::loadClass('Zend_Controller_Router_Rewrite');
Zend_Loader::loadClass('Zend_Controller_Plugin_Abstract');

include_once("classes/ControllerPlugin.php");
include_once("classes/Common.php");
include_once("classes/ExtModel.php");
include_once("classes/ExtController.php");
include_once("widgets.php");

Zend_Session::start();

$config_file = 'framework_config/config.ini';
$dbconfig = new Zend_Config_Ini($config_file, 'general');
$paths = new Zend_Config_Ini($config_file, 'paths');
$registry = Zend_Registry::getInstance();
$registry-&gt;set('path_config', $paths);
$registry-&gt;set('date_format', 'yyyy-mm-dd');
$registry-&gt;set('mysql_date_format', '%Y-%m-%d');
$registry-&gt;set('config_file', $config_file);

// setup database
$db = Zend_Db::factory($dbconfig-&gt;db-&gt;adapter, $dbconfig-&gt;db-&gt;config-&gt;toArray());
Zend_Db_Table::setDefaultAdapter($db);
$registry-&gt;set('db', $db);

// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController-&gt;throwExceptions(true);
$frontController-&gt;setControllerDirectory('./controllers')
				-&gt;setRouter(new Zend_Controller_Router_Rewrite())
				-&gt;registerPlugin(new ControllerPlugin());

$frontController-&gt;dispatch();

And the controller plugin:

&lt;pre&gt;&lt;code&gt;
class ControllerPlugin extends Zend_Controller_Plugin_Abstract{
    public function preDispatch( Zend_Controller_Request_Abstract $request ){
    	$dispatcher = Zend_Controller_Front::getInstance()-&gt;getDispatcher();
        $controllerName = $request-&gt;getControllerName();
        if (empty($controllerName))
            $controllerName = $dispatcher-&gt;getDefaultController();
        $className = $dispatcher-&gt;formatControllerName($controllerName);
        if($className){
            try{
                Zend_Loader::loadClass($className, $dispatcher-&gt;getControllerDirectory());
                $actionName = $request-&gt;getActionName();
                if (empty($actionName))
                    $actionName = $dispatcher-&gt;getDefaultAction();
                $methodName = $dispatcher-&gt;formatActionName($actionName);
                $class = new ReflectionClass( $className );
                if( $class-&gt;hasMethod( $methodName ) )
                    return;
            }catch (Zend_Exception $e){
            }
        }
        // we only arrive here if can't find controller or action
        $request-&gt;setControllerName( 'index' );
        $request-&gt;setActionName( 'noroute' );
        $request-&gt;setDispatched( false );
    }
}
&lt;/code&gt;&lt;/pre&gt;

Did I forget something?</description>
		<content:encoded><![CDATA[<p>There is none so far as it is not finished yet and much can change, however here is the config I&#8217;m using at the moment:</p>
<pre><pre><code>[general]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = 
db.config.dbname = ce

[css]
txtfield_fail = txtfield_fail

[paths]
kick_path = /ce/user/login/
site_url  = server/ce/

[email]
port = 
username = 
password = 
server = 
from_mail = 
from_subject = 
subject = 

[phone]
ip =</code></pre></pre>
<p>And extended smarty class:</p>
<pre><pre><code>require("libs/Smarty.class.php");
class Smarty_Zend extends Smarty 
{
   function Smarty_Sunrise()
   {
		$this-&gt;Smarty();
		$path = "./";
		$this-&gt;template_dir 	= $path . 'templates';
		$this-&gt;config_dir 		= $path . 'configs';
		$this-&gt;compile_dir 		= $path . 'templates_c';
		$this-&gt;cache_dir 		= $path . 'cache';
   }
}</code></pre></pre>
<p>The bootstrap index.php file looks like this:</p>
<p>//error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);<br />
//error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);<br />
set_include_path(&#8217;.&#8217; . PATH_SEPARATOR . &#8216;./models/&#8217; . PATH_SEPARATOR . &#8216;../../PEAR&#8217; . PATH_SEPARATOR . get_include_path());<br />
date_default_timezone_set(&#8217;Asia/Bangkok&#8217;);</p>
<p>include_once(&#8221;Smarty_Zend.php&#8221;);<br />
include_once(&#8221;Zend/Loader.php&#8221;);</p>
<p>Zend_Loader::loadClass(&#8217;Zend_Translate&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Config_Ini&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Registry&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Db&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Db_Table&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Db_Table_Abstract&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Session&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Controller_Front&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Controller_Action&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Controller_Router_Rewrite&#8217;);<br />
Zend_Loader::loadClass(&#8217;Zend_Controller_Plugin_Abstract&#8217;);</p>
<p>include_once(&#8221;classes/ControllerPlugin.php&#8221;);<br />
include_once(&#8221;classes/Common.php&#8221;);<br />
include_once(&#8221;classes/ExtModel.php&#8221;);<br />
include_once(&#8221;classes/ExtController.php&#8221;);<br />
include_once(&#8221;widgets.php&#8221;);</p>
<p>Zend_Session::start();</p>
<p>$config_file = &#8216;framework_config/config.ini&#8217;;<br />
$dbconfig = new Zend_Config_Ini($config_file, &#8216;general&#8217;);<br />
$paths = new Zend_Config_Ini($config_file, &#8216;paths&#8217;);<br />
$registry = Zend_Registry::getInstance();<br />
$registry->set(&#8217;path_config&#8217;, $paths);<br />
$registry->set(&#8217;date_format&#8217;, &#8216;yyyy-mm-dd&#8217;);<br />
$registry->set(&#8217;mysql_date_format&#8217;, &#8216;%Y-%m-%d&#8217;);<br />
$registry->set(&#8217;config_file&#8217;, $config_file);</p>
<p>// setup database<br />
$db = Zend_Db::factory($dbconfig->db->adapter, $dbconfig->db->config->toArray());<br />
Zend_Db_Table::setDefaultAdapter($db);<br />
$registry->set(&#8217;db&#8217;, $db);</p>
<p>// setup controller<br />
$frontController = Zend_Controller_Front::getInstance();<br />
$frontController->throwExceptions(true);<br />
$frontController->setControllerDirectory(&#8217;./controllers&#8217;)<br />
				->setRouter(new Zend_Controller_Router_Rewrite())<br />
				->registerPlugin(new ControllerPlugin());</p>
<p>$frontController->dispatch();</p>
<p>And the controller plugin:</p>
<pre><pre><code>class ControllerPlugin extends Zend_Controller_Plugin_Abstract{
    public function preDispatch( Zend_Controller_Request_Abstract $request ){
    	$dispatcher = Zend_Controller_Front::getInstance()-&gt;getDispatcher();
        $controllerName = $request-&gt;getControllerName();
        if (empty($controllerName))
            $controllerName = $dispatcher-&gt;getDefaultController();
        $className = $dispatcher-&gt;formatControllerName($controllerName);
        if($className){
            try{
                Zend_Loader::loadClass($className, $dispatcher-&gt;getControllerDirectory());
                $actionName = $request-&gt;getActionName();
                if (empty($actionName))
                    $actionName = $dispatcher-&gt;getDefaultAction();
                $methodName = $dispatcher-&gt;formatActionName($actionName);
                $class = new ReflectionClass( $className );
                if( $class-&gt;hasMethod( $methodName ) )
                    return;
            }catch (Zend_Exception $e){
            }
        }
        // we only arrive here if can't find controller or action
        $request-&gt;setControllerName( 'index' );
        $request-&gt;setActionName( 'noroute' );
        $request-&gt;setDispatched( false );
    }
}</code></pre></pre>
<p>Did I forget something?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henrik</title>
		<link>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-1548</link>
		<dc:creator>Henrik</dc:creator>
		<pubDate>Tue, 20 Nov 2007 11:48:55 +0000</pubDate>
		<guid>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-1548</guid>
		<description>There is none so far as it is not finished yet and much can change, however here is the config I&#39;m using at the moment:&lt;br&gt;&lt;br&gt;&#60;pre&#62;&lt;code&gt;&lt;br&gt;[general]&lt;br&gt;db.adapter = PDO_MYSQL&lt;br&gt;db.config.host = localhost&lt;br&gt;db.config.username = root&lt;br&gt;db.config.password = &lt;br&gt;db.config.dbname = ce&lt;br&gt;&lt;br&gt;[css]&lt;br&gt;txtfield_fail = txtfield_fail&lt;br&gt;&lt;br&gt;[paths]&lt;br&gt;kick_path = /ce/user/login/&lt;br&gt;site_url  = server/ce/&lt;br&gt;&lt;br&gt;[email]&lt;br&gt;port = &lt;br&gt;username = &lt;br&gt;password = &lt;br&gt;server = &lt;br&gt;from_mail = &lt;br&gt;from_subject = &lt;br&gt;subject = &lt;br&gt;&lt;br&gt;[phone]&lt;br&gt;ip = &lt;br&gt;&lt;/code&gt;&#60;/pre&#62;&lt;br&gt;&lt;br&gt;And extended smarty class:&lt;br&gt;&lt;br&gt;&#60;pre&#62;&lt;code&gt;&lt;br&gt;require("libs/Smarty.class.php");&lt;br&gt;class Smarty_Zend extends Smarty &lt;br&gt;{&lt;br&gt;   function Smarty_Sunrise()&lt;br&gt;   {&lt;br&gt;		$this-&#62;Smarty();&lt;br&gt;		$path = "./";&lt;br&gt;		$this-&#62;template_dir 	= $path . &#39;templates&#39;;&lt;br&gt;		$this-&#62;config_dir 		= $path . &#39;configs&#39;;&lt;br&gt;		$this-&#62;compile_dir 		= $path . &#39;templates_c&#39;;&lt;br&gt;		$this-&#62;cache_dir 		= $path . &#39;cache&#39;;&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;&lt;/code&gt;&#60;/pre&#62;&lt;br&gt;&lt;br&gt;The bootstrap index.php file looks like this:&lt;br&gt;&lt;br&gt;//error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);&lt;br&gt;//error_reporting(E_ERROR &#124; E_WARNING &#124; E_PARSE &#124; E_NOTICE);&lt;br&gt;set_include_path(&#39;.&#39; . PATH_SEPARATOR . &#39;./models/&#39; . PATH_SEPARATOR . &#39;../../PEAR&#39; . PATH_SEPARATOR . get_include_path());&lt;br&gt;date_default_timezone_set(&#39;Asia/Bangkok&#39;);&lt;br&gt;&lt;br&gt;include_once("Smarty_Zend.php");&lt;br&gt;include_once("Zend/Loader.php");&lt;br&gt;&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Translate&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Config_Ini&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Registry&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Db&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Db_Table&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Db_Table_Abstract&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Session&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Controller_Front&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Controller_Action&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Controller_Router_Rewrite&#39;);&lt;br&gt;Zend_Loader::loadClass(&#39;Zend_Controller_Plugin_Abstract&#39;);&lt;br&gt;&lt;br&gt;include_once("classes/ControllerPlugin.php");&lt;br&gt;include_once("classes/Common.php");&lt;br&gt;include_once("classes/ExtModel.php");&lt;br&gt;include_once("classes/ExtController.php");&lt;br&gt;include_once("widgets.php");&lt;br&gt;&lt;br&gt;Zend_Session::start();&lt;br&gt;&lt;br&gt;$config_file = &#39;framework_config/config.ini&#39;;&lt;br&gt;$dbconfig = new Zend_Config_Ini($config_file, &#39;general&#39;);&lt;br&gt;$paths = new Zend_Config_Ini($config_file, &#39;paths&#39;);&lt;br&gt;$registry = Zend_Registry::getInstance();&lt;br&gt;$registry-&#62;set(&#39;path_config&#39;, $paths);&lt;br&gt;$registry-&#62;set(&#39;date_format&#39;, &#39;yyyy-mm-dd&#39;);&lt;br&gt;$registry-&#62;set(&#39;mysql_date_format&#39;, &#39;%Y-%m-%d&#39;);&lt;br&gt;$registry-&#62;set(&#39;config_file&#39;, $config_file);&lt;br&gt;&lt;br&gt;// setup database&lt;br&gt;$db = Zend_Db::factory($dbconfig-&#62;db-&#62;adapter, $dbconfig-&#62;db-&#62;config-&#62;toArray());&lt;br&gt;Zend_Db_Table::setDefaultAdapter($db);&lt;br&gt;$registry-&#62;set(&#39;db&#39;, $db);&lt;br&gt;&lt;br&gt;// setup controller&lt;br&gt;$frontController = Zend_Controller_Front::getInstance();&lt;br&gt;$frontController-&#62;throwExceptions(true);&lt;br&gt;$frontController-&#62;setControllerDirectory(&#39;./controllers&#39;)&lt;br&gt;				-&#62;setRouter(new Zend_Controller_Router_Rewrite())&lt;br&gt;				-&#62;registerPlugin(new ControllerPlugin());&lt;br&gt;&lt;br&gt;$frontController-&#62;dispatch();&lt;br&gt;&lt;br&gt;And the controller plugin:&lt;br&gt;&lt;br&gt;&#60;pre&#62;&lt;code&gt;&lt;br&gt;class ControllerPlugin extends Zend_Controller_Plugin_Abstract{&lt;br&gt;    public function preDispatch( Zend_Controller_Request_Abstract $request ){&lt;br&gt;    	$dispatcher = Zend_Controller_Front::getInstance()-&#62;getDispatcher();&lt;br&gt;        $controllerName = $request-&#62;getControllerName();&lt;br&gt;        if (empty($controllerName))&lt;br&gt;            $controllerName = $dispatcher-&#62;getDefaultController();&lt;br&gt;        $className = $dispatcher-&#62;formatControllerName($controllerName);&lt;br&gt;        if($className){&lt;br&gt;            try{&lt;br&gt;                Zend_Loader::loadClass($className, $dispatcher-&#62;getControllerDirectory());&lt;br&gt;                $actionName = $request-&#62;getActionName();&lt;br&gt;                if (empty($actionName))&lt;br&gt;                    $actionName = $dispatcher-&#62;getDefaultAction();&lt;br&gt;                $methodName = $dispatcher-&#62;formatActionName($actionName);&lt;br&gt;                $class = new ReflectionClass( $className );&lt;br&gt;                if( $class-&#62;hasMethod( $methodName ) )&lt;br&gt;                    return;&lt;br&gt;            }catch (Zend_Exception $e){&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;        // we only arrive here if can&#39;t find controller or action&lt;br&gt;        $request-&#62;setControllerName( &#39;index&#39; );&lt;br&gt;        $request-&#62;setActionName( &#39;noroute&#39; );&lt;br&gt;        $request-&#62;setDispatched( false );&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/code&gt;&#60;/pre&#62;&lt;br&gt;&lt;br&gt;Did I forget something?</description>
		<content:encoded><![CDATA[<p>There is none so far as it is not finished yet and much can change, however here is the config I&#39;m using at the moment:</p>
<p>&lt;pre&gt;<code>&lt;br&gt;[general]&lt;br&gt;db.adapter = PDO_MYSQL&lt;br&gt;db.config.host = localhost&lt;br&gt;db.config.username = root&lt;br&gt;db.config.password = &lt;br&gt;db.config.dbname = ce&lt;br&gt;&lt;br&gt;[css]&lt;br&gt;txtfield_fail = txtfield_fail&lt;br&gt;&lt;br&gt;[paths]&lt;br&gt;kick_path = /ce/user/login/&lt;br&gt;site_url  = server/ce/&lt;br&gt;&lt;br&gt;[email]&lt;br&gt;port = &lt;br&gt;username = &lt;br&gt;password = &lt;br&gt;server = &lt;br&gt;from_mail = &lt;br&gt;from_subject = &lt;br&gt;subject = &lt;br&gt;&lt;br&gt;[phone]&lt;br&gt;ip = &lt;br&gt;</code>&lt;/pre&gt;</p>
<p>And extended smarty class:</p>
<p>&lt;pre&gt;<code>&lt;br&gt;require("libs/Smarty.class.php");&lt;br&gt;class Smarty_Zend extends Smarty &lt;br&gt;{&lt;br&gt;   function Smarty_Sunrise()&lt;br&gt;   {&lt;br&gt;		$this-&amp;gt;Smarty();&lt;br&gt;		$path = "./";&lt;br&gt;		$this-&amp;gt;template_dir 	= $path . &amp;#39;templates&amp;#39;;&lt;br&gt;		$this-&amp;gt;config_dir 		= $path . &amp;#39;configs&amp;#39;;&lt;br&gt;		$this-&amp;gt;compile_dir 		= $path . &amp;#39;templates_c&amp;#39;;&lt;br&gt;		$this-&amp;gt;cache_dir 		= $path . &amp;#39;cache&amp;#39;;&lt;br&gt;   }&lt;br&gt;}&lt;br&gt;</code>&lt;/pre&gt;</p>
<p>The bootstrap index.php file looks like this:</p>
<p>//error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);<br />//error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);<br />set_include_path(&#39;.&#39; . PATH_SEPARATOR . &#39;./models/&#39; . PATH_SEPARATOR . &#39;../../PEAR&#39; . PATH_SEPARATOR . get_include_path());<br />date_default_timezone_set(&#39;Asia/Bangkok&#39;);</p>
<p>include_once(&#8221;Smarty_Zend.php&#8221;);<br />include_once(&#8221;Zend/Loader.php&#8221;);</p>
<p>Zend_Loader::loadClass(&#39;Zend_Translate&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Config_Ini&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Registry&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Db&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Db_Table&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Db_Table_Abstract&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Session&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Controller_Front&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Controller_Action&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Controller_Router_Rewrite&#39;);<br />Zend_Loader::loadClass(&#39;Zend_Controller_Plugin_Abstract&#39;);</p>
<p>include_once(&#8221;classes/ControllerPlugin.php&#8221;);<br />include_once(&#8221;classes/Common.php&#8221;);<br />include_once(&#8221;classes/ExtModel.php&#8221;);<br />include_once(&#8221;classes/ExtController.php&#8221;);<br />include_once(&#8221;widgets.php&#8221;);</p>
<p>Zend_Session::start();</p>
<p>$config_file = &#39;framework_config/config.ini&#39;;<br />$dbconfig = new Zend_Config_Ini($config_file, &#39;general&#39;);<br />$paths = new Zend_Config_Ini($config_file, &#39;paths&#39;);<br />$registry = Zend_Registry::getInstance();<br />$registry-&gt;set(&#39;path_config&#39;, $paths);<br />$registry-&gt;set(&#39;date_format&#39;, &#39;yyyy-mm-dd&#39;);<br />$registry-&gt;set(&#39;mysql_date_format&#39;, &#39;%Y-%m-%d&#39;);<br />$registry-&gt;set(&#39;config_file&#39;, $config_file);</p>
<p>// setup database<br />$db = Zend_Db::factory($dbconfig-&gt;db-&gt;adapter, $dbconfig-&gt;db-&gt;config-&gt;toArray());<br />Zend_Db_Table::setDefaultAdapter($db);<br />$registry-&gt;set(&#39;db&#39;, $db);</p>
<p>// setup controller<br />$frontController = Zend_Controller_Front::getInstance();<br />$frontController-&gt;throwExceptions(true);<br />$frontController-&gt;setControllerDirectory(&#39;./controllers&#39;)<br />				-&gt;setRouter(new Zend_Controller_Router_Rewrite())<br />				-&gt;registerPlugin(new ControllerPlugin());</p>
<p>$frontController-&gt;dispatch();</p>
<p>And the controller plugin:</p>
<p>&lt;pre&gt;<code>&lt;br&gt;class ControllerPlugin extends Zend_Controller_Plugin_Abstract{&lt;br&gt;    public function preDispatch( Zend_Controller_Request_Abstract $request ){&lt;br&gt;    	$dispatcher = Zend_Controller_Front::getInstance()-&amp;gt;getDispatcher();&lt;br&gt;        $controllerName = $request-&amp;gt;getControllerName();&lt;br&gt;        if (empty($controllerName))&lt;br&gt;            $controllerName = $dispatcher-&amp;gt;getDefaultController();&lt;br&gt;        $className = $dispatcher-&amp;gt;formatControllerName($controllerName);&lt;br&gt;        if($className){&lt;br&gt;            try{&lt;br&gt;                Zend_Loader::loadClass($className, $dispatcher-&amp;gt;getControllerDirectory());&lt;br&gt;                $actionName = $request-&amp;gt;getActionName();&lt;br&gt;                if (empty($actionName))&lt;br&gt;                    $actionName = $dispatcher-&amp;gt;getDefaultAction();&lt;br&gt;                $methodName = $dispatcher-&amp;gt;formatActionName($actionName);&lt;br&gt;                $class = new ReflectionClass( $className );&lt;br&gt;                if( $class-&amp;gt;hasMethod( $methodName ) )&lt;br&gt;                    return;&lt;br&gt;            }catch (Zend_Exception $e){&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;        // we only arrive here if can&amp;#39;t find controller or action&lt;br&gt;        $request-&amp;gt;setControllerName( &amp;#39;index&amp;#39; );&lt;br&gt;        $request-&amp;gt;setActionName( &amp;#39;noroute&amp;#39; );&lt;br&gt;        $request-&amp;gt;setDispatched( false );&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;</code>&lt;/pre&gt;</p>
<p>Did I forget something?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rvo</title>
		<link>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-31</link>
		<dc:creator>Rvo</dc:creator>
		<pubDate>Tue, 20 Nov 2007 10:47:40 +0000</pubDate>
		<guid>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-31</guid>
		<description>So, if you don't mind me asking, where's the complete source? I'm having a little trouble doing your Smarty and Registry stuff since I dont have your Smarty/ZF class and config(.ini) :(</description>
		<content:encoded><![CDATA[<p>So, if you don&#8217;t mind me asking, where&#8217;s the complete source? I&#8217;m having a little trouble doing your Smarty and Registry stuff since I dont have your Smarty/ZF class and config(.ini) <img src='http://www.prodevtips.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rvo</title>
		<link>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-1547</link>
		<dc:creator>Rvo</dc:creator>
		<pubDate>Tue, 20 Nov 2007 10:47:40 +0000</pubDate>
		<guid>http://www.prodevtips.com/2007/11/08/writing-a-cmscommunity-with-smarty-and-the-zend-framework-part-4/#comment-1547</guid>
		<description>So, if you don&#39;t mind me asking, where&#39;s the complete source? I&#39;m having a little trouble doing your Smarty and Registry stuff since I dont have your Smarty/ZF class and config(.ini) :(</description>
		<content:encoded><![CDATA[<p>So, if you don&#39;t mind me asking, where&#39;s the complete source? I&#39;m having a little trouble doing your Smarty and Registry stuff since I dont have your Smarty/ZF class and config(.ini) <img src='http://www.prodevtips.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>
