From 6fc037683b9e54df691b843d9d75406092cf5cc9 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Tue, 29 Mar 2016 20:59:20 +0200 Subject: [PATCH] Inserito filtro categorie in lista notizie --- private/lib/gui/DatatablesHelper.php | 42 ++++++++++++++++++- public/admin/listNotizie.php | 20 ++++++++- .../tablesBackends/notizieTableBackend.php | 8 +++- 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/private/lib/gui/DatatablesHelper.php b/private/lib/gui/DatatablesHelper.php index 7802ba1..be1af8a 100644 --- a/private/lib/gui/DatatablesHelper.php +++ b/private/lib/gui/DatatablesHelper.php @@ -31,9 +31,17 @@ class DatatablesHelper { $models = array(); if (array_key_exists("search", $_POST) && array_key_exists("value", $_POST["search"]) && strcmp(trim($_POST["search"]["value"]),"")!=0 ){ $models = $dao->search($useModel, trim($_POST["search"]["value"]), $filter, $options); + + $ret->recordsTotal = $dao->searchCount($useModel, trim($_POST["search"]["value"])); + + $ret->recordsFiltered = $dao->searchCount($useModel, trim($_POST["search"]["value"]), $filter); } else { $models = $dao->query($useModel, $filter, $options); + + $ret->recordsTotal = $dao->count($useModel); + + $ret->recordsFiltered = $dao->count($useModel,$filter); } @@ -45,8 +53,9 @@ class DatatablesHelper { $ret->data[] = $result; } } - $ret->recordsTotal = $dao->count($useModel); - $ret->recordsFiltered = $dao->count($useModel,$filter); + + + } } return $ret; @@ -99,6 +108,20 @@ class DatatablesHelper { $buttonDiv.='
'; } + $additionalControlbarHtml = null; + if (array_key_exists("additionalControlbarHtml",$htmlOpts)){ + $additionalControlbarHtml = $htmlOpts["additionalControlbarHtml"]; + } + + $additionalPostFunction = null; + if (array_key_exists("additionalPostFunction",$htmlOpts)){ + $additionalPostFunction = $htmlOpts["additionalPostFunction"]; + } + + $initCompleteFunction = null; + if (array_key_exists("initCompleteFunction",$htmlOpts)){ + $initCompleteFunction = $htmlOpts["initCompleteFunction"]; + } $columns[] = array("label"=>"id","data"=>"id"); @@ -131,6 +154,11 @@ class DatatablesHelper { "serverSide": true, "ajax": { "url": "admin/tablesBackends/", + "type": "POST" }, "columns": [ ], @@ -140,8 +168,18 @@ class DatatablesHelper { } ?> "initComplete": function () { + $("div.").prepend(''); + }, "columnDefs": [ {"className":"lastVisible","targets":[]}, diff --git a/public/admin/listNotizie.php b/public/admin/listNotizie.php index 4e8fb32..d73a246 100644 --- a/public/admin/listNotizie.php +++ b/public/admin/listNotizie.php @@ -32,9 +32,25 @@ $buttons = array( array("icon"=>"icon-medium-blue icon-remove","page"=>"deleteNotizie.php") ); +$select = '"; + +$postFunction = 'function (d){ d.category = $("#categorySelect").val(); }'; + +$initComplete = '$("#categorySelect").change(function () {$("#datatable_0").DataTable().ajax.reload();});'; + ?>
$buttons)); + $details = DatatablesHelper::generateTable("notizieTableBackend.php",$columns,array("buttons"=>$buttons, "additionalControlbarHtml"=>$select, "additionalPostFunction"=> $postFunction, 'initCompleteFunction'=>$initComplete)); ?> -
\ No newline at end of file + + \ No newline at end of file diff --git a/public/admin/tablesBackends/notizieTableBackend.php b/public/admin/tablesBackends/notizieTableBackend.php index a4a7285..d756722 100644 --- a/public/admin/tablesBackends/notizieTableBackend.php +++ b/public/admin/tablesBackends/notizieTableBackend.php @@ -35,7 +35,13 @@ $exposedFields = array( "id"=>null ); -$ret = DatatablesHelper::getResult($useModel, $permissionFlagRequired, $exposedFields, array("status"=>NotiziaModel::STATUS_ACCEPTED)); +$filter = array("status"=>NotiziaModel::STATUS_ACCEPTED); +$categoryPost = PostHandler::get("category"); +if (!is_null($categoryPost) && array_key_exists($categoryPost, NotiziaModel::$NOTIZIE_CATEGORY)){ + $filter["category"] = intval($categoryPost); +} + +$ret = DatatablesHelper::getResult($useModel, $permissionFlagRequired, $exposedFields, $filter); if (property_exists($ret, "data") && sizeof($ret->data)>0){ foreach ($ret->data as $key=>$ele ){ $ret->data[$key]->sottotitolo = iconv('UTF-8', 'UTF-8//IGNORE', html_entity_decode($ret->data[$key]->sottotitolo));