[pLog-svn] r2790 - plog/trunk/class/dao

oscar at devel.lifetype.net oscar at devel.lifetype.net
Sun Jan 15 20:36:52 GMT 2006


Author: oscar
Date: 2006-01-15 20:36:52 +0000 (Sun, 15 Jan 2006)
New Revision: 2790

Modified:
   plog/trunk/class/dao/articlecategories.class.php
Log:
A fix for blog categories not being loaded properly.

Modified: plog/trunk/class/dao/articlecategories.class.php
===================================================================
--- plog/trunk/class/dao/articlecategories.class.php	2006-01-15 20:19:23 UTC (rev 2789)
+++ plog/trunk/class/dao/articlecategories.class.php	2006-01-15 20:36:52 UTC (rev 2790)
@@ -51,9 +51,9 @@
          */
         function getCategory( $categoryId, $blogId = -1 )
         {
-        	$category = $this->get( "id", $categoryId, 
-        	                        CACHE_ARTICLE_CATEGORIES,
-        	                        Array( CACHE_ARTICLE_CATEGORIES_BYNAME => "getMangledName" ));
+        	$category = $this->get( "id", 
+			                        $categoryId, 
+        	                        CACHE_ARTICLE_CATEGORIES );
         	if( !$category )
         		return false;
         	if( $blogId > -1 && $category->getBlogId() != $blogId )
@@ -71,15 +71,31 @@
          */
         function getCategoryByName( $categoryName, $blogId = -1 )
         {
-        	$category = $this->get( "mangled_name", $categoryName, 
-        	                        CACHE_ARTICLE_CATEGORIES_BYNAME,
-        	                        Array( CACHE_ARTICLE_CATEGORIES => "getId" ));
-        	if( !$category )
+        	$categories = $this->getMany( "mangled_name", 
+			                              $categoryName, 
+        	                              CACHE_ARTICLE_CATEGORIES_BYNAME,
+        	                              Array( CACHE_ARTICLE_CATEGORIES => "getId" ));							
+										  									
+			// no categories
+        	if( !$categories )
         		return false;
-        	if( $blogId > -1 && $category->getBlogId() != $blogId )
-        		return false;
-        		
-        	return( $category );        	                        
+			if( count( $categories ) == 0 )
+				return false;
+				
+			// there might be more than one in several different blogs...
+			$found = false;
+			while( !$found ) {
+				$category = array_pop( $categories );
+				if( $blogId > -1 && $category->getBlogId() == $blogId ) {
+					$found = true;
+				}
+			}
+			
+			// check if we found something...
+			if( $found )
+				return( $category );
+			else
+				return false;
         }
 		
 		/**
@@ -121,8 +137,7 @@
 			$categories = $this->getMany( "blog_id",
 			                              $blogId,
 			                              CACHE_ARTICLE_CATEGORIES_BLOG,
-			                              Array( CACHE_ARTICLE_CATEGORIES => "getId",
-			                                     CACHE_ARTICLE_CATEGORIES_BYNAME => "getMangledName" ),
+			                              Array( CACHE_ARTICLE_CATEGORIES => "getId" ),
 			                              Array(),
 										  $searchTerms,
 			                              $page,
@@ -180,7 +195,7 @@
          */
         function addArticleCategory( $articleCategory )
         {
-        	if(( $result = $this->add( $articleCategory, Array( CACHE_ARTICLE_CATEGORIES => "getId", CACHE_ARTICLE_CATEGORIES_BYNAME => "getMangledName" )))) {
+        	if(( $result = $this->add( $articleCategory, Array( CACHE_ARTICLE_CATEGORIES => "getId" )))) {
         		$this->_cache->removeData( $articleCategory->getBlogId(), CACHE_ARTICLE_CATEGORIES_BLOG, $articleCategory );
         	}
         	
@@ -235,7 +250,6 @@
         	if( $result = $this->update( $category )) {
 				$this->_cache->removeData( $category->getBlogId(), CACHE_ARTICLE_CATEGORIES_BLOG );
         		$this->_cache->setData( $category->getId(), CACHE_ARTICLE_CATEGORIES, $category );
-        		$this->_cache->setData( $category->getMangledName(), CACHE_ARTICLE_CATEGORIES_BYNAME, $category );        	
         	}
         	
         	return( $result );



More information about the pLog-svn mailing list