Вы используете коммерческий шаблон или что-то нестандартное?Вы должны иметь возможность кодировать свой index.php так, чтобы макет определялся модулями, загруженными на страницу.Затем вы управляете тем, какие модули отображаются с помощью назначений меню в параметрах модуля.Вы можете управлять отображением макета с помощью CSS, суффикса класса страницы и кода на index.php.
Каждая позиция модуля в вашем шаблоне должна быть разборной - это означает, что если в нее не загружены модули, онане добавляется в HTML.Используйте что-то вроде этого:
<?php if ($this->countModules('left')) : ?>
<jdoc:include type="modules" name="left" style="xhtml" />
<?php endif; ?>
Вы также можете использовать комбинацию суффикса класса страницы, которую вы можете установить в системных параметрах элемента меню и CSS для управления макетом страницы.Я добавляю суффикс класса страницы к тегу BODY моих шаблонов, чтобы я мог контролировать каждую страницу индивидуально.
Сначала вам нужно выяснить, на каком пункте меню вы находитесь:
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
if (is_object( $active )) :
$params = new JParameter( $active->params );
$pageclass = $params->get( 'pageclass_sfx' );
endif;
?>
Затем вам нужно добавить это к тегу BODY в качестве идентификатора:
<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">
Теперь вы можете использовать позиции модуля и CSS для управления каждой страницей.Вы можете создавать совершенно разные макеты, не возвращаясь назад и не нажимая код.