@@ -44,7 +44,7 @@ return [ | |||
'adminEmail' => 'contact@souke.fr', | |||
'supportEmail' => 'contact@souke.fr', | |||
'newsletterProducerDescription' => "Pour recevoir les emails de prise de commande et d'information", | |||
'newsletterSoukeDescription' => "Pour suivre l'actualité de la plateforme", | |||
'newsletterSoukeDescription' => "Pour suivre l'actualité du logiciel", | |||
'user.passwordResetTokenExpire' => 3600, | |||
'producer' => false, | |||
'orderStatus' => [ |
@@ -98,7 +98,22 @@ class ContactForm extends Model | |||
'contact', | |||
[ | |||
'content' => $this->body, | |||
'name' => $this->name | |||
'name' => $this->name, | |||
'email' => $this->email | |||
], | |||
$this->email | |||
); | |||
} | |||
public function sendEmailShopSupport(Producer $producer) | |||
{ | |||
return Yii::$app->mailerService->sendAdmin( | |||
'Support > '.$producer->name.' : ' . $this->subject, | |||
'contact', | |||
[ | |||
'content' => $this->body, | |||
'name' => $this->name, | |||
'email' => $this->email | |||
], | |||
$this->email | |||
); | |||
@@ -111,10 +126,10 @@ class ContactForm extends Model | |||
'contact', | |||
[ | |||
'content' => $this->body, | |||
'name' => $this->name | |||
'name' => $this->name, | |||
'email' => $this->email | |||
], | |||
$this->email | |||
); | |||
} | |||
} |
@@ -40,6 +40,6 @@ use yii\helpers\Html; | |||
?> | |||
<p>Message de <strong><?= Html::encode($name) ?></strong> :</p> | |||
<p>Message de <strong><?= Html::encode($name) ?></strong> (<?= Html::encode($email) ?>) :</p> | |||
<?= nl2br(Html::encode($content)); ?> |
@@ -49,6 +49,7 @@ class Feature extends ActiveRecordCommon | |||
const ALIAS_ONLINE_PAYMENT = 'online_payment'; | |||
const ALIAS_EXPORT_SHOPPING_CART_LABELS_ADVANCED = 'export_shopping_cart_labels_advanced'; | |||
const ALIAS_SETTINGS = 'settings'; | |||
const ALIAS_SHOP_SUPPORT = 'shop_support'; | |||
/** | |||
* @inheritdoc |
@@ -28,7 +28,11 @@ class FeatureChecker extends AbstractChecker | |||
return false; | |||
} | |||
$featureProducer = $this->featureProducerRepository->findOneFeatureProducer($feature); | |||
$featureProducer = null; | |||
if($this->getProducerContext(false)) { | |||
$featureProducer = $this->featureProducerRepository->findOneFeatureProducer($feature); | |||
} | |||
if(!$featureProducer || is_null($featureProducer->status)) { | |||
if($feature->is_paid_feature || $feature->only_for_selected_producers) { | |||
return false; |
@@ -18,7 +18,8 @@ class FeatureDefinition extends AbstractDefinition | |||
Feature::ALIAS_PRODUCT_PRICE_IMPORT => 'Produits : import prix', | |||
Feature::ALIAS_ONLINE_PAYMENT => 'Paiement en ligne', | |||
Feature::ALIAS_EXPORT_SHOPPING_CART_LABELS_ADVANCED => "Génération d'étiquettes avec un format spécifique", | |||
Feature::ALIAS_SETTINGS => 'Système de paramètres' | |||
Feature::ALIAS_SETTINGS => 'Système de paramètres', | |||
Feature::ALIAS_SHOP_SUPPORT => 'Support boutique' | |||
]; | |||
} | |||
} |
@@ -18,12 +18,22 @@ class ProducerSeoGenerator extends AbstractGenerator | |||
$this->pointSaleRepository = $this->loadService(PointSaleRepository::class); | |||
} | |||
public function generateMetaDescriptionHome() | |||
public function limitMetaDescriptionLength(string $metaDescription): string | |||
{ | |||
$length = 160; | |||
if(strlen($metaDescription) > $length) { | |||
return substr(strip_tags($metaDescription), 0, $length) . ' ...'; | |||
} | |||
return $metaDescription; | |||
} | |||
public function generateMetaDescriptionHome(): string | |||
{ | |||
$producer = $this->getProducerContext(); | |||
if($producer->description) { | |||
$metaDescription = substr(strip_tags($producer->description), 0, 200); | |||
return $this->limitMetaDescriptionLength($producer->description); | |||
} | |||
else { | |||
$metaDescription = "Bienvenue sur la boutique du producteur ".Html::encode($producer->name); | |||
@@ -32,7 +42,7 @@ class ProducerSeoGenerator extends AbstractGenerator | |||
return $metaDescription; | |||
} | |||
public function generateMetaDescriptionProducts() | |||
public function generateMetaDescriptionProducts(): string | |||
{ | |||
$metaDescription = ''; | |||
$productsArray = $this->productRepository->findProducts(); | |||
@@ -45,10 +55,10 @@ class ProducerSeoGenerator extends AbstractGenerator | |||
$metaDescription = substr($metaDescription, 0, strlen($metaDescription) - 2); | |||
} | |||
return $metaDescription; | |||
return $this->limitMetaDescriptionLength($metaDescription); | |||
} | |||
public function generateMetaDescriptionPointsSale() | |||
public function generateMetaDescriptionPointsSale(): string | |||
{ | |||
$metaDescription = ''; | |||
$pointsSaleArray = $this->pointSaleRepository->findPointSales(); | |||
@@ -61,19 +71,24 @@ class ProducerSeoGenerator extends AbstractGenerator | |||
$metaDescription = substr($metaDescription, 0, strlen($metaDescription) - 2); | |||
} | |||
return $metaDescription; | |||
return $this->limitMetaDescriptionLength($metaDescription); | |||
} | |||
public function generateMetaDescriptionOrder() | |||
public function generateMetaDescriptionOrder(): string | |||
{ | |||
$producer = $this->getProducerContext(); | |||
return "Passez commande chez ".Html::encode($producer->name)." à la date et au lieu de votre choix."; | |||
} | |||
public function generateMetaDescriptionContact() | |||
public function generateMetaDescriptionContact(): string | |||
{ | |||
$producer = $this->getProducerContext(); | |||
return 'Contactez ce producteur en utilisant le formulaire de contact. ' | |||
.Html::encode($producer->name.', '.$producer->address.' '.$producer->postcode.' '.$producer->city); | |||
} | |||
public function generateMetaDescriptionSupport() | |||
{ | |||
return 'Vous rencontrez un problème ? Contactez le développeur du logiciel en utilisant ce formulaire de contact pour poser vos questions ou faire remonter un bug.'; | |||
} | |||
} |
@@ -7,7 +7,7 @@ use yii\base\ErrorException; | |||
trait ProducerContextTrait | |||
{ | |||
protected ?Producer $producerContext; | |||
protected ?Producer $producerContext = null; | |||
public function setProducerContext(Producer $producer = null): self | |||
{ |
@@ -76,7 +76,7 @@ $this->params['breadcrumbs'][] = $this->title; | |||
</div> | |||
<div class="col-md-4"> | |||
<div class="alert alert-dark"> | |||
Ce formulaire de contact vous permet de joindre le développeur de la plateforme Souke. | |||
Ce formulaire de contact vous permet de joindre le développeur du logiciel Souke. | |||
Si vous souhaitez joindre un producteur, merci de le faire directement depuis sa boutique. | |||
</div> | |||
</div> |
@@ -53,11 +53,14 @@ $this->params['breadcrumbs'][] = $this->title; | |||
<?= $form->field($model, 'password')->passwordInput() ?> | |||
<?= $form->field($model, 'rememberMe')->checkbox() ?> | |||
<p> | |||
Si vous avez oublié votre mot de passe, vous pouvez le <?= Html::a('réinitialiser', ['site/request-password-reset']) ?>. | |||
<?= Html::a('Mot de passe oublié ?', ['site/request-password-reset']) ?> | |||
</p> | |||
<div class="form-group form-buttons"> | |||
<?= Html::submitButton('<i class="bi bi-box-arrow-in-right"></i> Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> | |||
</div> | |||
<p class="need-help-login-signup"> | |||
Besoin d'aide ? <a href="<?= Yii::$app->urlManager->createUrl(['site/contact']) ?>">Contactez-nous</a> | |||
</p> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> |
@@ -89,6 +89,9 @@ $this->setMeta('description', 'Connectez-vous pour passer commande auprès du pr | |||
<div class="form-group form-buttons"> | |||
<?= Html::submitButton('<i class="bi bi-box-arrow-in-right"></i> Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> | |||
</div> | |||
<p class="need-help-login-signup"> | |||
Besoin d'aide ? <a href="<?= Yii::$app->urlManager->createUrl(['site/contact']) ?>">Contactez-nous</a> | |||
</p> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> | |||
@@ -130,6 +133,9 @@ $this->setMeta('description', 'Connectez-vous pour passer commande auprès du pr | |||
<div class="form-group form-buttons" id="boutons-inscrire"> | |||
<?= Html::submitButton("<i class=\"bi bi-person-plus\"></i> S'inscrire", ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> | |||
</div> | |||
<p class="need-help-login-signup"> | |||
Besoin d'aide ? <a href="<?= Yii::$app->urlManager->createUrl(['site/contact']) ?>">Contactez-nous</a> | |||
</p> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> |
@@ -35,9 +35,11 @@ | |||
* termes. | |||
*/ | |||
use domain\Feature\Feature\Feature; | |||
use yii\helpers\Html; | |||
$producerModule = $this->getProducerModule(); | |||
$featureModule = $this->getFeatureModule(); | |||
$this->setTitle('Fonctionnalités, services & tarifs'); | |||
$this->setMeta('description', "Découvrez les fonctionnalités du logiciel, les services proposés et les tarifs pour l’hébergement de votre circuit court sur Souke."); | |||
@@ -122,8 +124,12 @@ $this->setMeta('description', "Découvrez les fonctionnalités du logiciel, les | |||
<div class="panel-body"> | |||
<h3>Support</h3> | |||
<p>Je suis disponible pour répondre rapidement à toutes vos questions par email | |||
ou par | |||
téléphone.</p> | |||
ou par téléphone. | |||
<?php if($featureModule->getChecker()->isEnabled(Feature::ALIAS_SHOP_SUPPORT)): ?> | |||
<br />J'assure également le support pour vos clients s'ils | |||
rencontrent un problème dans l'utilisation du logiciel. | |||
<?php endif; ?> | |||
</p> | |||
</div> | |||
</div> | |||
<div class="panel panel-default"> |
@@ -119,6 +119,9 @@ $this->params['breadcrumbs'][] = $this->title; | |||
<div class="form-group form-buttons" id="buttons-signup"> | |||
<?= Html::submitButton("<i class=\"bi bi-person-plus\"></i> S'inscrire", ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> | |||
</div> | |||
<p class="need-help-login-signup"> | |||
Besoin d'aide ? <a href="<?= Yii::$app->urlManager->createUrl(['site/contact']) ?>">Contactez-nous</a> | |||
</p> | |||
<?php ActiveForm::end(); ?> | |||
<?php endif; ?> | |||
</div> |
@@ -40,7 +40,7 @@ use domain\User\User\UserModule; | |||
$this->setTitle('Inscription confirmée') ; | |||
$this->setIcon('check'); | |||
$this->setMeta('description', 'Inscrivez-vous afin de profiter des fonctionnalités de la plateforme.'); | |||
$this->setMeta('description', 'Inscrivez-vous afin de profiter des fonctionnalités du logiciel.'); | |||
$this->params['breadcrumbs'][] = $this->title; | |||
$userModule = UserModule::getInstance(); |
@@ -1108,7 +1108,15 @@ section#header-title h1 .glyphicon { | |||
border-radius: 5px; | |||
} | |||
/* line 1126, ../sass/screen.scss */ | |||
/* line 1125, ../sass/screen.scss */ | |||
.need-help-login-signup { | |||
margin-top: 30px; | |||
margin-bottom: 0px; | |||
padding-bottom: 0px !important; | |||
text-align: center; | |||
} | |||
/* line 1133, ../sass/screen.scss */ | |||
.site-login .col-lg-5 { | |||
margin: 0px auto; | |||
float: none; | |||
@@ -1116,64 +1124,64 @@ section#header-title h1 .glyphicon { | |||
} | |||
/* signup */ | |||
/* line 1137, ../sass/screen.scss */ | |||
/* line 1144, ../sass/screen.scss */ | |||
form .block-newsletter .help-block-error { | |||
display: none; | |||
} | |||
/* line 1140, ../sass/screen.scss */ | |||
/* line 1147, ../sass/screen.scss */ | |||
form .block-newsletter .help-block { | |||
margin-top: 3px; | |||
padding-left: 20px; | |||
color: gray; | |||
} | |||
/* line 1147, ../sass/screen.scss */ | |||
/* line 1154, ../sass/screen.scss */ | |||
.modal-backdrop { | |||
z-index: 999; | |||
} | |||
/* line 1152, ../sass/screen.scss */ | |||
/* line 1159, ../sass/screen.scss */ | |||
.site-signup .col-lg-5 { | |||
margin: 0px auto; | |||
float: none; | |||
max-width: 500px; | |||
} | |||
/* line 1165, ../sass/screen.scss */ | |||
/* line 1172, ../sass/screen.scss */ | |||
#form-signup #user-producer { | |||
margin-bottom: 30px; | |||
} | |||
/* line 1170, ../sass/screen.scss */ | |||
/* line 1177, ../sass/screen.scss */ | |||
#form-signup #signupform-id_producer option:disabled { | |||
font-weight: bold; | |||
color: black; | |||
} | |||
/* line 1176, ../sass/screen.scss */ | |||
/* line 1183, ../sass/screen.scss */ | |||
#form-signup #champs-producer { | |||
display: none; | |||
} | |||
/* line 1180, ../sass/screen.scss */ | |||
/* line 1187, ../sass/screen.scss */ | |||
#form-signup #buttons-signup { | |||
margin-top: 30px; | |||
} | |||
/* line 1184, ../sass/screen.scss */ | |||
/* line 1191, ../sass/screen.scss */ | |||
#form-signup .field-signupform-is_test { | |||
display: none; | |||
} | |||
/* line 1189, ../sass/screen.scss */ | |||
/* line 1196, ../sass/screen.scss */ | |||
#col-left { | |||
padding: 0px; | |||
z-index: 15; | |||
} | |||
/* line 1193, ../sass/screen.scss */ | |||
/* line 1200, ../sass/screen.scss */ | |||
#col-left .affix { | |||
width: 25%; | |||
border-right: solid 1px #e0e0e0; | |||
background-color: #FAFAFA; | |||
height: 100%; | |||
} | |||
/* line 1200, ../sass/screen.scss */ | |||
/* line 1207, ../sass/screen.scss */ | |||
#col-left #link-home { | |||
text-decoration: none; | |||
font-size: 22px; | |||
@@ -1182,28 +1190,28 @@ form .block-newsletter .help-block { | |||
padding: 10px; | |||
background-color: #e4ac07; | |||
} | |||
/* line 1208, ../sass/screen.scss */ | |||
/* line 1215, ../sass/screen.scss */ | |||
#col-left #link-home img { | |||
height: 50px; | |||
margin-bottom: 5px; | |||
float: left; | |||
} | |||
/* line 1214, ../sass/screen.scss */ | |||
/* line 1221, ../sass/screen.scss */ | |||
#col-left #link-home .text { | |||
padding-left: 62px; | |||
} | |||
/* line 1217, ../sass/screen.scss */ | |||
/* line 1224, ../sass/screen.scss */ | |||
#col-left #link-home .text .bap { | |||
font-family: "comfortaalight"; | |||
font-size: 24px; | |||
} | |||
/* line 1222, ../sass/screen.scss */ | |||
/* line 1229, ../sass/screen.scss */ | |||
#col-left #link-home .text .plateforme { | |||
font-size: 17px; | |||
font-family: "myriadpro-light"; | |||
color: #ee6f42; | |||
} | |||
/* line 1230, ../sass/screen.scss */ | |||
/* line 1237, ../sass/screen.scss */ | |||
#col-left h2 { | |||
font-family: 'myriadpro-regular'; | |||
color: black; | |||
@@ -1211,37 +1219,37 @@ form .block-newsletter .help-block { | |||
margin-bottom: 10px; | |||
padding: 15px 0px 5px 15px; | |||
} | |||
/* line 1238, ../sass/screen.scss */ | |||
/* line 1245, ../sass/screen.scss */ | |||
#col-left #links { | |||
background-color: white; | |||
margin-bottom: 20px; | |||
} | |||
/* line 1244, ../sass/screen.scss */ | |||
/* line 1251, ../sass/screen.scss */ | |||
#col-left #links ul li a { | |||
text-align: center; | |||
border-right: solid 1px #e0e0e0; | |||
} | |||
/* line 1248, ../sass/screen.scss */ | |||
/* line 1255, ../sass/screen.scss */ | |||
#col-left #links ul li a:hover { | |||
background-color: #ee6f42; | |||
color: white; | |||
} | |||
/* line 1254, ../sass/screen.scss */ | |||
/* line 1261, ../sass/screen.scss */ | |||
#col-left #links ul li:last-child a { | |||
border-right: 0px none; | |||
} | |||
/* line 1264, ../sass/screen.scss */ | |||
/* line 1271, ../sass/screen.scss */ | |||
#col-left #producers nav.nav-producers ul li a { | |||
padding-left: 50px; | |||
height: 40px; | |||
} | |||
/* line 1270, ../sass/screen.scss */ | |||
/* line 1277, ../sass/screen.scss */ | |||
#col-left #producers nav.nav-producers ul li.active a { | |||
background-color: #ee6f42; | |||
position: relative; | |||
color: white; | |||
} | |||
/* line 1275, ../sass/screen.scss */ | |||
/* line 1282, ../sass/screen.scss */ | |||
#col-left #producers nav.nav-producers ul li.active a:after { | |||
right: -40px; | |||
top: 50%; | |||
@@ -1256,18 +1264,18 @@ form .block-newsletter .help-block { | |||
border-width: 20px; | |||
margin-top: -20px; | |||
} | |||
/* line 1294, ../sass/screen.scss */ | |||
/* line 1301, ../sass/screen.scss */ | |||
#col-left ul { | |||
list-style-type: none; | |||
margin: 0px; | |||
padding: 0px; | |||
} | |||
/* line 1299, ../sass/screen.scss */ | |||
/* line 1306, ../sass/screen.scss */ | |||
#col-left ul li { | |||
margin: 0px; | |||
padding: 0px; | |||
} | |||
/* line 1303, ../sass/screen.scss */ | |||
/* line 1310, ../sass/screen.scss */ | |||
#col-left ul li a { | |||
text-decoration: none; | |||
font-family: 'comfortaaregular'; | |||
@@ -1278,18 +1286,18 @@ form .block-newsletter .help-block { | |||
display: block; | |||
color: black; | |||
} | |||
/* line 1313, ../sass/screen.scss */ | |||
/* line 1320, ../sass/screen.scss */ | |||
#col-left ul li a span.name, #col-left ul li a span.wording { | |||
display: none; | |||
} | |||
/* line 1320, ../sass/screen.scss */ | |||
/* line 1327, ../sass/screen.scss */ | |||
#col-left p { | |||
padding: 20px; | |||
padding-top: 0px; | |||
color: gray; | |||
} | |||
/* line 1328, ../sass/screen.scss */ | |||
/* line 1335, ../sass/screen.scss */ | |||
#content .header-title { | |||
height: 79px; | |||
padding: 20px 20px; | |||
@@ -1304,7 +1312,7 @@ form .block-newsletter .help-block { | |||
-webkit-box-shadow: 0px 0px 8px #e0e0e0; | |||
box-shadow: 0px 0px 8px #e0e0e0; | |||
} | |||
/* line 1340, ../sass/screen.scss */ | |||
/* line 1347, ../sass/screen.scss */ | |||
#content .header-title h1 { | |||
color: black; | |||
font-family: 'myriadpro-regular'; | |||
@@ -1312,7 +1320,7 @@ form .block-newsletter .help-block { | |||
font-size: 25px; | |||
text-transform: uppercase; | |||
} | |||
/* line 1348, ../sass/screen.scss */ | |||
/* line 1355, ../sass/screen.scss */ | |||
#content .header-title h2 { | |||
color: gray; | |||
text-transform: none; | |||
@@ -1321,16 +1329,16 @@ form .block-newsletter .help-block { | |||
line-height: 20px; | |||
} | |||
/* line 1359, ../sass/screen.scss */ | |||
/* line 1366, ../sass/screen.scss */ | |||
.header-producer { | |||
z-index: 1; | |||
} | |||
/* line 1362, ../sass/screen.scss */ | |||
/* line 1369, ../sass/screen.scss */ | |||
.header-producer #block-main-img { | |||
height: 144px; | |||
overflow: hidden; | |||
} | |||
/* line 1366, ../sass/screen.scss */ | |||
/* line 1373, ../sass/screen.scss */ | |||
.header-producer #block-main-img #main-img { | |||
width: 100%; | |||
height: auto; | |||
@@ -1340,7 +1348,7 @@ form .block-newsletter .help-block { | |||
-webkit-border-radius: 0px; | |||
border-radius: 0px; | |||
} | |||
/* line 1375, ../sass/screen.scss */ | |||
/* line 1382, ../sass/screen.scss */ | |||
.header-producer h1 { | |||
font-family: 'comfortaaregular'; | |||
text-align: center; | |||
@@ -1348,23 +1356,23 @@ form .block-newsletter .help-block { | |||
top: 30px; | |||
left: 40px; | |||
} | |||
/* line 1382, ../sass/screen.scss */ | |||
/* line 1389, ../sass/screen.scss */ | |||
.header-producer h1 span { | |||
background-color: rgba(255, 255, 255, 0.8); | |||
padding: 10px 30px; | |||
border: dotted 1px black; | |||
} | |||
/* line 1393, ../sass/screen.scss */ | |||
/* line 1400, ../sass/screen.scss */ | |||
nav#menu-producer { | |||
border-bottom: solid 1px #e0e0e0; | |||
} | |||
/* line 1397, ../sass/screen.scss */ | |||
/* line 1404, ../sass/screen.scss */ | |||
nav#menu-producer ul li { | |||
padding: 0px; | |||
margin: 0px; | |||
} | |||
/* line 1401, ../sass/screen.scss */ | |||
/* line 1408, ../sass/screen.scss */ | |||
nav#menu-producer ul li a { | |||
border-right: solid 1px #e0e0e0; | |||
text-decoration: none; | |||
@@ -1372,47 +1380,47 @@ nav#menu-producer ul li a { | |||
-webkit-border-radius: 0px; | |||
border-radius: 0px; | |||
} | |||
/* line 1406, ../sass/screen.scss */ | |||
/* line 1413, ../sass/screen.scss */ | |||
nav#menu-producer ul li a:hover { | |||
background-color: #ee6f42; | |||
color: white; | |||
} | |||
/* line 1416, ../sass/screen.scss */ | |||
/* line 1423, ../sass/screen.scss */ | |||
.site-contact .col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
/* line 1421, ../sass/screen.scss */ | |||
/* line 1428, ../sass/screen.scss */ | |||
.site-contact .form-group.submit { | |||
text-align: right; | |||
} | |||
/* line 1427, ../sass/screen.scss */ | |||
/* line 1434, ../sass/screen.scss */ | |||
.site-opinion .col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
/* line 1432, ../sass/screen.scss */ | |||
/* line 1439, ../sass/screen.scss */ | |||
.site-opinion .field-opinionform-istest { | |||
display: none; | |||
} | |||
/* line 1436, ../sass/screen.scss */ | |||
/* line 1443, ../sass/screen.scss */ | |||
.site-opinion .form-group.submit { | |||
text-align: center; | |||
} | |||
/* line 1443, ../sass/screen.scss */ | |||
/* line 1450, ../sass/screen.scss */ | |||
#site-prices .panel p { | |||
padding-bottom: 0px; | |||
} | |||
/* line 1450, ../sass/screen.scss */ | |||
/* line 1457, ../sass/screen.scss */ | |||
#contact-form .field-contactform-istest { | |||
display: none; | |||
} | |||
/* line 1456, ../sass/screen.scss */ | |||
/* line 1463, ../sass/screen.scss */ | |||
.site-request-password-reset .col-lg-6 { | |||
margin: 0px auto; | |||
} |
@@ -1122,6 +1122,13 @@ $max-width-form: 500px; | |||
@include border-radius(5px) ; | |||
} | |||
.need-help-login-signup { | |||
margin-top: 30px; | |||
margin-bottom: 0px; | |||
padding-bottom: 0px !important; | |||
text-align: center; | |||
} | |||
.site-login { | |||
.col-lg-5 { | |||
margin: 0px auto; |
@@ -47,7 +47,6 @@ use yii\helpers\Html; | |||
class SiteController extends ProducerBaseController | |||
{ | |||
/** | |||
* @inheritdoc | |||
*/ | |||
@@ -221,6 +220,37 @@ class SiteController extends ProducerBaseController | |||
]); | |||
} | |||
public function actionSupport() | |||
{ | |||
$featureModule = $this->getFeatureModule(); | |||
if($featureModule->getChecker()->isDisabled(Feature::ALIAS_SHOP_SUPPORT)) { | |||
return $this->redirect(['site/index']); | |||
} | |||
$model = new ContactForm(); | |||
$producer = $this->getProducerCurrent(); | |||
if ($model->load(\Yii::$app->request->post()) && $model->validate()) { | |||
$isSent = false; | |||
if ($model->sendEmailShopSupport($producer)) { | |||
$isSent = true; | |||
} | |||
if ($isSent) { | |||
$this->setFlash('success', 'Votre message a bien été envoyé.'); | |||
} else { | |||
$this->setFlash('error', 'Il y a eu une erreur lors de l\'envoi de votre message.'); | |||
} | |||
$model = new ContactForm(); | |||
} | |||
return $this->render('support', [ | |||
'model' => $model, | |||
'producer' => $this->getProducerCurrent() | |||
]); | |||
} | |||
/** | |||
* Ajoute ou supprime un producteur des favoris de l'utilisateur. | |||
* Redirige vers la page d'accueil du producteur. |
@@ -392,9 +392,19 @@ $mainColor = $producer->option_main_color ?: '#ee6f42' ; | |||
<footer id="footer" class="container"> | |||
<div class="content"> | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index']); ?>">Souke</a> • | |||
<!--<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index']); ?>">Souke</a> • | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/mentions']); ?>">Mentions légales</a> • | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/cgv']); ?>">CGS</a> | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/cgv']); ?>">CGS</a>--> | |||
<?php if($featureModule->getChecker()->isEnabled(Feature::ALIAS_SHOP_SUPPORT)): ?> | |||
<div id="button-shop-support"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['site/support']) ?>" class="btn btn-sm btn-secondary"> | |||
<i class="bi bi-life-preserver"></i> | |||
Besoin d'aide ? | |||
</a> | |||
</div> | |||
<?php endif; ?> | |||
</div> | |||
</footer> | |||
<script type="text/javascript" src="https://cdn.polyfill.io/v3/polyfill.min.js?features=Intl.~locale.fr"></script> |
@@ -0,0 +1,87 @@ | |||
<?php | |||
/** | |||
Copyright Souke (2018) | |||
contact@souke.fr | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
use domain\Producer\Producer\ProducerModule; | |||
use yii\helpers\Html; | |||
use yii\bootstrap\ActiveForm; | |||
use yii\captcha\Captcha; | |||
$producerModule = ProducerModule::getInstance(); | |||
$this->setTitle('Support technique'); | |||
$this->setMeta('description', $producerModule->getSeoGenerator()->generateMetaDescriptionSupport()); | |||
?> | |||
<div class="site-support"> | |||
<div class="row"> | |||
<div class="col-lg-6"> | |||
<?php $form = ActiveForm::begin(['id' => 'contact-form', 'enableClientValidation' => false,]); ?> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'email') ?> | |||
<?= $form->field($model, 'subject') ?> | |||
<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?> | |||
<?php echo $form->field($model, 'verifyCode')->widget(yii\captcha\Captcha::className(), [ | |||
'template' => '<div class="row"><div class="col-md-12">{image}</div><div class="col-md-12">{input}</div></div>', | |||
]); ?> | |||
<?= $form->field($model, 'isTest')->hiddenInput() ?> | |||
<div class="form-group form-buttons"> | |||
<?= Html::submitButton('<i class="bi bi-send"></i> Envoyer', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
<div class="col-lg-6"> | |||
<br /> | |||
<div class="card"> | |||
<div class="card-body"> | |||
<h5 class="card-title"> | |||
<i class="bi bi-life-preserver"></i> | |||
Vous rencontrez un problème ? | |||
</h5> | |||
<div class="card-text"> | |||
<p>Si vous avez une question ou un problème dans l'utilisation du logiciel, n'hésitez | |||
pas à contacter le développeur en utilisant le formulaire ci-contre. Une réponse vous | |||
sera apportée au plus vite.</p> | |||
<p>Si vous souhaitez contacter votre producteur, merci de privilégier le | |||
<a href="<?= Yii::$app->urlManager->createUrl(['site/contact']) ?>">formulaire de contact</a>.</p> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> |
@@ -260,10 +260,11 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
} | |||
/* line 224, ../sass/_layout.scss */ | |||
#header nav#main-nav { | |||
position: relative; | |||
background-color: #ece4d8; | |||
margin-top: 0px; | |||
} | |||
/* line 230, ../sass/_layout.scss */ | |||
/* line 231, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a { | |||
display: inline-block; | |||
padding: 8px 12px; | |||
@@ -274,11 +275,11 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
-webkit-box-shadow: -20px 0px 20px 0px #ece4d8 inset; | |||
box-shadow: -20px 0px 20px 0px #ece4d8 inset; | |||
} | |||
/* line 238, ../sass/_layout.scss */ | |||
/* line 239, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a .bi { | |||
margin-right: 3px; | |||
} | |||
/* line 242, ../sass/_layout.scss */ | |||
/* line 243, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a span.label { | |||
display: inline-block; | |||
position: relative; | |||
@@ -296,11 +297,11 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
text-transform: uppercase; | |||
border: solid 1px transparent; | |||
} | |||
/* line 258, ../sass/_layout.scss */ | |||
/* line 259, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a .hide-desktop { | |||
display: none; | |||
} | |||
/* line 263, ../sass/_layout.scss */ | |||
/* line 264, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a.active, | |||
#header nav#main-nav ul li a:hover { | |||
color: white; | |||
@@ -308,16 +309,16 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
-webkit-box-shadow: none; | |||
box-shadow: none; | |||
} | |||
/* line 268, ../sass/_layout.scss */ | |||
/* line 269, ../sass/_layout.scss */ | |||
#header nav#main-nav ul li a.active span.label-success, | |||
#header nav#main-nav ul li a:hover span.label-success { | |||
border: solid 1px white !important; | |||
} | |||
/* line 274, ../sass/_layout.scss */ | |||
/* line 275, ../sass/_layout.scss */ | |||
#header nav#main-nav ul.submenu { | |||
background-color: white; | |||
} | |||
/* line 278, ../sass/_layout.scss */ | |||
/* line 279, ../sass/_layout.scss */ | |||
#header nav#main-nav ul.submenu li a { | |||
background-color: white; | |||
font-size: 0.9em; | |||
@@ -326,34 +327,34 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
box-shadow: none; | |||
border-bottom: solid 2px #f4efe8; | |||
} | |||
/* line 284, ../sass/_layout.scss */ | |||
/* line 285, ../sass/_layout.scss */ | |||
#header nav#main-nav ul.submenu li a span.label { | |||
background-color: white; | |||
border: solid 1px #b7ab9b; | |||
color: #b7ab9b; | |||
} | |||
/* line 291, ../sass/_layout.scss */ | |||
/* line 292, ../sass/_layout.scss */ | |||
#header nav#main-nav ul.submenu li a.active, | |||
#header nav#main-nav ul.submenu li a:hover { | |||
color: black; | |||
background-color: white; | |||
border-bottom: solid 2px #b7ab9b !important; | |||
} | |||
/* line 301, ../sass/_layout.scss */ | |||
/* line 302, ../sass/_layout.scss */ | |||
#header nav#main-nav #user { | |||
color: #ee6f42; | |||
float: right; | |||
padding: 10px; | |||
} | |||
/* line 309, ../sass/_layout.scss */ | |||
/* line 310, ../sass/_layout.scss */ | |||
#main { | |||
padding: 0px; | |||
padding-top: 38px; | |||
margin-bottom: 30px; | |||
margin-bottom: 15px; | |||
background-color: white; | |||
} | |||
/* line 315, ../sass/_layout.scss */ | |||
/* line 316, ../sass/_layout.scss */ | |||
#main #banner { | |||
height: 180px; | |||
overflow: hidden; | |||
@@ -361,7 +362,7 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
background-size: cover; | |||
background-position: center; | |||
} | |||
/* line 323, ../sass/_layout.scss */ | |||
/* line 324, ../sass/_layout.scss */ | |||
#main #infos-producer { | |||
display: none; | |||
padding: 5px 10px; | |||
@@ -371,118 +372,119 @@ ul.pagination li.prev a, ul.pagination li.next a { | |||
border-bottom: solid 1px #e0e0e0; | |||
color: gray; | |||
} | |||
/* line 332, ../sass/_layout.scss */ | |||
/* line 333, ../sass/_layout.scss */ | |||
#main #infos-producer strong { | |||
font-weight: bold; | |||
} | |||
/* line 336, ../sass/_layout.scss */ | |||
/* line 337, ../sass/_layout.scss */ | |||
#main #infos-producer .favorite { | |||
float: right; | |||
color: gray; | |||
} | |||
/* line 339, ../sass/_layout.scss */ | |||
/* line 340, ../sass/_layout.scss */ | |||
#main #infos-producer .favorite a { | |||
color: black; | |||
} | |||
/* line 345, ../sass/_layout.scss */ | |||
/* line 346, ../sass/_layout.scss */ | |||
#main h2#page-title { | |||
margin-top: 0px; | |||
font-family: "worksans_bold"; | |||
font-size: 30px; | |||
line-height: 40px; | |||
} | |||
/* line 356, ../sass/_layout.scss */ | |||
/* line 357, ../sass/_layout.scss */ | |||
#main #content { | |||
position: relative; | |||
padding: 40px; | |||
min-height: 300px; | |||
} | |||
/* line 360, ../sass/_layout.scss */ | |||
/* line 362, ../sass/_layout.scss */ | |||
#main #content h1, #main #content h2, #main #content h3, #main #content h4, #main #content h5, #main #content h6 { | |||
font-family: "worksans_bold"; | |||
margin-bottom: 20px; | |||
color: black; | |||
} | |||
/* line 365, ../sass/_layout.scss */ | |||
/* line 367, ../sass/_layout.scss */ | |||
#main #content h1.first, #main #content h2.first, #main #content h3.first, #main #content h4.first, #main #content h5.first, #main #content h6.first { | |||
margin-top: 0px; | |||
} | |||
/* line 370, ../sass/_layout.scss */ | |||
/* line 372, ../sass/_layout.scss */ | |||
#main #content h1 { | |||
font-size: 30px; | |||
} | |||
/* line 374, ../sass/_layout.scss */ | |||
/* line 376, ../sass/_layout.scss */ | |||
#main #content h2 { | |||
font-size: 25px; | |||
} | |||
/* line 378, ../sass/_layout.scss */ | |||
/* line 380, ../sass/_layout.scss */ | |||
#main #content h3 { | |||
font-size: 1.4em; | |||
text-align: left; | |||
margin-bottom: 30px; | |||
} | |||
/* line 383, ../sass/_layout.scss */ | |||
/* line 385, ../sass/_layout.scss */ | |||
#main #content h3 span { | |||
padding-top: 14px; | |||
color: black; | |||
} | |||
/* line 389, ../sass/_layout.scss */ | |||
/* line 391, ../sass/_layout.scss */ | |||
#main #content h4 { | |||
font-size: 20px; | |||
} | |||
/* line 393, ../sass/_layout.scss */ | |||
/* line 395, ../sass/_layout.scss */ | |||
#main #content h5 { | |||
font-size: 18px; | |||
} | |||
/* line 397, ../sass/_layout.scss */ | |||
/* line 399, ../sass/_layout.scss */ | |||
#main #content h6 { | |||
font-size: 16px; | |||
} | |||
/* line 403, ../sass/_layout.scss */ | |||
/* line 405, ../sass/_layout.scss */ | |||
#main #content form .form-group .hint-block { | |||
color: gray; | |||
} | |||
/* line 411, ../sass/_layout.scss */ | |||
/* line 413, ../sass/_layout.scss */ | |||
#footer-producer { | |||
margin-bottom: 30px; | |||
text-align: center; | |||
width: 100%; | |||
} | |||
/* line 416, ../sass/_layout.scss */ | |||
/* line 418, ../sass/_layout.scss */ | |||
#footer-producer a { | |||
color: #ee6f42; | |||
} | |||
/* line 418, ../sass/_layout.scss */ | |||
/* line 420, ../sass/_layout.scss */ | |||
#footer-producer a:active { | |||
text-decoration: underline; | |||
} | |||
/* line 424, ../sass/_layout.scss */ | |||
/* line 426, ../sass/_layout.scss */ | |||
#footer { | |||
display: none; | |||
height: 100px; | |||
float: right; | |||
text-align: center; | |||
text-align: right; | |||
margin-bottom: 50px; | |||
} | |||
/* line 430, ../sass/_layout.scss */ | |||
#footer .content { | |||
padding-top: 20px; | |||
color: black; | |||
} | |||
/* line 434, ../sass/_layout.scss */ | |||
#footer .content a { | |||
/*a { | |||
color: black ; | |||
font-size: 18px ; | |||
padding-left: 10px ; | |||
padding-right: 10px ; | |||
&:hover { | |||
text-decoration: underline ; | |||
} | |||
}*/ | |||
} | |||
/* line 433, ../sass/_layout.scss */ | |||
#footer .content #button-shop-support a { | |||
-moz-border-radius: 15px; | |||
-webkit-border-radius: 15px; | |||
border-radius: 15px; | |||
border: solid 1px #b7ab9b; | |||
color: black; | |||
font-size: 18px; | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
} | |||
/* line 440, ../sass/_layout.scss */ | |||
#footer .content a:hover { | |||
text-decoration: underline; | |||
} | |||
/* line 447, ../sass/_layout.scss */ | |||
#footer #code-source img { | |||
height: 20px; | |||
background-color: white; | |||
} | |||
/** |
@@ -222,6 +222,7 @@ ul.pagination { | |||
} | |||
nav#main-nav { | |||
position: relative; | |||
background-color: $color-gray ; | |||
margin-top: 0px; | |||
@@ -309,7 +310,7 @@ ul.pagination { | |||
#main { | |||
padding: 0px ; | |||
padding-top: 38px; | |||
margin-bottom: 30px; | |||
margin-bottom: 15px; | |||
background-color: white ; | |||
#banner { | |||
@@ -354,9 +355,10 @@ ul.pagination { | |||
} | |||
#content { | |||
position: relative; | |||
padding: 40px; | |||
min-height: 300px ; | |||
h1, h2, h3, h4, h5, h6 { | |||
font-family: 'worksans_bold' ; | |||
margin-bottom: 20px ; | |||
@@ -422,16 +424,21 @@ ul.pagination { | |||
} | |||
#footer { | |||
display: none; | |||
height: 100px ; | |||
float: right ; | |||
text-align: center ; | |||
text-align: right; | |||
margin-bottom: 50px; | |||
.content { | |||
padding-top: 20px ; | |||
color: black ; | |||
a { | |||
#button-shop-support { | |||
a { | |||
@include border-radius(15px); | |||
border: solid 1px $color-gray-dark; | |||
color: black; | |||
background-color: white; | |||
} | |||
} | |||
/*a { | |||
color: black ; | |||
font-size: 18px ; | |||
padding-left: 10px ; | |||
@@ -440,12 +447,6 @@ ul.pagination { | |||
&:hover { | |||
text-decoration: underline ; | |||
} | |||
} | |||
} | |||
#code-source { | |||
img { | |||
height: 20px ; | |||
} | |||
}*/ | |||
} | |||
} |