[development] theme/module name conflict

Khalid Baheyeldin kb at 2bits.com
Wed Apr 25 22:58:48 UTC 2007


On 4/25/07, Ashraf Amayreh <mistknight at gmail.com> wrote:
>
> Hello all,
>
> I ran into a very awkward bug today. I created a module and a theme for a
> client, and naturally, this module contained customizations and the theme
> was a custom made theme. I named the module and the theme with the client's
> name. Let's say the client was named abc so I created an abc module and an
> abc theme.


I have done the same in the past. A module called x.module, and a theme
called x with a file page.tpl.php. Did not have problems.

I did not use hook_block in that module though.

So, to verify that you are facing an issue, I created the following:

garland.info
name = Garland module
description = Test gardland module
version = "$Name:  $"
garland.module

<?php
function garland_block($op, $delta = 0) {
}

When I implemented the abc_block hook I was surprised to find that all
> blocks disappeared on all pages.


The blocks disappeared like you found out, when I enabled the above module.

Further investigation into the core and I found that the culprit was the
> call to theme('block') which mistakingly called abc_block thinking it was a
> theme override function (rather than the hook it was).
>
> I was wondering if this issue has been addressed before. I can think of
> three possible solutions:
> 1. Make it a standard that no theme and module should be named the same
> (weak solution)
> 2. Change all theme('block') calls to something else so no chance of
> conflict could occur
> 3. Change the hook name so that it won't conflict with the theme call
> 4. Any suggestions???
>
> Either 2 or 3 seem good enough to solve the problem. But I thought I'd
> gouge some opinions before wasting time on a less-than-optimal patch.


I think 1 can be easiest path. Forbid enabling a module with the same name
as an enabled theme and vice versa. So whoever is enabled first wins.

I am not sure what the impact on modules would be if 2 or 3 is done.
-- 
2bits.com
http://2bits.com
Drupal development, customization and consulting.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20070425/3624b2a1/attachment.htm 


More information about the development mailing list