[pLog-svn] r3518 - plog/trunk/class/view

mark at devel.lifetype.net mark at devel.lifetype.net
Sat Jun 3 06:59:50 GMT 2006


Author: mark
Date: 2006-06-03 06:59:49 +0000 (Sat, 03 Jun 2006)
New Revision: 3518

Modified:
   plog/trunk/class/view/smartyview.class.php
Log:
Fixed bug http://bugs.lifetype.net/view.php?id=923.

When site admin delete a site template. I don't think check the template used by any one is a good idea. It is very time consuming and waste our cpu resource.

The better way is when we trigger the SmartyView, we check the templateSet that blog used exist or not.

If yes, we jusy go ahead and use it. If not, we use the default_template and write the information back to blogInfo.

Modified: plog/trunk/class/view/smartyview.class.php
===================================================================
--- plog/trunk/class/view/smartyview.class.php	2006-06-03 06:44:16 UTC (rev 3517)
+++ plog/trunk/class/view/smartyview.class.php	2006-06-03 06:59:49 UTC (rev 3518)
@@ -26,6 +26,7 @@
 	
 		var $_cachingEnabled;
 		var $_templateName;
+		var $_templateSetName;
 		var $_template;
 		var $_data;
 		var $_viewId;
@@ -60,13 +61,29 @@
 
 			// name of the tepmlate
 			$this->_templateName = $templateName;
+
+			// name of the template set name
+			$blogSettings = $this->_blogInfo->getSettings();
+			$this->_templateSetName = $blogSettings->getValue( 'template' );
 			
+			// Check the template exist or not
+			// If not, we use the defaule_template and also assign the default_template back to blogInfo
+			if ( !$this->isTemplateSetExist( $this->_templateSetName ) )
+			{
+				$config =& Config::getConfig();			
+				$this->_templateSetName =  $config->getValue( "default_template" );
+				$this->_blogInfo->setTemplate( $this->_templateSetName );
+
+				include_once( PLOG_CLASS_PATH.'class/dao/blogs.class.php' );
+				$blogs = new Blogs();
+				$blogs->updateBlog( $this->_blogInfo );
+			}
+						
 			// get the right CachedTemplate or Template object
-            $blogSettings = $this->_blogInfo->getSettings();			
 			$ts = new TemplateService();			
 			if( $this->isCachingEnabled()) {
 				// get a CachedTemplate object
-				$this->_template = $ts->CachedTemplate( $this->_templateName, $blogSettings->getValue( 'template' ), $this->_blogInfo );
+				$this->_template = $ts->CachedTemplate( $this->_templateName, $this->_templateSetName, $this->_blogInfo );
 				// data used to calculate the view id
 				$this->_data = $data;
 				// and generate the right cache id for it
@@ -102,9 +119,23 @@
 			
 			return $isCached;
 		}		
-		
 
 		/**
+		 * returns true if the current template set does exist or flase if it does not exist
+		 *
+		 * @return true if template set exist or false otherwise
+		 */
+		function isTemplateSetExist( $templateSetName )
+		{
+			include_once( PLOG_CLASS_PATH.'class/template/templatesets/templatesets.class.php' );
+			$templateSets = new TemplateSets();
+			if( !$templateSets->isTemplate( $templateSetName ) && !$templateSets->isBlogTemplate( $templateSetName, $this->_blogInfo->getId() ) ) 
+				return false;
+			else
+				return true;
+		}
+
+		/**
 		 * generates a unique identifier for this view. The cache identifier is generated
 		 * based on the last parameter passed to the view constructor
 		 *



More information about the pLog-svn mailing list