[pLog-svn] r3133 - plog/trunk/class/dao
Jon Daley
plogworld at jon.limedaley.com
Mon Mar 27 04:04:41 GMT 2006
Not really sure about this caching stuff. Oscar, can you look at
this? Also, see my change for blogs->update, where I always return true.
It seems reasonable that the user might hit the update button because he
forgot whether he changed something or not, and then be confused when the
operation fails.
Perhaps the model->update should not return false either in that
case? There could be some other return code if the caller wanted to check
if rows were changed in the database?
On Mon, 27 Mar 2006, jondaley at devel.lifetype.net wrote:
> Author: jondaley
> Date: 2006-03-27 03:41:40 +0000 (Mon, 27 Mar 2006)
> New Revision: 3133
>
> Modified:
> plog/trunk/class/dao/blogs.class.php
> Log:
> first shot at new custom domain stuff. currently, there isn't a UI for this at all, but you can edit the database manually. (note, a new column is added to the database - not sure what lifetype will do with a missing column - so, you need to run 'ALTER TABLE plog_blogs ADD COLUMN custom_domain VARCHAR(50)' on your database
>
> Modified: plog/trunk/class/dao/blogs.class.php
> ===================================================================
> --- plog/trunk/class/dao/blogs.class.php 2006-03-27 01:42:23 UTC (rev 3132)
> +++ plog/trunk/class/dao/blogs.class.php 2006-03-27 03:41:40 UTC (rev 3133)
> @@ -5,6 +5,7 @@
>
> define( "CACHE_BLOGINFOS", "bloginfo" );
> define( "CACHE_BLOGIDBYNAME", "bloginfo_idbyname" );
> + define( "CACHE_BLOGIDBYDOMAIN","bloginfo_idbydomain" );
>
> /**
> * \ingroup DAO
> @@ -28,7 +29,10 @@
> function getBlogInfo( $blogId )
> {
> require_once( PLOG_CLASS_PATH . 'class/dao/bloginfo.class.php' );
> - return( $this->get( "id", $blogId, CACHE_BLOGINFOS, Array( CACHE_BLOGIDBYNAME => "getMangledBlogName" )));
> + return( $this->get( "id", $blogId,
> + CACHE_BLOGINFOS,
> + Array( CACHE_BLOGIDBYNAME => "getMangledBlogName",
> + CACHE_BLOGIDBYDOMAIN => "getCustomDomain")));
> }
>
> /**
> @@ -40,8 +44,17 @@
> function getBlogInfoByName( $blogName, $extendedInfo = false )
> {
> require_once( PLOG_CLASS_PATH . 'class/dao/bloginfo.class.php' );
> - return( $this->get( "mangled_blog", $blogName, CACHE_BLOGIDBYNAME, Array( CACHE_BLOGINFOS => "getId" )));
> + return( $this->get( "mangled_blog", $blogName,
> + CACHE_BLOGIDBYNAME,
> + Array( CACHE_BLOGINFOS => "getId" )));
> }
> +
> + function getBlogInfoByDomain($blogDomain, $extendedInfo = false){
> + require_once(PLOG_CLASS_PATH . 'class/dao/bloginfo.class.php');
> + return( $this->get( "custom_domain", $blogDomain,
> + CACHE_BLOGIDBYDOMAIN,
> + Array( CACHE_BLOGINFOS => "getId" )));
> + }
>
> /**
> * @see Model::getSearchConditions
> @@ -62,9 +75,10 @@
> {
> // load the previous version of this blog
> $prevVersion = $this->getBlogInfo( $blog->getId());
> -
> if( ($result = $this->update( $blog ))) {
> // reset the caches
> + // TODO: jondaley: is this doing the right thing?
> + $this->_cache->removeData( $blog->getCustomDomain(), CACHE_BLOGIDBYDOMAIN );
> $this->_cache->removeData( $blog->getMangledBlogName(), CACHE_BLOGIDBYNAME );
> $this->_cache->removeData( $blog->getId(), CACHE_BLOGINFOS );
>
> @@ -87,7 +101,9 @@
> }
> }
>
> - return $result;
> + // always return true,
> + // $result is only false if nothing was changed, but that really isn't an error?
> + return true;
> }
>
> /**
> @@ -170,6 +186,7 @@
> // and cache whatever we loaded for later use, just in case
> $this->_cache->setData( $blog->getId(), CACHE_BLOGINFOS, $blog );
> $this->_cache->setData( $blog->getMangledBlogName(), CACHE_BLOGIDBYNAME, $blog );
> + $this->_cache->setData( $blog->getCustomDomain(), CACHE_BLOGIDBYDOMAIN, $blog );
> }
>
> return $blogs;
> @@ -294,7 +311,8 @@
> $blogInfo->setTotalComments( $row['num_comments'] );
> // mangled blog
> $blogInfo->setMangledBlogName( $row['mangled_blog'] );
> - // show in summary or not
> + $blogInfo->setCustomDomain( $row['custom_domain'] );
> + // show in summary or not
> $blogInfo->setShowInSummary( $row['show_in_summary'] );
>
> return $blogInfo;
More information about the pLog-svn
mailing list