ciao a tutti, mi aiutate a capire cosa fa il fill di una griglia (flex grid) usando questa funzione di PHP + Zend

vedo che vengono create delle var e poi gestito tutto tramite JSON

mi date qualche dritta (massiva) ... senza entrare troppo ne dettaglio

Io mi ci perdo

Thanks



codice:
public function listAction() 
    {	
	    $this->checkLogin();

        if ($this->getRequest()->isPost()) 
        {
            $data = $this->getRequest()->getPost();

            $page = $data['page'];
            $rp = $data['rp'];
            $sortname = $data['sortname'];
            $sortorder = $data['sortorder'];

            //get ownerId from session
            $storage = new Zend_Auth_Storage_Session();
            $session_data = $storage->read();

            $ownerId = $session_data->userId;
			
            //search data
            $email = isset($data['mail'])?$data['mail']:'';
            $state = isset($data['state'])?$data['state']:'';
            $regDate = isset($data['regDate'])?$data['regDate']:'';
            if (!empty($regDate)) { $regDate = date("Y-m-d",strtotime($regDate));}

            if (!$sortname) $sortname = 'mail';
            if (!$sortorder) $sortorder = 'desc';

            $sort = " ORDER BY $sortname $sortorder ";

            if (!$page) $page = 1;
            if (!$rp) $rp = 10;

            $start = (($page-1) * $rp);
            $limit = "LIMIT $start, $rp";

	        //get query condition if there is set on
            $query = $data['query'];
            $qtype = $data['qtype'];

            $where = "";

            if (!empty($query)) $where = " $qtype LIKE '%$query%' ";
            if (!empty($email))   $where .=  ' mail LIKE "%'.$email.'%" ';
            if (!empty($state))   $where .= (!empty($where))? ' AND users.stateId ='. $state :' users.stateId = ' . $state ;
            if (!empty($regDate))   $where .= (!empty($where))? ' AND regDate > "'. $regDate .'"':' regDate >"'. $regDate . '"';
            if (!empty($where)) {
                $where =  ' WHERE ' . $where . ' AND ownerId =' . $ownerId;
            }
            else { 
                $where = ' WHERE ownerId =' . $ownerId;
            }


            //get main adapter config
            $configuration = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini','production');

            $dbAdapter = Zend_Db::factory($configuration->resources->db->adapter,
                                          $configuration->resources->db->params->toArray());

            $stmt = $dbAdapter->query('SELECT COUNT(*) As count FROM users'. $where);
            $countusers = $stmt->fetch();

            $total = $countusers['count'];

            $sql = "SELECT * FROM users INNER JOIN state ON state.stateId= users.stateId
                                        INNER JOIN city ON city.cityId= users.cityId
                                        INNER JOIN town ON town.townId= users.townId 
                                        $where $sort $limit";
										
            //echo $sql;exit;

            $stmt = $dbAdapter->query($sql);
            $users = $stmt->fetchAll();

            //output json file
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
            header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
            header("Cache-Control: no-cache, must-revalidate" );
            header("Pragma: no-cache" );
            header("Content-type: text/x-json");
            

            $json = "";
            $json .= "{\n";
            $json .= "page: $page,\n";
            $json .= "total: $total,\n";
            $json .= "rows: [";
            $rc = false;

            foreach ($users as $user) 
            {

                if ($rc) $json .= ",";
                $json .= "\n{";
                $json .= "id:'".$user['userId']."',";
                $json .= "cell:['".addslashes($user['userId'])."'";
                $json .= ",'".addslashes($user['firstName'])."'";
                $json .= ",'".addslashes($user['lastName'])."'";
                $json .= ",'".addslashes($user['mail'])."'";

                $json .= ",'".addslashes($user['stateName'])."'";
                $json .= ",'".addslashes($user['cityName'])."'";
                //$json .= ",'".addslashes($user['townName)."'";

                $json .= ",'".$user['regDate']."']";
                $json .= "}";
                $rc = true;
            }

            $json .= "]\n";
            $json .= "}";
            echo $json;
            exit;

        }
    }