%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/activity/models/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/activity/models/Activity.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2017 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\activity\models; use humhub\modules\activity\components\BaseActivity; use Yii; use yii\base\Exception; use yii\base\InvalidConfigException; use yii\db\ActiveRecord; use humhub\modules\content\components\ContentActiveRecord; use humhub\modules\activity\components\ActivityWebRenderer; use humhub\components\behaviors\PolymorphicRelation; use yii\db\IntegrityException; use humhub\modules\activity\widgets\Activity as ActivityStreamEntryWidget; /** * This is the model class for table "activity". * * @property integer $id * @property string $class * @property string $module * @property string $object_model * @property integer $object_id * * @mixin PolymorphicRelation */ class Activity extends ContentActiveRecord { /** * @inheritdoc */ public $wallEntryClass = ActivityStreamEntryWidget::class; /** * @inheritdoc */ public $autoFollow = false; /** * @inheritdoc */ protected $streamChannel = 'activity'; /** * @inheritdoc */ public $silentContentCreation = true; /** * @inheritdoc */ public function behaviors() { return [ [ 'class' => PolymorphicRelation::class, 'strict' => true, 'mustBeInstanceOf' => [ ActiveRecord::class, ] ] ]; } /** * @inheritdoc */ public static function tableName() { return 'activity'; } /** * @inheritdoc */ public function rules() { return [ [['object_id'], 'integer'], [['class'], 'string', 'max' => 100], [['module', 'object_model'], 'string', 'max' => 100] ]; } /** * Returns the related BaseActivity object of this Activity record. * * @return BaseActivity * @throws Exception * @throws InvalidConfigException * @throws IntegrityException */ public function getActivityBaseClass() { if (!class_exists($this->class)) { throw new Exception('Could not find BaseActivity ' . $this->class . ' for Activity Record.'); } $result = Yii::createObject([ 'class' => $this->class, 'originator' => $this->content->createdBy, 'source' => $this->getSource(), ]); $result->record = $this; // If we include the record in createObject, it somehow loses activerecord data (id etc...) return $result; } /** * Returns the source object which belongs to this Activity. * * @return mixed * @throws IntegrityException * @see \humhub\modules\activity\components\BaseActivity::$source */ public function getSource() { return $this->getPolymorphicRelation(); } }