Recreate:
Enable more than one theme.
Goto admin/build/block
Select a non-default theme in the local tab section.
The page will always load the default theme block settings (independent of your theme selection).
You can test this by saving your changes, and in the database it will only affect the block with the default theme.
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | block.admin_.inc_.patch | 803 bytes | TapocoL |
Comments
Comment #1
bbeyer commentedI am having the same issue in 6.4. We have completely disabled all other themes and cleared out the table in the database and then reinstalled one other theme and get the same problem.
Like TapocoL, we only rearrange blocks in other themes if you change the default theme of the site first.
Comment #2
maartenvg commentedConfirmed in HEAD. I'll take a look at it.
BTW. I can't reproduce this in D6.4 on a clean install.
Comment #3
maartenvg commentedOk. I've reduced this bug to the fact that when you click on a non-default theme's local task button, the current theme isn't switched to that theme (like it does in D5 and D6). The block administration uses the displayed theme to load and save the settings of the blocks for that theme, this is because not all themes use the same regions. So if the displayed theme doesn't change to the requested theme, nothing will change for the requested theme, but for the default theme.
Why the theme isn't changing I haven't figured out yet. Anyone else an idea?
Comment #4
TapocoL commentedThe reason it is loading the default theme is because of the global variable $theme_key is filled with the default theme.
On line 19 in block.admin.inc, there is a call to _block_rehash(). Inside that function uses the global $theme_key and passes it to system_region_list to gather the regions, then _block_rehash() returns all available blocks in a structured array according to the default theme.
On line 37 in block.admin.inc, there is a call to system_region_list passing $theme_key (again). This is just getting the list of block regions and is using the default theme again.
If $theme_key is assigned the selected theme, then it will load the correct theme set-up.
Here is a fix for it. However, I recommend testing thoroughly and getting a theme expert to make sure I am not changing a global variable that I shouldn't be.
Comment #6
maartenvg commentedThis has been fixed, although I don't know when.