Беглым взглядом оценил:
Вырвал из контроллера левой колонки:
$module_data = array();
$this->load->model('checkout/extension');
$results = $this->model_checkout_extension->getExtensions('module');
foreach ($results as $result) {
if ($this->config->get($result['key'] . '_status') && ($this->config->get($result['key'] . '_position') == 'left')) {
$module_data[] = array(
'code' => $result['key'],
'sort_order' => $this->config->get($result['key'] . '_sort_order')
);
$this->children[] = 'module/' . $result['key'];
}
}
$sort_order = array();
foreach ($module_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}
array_multisort($sort_order, SORT_ASC, $module_data);
$this->data['modules'] = $module_data;
$this->id = 'column_left';
Подключает модуль с запросами, потом выдергивает список модулей, отбирает все, у которых выбрана левая колонка, потом сортирует по позиции.
Затем выдергиваем из шаблона левой колонки:
<?php foreach ($modules as $module) { ?>
<?php echo ${$module['code']}; ?>
<?php } ?>
Тут собственно все понятно, перебор.
Дальше я думаю труда не составляет:
Выносим из контроллера в отдельную функцию, в хереде ставим вызов. Незабываем позицию поменять например на "top".
В хедер вставляем код из шаблона колонки. Затем в базе данных меняем позицию рекомендуемых на "top" в таблице setting.
По идее все должно работать :)
П.С. Самому попробовать некогда, сессия, будь она неладная :)