[geeklog-devel] Fwd: Templating and Caching

Joe Mucchiello joe at ThrowingDice.com
Thu Oct 11 03:29:56 EDT 2007

Well I finally finished the template caching library. It's posted to 
geeklog.net as a hack: 
http://www.geeklog.net/filemgmt/visit.php?lid=871 Mark Evans has been 
running the library on gllabs.org  for a while now so there should 
not be any major issues left with the library.

There are a few code changes needed to core Geeklog in order to make 
it work. They are listed in the readme/install file in the archive 
linked above but I'll post them here. Essentially, some lazy code in 
Geeklog (and its plugins) uses the fact that if you parse a file with 
some of its variables unset, and the later set those variables, the 
final parse('output'....) will catch your mistake. Since this library 
uses include 'cached_file' as its "subst" mechanism, this side effect 
no longer works. Mark says using the library he discovered dozens of 
cases of "sloppy" code and potential bugs in MediaGallery, his next 
release of MG will solve those problems. I've corrected similar bugs 
in forums locally but wasn't fastidious enough to write them all 
down. Sorry Blaine.

The readme/install file in the zip file is 14k. If you have any 
questions, read it first as it is very descriptive of the whys and 
hows of the library. This is excerpted from it:

Problem: The moderation command and control table doesn't look right
Fix: in .../public_html/admin/moderation.php, find this line in the 
function commandcontrol():

         $admin_templates->set_var('cc_icon_width', floor(100/ICONS_PER_ROW));

and move it before the first call to render_cc_item()

Problem: The advanced editor does not display its tools ribbon.
Fix: in .../public_html/lib-common.php, find this code in the 
function COM_siteHeader()

     if( isset( $_CONF['advanced_editor'] ) && ( 
$_CONF['advanced_editor'] == 1 )
             && file_exists( $_CONF['path_layout']
                             . 'advanced_editor_header.thtml' ))
         $header->set_file( 'editor'  , 'advanced_editor_header.thtml');
         $header->parse( 'advanced_editor', 'editor' );

          $header->set_var( 'advanced_editor', '' );

Move the whole block just before these lines:

     // Call any plugin that may want to include extra Meta tags
     // or Javascript functions
     $header->set_var( 'plg_headercode', $headercode . PLG_getHeaderCode() );

     // Call to plugins to set template variables in the header
     PLG_templateSetVars( 'header', $header );

Problem: Admin lists fail to show number of records found.
Fix: In ADMIN_list, find this line of code:

         $admin_templates->parse('search_menu', 'search', true);

Cut it and paste it after this line:

         $admin_templates->set_var ('records_found',
                                    COM_numberFormat ($num_rows));

Joe Mucchiello
Throwing Dice Games

More information about the geeklog-devel mailing list