%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/search/behaviors/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/search/behaviors/Searchable.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2015 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\search\behaviors; use Yii; use yii\db\ActiveRecord; use yii\base\Behavior; use yii\console\Exception; use humhub\modules\search\interfaces\Searchable as SearchableInterface; /** * Searchable Behavior * * @author Lucas Bartholemy <lucas@bartholemy.com> * @package humhub.behaviors * @since 0.5 */ class Searchable extends Behavior { public function events() { return [ ActiveRecord::EVENT_AFTER_DELETE => 'afterDelete', ActiveRecord::EVENT_AFTER_UPDATE => 'afterSave', ActiveRecord::EVENT_AFTER_INSERT => 'afterSave', ]; } public function afterSave($event) { if ($this->owner instanceof SearchableInterface) { Yii::$app->search->update($this->owner); } else { throw new Exception('Owner of HSearchableBehavior must be implement interface ISearchable'); } } public function afterDelete($event) { if ($this->owner instanceof SearchableInterface) { Yii::$app->search->delete($this->owner); } else { throw new Exception('Owner of HSearchableBehavior must be implement interface ISearchable'); } } }