function executeListgridjson() { $start = $this->request->getParameterHolder()->has('start') ? $this->request->getParameterHolder()->get('start') : 0; $limit = $this->request->getParameterHolder()->has('limit') ? $this->request->getParameterHolder()->get('limit') : 20; $anode = $this->request->getParameterHolder()->has('anode') ? $this->request->getParameterHolder()->get('anode') : null; $uid = $this->request->getParameterHolder()->get('uid'); $page = $start == 0 ? 1 : ceil($start / $limit) + 1; $parser = $this->getUser()->getAttributeHolder()->getAll('parser/grid'); $host = "https://" . $this->getRequest()->getHost(); foreach ($parser as $data) { if ($data["uid"] == $uid) { $parser = $data; break; } } $pager = new sfPropelPager($parser["class"], $parser["limit"]); if ($anode === null) { $c = $parser["criteria"]; } else { $parser["datasource"]["method"]["params"]["criteria"] = $parser["criteria"]; $parser["datasource"]["method"]["params"]["gid"] = $anode; $c = afCall::funcArray(array($parser["datasource"]["class"], $parser["datasource"]["method"]["name"]), $parser["datasource"]["method"]["params"]); } $pager->setPeerMethod($parser["select_method"]); $pager->setPage($page); $pager->setCriteria($c); $pager->init(); $grid_data = new afExtjsGridData(); $grid_data->totalCount = $pager->getNbResults(); $items = array(); $i = $j = 0; foreach ($pager->getResults() as $object) { foreach ($parser["columns"] as $column) { $j = 0; $id = $object->getId(); if (method_exists($object, "get" . $column["phpname"])) { $tmp = call_user_func(array($object, "get" . $column["phpname"])); } else { $tmp = ""; } if ($tmp && in_array($column["phpname"], $parser["foreign_keys"])) { $items[$i][$column["column"]] = call_user_func(array($tmp, "__toString")); } else { $items[$i][$column["column"]] = $tmp; } $items[$i]["_id"] = $anode == null ? $id : rand(); $items[$i]["_parent"] = $anode; $items[$i]["_is_leaf"] = $anode == null ? false : true; foreach ($parser["rowactions"] as $k => $action) { if (!strstr($host . $action["attributes"]["url"], "?")) { $host . ($action["attributes"]["url"] .= "?"); } if ($anode !== null) { $items[$i]["action" . ($j + 1)] = $host . $action["attributes"]["url"] . "id=" . $id . "&"; } $j++; } } $i++; } foreach ($items as $item) { $grid_data->addRowData($item); } return $this->renderText($grid_data->end()); }
public function executeListjsonAuditLog() { $start = $this->request->getParameterHolder()->has('start') ? $this->request->getParameterHolder()->get('start') : 0; $limit = $this->request->getParameterHolder()->has('limit') ? $this->request->getParameterHolder()->get('limit') : 20; $page = $start == 0 ? 1 : ceil($start / $limit) + 1; $c = new Criteria(); $c->addDescendingOrderByColumn(AuditLogPeer::ID); $pager = new sfPropelPager('AuditLog', $limit); $pager->setPage($page); $pager->setCriteria($c); $pager->init(); $grid_data = new afExtjsGridData(); $grid_data->totalCount = $pager->getNbResults(); foreach ($pager->getResults() as $object) { $item = Util::getPropelObjectAsArray($object); $item['user_id'] = $object->getsfGuardUser()->getUsername(); $grid_data->addRowData($item); } return $this->renderText($grid_data->end()); }
function executeJsoncustomgrid() { $grid_data = new afExtjsGridData(); $files = sfFinder::type('file')->ignore_version_control()->maxdepth(1)->in('/usr/www/manager/web/images/famfamfam'); sfProjectConfiguration::getActive()->loadHelpers(array('Asset', 'Tag')); for ($i = 0; $i < 30; $i++) { $grid_data->addRowData(array("html" => image_tag(str_replace('/usr/www/manager/web', '', $files[$i]), array('width' => '50')))); } return $this->renderText($grid_data->end()); }