예제 #1
0
파일: tol.php 프로젝트: netixx/frankiz
 function handler_tol_ajax_search($page)
 {
     $json = json_decode(Env::v('json'));
     $fields = $this->fillFields($json);
     $filter = $this->buildFilter($fields);
     $fiches = array();
     if ($filter) {
         $uf = new UserFilter($filter, array(new UFO_Promo(true), new UFO_Name(UFO_Name::LASTNAME)));
         if ($json->mode == 'card') {
             $users = $uf->get(new PlLimit(20, (JSON::i('page', 1) - 1) * 20))->select(UserSelect::base());
         } else {
             $users = $uf->get(new PlLimit(50, (JSON::i('page', 1) - 1) * 50))->select(UserSelect::tol());
         }
         $page->assign('user', S::user());
         $page->jsonAssign('total', $uf->getTotalCount());
         foreach ($users as $k => $user) {
             $page->assign('result', $user);
             if ($json->mode == 'card') {
                 $page->assign('mode', 'card');
             } else {
                 $page->assign('mode', 'sheet');
             }
             try {
                 $fiches[$user->id()] = $page->filteredFetch(FrankizPage::getTplPath('tol/result.tpl'));
             } catch (Exception $e) {
                 XDB::execute('INSERT INTO tol_errors SET error = {?}', $user->id());
             }
         }
     }
     $page->jsonAssign('mode', $json->mode);
     $page->jsonAssign('results', $fiches);
     $page->jsonAssign('success', true);
     return PL_JSON;
 }