Lançado Adianti Framework 7.6!
Clique aqui para saber mais
menu

Adianti Solutions

API

Adianti, Framework, PHP, MVC, Active record, Front controller, IDE, RAD, Web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, padrões de projeto, design patterns API do Adianti Framework.
API Docs
code
Selecione a classe

Source for file AdiantiAutocompleteService.php

Documentation is available at AdiantiAutocompleteService.php

  1. <?php
  2. namespace Adianti\Service;
  3.  
  4. use Adianti\Database\TTransaction;
  5. use Adianti\Database\TRepository;
  6. use Adianti\Database\TCriteria;
  7. use Adianti\Database\TFilter;
  8. use Adianti\Util\AdiantiStringConversion;
  9.  
  10. use StdClass;
  11. use Exception;
  12.  
  13. /**
  14.  * Autocomplete backend
  15.  *
  16.  * @version    7.4
  17.  * @package    service
  18.  * @author     Pablo Dall'Oglio
  19.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  20.  * @license    http://www.adianti.com.br/framework-license
  21.  */
  22. {
  23.     /**
  24.      * Search by the given word inside a model
  25.      */
  26.     public static function onSearch($param null)
  27.     {
  28.         $seed APPLICATION_NAME.'s8dkld83kf73kf094';
  29.         $hash md5("{$seed}{$param['database']}{$param['column']}{$param['model']}");
  30.         $mask $param['mask'];
  31.         
  32.         if ($hash == $param['hash'])
  33.         {
  34.             try
  35.             {
  36.                 TTransaction::open($param['database']);
  37.                 $info TTransaction::getDatabaseInfo();
  38.                 $default_op $info['type'== 'pgsql' 'ilike' 'like';
  39.                 $operator   !empty($param['operator']$param['operator'$default_op;
  40.                 
  41.                 $repository new TRepository($param['model']);
  42.                 $criteria new TCriteria;
  43.                 if ($param['criteria'])
  44.                 {
  45.                     $criteria unserialize(base64_decode($param['criteria']));
  46.                 }
  47.     
  48.                 $column $param['column'];
  49.                 if (stristr(strtolower($operator),'like'!== FALSE)
  50.                 {
  51.                     $filter new TFilter($column$operator"%{$param['query']}%");
  52.                 }
  53.                 else
  54.                 {
  55.                     $filter new TFilter($column$operator$param['query']);
  56.                 }
  57.                 
  58.                 $criteria->add($filter);
  59.                 $criteria->setProperty('order'$param['orderColumn']);
  60.                 $criteria->setProperty('limit'1000);
  61.                 $collection $repository->load($criteriaFALSE);
  62.                 
  63.                 $items array();
  64.                 
  65.                 if ($collection)
  66.                 {
  67.                     foreach ($collection as $object)
  68.                     {
  69.                         $maskvalues $mask;
  70.                         $maskvalues $object->render($maskvalues);
  71.                         
  72.                         $c $maskvalues;
  73.                         if ($c != null )
  74.                         {
  75.                             $c AdiantiStringConversion::assureUnicode($c);
  76.                             
  77.                             if (!empty($c))
  78.                             {
  79.                                 $items[$c;
  80.                             }
  81.                         }
  82.                     }
  83.                 }
  84.                 
  85.                 $ret array();
  86.                 $ret['query''Unit';
  87.                 $ret['suggestions'$items;
  88.                 
  89.                 echo json_encode($ret);
  90.                 TTransaction::close();
  91.             }
  92.             catch (Exception $e)
  93.             {
  94.                 $ret array();
  95.                 $ret['query''Unit';
  96.                 $ret['suggestions'array($e->getMessage());
  97.                 
  98.                 echo json_encode($ret);
  99.             }
  100.         }
  101.         else
  102.         {
  103.             $ret array();
  104.             $ret['query''Unit';
  105.             $ret['suggestions'NULL;
  106.             echo json_encode($ret);
  107.         }
  108.     }
  109. }