コード例 #1
0
 private static function renderJson($view, $source)
 {
     $rows = $source->getRows();
     self::addRowActionSuffixes($view, $rows);
     if ($view->getBool('@dynamic')) {
         self::changeEditLinks($rows);
     }
     $gridData = new afExtjsGridData();
     $gridData->totalCount = $source->getTotalCount();
     $gridData->data = $rows;
     $additionalData = $source->getAdditionalData();
     if ($additionalData) {
         $gridData->additionalData = $additionalData;
     }
     return afOutput::renderText($gridData->end());
 }
コード例 #2
0
 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());
 }
コード例 #3
0
 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());
 }
コード例 #4
0
 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());
 }