ApPHP MicroBlog Pro - Example of Code

Show Plain Text »
  1. <?php
  2. /**
  3.  * Pages model
  4.  *
  5.  * PUBLIC:                      PROTECTED:                      PRIVATE:
  6.  * ---------------              ---------------                 ---------------
  7.  * __construct
  8.  * model (static)                      
  9.  * search
  10.  *
  11.  */
  12.  
  13. class Pages extends CActiveRecord
  14. {
  15.  
  16.     /** @var string */
  17.     protected $_table = 'mblog_pages';
  18.  
  19.     public function __construct()
  20.     {
  21.         parent::__construct();
  22.     }
  23.  
  24.     /**
  25.      * Returns the static model of the specified AR class
  26.      */
  27.     public static function model()
  28.     {
  29.         return parent::model(__CLASS__);
  30.     }
  31.  
  32.     /**
  33.      * Performs search in pages
  34.      * @param string $keywords
  35.      * @param mixed $itemsCount
  36.      * @return array array('0'=>array(pages), '1'=>total)
  37.      */
  38.     public function search($keywords = '', $itemsCount = 10)
  39.     {
  40.         $result = array();
  41.  
  42.         if($keywords !== ''){
  43.  
  44.             $limit = !empty($itemsCount) ? '0, '.(int)$itemsCount : '';
  45.             $condition = CConfig::get('db.prefix').$this->_table.'.show_in_search = 1 AND '.
  46.                 CConfig::get('db.prefix').$this->_table.'.publish_status = 1 AND ('.
  47.                 CConfig::get('db.prefix').$this->_table.'.page_text LIKE :keywords OR '.
  48.                 CConfig::get('db.prefix').$this->_table.'.page_header LIKE :keywords)';
  49.  
  50.             // Count total items in result
  51.             $total = $this->count(array('condition'=>$condition), array(':keywords'=>'%'.$keywords.'%'));
  52.  
  53.             // Prepare news result
  54.             $posts = $this->findAll(
  55.                 array('condition'=>$condition, 'limit' => $limit),
  56.                 array(':keywords'=>'%'.$keywords.'%')
  57.             );
  58.             foreach($posts as $key => $val){
  59.                 $result[0][] = array(
  60.                     'date'    => strip_tags($val['created_at']),
  61.                     'title'   => strip_tags($val['page_header']),
  62.                     'content' => strip_tags($val['page_text']),
  63.                     'link'   => Website::prepareLinkByFormat(
  64.                                 'mblog',
  65.                                 'page_link_format',
  66.                                 $val['id'],
  67.                                 strip_tags($val['page_header'])
  68.                     )
  69.                 );
  70.             }
  71.             $result[1] = $total;
  72.         }
  73.  
  74.         return $result;
  75.     }
  76. }
  77.  
  78. ?>