Ви маєте рацію, і це дійсний і використаний підхід для сайтів з декількома темами. Є кілька додаткових (маловідомих, рідко використовуваних) параметрів, які можна використовувати для оновлень макетів, що застосовуються до різних областей магазину: ручка магазину та ручка теми.
З суперкласу контролера дій Mage_Core_Controller_Varien_Action
(посилання) :
public function addActionLayoutHandles()
{
$update = $this->getLayout()->getUpdate();
// load store handle
$update->addHandle('STORE_'.Mage::app()->getStore()->getCode());
// load theme handle
$package = Mage::getSingleton('core/design_package');
$update->addHandle(
'THEME_'.$package->getArea().'_'.$package->getPackageName().'_'.$package->getTheme('layout')
);
// load action handle
$update->addHandle(strtolower($this->getFullActionName()));
return $this;
}
Для магазину з кодом "deutsch" та конфігурацією теми пакета "за замовчуванням", "німецької" теми наступні ручки застосовуватимуться майже до кожного перегляду, оскільки більшість представлень даних використовує:
<STORE_deutsch>
<THEME_frontend_default_german>
Реалізуючи ці ручки, можна використовувати так само, як і <default />
.