[pLog-general] Changing Templates Names.
Oscar Renalias
oscar at renalias.net
Sun Oct 2 19:42:16 GMT 2005
Sorry I have been the whole weekend away but yes, what you did is one
possible way.
One better way to handle the plog_config table would have been via
the Config object, since it would have handled all serialization and
unserialization for you:
$config =& Config::getConfig();
$templates = $config->getValue( "templates" );
foreach( $templates as $template ) {
// ... do whatever ...
}
$config->setValue( "templates", $templates );
Maybe next time :)
Oscar
On 2 Oct 2005, at 17:31, Zaid B. Amireh wrote:
> Zaid B. Amireh wrote:
>
>
>> Hi all,
>>
>> I need to rename all the templates that I have installed without
>> requiring the user to do a thing.
>>
>> in the plog_config table we have:
>> templates = 'a:11:{i:0;s:15:"blueish-English";i:1;s:12:"grey-
>> English";i:2;s:16:"standard-English";i:3;s:13:"flower-Arabic";i:
>> 4;s:18:"pink_lilies-Arabic";i:5;s:11:"toni-Arabic";i:6;s:
>> 20:"pastel-blocks-Arabic";i:7;s:16:"girlsucks-Arabic";i:8;s:
>> 19:"desert_theme-Arabic";i:9;s:20:"fresh-bananas-Arabic";i:10;s:
>> 13:"ocadia-Arabic";}'
>>
>> changing this won't be a problem, but I'm facing a problem with
>> the plog_blogs table, an example entry:
>> settings = 'O:12:"blogsettings":3:{s:6:"_objId";N;s:3:"log";N;s:
>> 6:"_props";a:11:{s:6:"locale";s:5:"en_UK";s:14:"show_posts_max";s:
>> 2:"15";s:8:"template";s:16:"standard-English";s:
>> 17:"show_more_enabled";s:1:"1";s:16:"recent_posts_max";s:2:"10";s:
>> 17:"xmlrpc_ping_hosts";a:1:{i:0;s:27:"http://rpc.weblogs.com/
>> RPC2";}s:16:"htmlarea_enabled";s:1:"1";s:16:"comments_enabled";s:
>> 1:"1";s:16:"categories_order";i:0;s:14:"comments_order";s:1:"1";s:
>> 11:"time_offset";s:1:"0";}}'
>>
>> as you can see, the chosen template is saved as a string and not
>> an integer so if I change the name of the template in the
>> plog_config.templates column then I need to change the name of the
>> template in the plog_blogs.config column too.
>>
>> Now, should I write a php script that uses the API provided by
>> plog or can I write something like the perl substitute command in
>> mysql? a better is highly appreciated.
>>
>> with regards
>>
>> Zaid Amireh
>> _______________________________________________
>> pLog-general mailing list
>> pLog-general at devel.plogworld.net
>> http://devel.plogworld.net/mailman/listinfo/plog-general
>>
>
>
> Anyways, I solved this by writing a php script, here is the juicy part
>
> #!/usr/bin/php
> <?php
>
> define( 'PLOG_CLASS_PATH', '../' );
>
> //blogs DAO
> include_once(PLOG_CLASS_PATH.'class/dao/bloginfo.class.php');
> include_once(PLOG_CLASS_PATH.'class/dao/blogsettings.class.php');
> include_once(PLOG_CLASS_PATH.'class/dao/blogs.class.php');
>
> $allBlogs = new Blogs();
>
> $blogsIds = $allBlogs->getAllBlogIds();
>
> foreach( $blogsIds as $blogId ){
>
> $blogInfo = $allBlogs->getBlogInfo( $blogId );
>
> $oldTemplate = $blogInfo->getTemplate();
>
> //snip decision making about which template to use
> $newTemplate = 'New-Template';
> $blogInfo->setTemplate( $newTemplate );
> $allBlogs->updateBlog( $blogId, &$blogInfo );
> } //end of foreach
> ?>
>
>
> then I had to manually create a serialized plog_config.templates
> entry and then rename all the template folders to the new names.
>
> just thought I would share :)
>
> with regards
>
> Zaid Amireh
> _______________________________________________
> pLog-general mailing list
> pLog-general at devel.plogworld.net
> http://devel.plogworld.net/mailman/listinfo/plog-general
>
>
More information about the pLog-general
mailing list