public function behaviors() { return [['class' => SluggableBehavior::className(), 'attribute' => 'nombre', 'immutable' => true, 'ensureUnique' => true], 'sitemap' => ['class' => SitemapBehavior::className(), 'scope' => function ($model) { /** @var \yii\db\ActiveQuery $model */ $model->select(['municipios.slug']); }, 'dataClosure' => function ($model) { /** @var self $model */ return ['loc' => Url::to($model->slug, true), 'changefreq' => SitemapBehavior::CHANGEFREQ_NEVER, 'priority' => 0.5]; }]]; }
public function behaviors() { return ['attributeStamp' => ['class' => AttributeBehavior::className(), 'attributes' => [BaseActiveRecord::EVENT_BEFORE_INSERT => ['fechacreado', 'fechaactualizado'], BaseActiveRecord::EVENT_BEFORE_UPDATE => 'fechaactualizado'], 'value' => function ($event) { return date('y-m-d H:m:s'); }], ['class' => SluggableBehavior::className(), 'attribute' => 'nombre', 'immutable' => true, 'ensureUnique' => true], 'sitemap' => ['class' => SitemapBehavior::className(), 'scope' => function ($model) { /** @var \yii\db\ActiveQuery $model */ $model->joinWith('usuarios'); $model->joinWith('usuarios.municipios.provincias'); $model->select(['municipios.slug as municipio', 'articulos.slug', 'articulos.fechaactualizado']); $model->andWhere(['not in', 'articulos.estado', [self::VENDIDO, self::SIN_VALIDAR, self::MOTIVO_VENDIDO_AQUI, self::MOTIVO_VENDIDO_OTRO_MEDIO, self::MOTIVO_PUBLICAR_OTRA_VEZ, self::MOTIVO_NO_QUIERO_VENDER, self::MOTIVO_NO_SE_HA_VENDIDO, self::MOTIVO_PERSONAL]]); }, 'dataClosure' => function ($model) { /** @var self $model */ return ['loc' => Url::to($model->municipio . '/' . $model->slug, true), 'lastmod' => strtotime($model->fechaactualizado), 'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY, 'priority' => 0.8]; }]]; }