Browse Source

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.
prodstable
keun 6 years ago
parent
commit
9590a8337f
4 changed files with 53 additions and 2 deletions
  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 View File

$user_producer->save(); $user_producer->save();
} }
} }
return $user_producer ;
} }


} }

+ 5
- 1
frontend/views/layouts/main.php View File

<?php <?php
$producers = Etablissement::find() $producers = Etablissement::find()
->joinWith(['userEtablissement user_etablissement']) ->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() ; ->all() ;
?> ?>
<?php if(count($producers)): ?> <?php if(count($producers)): ?>

+ 37
- 0
producer/controllers/SiteController.php View File

*/ */
public function actionContact() { public function actionContact() {
$model = new ContactForm(); $model = new ContactForm();
$producer = $this->getProducer() ; $producer = $this->getProducer() ;
]); ]);
} }
} }
/**
* 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 View File

<span class="glyphicon glyphicon-time"></span> Commande avant <span class="glyphicon glyphicon-time"></span> Commande avant
<strong><?php echo Html::encode($producer->heure_limite_commande) ?> h</strong></span>, <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> <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 class="clr"></div>
</div> </div>
</div> </div>

Loading…
Cancel
Save