Пример #1
0
 public function liveSearchAction()
 {
     $this->noViewRenderer();
     $request = $this->getRequest();
     $type = $request->getQuery('filter');
     $json = array();
     switch ($type) {
         case 'item':
             $items = Model_Orders::getAll(array('start' => 0, 'limit' => 100, 'filter_name' => $request->getQuery('term')));
             if ($items) {
                 $cache = array();
                 foreach ($items as $item) {
                     if (!isset($cache[$item['item_name']])) {
                         $json[] = array('id' => $item['id'], 'label' => $item['item_name'], 'value' => $item['item_name']);
                         $cache[$item['item_name']] = true;
                     }
                 }
             }
             break;
         case 'user':
             $users = Model_Users::getUsers(array('start' => 0, 'limit' => 100, 'filter_username' => $request->getQuery('term')));
             if ($users) {
                 $cache = array();
                 foreach ($users as $user) {
                     if (!isset($cache[$user['username']])) {
                         $json[] = array('id' => $user['user_id'], 'label' => $user['username'], 'value' => $user['username']);
                         $cache[$user['username']] = true;
                     }
                 }
             }
             break;
         case 'tags':
             $tags = Model_Tags::getTags(array('start' => 0, 'limit' => 100, 'filter_name' => $request->getQuery('term')));
             if ($tags) {
                 $cache = array();
                 foreach ($tags as $tag) {
                     if (!isset($cache[$tag['name']])) {
                         $json[] = array('id' => $tag['id'], 'label' => $tag['name'], 'value' => $tag['name']);
                         $cache[$tag['name']] = true;
                     }
                 }
             }
             break;
     }
     $response = $this->getResponse();
     $response->addHeader('Cache-Control: no-cache, must-revalidate');
     $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $response->addHeader('Content-type: application/json');
     echo JO_Json::encode($json);
 }