yitznewton
yitznewton

Reputation: 810

Drupal 6: duplicate theme function in two themes

I have a regular and mobile theme for a site; there are currently a couple of duplicate functions in the template.php of each theme, which do some text munging on the same fields. That is, the markup is the same for these fields in both themes.

How can I impose DRY and only have the logic in one place?

I understand I could make the regular theme inherit the mobile theme, but this doesn't seem like a "proper" solution, since the themes are quite different at the end of the day. Even more so as this would require ex-post-facto manipulation of the preprocess functions, and overriding mobile CSS and JS files - seemingly creating as much work and future WTH as it solves.

Thanks!

Upvotes: 1

Views: 130

Answers (2)

Ben
Ben

Reputation: 1555

How about you make a base theme which holds the functions, and implement both as sub-themes of it.

Or just the mobile theme a sub-theme, and the PC theme is the base?

Creating a sub-theme

Upvotes: 1

Cristobal Wetzig
Cristobal Wetzig

Reputation: 381

I would love to see the proper answer for this.

All i can think of is making a module that holds the duplication of functionality. A library module if you will.

So I'm making this "answer" as a conversation starter.

in: (mobile)template.php

preprocess_page(&$vars){
 mymodulename_pagepreprocess($vars,'mobile');
}

(desktop)template.php

preprocess_page(&$vars){
 mymodulename_pagepreprocess($vars,'desktop');
}

You can have preprocess-functions in modules as well btw. But it might be nice to send witch template as an argument.(you could however extract this from the global $theme)

Upvotes: 1

Related Questions