[geeklog-devel] Suggested changes to block code

Blaine Lang devel at portalparts.com
Fri Jul 27 14:41:59 EDT 2007


Hi Euan,

All blocks have a name (as defined by the blockeditor) so the 
{blockname} attribute would be set for all blocks.
I will proceed to make this change and let you know once it's implemented.

Blaine

Heather Engineering wrote:
> Blaine,
>
> Sorry for the delay in replying. Sounds OK to me - as long as it 
> provides some way of setting an id, that would be great. However, I 
> was imagining something that would be set to a null string in cases 
> where there is no value available.
>
> Cheers,
>
> Euan.
>
>
> On 2007/07/23, at 8:17, Blaine Lang wrote:
>
>> Euan,
>>
>> Looking at the code today, I think it will be easiest to set a 
>> {block_name} instead of {bid}. I need to extend the COM_startBlock 
>> and many of the calls to that function may not have the block ID but 
>> do have the block_name available which is not language specific 
>> 'user_menu', 'admin_menu' but would not be unique if you had multiple 
>> poll blocks which I think is about the only time you would have 
>> multiple blocks of the same name.
>> I am thinking we extend COM_startBlock to include an 4th optional 
>> parm and use that to set {block_name} in the block header template. 
>> If you call it from your own code, that parm can be set to anything 
>> but in the core GL code, it would be the name field in the block.
>>
>> I think that should still be unique to us in Javascript - only 
>> exception being multiple polls on the same page.
>>
>> Regards,
>> Blaine
>>
>> Heather Engineering wrote:
>>> Blaine,
>>>
>>> That sounds fine to me. I already have custom blocks defined in 
>>> functions.php, so having a {bid} set would be useful.
>>>
>>> As a general point, which has come up before, I'm generally in 
>>> favour of more reusable basic templates and having classes/ids set 
>>> on everything. Oh, sorry, that was a little off topic.
>>>
>>> Cheers,
>>>
>>> Euan (who may or may not look like Oliver - I've never seen him).
>>>
>>>
>>>
>>>
>>>
>>> On 2007/07/06, at 12:37, Blaine Lang wrote:
>>>
>>>> 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
>>>>>
>>>>>
>>>> _______________________________________________
>>>> geeklog-devel mailing list
>>>> geeklog-devel at lists.geeklog.net
>>>> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>>>
>>> _______________________________________________
>>> geeklog-devel mailing list
>>> geeklog-devel at lists.geeklog.net
>>> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>>>
>>>
>> _______________________________________________
>> geeklog-devel mailing list
>> geeklog-devel at lists.geeklog.net
>> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>
> _______________________________________________
> 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