[geeklog-devel] About the "internal" and Webservices APIs

Oliver Spiesshofer oliver at spiesshofer.com
Sat Aug 11 13:47:31 EDT 2007


Joe,

To write the whole thing, you should store several templates in the
database to accommodate different purposes for each content type, and
make a template-flag in the database to store them, so you need code to
upgrade the plugins and the stories tables. You would need a
list-function that allows the creator of content to choose from several
templates, so you need to rewrite the list-function of each plugin, the
edit-code, write a small documentation etc.

Your code does something I could include in my site code, and it does
the same as the simple textfile in which I currently store that text -
but in a much more complicated way. But it is nothing that would ever
see the core code of the next version.

I am discussing here if it would be good to implement a new, simple but
convenient feature, and if that would also help with the webservices
API. That would however, despite being easy, include more than 10 lines
of code. I rather assume about a full day work once you include it into
all plugins and do it with a proper interface, upgrade functions,
testing etc. I am not discussing if its difficult, I rather discuss if
its worth it before sitting down and doing all the work instead of doing
a one-off hack that I would have to repeat every time a new version
comes out.

Please do not take what I write in the wrong way - I appreciate your
readiness to always provide sample code for your explanations - but the
discussion i wanted to start was about extending the gl functionality,
not asking for help on how to write a small hack.

Oliver


Joe Mucchiello wrote:

> Couldn't this be easily done using the existing template code. Just

> add something like this to SP_renderArticle():

>

> if( !empty( $bodytext ))

> {

> //...

> }

>

> if (!empty($_CONF['global_template'])) { // or however you want to

> find the template

> $T = new Template($_CONF['path_global_templates']);

> $T->set_file('data',$_CONF['global_template']);

> $T->set_var('intro_text',$intro_text);

> $T->set_var('body_text',$body_text);

> /// etc

> $templated_text = $T->finish($T->parse('output','data'));

> } else {

> $templated_text = $introtext . $bodytext;

> }

>

>

> Then your normal template just includes {templated_text} where you

> want to show the templated version. Everything else is just interface.




More information about the geeklog-devel mailing list