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
@@ -250,6 +250,8 @@ class Etablissement extends \yii\db\ActiveRecord { | |||
$user_producer->save(); | |||
} | |||
} | |||
return $user_producer ; | |||
} | |||
} |
@@ -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)): ?> |
@@ -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']) ; | |||
} | |||
} | |||
?> |
@@ -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> |