<commit_before><?php
/**
 * @author <NAME> <<EMAIL>>
 * @link http://skeeks.com/
 * @copyright 2010-2014 SkeekS (Sx)
 * @date 09.11.2014
 * @since 1.0.0
 */

namespace skeeks\cms\models;

use skeeks\cms\relatedProperties\models\RelatedPropertyModel;
use Yii;
use yii\helpers\ArrayHelper;

/**
 * This is the model class for table "{{%cms_content_property}}".
 * @property integer|null                 $cms_site_id
 *
 * @property integer                      $is_offer_property
 * @property integer                      $is_vendor
 * @property integer                      $is_vendor_code
 * @property integer                      $is_country
 *
 * @property CmsContent[]                 $cmsContents
 * @property CmsContentProperty2content[] $cmsContentProperty2contents
 *
 * @property CmsContentPropertyEnum[]     $enums
 * @property CmsContentElementProperty[]  $elementProperties
 *
 * @property CmsContentProperty2tree[]    $cmsContentProperty2trees
 * @property CmsTree[]                    $cmsTrees
 * @property CmsSite                      $cmsSite
 * @property ShopCmsContentProperty       $shopProperty
 */
class CmsContentProperty extends RelatedPropertyModel
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%cms_content_property}}';
    }

    /**
     * @return array
     */
    public function behaviors()
    {
        return ArrayHelper::merge(parent::behaviors(), [
            \skeeks\cms\behaviors\RelationalBehavior::class,
        ]);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getElementProperties()
    {
        return $this->hasMany(CmsContentElementProperty::className(), ['property_id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getEnums()
    {
        return $this->hasMany(CmsContentPropertyEnum::className(), ['property_id' => 'id']);
    }

    /**
     * @return array
     */
    public function attributeLabels()
    {
        return ArrayHelper::merge(parent::attributeLabels(), [
            'cmsContents' => Yii::t('skeeks/cms', 'Linked to content'),
            'cmsTrees'    => Yii::t('skeeks/cms', 'Linked to sections'),
            'cms_site_id' => Yii::t('skeeks/cms', 'Сайт'),

            'is_offer_property' => \Yii::t('skeeks/shop/app', 'Свойство предложения?'),
            'is_vendor'         => \Yii::t('skeeks/shop/app', 'Производитель?'),
            'is_vendor_code'    => \Yii::t('skeeks/shop/app', 'Код производителя?'),
            'is_country'        => \Yii::t('skeeks/shop/app', 'Страна'),
        ]);
    }
    /**
     * @return array
     */
    public function attributeHints()
    {
        return ArrayHelper::merge(parent::attributeHints(), [
            'is_offer_property'          => \Yii::t('skeeks/shop/app', 'Если это свойство является свойством предложения, то оно будет показываться в сложных карточках.'),
            'cms_site_id' => Yii::t('skeeks/cms', 'Если сайт не будет выбран, то свойство будет показываться на всех сайтах.'),
            'cmsContents' => Yii::t('skeeks/cms', 'Необходимо выбрать в каком контенте будет показываться это свойство.'),
            'cmsTrees'    => Yii::t('skeeks/cms',
                'Так же есть возможность ограничить отображение поля только для определенных разделов. Если будут выбраны разделы, то добавляя элемент в соответствующий раздел будет показываться это поле.'),
        ]);
    }


    /**
     * @inheritdoc
     */
    public function rules()
    {
        $rules = ArrayHelper::merge(parent::rules(), [
            [
                ['is_vendor', 'is_vendor_code', 'is_country', 'is_offer_property'],
                'integer',
            ],

            [
                ['is_vendor', 'is_vendor_code', 'is_country', 'is_offer_property'],
                'default',
                'value' => null,
            ],

            [['cmsContents'], 'safe'],
            [['cmsTrees'], 'safe'],
            [['code', 'cms_site_id'], 'unique', 'targetAttribute' => ['code', 'cms_site_id']],
            [['cms_site_id'], 'integer'],
            [
                ['cms_site_id'],
                'default',
                'value' => function () {

                    if (\Yii::$app->skeeks->site) {
                        return \Yii::$app->skeeks->site->id;
                    }<commit_msg>Переделка магазина, удаление shopCmsContentProperty<commit_after><?php
/**
 * @author <NAME> <<EMAIL>>
 * @link http://skeeks.com/
 * @copyright 2010-2014 SkeekS (Sx)
 * @date 09.11.2014
 * @since 1.0.0
 */

namespace skeeks\cms\models;

use skeeks\cms\relatedProperties\models\RelatedPropertyModel;
use Yii;
use yii\helpers\ArrayHelper;

/**
 * This is the model class for table "{{%cms_content_property}}".
 * @property integer|null                 $cms_site_id
 *
 * @property integer                      $is_offer_property
 * @property integer                      $is_vendor
 * @property integer                      $is_vendor_code
 * @property integer                      $is_country
 *
 * @property CmsContent[]                 $cmsContents
 * @property CmsContentProperty2content[] $cmsContentProperty2contents
 *
 * @property CmsContentPropertyEnum[]     $enums
 * @property CmsContentElementProperty[]  $elementProperties
 *
 * @property CmsContentProperty2tree[]    $cmsContentProperty2trees
 * @property CmsTree[]                    $cmsTrees
 * @property CmsSite                      $cmsSite
 * @property ShopCmsContentProperty       $shopProperty
 */
class CmsContentProperty extends RelatedPropertyModel
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%cms_content_property}}';
    }

    /**
     * @return array
     */
    public function behaviors()
    {
        return ArrayHelper::merge(parent::behaviors(), [
            \skeeks\cms\behaviors\RelationalBehavior::class,
        ]);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getElementProperties()
    {
        return $this->hasMany(CmsContentElementProperty::className(), ['property_id' => 'id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getEnums()
    {
        return $this->hasMany(CmsContentPropertyEnum::className(), ['property_id' => 'id']);
    }

    /**
     * @return array
     */
    public function attributeLabels()
    {
        return ArrayHelper::merge(parent::attributeLabels(), [
            'cmsContents' => Yii::t('skeeks/cms', 'Linked to content'),
            'cmsTrees'    => Yii::t('skeeks/cms', 'Linked to sections'),
            'cms_site_id' => Yii::t('skeeks/cms', 'Сайт'),

            'is_offer_property' => \Yii::t('skeeks/shop/app', 'Свойство предложения?'),
            'is_vendor'         => \Yii::t('skeeks/shop/app', 'Производитель?'),
            'is_vendor_code'    => \Yii::t('skeeks/shop/app', 'Код производителя?'),
            'is_country'        => \Yii::t('skeeks/shop/app', 'Страна'),
        ]);
    }
    /**
     * @return array
     */
    public function attributeHints()
    {
        return ArrayHelper::merge(parent::attributeHints(), [
            'is_offer_property'          => \Yii::t('skeeks/shop/app', 'Если это свойство является свойством предложения, то оно будет показываться в сложных карточках.'),
            'cms_site_id' => Yii::t('skeeks/cms', 'Если сайт не будет выбран, то свойство будет показываться на всех сайтах.'),
            'cmsContents' => Yii::t('skeeks/cms', 'Необходимо выбрать в каком контенте будет показываться это свойство.'),
            'cmsTrees'    => Yii::t('skeeks/cms',
                'Так же есть возможность ограничить отображение поля только для определенных разделов. Если будут выбраны разделы, то добавляя элемент в соответствующий раздел будет показываться это поле.'),
        ]);
    }


    /**
     * @inheritdoc
     */
    public function rules()
    {
        $rules = ArrayHelper::merge(parent::rules(), [
            [
                ['is_vendor', 'is_vendor_code', 'is_country', 'is_offer_property'],
                'integer',
            ],

            /*[
                ['is_vendor', 'is_vendor_code', 'is_country', 'is_offer_property'],
                'default',
                'value' => null,
            ],*/
            [
                ['is_vendor', 'is_vendor_code', 'is_country', 'is_offer_property'],
                function($attr) {
                    if ($this->{$attr} != 1) {
                        $this->{$attr} = null;
                    }
                },
                
            ],

            [['cmsContents'], 'safe'],
            [['cmsTrees'], 'safe'],
            [['code', 'cms_site_id'], 'unique', 'targetAttribute' => ['code', 'cms_site_id']],
            [['cms_site_id'], 'integer'],
            [
                ['cms_site_id'],
                'default',
                'value' => function () {

                    if (\Yii::$app->skeeks->site) {
                        return \Yii::$app->skeeks->site->id;
                    }
{'fraction_non_alphanumeric': 0.14394524781984766, 'fraction_numerical': 0.00518821061927365, 'mean_word_length': 2.0701457133175194, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 57, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6867564', 'n_tokens_mistral': 2883, 'n_tokens_neox': 2794, 'n_words': 517}