Kaynağa Gözat

Favoris

Mise en place de la fonctionnalité "Favoris".
L'utilisateur peut ajouter/supprimer un producteur de ses favoris via un lien présent sur la page des producteurs.
refactoring
keun 6 yıl önce
ebeveyn
işleme
9590a8337f
4 değiştirilmiş dosya ile 53 ekleme ve 2 silme
  1. +2
    -0
      common/models/Etablissement.php
  2. +5
    -1
      frontend/views/layouts/main.php
  3. +37
    -0
      producer/controllers/SiteController.php
  4. +9
    -1
      producer/views/layouts/main.php

+ 2
- 0
common/models/Etablissement.php Dosyayı Görüntüle

@@ -250,6 +250,8 @@ class Etablissement extends \yii\db\ActiveRecord {
$user_producer->save();
}
}
return $user_producer ;
}

}

+ 5
- 1
frontend/views/layouts/main.php Dosyayı Görüntüle

@@ -113,7 +113,11 @@ $is_home = (Yii::$app->controller->id == 'site' && Yii::$app->controller->action
<?php
$producers = Etablissement::find()
->joinWith(['userEtablissement user_etablissement'])
->where(['user_etablissement.id_user' => Yii::$app->user->id, 'etablissement.actif' => 1])
->where([
'user_etablissement.id_user' => Yii::$app->user->id,
'user_etablissement.favoris' => 1,
'etablissement.actif' => 1
])
->all() ;
?>
<?php if(count($producers)): ?>

+ 37
- 0
producer/controllers/SiteController.php Dosyayı Görüntüle

@@ -86,6 +86,7 @@ class SiteController extends ProducerBaseController {
*/
public function actionContact() {
$model = new ContactForm();
$producer = $this->getProducer() ;
@@ -104,6 +105,42 @@ class SiteController extends ProducerBaseController {
]);
}
}
/**
* Ajoute ou supprime un producteur des favoris de l'utilisateur.
* Redirige vers la page d'accueil du producteur.
*
* @param $action 'add' ou 'delete'
*/
public function actionFavorite($action) {
$producer = $this->getProducer() ;
$user_etablissement = UserEtablissement::find()
->where([
'id_user' => Yii::$app->user->id,
'id_etablissement' => $producer->id
])
->one() ;
if(!$user_etablissement) {
$user_etablissement = Etablissement::addUser(Yii::$app->user->id, $producer->id) ;
}
if($user_etablissement) {
if($action == 'add') {
$user_etablissement->favoris = 1 ;
Yii::$app->session->setFlash('success','Le producteur <strong>'.Html::encode($producer->nom).'</strong> vient d\'être ajouté à vos favoris.') ;
}
else {
$user_etablissement->favoris = 0 ;
Yii::$app->session->setFlash('success','Le producteur <strong>'.Html::encode($producer->nom).'</strong> vient d\'être supprimé de vos favoris.') ;
}
$user_etablissement->save() ;
}
$this->redirect(['site/index']) ;
}
}

?>

+ 9
- 1
producer/views/layouts/main.php Dosyayı Görüntüle

@@ -90,7 +90,15 @@ $producer = $this->context->getProducer() ;
<span class="glyphicon glyphicon-time"></span> Commande avant
<strong><?php echo Html::encode($producer->heure_limite_commande) ?> h</strong></span>,
<span data-toggle="tooltip" data-placement="bottom" title="Exemple : commande le lundi pour le <?php if($producer->delai_commande == 1): ?>mardi<?php elseif($producer->delai_commande == 2): ?>mercredi<?php elseif($producer->delai_commande == 3): ?>jeudi<?php elseif($producer->delai_commande == 4): ?>vendredi<?php elseif($producer->delai_commande == 5): ?>samedi<?php elseif($producer->delai_commande == 6): ?>dimanche<?php elseif($producer->delai_commande == 7): ?>lundi d'après<?php endif; ?>"><strong><?= Html::encode($producer->delai_commande) ?> jour<?php if($producer->delai_commande > 1): ?>s<?php endif; ?></strong> à l'avance</span>
<?php if(!Yii::$app->user->isGuest): ?><span class="favorite"><span class="glyphicon glyphicon-star"></span> <a href="<?= Yii::$app->urlManagerProducer->createUrl(['producer/favorite']); ?>" data-toggle="tooltip" data-placement="bottom" title="Ajouter à mes favoris">Favoris</a></span><?php endif; ?>
<?php if(!Yii::$app->user->isGuest): ?>
<span class="favorite">
<?php if($user_etablissement && $user_etablissement->favoris): ?>
<span class="glyphicon glyphicon-star"></span> <a href="<?= Yii::$app->urlManagerProducer->createUrl(['site/favorite','action' => 'delete']); ?>" data-toggle="tooltip" data-placement="bottom" title="Supprimer de mes favoris">Favoris</a>
<?php else: ?>
<span class="glyphicon glyphicon glyphicon-star-empty"></span> <a href="<?= Yii::$app->urlManagerProducer->createUrl(['site/favorite','action' => 'add']); ?>" data-toggle="tooltip" data-placement="bottom" title="Ajouter à mes favoris">Favoris</a>
<?php endif; ?>
</span>
<?php endif; ?>
<div class="clr"></div>
</div>
</div>

Yükleniyor…
İptal
Kaydet