i18n blocks creates conflicts with themes and modules that override the theme_blocks function
sullix - May 8, 2009 - 15:41
| Project: | Internationalization |
| Version: | 6.x-1.x-dev |
| Component: | Compatibility |
| Category: | bug report |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | needs review |
Description
i18nblocks module uses its own method to theme blocks... so we cannot override the Drupal theme_blocks function in themes (template.php) or in other modules (in particular : Context).
Read : #402150: Conflict with i18n block translation: Context defined blocks don't show up
Thanks

#1
I'll be following on the Context module issue.
#2
Hi Jose,
I don't see the needs of overriding "theme_blocks()" function. A "hook_preprocess_block()" could be enough.
If you agree this, I can build the patch.
Makara
#3
Subscribing.
#4
One solution would be to get rid of i18n block entirely, and use a single context per language instead...
#632322: Context language condition support
#5
See also #644044: Activating module Block Translation breaks sidebar rendering in the Zen issue queue.
#6
I built the patch, based on cvs DRUPAL-6--1.
I didn't change the code that does the translation, but just moved it from hook_theme_registry_alter() into hook_preprocess_block(). This solves the conflict.
Please review.
#7
#8
Thanks, your patch works great!