# L!MP (03.11.2016 / 13:53)пардонте. а нафига мне тогда это "модуль" будет нужен вообще?
Ну вот еще этот "гив ми гив ми" вынести в отдельный слой, что бы в твоем модуле не было никакой бизнес логики, и будет то, о чем мы тут все говорим.
этим вот модулем и станет тот слой о которым ты говоришь, а изначальный будет просто пустышкой и паразитом
модуль action:top допустим (+/-)
<?php
/**
* Created by PhpStorm.
* User: ramzes
* Date: 30.10.2016
* Time: 10:31
*/
namespace microapp;
app::xtpl()->assign('title', 'Темы для EMUI');
if(app::user()->right('hw-themes.view')){
$total = app::sql()->query("SELECT count(*) FROM `hw`;")->count();
$page = app::router()->query(2) ? app::integer()->clear(app::router()->query(2)) : 0;
$list = app::sql()->query("SELECT * FROM `hw` ORDER BY `download` DESC LIMIT ".$page.", 20;")->toArray();
$hws = [];
foreach ($list as $hw){
$hw['cover'] = app::storage()->emuiScreen('0__'.$hw['hash']);
$hw['modules'] = explode('||', $hw['modules']);
$hws[] = $hw;
}
app::xtpl()->assign('add_button', app::user()->right('hw-themes.add') ? '<a class="ajax button" href="/hw-themes/add/"></a>' : '');
app::xtpl()->assign('list', $hws);
app::xtpl()->assign('paginator', app::navi()->total($total)->page($page)->step(20)->url('hw-themes/top'));
app::xtpl()->complite('emui/top');
}else{
app::xtpl()->complite('access-denied');
}