1
0

Better MVC in programs/index (logic -> controller)

This commit is contained in:
2014-06-06 09:47:15 +02:00
parent 610cd7c0a4
commit d478647418
3 changed files with 53 additions and 44 deletions

View File

@@ -2,6 +2,8 @@
class ProgramsController extends MSController
{
const PROGS_INDEX_ROWSIZE = 4;
const PROGS_INDEX_PAGESIZE = 16;
public $layout='//layouts/column2';
@@ -141,14 +143,41 @@ class ProgramsController extends MSController
{
$this->layout = '//layouts/main';
$data = array();
if (isset($_GET['page']) && is_numeric($_GET['page'])) {
$data['page'] = $_GET['page'];
$page = $_GET['page'];
} else {
$data['page'] = 1;
$page = 1;
}
$criteria = new CDbCriteria;
$criteria->order = "Sterne DESC, add_date DESC";
$criteria->condition = "visible=1";
$all = Program::model()->findAll($criteria);
/* @var $all Program[] */
$pagecount = ceil(count($all) / self::PROGS_INDEX_PAGESIZE);
$all = array_slice($all, ($page - 1) * self::PROGS_INDEX_PAGESIZE, self::PROGS_INDEX_PAGESIZE);
$rowcount = ceil((count($all) / self::PROGS_INDEX_ROWSIZE));
$progdata = array();
for ($i = 0; $i < $rowcount; $i++) {
$progdata[] = array();
foreach (array_slice($all, $i * self::PROGS_INDEX_ROWSIZE, self::PROGS_INDEX_ROWSIZE) as $record) {
$progdata[$i][] = $record;
}
}
//#######
$data = array();
$data['page'] = $page;
$data['pagecount'] = $pagecount;
$data['rowcount'] = $rowcount;
$data['data'] = $progdata;
$this->render('index', $data);
}