[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