Пример #1
0
 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];
     }]];
 }
Пример #2
0
 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];
     }]];
 }