[geeklog-devel] Suggested changes to block code

Blaine Lang devel at portalparts.com
Thu Jul 5 23:37:01 EDT 2007


Oliver,

With respect to the ID for ajax usage or any DOM udpates via JS, what if 
we just set a template var called {bid} and you could then combine {bid} 
and a custom block template defined in the  themes functions.php if you 
wanted to have a div id with a name like 'myblock{bid}' or we could just 
add a default id to the block-header.thtml files using {bid}.

That would then not require much of any changes and no changes to the 
function definitions.

Blaine

Heather Engineering wrote:
> Messing with AJAX-style coding, you soon realise you need ids on 
> everything.
> I've added the following to the block handling code: any interest in 
> adding it to the next release?
> There is no issue with backwards compatibility.
>
> *************************************************************
>
> function COM_formatBlock : add $A['id'] to two COM_startBlock calls 
> (the function is called with an array $A, so no need to change the 
> function declaration).
>
>             $blkheader = COM_startBlock( $A['title'], $A['help'],
>                     COM_getBlockTemplate( $A['name'], 'header' ), 
> $A['id']);
>
>
>         $retval .= COM_startBlock( $A['title'], $A['help'],
>                        COM_getBlockTemplate( $A['name'], 'header' ), 
> $A['id'])
>
> *************************************************************
>
> function COM_startBlock :
>     add new $id='' to declaration
>     add $block->set_var( 'id', $id );
>
> I also added hack to check if the caller is passing a link to add a 
> help file reference, or if they are passing a complete image tag 
> already wrapped in a link (this is a similar hack to the one already 
> in COM_formatBlock to check whether to add <br > tags to block 
> content). An alternative might be to allow the caller to pass  a new 
> image link as well, so that you aren't stuck with the help icon.
>
>
> function COM_startBlock( $title='', $helpfile='', 
> $template='blockheader.thtml', $id='' )
> {
>     global $_CONF, $LANG01, $_IMAGE_TYPE;
>
>     $block = new Template( $_CONF['path_layout'] );
>     $block->set_file( 'block', $template );
>
>     $block->set_var( 'site_url', $_CONF['site_url'] );
>     $block->set_var( 'layout_url', $_CONF['layout_url'] );
>     if ($title==' ') {
>         $block->set_var( 'block_title', '');
>     } else {
>         $block->set_var( 'block_title', stripslashes( $title ));
>     }
>
> // added
>     $block->set_var( 'id', $id );
> // end add
>
>     if( !empty( $helpfile ))
>     {
>
> // altered
>         if( substr( $helpfile, 0, 1 ) == '<' )
>         {
>             $help = $helpfile;
>         }
>         else
>         {
>             $helpimg = $_CONF['layout_url'] . '/images/button_help.' . 
> $_IMAGE_TYPE;
>             if( !stristr( $helpfile, 'http://' ))
>             {
>                 $help = '<a class="blocktitle" href="' . 
> $_CONF['site_url'] . '/help/' . $helpfile
>                     . '" target="_blank"><img src="' . $helpimg
>                     . '" border="0" alt="?"></a>';
>             }
>             else
>             {
>                 $help = '<a class="blocktitle" href="' . $helpfile
>                     . '" target="_blank"><img src="' . $helpimg
>                     . '" border="0" alt="?"></a>';
>             }
> // end alteration
>
>         }
>
>         $block->set_var( 'block_help', $help );
>     }
>
>     $block->parse( 'startHTML', 'block' );
>
>     return $block->finish( $block->get_var( 'startHTML' ));
> }
>
> *************************************************************
>
>
> Cheers,
> Euan.
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>
>



More information about the geeklog-devel mailing list