'search'), ); } /** * @return array relational rules. */ public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'ID' => 'ID', 'date' => 'Date', 'title' => 'Title', 'content' => 'Content', ); } /** * Retrieves a list of models based on the current search/filter conditions. * * Typical usecase: * - Initialize the model fields with values from filter form. * - Execute this method to get CActiveDataProvider instance which will filter * models according to data in model fields. * - Pass data provider to CGridView, CListView or any similar widget. * * @return CActiveDataProvider the data provider that can return the models * based on the search/filter conditions. */ public function search() { $criteria=new CDbCriteria; $criteria->compare('ID',$this->ID); $criteria->compare('date',$this->date,true); $criteria->compare('title',$this->title,true); $criteria->compare('content',$this->content,true); return new CActiveDataProvider($this, array( 'criteria'=>$criteria, 'sort'=>[ 'defaultOrder'=>'date ASC' ], )); } /** * Returns the static model of the specified AR class. * Please note that you should have this exact method in all your CActiveRecord descendants! * @param string $className active record class name. * @return Log the static model class */ public static function model($className=__CLASS__) { return parent::model($className); } //#################################### //########### MY FUNCTIONS ########### //#################################### /** * @return DateTime */ public function getDateTime() { return new DateTime($this->date); } /** * @return string */ public function getLink() { return '/log/' . $this->ID; } /** * @param $search string[] * @return array() */ public static function getSearchResults($search) { /* @var $all Log[] */ /* @var $resultarr Log[] */ $all = Log::model()->findAll(); $resultarr = array(); foreach($search as $searchpart) { foreach($all as $post) { if (stripos($post->title, $searchpart) !== false && ! in_array($post, $resultarr)) $resultarr []= $post; } } $result = array(); foreach($resultarr as $post) { $result []= [ 'Name' => $post->title, 'Description' => null, 'Link' => $post->GetLink(), 'Image' => '/images/search/sresult_log.png', ]; } return $result; } }