[drupal-devel] [feature] modifcation to allow theme engines to theme all theme hooks

gordon drupal-devel at drupal.org
Sat Jan 29 22:32:38 UTC 2005


 Project:      Drupal
 Version:      cvs
 Component:    theme system
 Category:     feature requests
 Priority:     normal
 Assigned to:  gordon
 Reported by:  gordon
 Updated by:   gordon
 Status:       patch
 Attachment:   http://drupal.org/files/issues/phptemplate_0.patch (1.12 KB)

and here is the patch for the phptemplate engine to make use of this
functionality.


gordon



Previous comments:
------------------------------------------------------------------------

January 30, 2005 - 08:31 : gordon

Attachment: http://drupal.org/files/issues/theme.inc_1.patch (889 bytes)

Attached is a patch that I would like to get into 4.6. I didn't realise
it but I am cutting this close.
What this patch does is give the ability to theme engines to be able to
handle all theme hooks with specifically having to code for them by
creating a function {theme engine}_{theme hook} (eg. phptemplate_pager)
What I have done to achieve this is I have created a new theme engine
hook called theme_handler. This will check to see if the current theme
has been set up to include this theme hook, and returns the function
that it should called to handle this theme hook. Most the time this
would most likely be a generic theme function.
This function is then called with exactly the same arguements as the
theme() was called with. (eg the theme hook as the first arguement) So
in the case of the pager the function is called like so

<?phpphptemplate_generic("pager", "", 10)?>


The method that I have used, theme engines are not required to use this
functionality, as some theme engines such as I think xtemplate will not
be able to handle this, but it works extremely well in phptemplate.
The reason that I have made this modification is that i can use a theme
engine such as phptemplate to create the theme, and if I want to theme
any additional features such as pager, menu_tree, I can without having
to modify the theme engine from standard. So this gives me the best of
both worlds.
So with the phptemplate engine all I need to do to make use of the
additional functionality is add template file to the themes directly
like:- 
hook = hook.tpl.php, pager = pager.tpl.php, etc.
It also means in the case of the phptemplate engine the theme creaters
php skills can be limited, and still be able to expand the theme beyond
that of the engines capibilities.


-- 
View: http://drupal.org/node/16409
Edit: http://drupal.org/project/comments/add/16409





More information about the drupal-devel mailing list