Skip to content

Commit

Permalink
dev
Browse files Browse the repository at this point in the history
  • Loading branch information
skeeks-semenov committed May 12, 2018
1 parent acfd949 commit 6cdd4a3
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 159 deletions.
166 changes: 166 additions & 0 deletions src/base/ActiveRecord.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
<?php
/**
* @link https://cms.skeeks.com/
* @copyright Copyright (c) 2010 SkeekS
* @license https://cms.skeeks.com/license/
* @author Semenov Alexander <semenov@skeeks.com>
*/

namespace skeeks\cms\base;

use skeeks\cms\models\behaviors\HasTableCache;
use skeeks\cms\models\CmsUser;
use skeeks\cms\query\CmsActiveQuery;
use Yii;
use yii\behaviors\BlameableBehavior;
use yii\behaviors\TimestampBehavior;

/**
* @method string getTableCacheTag()
*
* @property integer $created_by
* @property integer $updated_by
* @property integer $created_at
* @property integer $updated_at
*
* @property CmsUser $createdBy
* @property CmsUser $updatedBy
*
* @author Semenov Alexander <semenov@skeeks.com>
*/
class ActiveRecord extends \yii\db\ActiveRecord
{
/**
* @var array
*/
public $raw_row = [];
/**
* @return CmsActiveQuery
*/
public static function find()
{
return new CmsActiveQuery(get_called_class());
}

/** @inheritdoc */
public static function populateRecord($record, $row)
{
/** @var static $record */
$record->raw_row = $row;
return parent::populateRecord($record, $row);
}
/**
* @inheritdoc
*/
public function behaviors()
{
return array_merge(parent::behaviors(), [
BlameableBehavior::className() =>
[
'class' => BlameableBehavior::className(),
'value' => function ($event) {
if (\Yii::$app instanceof \yii\console\Application) {
return null;
} else {
$user = Yii::$app->get('user', false);
return $user && !$user->isGuest ? $user->id : null;
}
},
],
TimestampBehavior::className() =>
[
'class' => TimestampBehavior::className(),
/*'value' => function()
{
return date('U');
},*/
],

HasTableCache::className() =>
[
'class' => HasTableCache::className(),
'cache' => \Yii::$app->cache,
],
]);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getCreatedBy()
{
return $this->hasOne(\Yii::$app->user->identityClass, ['id' => 'created_by']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getUpdatedBy()
{
return $this->hasOne(\Yii::$app->user->identityClass, ['id' => 'updated_by']);
}
/**
* @return array
*/
public function attributeLabels()
{
return [
'id' => Yii::t('skeeks/cms', 'ID'),
'created_by' => Yii::t('skeeks/cms', 'Created By'),
'updated_by' => Yii::t('skeeks/cms', 'Updated By'),
'created_at' => Yii::t('skeeks/cms', 'Created At'),
'updated_at' => Yii::t('skeeks/cms', 'Updated At'),
];
}
/**
* @return array
*/
public function rules()
{
return [
[['created_by', 'updated_by', 'created_at', 'updated_at', 'id'], 'integer'],
];
}
/**
* @return string
*/
public function __toString()
{
return $this->asText();
}
/**
* @return string
*/
public function asText()
{
$result = [];
$result[] = "#".$this->id;

if (isset($this->name) && is_string($this->name)) {
$result[] = $this->name;
} else if (isset($this->label) && is_string($this->label)) {
$result[] = $this->label;
}

return implode("#", $result);
}
/**
* @return string
*/
public function getAsText()
{
return $this->asText();
}
/**
* @return string
*/
public function getAsHtml()
{
return $this->asHtml();
}
/**
* @return string
*/
public function asHtml()
{
return $this->asText();
}
}
11 changes: 4 additions & 7 deletions src/base/AssetBundle.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
<?php
/**
* @link https://cms.skeeks.com/
* @copyright Copyright (c) 2010 SkeekS
* @license https://cms.skeeks.com/license/
* @author Semenov Alexander <semenov@skeeks.com>
* @link http://skeeks.com/
* @copyright 2010 SkeekS (СкикС)
* @date 21.05.2015
*/

namespace skeeks\cms\base;

/**
* @deprecated
*
* Class AssetBundle
* @package skeeks\cms\base
* @author Semenov Alexander <semenov@skeeks.com>
*/
class AssetBundle extends \yii\web\AssetBundle
{
Expand Down
154 changes: 2 additions & 152 deletions src/models/Core.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,6 @@

namespace skeeks\cms\models;

use skeeks\cms\models\behaviors\HasTableCache;
use skeeks\cms\query\CmsActiveQuery;
use Yii;
use yii\behaviors\BlameableBehavior;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;

/**
* @method string getTableCacheTag()
*
Expand All @@ -29,152 +22,9 @@
* @property User $createdBy
* @property User $updatedBy
*
* Class Core
* @package skeeks\cms\base\models
* @deprecated
*/
abstract class Core extends ActiveRecord
abstract class Core extends \skeeks\cms\base\ActiveRecord
{
/**
* @inheritdoc
*/
public function behaviors()
{
return array_merge(parent::behaviors(), [
BlameableBehavior::className() =>
[
'class' => BlameableBehavior::className(),
'value' => function ($event) {
if (\Yii::$app instanceof \yii\console\Application) {
return null;
} else {
$user = Yii::$app->get('user', false);
return $user && !$user->isGuest ? $user->id : null;
}
},
],
TimestampBehavior::className() =>
[
'class' => TimestampBehavior::className(),
/*'value' => function()
{
return date('U');
},*/
],

HasTableCache::className() =>
[
'class' => HasTableCache::className(),
'cache' => \Yii::$app->cache,
],
]);
}

/**
* @return CmsActiveQuery
*/
public static function find()
{
return new CmsActiveQuery(get_called_class());
}

/**
* @return \yii\db\ActiveQuery
*/
public function getCreatedBy()
{
return $this->hasOne(\Yii::$app->user->identityClass, ['id' => 'created_by']);
}

/**
* @return \yii\db\ActiveQuery
*/
public function getUpdatedBy()
{
return $this->hasOne(\Yii::$app->user->identityClass, ['id' => 'updated_by']);
}

/**
* @return array
*/
public function attributeLabels()
{
return [
'id' => Yii::t('skeeks/cms', 'ID'),
'created_by' => Yii::t('skeeks/cms', 'Created By'),
'updated_by' => Yii::t('skeeks/cms', 'Updated By'),
'created_at' => Yii::t('skeeks/cms', 'Created At'),
'updated_at' => Yii::t('skeeks/cms', 'Updated At'),
];
}

/**
* @return array
*/
public function rules()
{
return [
[['created_by', 'updated_by', 'created_at', 'updated_at', 'id'], 'integer'],
];
}


/**
* @return string
*/
public function __toString() {
return $this->asText();
}

/**
* @return string
*/
public function getAsText()
{
return $this->asText();
}

/**
* @return string
*/
public function getAsHtml()
{
return $this->asHtml();
}

/**
* @return string
*/
public function asText()
{
$result = [];
$result[] = "#" . $this->id;

if (isset($this->name) && is_string($this->name)) {
$result[] = $this->name;
} else if (isset($this->label) && is_string($this->label)) {
$result[] = $this->label;
}

return implode("#", $result);
}

/**
* @return string
*/
public function asHtml()
{
return $this->asText();
}

/**
* @var array
*/
public $raw_row = [];

/** @inheritdoc */
public static function populateRecord($record, $row) {
/** @var static $record */
$record->raw_row = $row;
return parent::populateRecord($record, $row);
}
}
7 changes: 7 additions & 0 deletions src/widgets/GridView.php
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,13 @@ protected function _initAutoColumns()
* @var $model ActiveQuery
*/
$model = reset($models);

if (!$model) {
$modelClass = $dataProvider->query->modelClass;
$model = new $modelClass();
}


if (is_array($model) || is_object($model)) {
foreach ($model as $name => $value) {
if ($value === null || is_scalar($value) || is_callable([$value, '__toString'])) {
Expand Down

0 comments on commit 6cdd4a3

Please sign in to comment.