Bläddra i källkod

Amélioration navigation entre backend/frontend/producer

feature/souke
Guillaume Bourgeois 1 år sedan
förälder
incheckning
1534cdcf41
11 ändrade filer med 1688 tillägg och 1432 borttagningar
  1. +171
    -166
      backend/views/layouts/header.php
  2. +2
    -2
      backend/views/layouts/left.php
  3. +132
    -67
      backend/web/css/screen.css
  4. +61
    -5
      backend/web/sass/_adminlte.scss
  5. +9
    -0
      backend/web/sass/_responsive.scss
  6. +68
    -58
      frontend/views/layouts/main.php
  7. +23
    -4
      frontend/views/site/_prices_producer.php
  8. +127
    -66
      frontend/views/site/index.php
  9. +15
    -45
      frontend/views/site/prices.php
  10. +194
    -180
      frontend/web/css/screen.css
  11. +886
    -839
      frontend/web/sass/screen.scss

+ 171
- 166
backend/views/layouts/header.php Visa fil

@@ -53,7 +53,9 @@ $producer = GlobalParam::getCurrentProducer();

<header class="main-header">

<?= Html::a('<span class="logo-mini"><img src="' . Yii::$app->urlManagerBackend->getBaseUrl() . '/img/logo-distrib.png" /></span><span class="logo-lg"><img src="' . Yii::$app->urlManagerBackend->getBaseUrl() . '/img/logo-distrib.png" /></span>', Yii::$app->homeUrl, ['class' => 'logo']) ?>
<!-- <?= Html::a('<span class="logo-mini"><img src="' . Yii::$app->urlManagerBackend->getBaseUrl() . '/img/logo-distrib.png" /></span><span class="logo-lg"><img src="' . Yii::$app->urlManagerBackend->getBaseUrl() . '/img/logo-distrib.png" /></span>', Yii::$app->homeUrl, ['class' => 'logo']) ?>-->

<?= Html::a('Opendistrib', Yii::$app->homeUrl, ['class' => 'logo']); ?>

<nav class="navbar navbar-static-top" role="navigation">

@@ -61,42 +63,87 @@ $producer = GlobalParam::getCurrentProducer();
<span class="sr-only">Toggle navigation</span>
</a>

<span class="producer<?php if(!$producer->logo): ?> without-logo<?php endif; ?>">
<?php if($producer->logo): ?>
<span class="logo">
<img class="img-logo"
src="<?= \Yii::$app->urlManagerProducer->baseUrl; ?>/uploads/<?= $producer->logo; ?>"
alt="Logo <?= Html::encode($producer->name) ?>" />
</span>
<?php endif; ?>
<div class="title"><?= Html::encode($producer->name) ?></div>
</span>

<div class="navbar-custom-menu">
<?php
<?php

$usersArray = $userManager->queryUsersBy(['id_producer' => GlobalParam::getCurrentProducerId()])
->andWhere('CAST(FROM_UNIXTIME(user.created_at) AS date) > \'' . date("Y-m-d", strtotime("-7 days")) . '\'')
->orderBy('created_at DESC')
->all();
$usersArray = $userManager->queryUsersBy(['id_producer' => GlobalParam::getCurrentProducerId()])
->andWhere('CAST(FROM_UNIXTIME(user.created_at) AS date) > \'' . date("Y-m-d", strtotime("-7 days")) . '\'')
->orderBy('created_at DESC')
->all();

?>
?>

<ul class="nav navbar-nav">

<?php
<?php if ($userManager->isCurrentAdmin()): ?>
<li class="dropdown producer-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<?php if ($producer->active): ?>
<i class="fa fa-home"></i>
<?php else: ?>
<span class="label label-danger">Hors-ligne</span>
<?php endif; ?>
<span>Producteurs</span>
<i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu">
<li class="header">&nbsp;<strong>Producteurs en ligne</strong></li>
<?php $producersArray = Producer::find()->orderBy('name ASC')->all(); ?>
<?php foreach ($producersArray as $producer): ?>
<?php if ($producer->active == 1): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['site/change-producer', 'id' => $producer->id]); ?>"><?= Html::encode($producer->name) ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>
<li class="header"><a href="javascript:void(0);" id="link-display-producers-offline">Afficher
les producteurs hors-ligne</a></li>
<?php foreach ($producersArray as $producer): ?>
<?php if ($producer->active != 1): ?>
<li class="offline">
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['site/change-producer', 'id' => $producer->id]); ?>"><?= Html::encode($producer->name) ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>

<?php

$pastDistributionsArray = Distribution::find()
->where(['<', 'distribution.date', date('Y-m-d')])
->andWhere([
'distribution.id_producer' => GlobalParam::getCurrentProducerId(),
'distribution.active' => 1
])
->orderBy('date DESC')
->limit(3)
->all();
$pastDistributionsArray = Distribution::find()
->where(['<', 'distribution.date', date('Y-m-d')])
->andWhere([
'distribution.id_producer' => GlobalParam::getCurrentProducerId(),
'distribution.active' => 1
])
->orderBy('date DESC')
->limit(3)
->all();

$pastDistributionsArray = array_reverse($pastDistributionsArray);
$pastDistributionsArray = array_reverse($pastDistributionsArray);

$incomingDistributionsArray = Distribution::find()
->where(['>=', 'distribution.date', date('Y-m-d')])
->andWhere([
'distribution.id_producer' => GlobalParam::getCurrentProducerId(),
'distribution.active' => 1
])
->orderBy('date ASC')
->limit(20)
->all();
?>
$incomingDistributionsArray = Distribution::find()
->where(['>=', 'distribution.date', date('Y-m-d')])
->andWhere([
'distribution.id_producer' => GlobalParam::getCurrentProducerId(),
'distribution.active' => 1
])
->orderBy('date ASC')
->limit(20)
->all();
?>

<li class="dropdown distributions-menu notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
@@ -104,172 +151,130 @@ $producer = GlobalParam::getCurrentProducer();
</a>
<ul class="dropdown-menu">

<?php if (count($pastDistributionsArray)): ?>
<li class="header">3 dernières distributions :</li>
<li>
<ul class="menu">
<?php foreach ($pastDistributionsArray as $distribution): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index', 'date' => $distribution->date]); ?>">
<h5><?= strftime('%A %d %B', strtotime($distribution->date)) ?></h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>
<?php if (count($pastDistributionsArray)): ?>
<li class="header">3 dernières distributions :</li>
<li>
<ul class="menu">
<?php foreach ($pastDistributionsArray as $distribution): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index', 'date' => $distribution->date]); ?>">
<h5><?= strftime('%A %d %B', strtotime($distribution->date)) ?></h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>

<?php if (count($incomingDistributionsArray)): ?>
<li class="header">Prochaines distributions :</li>
<li>
<ul class="menu">
<?php foreach ($incomingDistributionsArray as $distribution): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index', 'date' => $distribution->date]); ?>">
<h5><?= strftime('%A %d %B', strtotime($distribution->date)) ?></h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">
Aucune distribution prévue.<br/>
<a class="btn btn-default"
href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index']); ?>">Gérer
mes distributions</a>
</li>
<?php endif; ?>
<?php if (count($incomingDistributionsArray)): ?>
<li class="header">Prochaines distributions :</li>
<li>
<ul class="menu">
<?php foreach ($incomingDistributionsArray as $distribution): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index', 'date' => $distribution->date]); ?>">
<h5><?= strftime('%A %d %B', strtotime($distribution->date)) ?></h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">
Aucune distribution prévue.<br/>
<a class="btn btn-default"
href="<?= Yii::$app->urlManagerBackend->createUrl(['distribution/index']); ?>">Gérer
mes distributions</a>
</li>
<?php endif; ?>
</ul>
</li>

<li class="dropdown users-menu notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-user-plus"></i>
<?php if (count($usersArray)): ?><span
class="label label-success"><?= count($usersArray) ?></span>
<?php else: ?><span class="label label-warning">0</span><?php endif; ?>
<?php if (count($usersArray)): ?><span
class="label label-success"><?= count($usersArray) ?></span>
<?php else: ?><span class="label label-warning">0</span><?php endif; ?>
</a>
<ul class="dropdown-menu">
<?php if (count($usersArray)): ?>
<li class="header">Inscriptions des 7 derniers jours</li>
<li>
<ul class="menu">
<?php foreach ($usersArray as $user): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['user/update', 'id' => $user['user_id']]); ?>">
<h5><?= Html::encode((isset($user['name_legal_person']) && strlen($user['name_legal_person'])) ? $user['name_legal_person'] : $user['name'] . ' ' . $user['lastname']); ?>
<small>
<i class="fa fa-clock-o"></i> <?= date('d/m/Y à H:i', $user['created_at']); ?>
</small>
</h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">Aucun nouvel inscrit ces 7 derniers jours.</li>
<?php endif; ?>
<?php if (count($usersArray)): ?>
<li class="header">Inscriptions des 7 derniers jours</li>
<li>
<ul class="menu">
<?php foreach ($usersArray as $user): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['user/update', 'id' => $user['user_id']]); ?>">
<h5><?= Html::encode((isset($user['name_legal_person']) && strlen($user['name_legal_person'])) ? $user['name_legal_person'] : $user['name'] . ' ' . $user['lastname']); ?>
<small>
<i class="fa fa-clock-o"></i> <?= date('d/m/Y à H:i', $user['created_at']); ?>
</small>
</h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">Aucun nouvel inscrit ces 7 derniers jours.</li>
<?php endif; ?>
</ul>
</li>

<?php
<?php

$usersNegativeCreditArray = $userManager->queryUsersBy(['id_producer' => GlobalParam::getCurrentProducerId()])
->andWhere('user_producer.credit < 0')
->orderBy('lastname, name ASC')
->all();
$usersNegativeCreditArray = $userManager->queryUsersBy(['id_producer' => GlobalParam::getCurrentProducerId()])
->andWhere('user_producer.credit < 0')
->orderBy('lastname, name ASC')
->all();

?>
?>

<li class="dropdown users-negative-credit-menu notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-euro"></i>
<?php if (count($usersNegativeCreditArray)): ?><span
class="label label-warning"><?= count($usersNegativeCreditArray) ?></span>
<?php else: ?><span class="label label-success">0</span><?php endif; ?>
<?php if (count($usersNegativeCreditArray)): ?><span
class="label label-warning"><?= count($usersNegativeCreditArray) ?></span>
<?php else: ?><span class="label label-success">0</span><?php endif; ?>
</a>

<ul class="dropdown-menu">
<?php if (count($usersNegativeCreditArray)): ?>
<li class="header">Utilisateurs au crédit négatif</li>
<li>
<ul class="menu">
<?php foreach ($usersNegativeCreditArray as $user): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['user/credit', 'id' => $user['user_id']]); ?>">
<h5><?= $userManager->getUsernameFromArray($user); ?>
<small>
<i class="fa fa-euro"></i> <?= Price::format($user['credit']); ?>
</small>
</h5>
</a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">Aucun de vos utilisateurs n'a de crédit négatif.</li>
<?php endif; ?>
</ul>

</li>

<?php if ( $userManager->isCurrentProducer() || $userManager->isCurrentAdmin()): ?>
<li class="dropdown producer-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">

<?php if ($producer->active): ?>
<i class="fa fa-home"></i>
<?php else: ?>
<span class="label label-danger">Hors-ligne</span>
<?php endif; ?>
<span><?= Html::encode($producerManager->getNameProducer(Yii::$app->user->identity)); ?></span>
<i class="fa fa-caret-down"></i>
</a>

<ul class="dropdown-menu">
<?php if ( $userManager->isCurrentAdmin()): ?>
<?php if (count($usersNegativeCreditArray)): ?>
<li class="header">Utilisateurs au crédit négatif</li>
<li>
<ul class="menu">
<?php foreach ($usersNegativeCreditArray as $user): ?>
<li>
<a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => GlobalParam::getCurrentProducer()->slug]); ?>">
<i class="fa fa-th-large"></i>
<span class="hidden-xs">Espace du producteur</span>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['user/credit', 'id' => $user['user_id']]); ?>">
<h5><?= $userManager->getUsernameFromArray($user); ?>
<small>
<i class="fa fa-euro"></i> <?= Price::format($user['credit']); ?>
</small>
</h5>
</a>
</li>
<li class="header">&nbsp;<strong>Producteurs en ligne</strong></li>
<?php $producersArray = Producer::find()->orderBy('name ASC')->all(); ?>
<?php foreach ($producersArray as $producer): ?>
<?php if($producer->active == 1): ?>
<li>
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['site/change-producer', 'id' => $producer->id]); ?>"><?= Html::encode($producer->name) ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>
<li class="header"><a href="javascript:void(0);" id="link-display-producers-offline">Afficher les producteurs hors-ligne</a></li>
<?php foreach ($producersArray as $producer): ?>
<?php if($producer->active != 1): ?>
<li class="offline">
<a href="<?= Yii::$app->urlManagerBackend->createUrl(['site/change-producer', 'id' => $producer->id]); ?>"><?= Html::encode($producer->name) ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>
<?php else: ?>
<li>
<a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => GlobalParam::getCurrentProducer()->slug]); ?>">
<i class="fa fa-th-large"></i>
<span class="hidden-xs">Mon espace</span>
</a>
</li>
<?php endif; ?>
</ul>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</li>
<?php else: ?>
<li class="header">Aucun de vos utilisateurs n'a de crédit négatif.</li>
<?php endif; ?>
</ul>

</li>
<?php if ($userManager->isCurrentProducer() || $userManager->isCurrentAdmin()): ?>
<li>
<a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => GlobalParam::getCurrentProducer()->slug]); ?>">
<span class="glyphicon glyphicon-grain"></span>
<span class="hidden-xs">Espace producteur</span>
</a>
</li>
<?php endif; ?>

<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-user"></i>
<span class="hidden-xs"><?= Html::encode( GlobalParam::getCurrentUser()->name . ' ' . GlobalParam::getCurrentUser()->lastname); ?></span>
<span class="hidden-xs"><?= Html::encode(GlobalParam::getCurrentUser()->name . ' ' . GlobalParam::getCurrentUser()->lastname); ?></span>
<i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu">

+ 2
- 2
backend/views/layouts/left.php Visa fil

@@ -37,18 +37,18 @@
*/

use common\helpers\GlobalParam;
use yii\helpers\Html;

$producerManager = $this->getProducerManager();
$userManager = $this->getUserManager();
$producer = GlobalParam::getCurrentProducer();

?>

<aside class="main-sidebar">

<section class="sidebar">

<?php
$producer = GlobalParam::getCurrentProducer();
$newVersionOpendistribTemplate = '';
if($producer && !$producerManager->isUpToDateWithOpendistribVersion($producer)) {
$newVersionOpendistribTemplate = '<span class="pull-right-container"><small class="label pull-right bg-orange">&nbsp;</small></span>';

+ 132
- 67
backend/web/css/screen.css Visa fil

@@ -1523,145 +1523,202 @@ a.btn.btn-primary .glyphicon-triangle-bottom, button.btn.btn-primary .glyphicon-
/* line 4, ../sass/_adminlte.scss */
body.skin-black .main-header .logo {
background-color: white;
font-family: 'highvoltageregular';
font-size: 23px;
}
/* line 6, ../sass/_adminlte.scss */
body.skin-black .main-header .logo:hover {
/* line 9, ../sass/_adminlte.scss */
body.skin-black .main-header .logo:hover, body.skin-black .main-header .logo:focus {
background-color: white;
text-decoration: none;
}
/* line 10, ../sass/_adminlte.scss */
/* line 14, ../sass/_adminlte.scss */
body.skin-black .main-header .logo .logo-lg img {
width: 30px;
height: 30px;
}
/* line 16, ../sass/_adminlte.scss */
/* line 20, ../sass/_adminlte.scss */
body.skin-black .main-header .logo .logo-mini img {
width: 30px;
height: 30px;
}
/* line 22, ../sass/_adminlte.scss */
/* line 26, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar {
background-color: white;
}
/* line 24, ../sass/_adminlte.scss */
/* line 29, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .producer {
float: left;
padding: 15px;
padding-left: 57px;
}
/* line 34, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .producer.without-logo {
padding-left: 10px;
}
/* line 38, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .producer .logo {
position: absolute;
top: 5px;
left: 50px;
background-color: white;
width: 40px;
height: 40px;
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;
border: solid 1px #e0e0e0;
text-align: center;
overflow: hidden;
}
/* line 50, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .producer .logo .img-logo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 35px;
max-height: 35px;
}
/* line 60, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .producer .title {
position: relative;
top: 2px;
text-transform: uppercase;
}
/* line 67, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .sidebar-toggle {
color: #333;
}
/* line 28, ../sass/_adminlte.scss */
/* line 71, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav > li > a,
body.skin-black .main-header .navbar .navbar-right > li > a {
border-left: solid 1px #e0e0e0;
color: #333;
}
/* line 34, ../sass/_adminlte.scss */
/* line 77, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .nav > li > a:hover, body.skin-black .main-header .navbar .nav > li > a:active, body.skin-black .main-header .navbar .nav > li > a:focus,
body.skin-black .main-header .navbar .nav .open > a, body.skin-black .main-header .navbar .nav .open > a:hover, body.skin-black .main-header .navbar .nav .open > a:focus,
body.skin-black .main-header .navbar .nav > .active > a {
color: #FF7F00;
}
/* line 40, ../sass/_adminlte.scss */
/* line 83, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .dropdown-menu {
-moz-box-shadow: 0px 0px 4px gray;
-webkit-box-shadow: 0px 0px 4px gray;
box-shadow: 0px 0px 4px gray;
}
/* line 45, ../sass/_adminlte.scss */
/* line 88, ../sass/_adminlte.scss */
body.skin-black .main-header .logo, body.skin-black .main-header .navbar .sidebar-toggle {
border-right: solid 1px #e0e0e0;
}
/* line 49, ../sass/_adminlte.scss */
/* line 92, ../sass/_adminlte.scss */
body.skin-black .main-header .link-control-sidebar {
display: none;
}
/* line 54, ../sass/_adminlte.scss */
/* line 97, ../sass/_adminlte.scss */
body.skin-black .main-header .notifications-menu ul.menu {
max-height: 300px;
}
/* line 57, ../sass/_adminlte.scss */
/* line 100, ../sass/_adminlte.scss */
body.skin-black .main-header .notifications-menu ul.menu li a {
padding-top: 4px;
padding-bottom: 4px;
}
/* line 61, ../sass/_adminlte.scss */
/* line 104, ../sass/_adminlte.scss */
body.skin-black .main-header .notifications-menu ul.menu li a h5 {
margin-bottom: 2px;
}
/* line 64, ../sass/_adminlte.scss */
/* line 107, ../sass/_adminlte.scss */
body.skin-black .main-header .notifications-menu ul.menu li a h5 small {
float: right;
}
/* line 69, ../sass/_adminlte.scss */
/* line 112, ../sass/_adminlte.scss */
body.skin-black .main-header .notifications-menu ul.menu li a p {
margin-left: 10px;
}
/* line 79, ../sass/_adminlte.scss */
/* line 122, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .nav li.producer-menu .label {
position: relative;
top: -2px;
left: 0px;
}
/* line 85, ../sass/_adminlte.scss */
/* line 128, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .nav li.producer-menu #link-display-producers-offline {
color: #FF7F00;
}
/* line 89, ../sass/_adminlte.scss */
/* line 132, ../sass/_adminlte.scss */
body.skin-black .main-header .navbar .nav li.producer-menu .offline {
display: none;
}
/* line 95, ../sass/_adminlte.scss */
/* line 138, ../sass/_adminlte.scss */
body.skin-black .sidebar-menu > li.active > a {
border-color: #FF7F00;
}
/* line 99, ../sass/_adminlte.scss */
/* line 143, ../sass/_adminlte.scss */
body.skin-black section.sidebar .user-panel {
text-align: center;
}
/* line 146, ../sass/_adminlte.scss */
body.skin-black section.sidebar .user-panel .image {
margin-bottom: 3px;
}
/* line 150, ../sass/_adminlte.scss */
body.skin-black section.sidebar .user-panel .title {
font-weight: bold;
color: white;
}
/* line 157, ../sass/_adminlte.scss */
body.skin-black .content-wrapper {
background-color: #f5f5f5;
}
/* line 102, ../sass/_adminlte.scss */
/* line 160, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .content-header {
background-color: #F5F5F5;
padding-bottom: 15px;
border-bottom: solid 1px #e0e0e0;
border-top: solid 1px #e0e0e0;
}
/* line 108, ../sass/_adminlte.scss */
/* line 166, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .content-header .btn {
padding: 3px 6px;
font-size: 10px;
font-family: Arial;
text-transform: uppercase;
}
/* line 115, ../sass/_adminlte.scss */
/* line 173, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .content-header h1 {
font-family: "highvoltageregular";
font-family: 'myriadpro-light';
font-size: 20px;
}
/* line 122, ../sass/_adminlte.scss */
/* line 178, ../sass/_adminlte.scss */
body.skin-black .content-wrapper a {
color: #FF7F00;
}
/* line 126, ../sass/_adminlte.scss */
/* line 182, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .btn {
color: white;
}
/* line 130, ../sass/_adminlte.scss */
/* line 186, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .btn-default {
color: #333;
background-color: white;
}
/* line 135, ../sass/_adminlte.scss */
/* line 191, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .btn-primary {
background-color: #FF7F00;
color: white;
border-color: #FF7F00;
}
/* line 142, ../sass/_adminlte.scss */
/* line 198, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .alert a {
color: white;
}
/* line 145, ../sass/_adminlte.scss */
/* line 201, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .alert a.btn {
color: #333;
text-decoration: none;
}
/* line 150, ../sass/_adminlte.scss */
/* line 206, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .alert .close {
font-size: 30px;
position: relative;
@@ -1670,89 +1727,89 @@ body.skin-black .content-wrapper .alert .close {
color: white;
opacity: 0.6;
}
/* line 158, ../sass/_adminlte.scss */
/* line 214, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .alert .close:hover {
opacity: 1;
}
/* line 165, ../sass/_adminlte.scss */
/* line 221, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .callout h4 .fa {
margin-right: 7px;
}
/* line 168, ../sass/_adminlte.scss */
/* line 224, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .callout a {
color: white;
}
/* line 171, ../sass/_adminlte.scss */
/* line 227, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .callout .btn {
color: #333;
text-decoration: none;
}
/* line 178, ../sass/_adminlte.scss */
/* line 234, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .table th {
font-size: 13px;
}
/* line 181, ../sass/_adminlte.scss */
/* line 237, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .table th.column-actions, body.skin-black .content-wrapper .table td.column-actions {
width: 150px;
text-align: right;
}
/* line 185, ../sass/_adminlte.scss */
/* line 241, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .table td.text-small, body.skin-black .content-wrapper .table th.text-small {
font-size: 12px;
}
/* line 190, ../sass/_adminlte.scss */
/* line 246, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .pagination > .active > a, body.skin-black .content-wrapper .pagination > .active > span, body.skin-black .content-wrapper .pagination > .active > a:hover, body.skin-black .content-wrapper .pagination > .active > span:hover, body.skin-black .content-wrapper .pagination > .active > a:focus, body.skin-black .content-wrapper .pagination > .active > span:focus {
background-color: #FF7F00;
border: solid 1px #FF7F00;
color: white;
}
/* line 195, ../sass/_adminlte.scss */
/* line 251, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .pagination > li > a, body.skin-black .content-wrapper .pagination > li > span {
color: #FF7F00;
}
/* line 197, ../sass/_adminlte.scss */
/* line 253, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .pagination > li > a:hover, body.skin-black .content-wrapper .pagination > li > span:hover {
color: #cc6600;
}
/* line 202, ../sass/_adminlte.scss */
/* line 258, ../sass/_adminlte.scss */
body.skin-black .content-wrapper .submenu {
margin-bottom: 25px;
}
/* line 208, ../sass/_adminlte.scss */
/* line 264, ../sass/_adminlte.scss */
body.skin-black .main-footer a {
color: #FF7F00;
}

/* line 214, ../sass/_adminlte.scss */
/* line 270, ../sass/_adminlte.scss */
body.login-page {
background: none;
background-color: white;
}
/* line 218, ../sass/_adminlte.scss */
/* line 274, ../sass/_adminlte.scss */
body.login-page .login-box .login-logo {
text-align: center;
font-family: "comfortaalight";
}
/* line 221, ../sass/_adminlte.scss */
/* line 277, ../sass/_adminlte.scss */
body.login-page .login-box .login-logo img {
width: 50px;
}
/* line 226, ../sass/_adminlte.scss */
/* line 282, ../sass/_adminlte.scss */
body.login-page .login-box .login-box-body .btn-primary {
background-color: #FF7F00;
border-color: #FF7F00;
padding: 5px 10px;
}
/* line 231, ../sass/_adminlte.scss */
/* line 287, ../sass/_adminlte.scss */
body.login-page .login-box .login-box-body .btn-primary:active {
background-color: #ff8c1a;
border-color: #FF7F00;
}
/* line 237, ../sass/_adminlte.scss */
/* line 293, ../sass/_adminlte.scss */
body.login-page .login-box .login-box-body a {
color: #FF7F00;
}
/* line 239, ../sass/_adminlte.scss */
/* line 295, ../sass/_adminlte.scss */
body.login-page .login-box .login-box-body a:hover {
color: #ff8c1a;
}
@@ -2616,80 +2673,88 @@ pris connaissance de la licence CeCILL, et que vous en avez accepté les
termes.
*/
@media screen and (max-width: 768px) {
/* line 41, ../sass/_responsive.scss */
/* line 42, ../sass/_responsive.scss */
.main-header .logo {
color: #333 !important;
}
/* line 46, ../sass/_responsive.scss */
.main-header .navbar {
border-top: solid 1px #e0e0e0;
border-bottom: solid 1px #e0e0e0;
}
/* line 50, ../sass/_responsive.scss */
.main-header .navbar .producer {
display: none;
}

/* line 49, ../sass/_responsive.scss */
/* line 58, ../sass/_responsive.scss */
.navbar-custom-menu .producer-menu span {
display: none;
}

/* line 56, ../sass/_responsive.scss */
/* line 65, ../sass/_responsive.scss */
.table .column-hide-on-mobile {
display: none;
}

/* line 67, ../sass/_responsive.scss */
/* line 76, ../sass/_responsive.scss */
.distribution-index .modal-form-order .modal-container .modal-body table.table-products td.quantity .form-control {
width: 50px;
height: 52px;
}
/* line 73, ../sass/_responsive.scss */
/* line 82, ../sass/_responsive.scss */
.distribution-index .modal-form-order .modal-container .modal-body table.table-products td.price {
display: none;
}
/* line 81, ../sass/_responsive.scss */
/* line 90, ../sass/_responsive.scss */
.distribution-index .modal-form-order .modal-container .modal-footer .actions-form div.right {
display: none;
}
/* line 92, ../sass/_responsive.scss */
/* line 101, ../sass/_responsive.scss */
.distribution-index #orders #buttons-top-orders .left {
width: 100%;
float: none;
}
/* line 97, ../sass/_responsive.scss */
/* line 106, ../sass/_responsive.scss */
.distribution-index #orders #buttons-top-orders .right {
width: 100%;
float: none;
}
/* line 102, ../sass/_responsive.scss */
/* line 111, ../sass/_responsive.scss */
.distribution-index #orders #buttons-top-orders .btn {
padding: 8px 15px;
margin: 10px;
display: block;
width: 100%;
}
/* line 112, ../sass/_responsive.scss */
/* line 121, ../sass/_responsive.scss */
.distribution-index #orders #wrapper-nav-points-sale ul#nav-points-sale li {
float: none;
width: 100%;
}
/* line 116, ../sass/_responsive.scss */
/* line 125, ../sass/_responsive.scss */
.distribution-index #orders #wrapper-nav-points-sale ul#nav-points-sale li a {
display: block;
}
/* line 125, ../sass/_responsive.scss */
/* line 134, ../sass/_responsive.scss */
.distribution-index #orders table .state-payment-mobile {
display: block;
}
/* line 128, ../sass/_responsive.scss */
/* line 137, ../sass/_responsive.scss */
.distribution-index #orders table .state-payment-mobile .glyphicon-time {
display: none;
}
/* line 134, ../sass/_responsive.scss */
/* line 143, ../sass/_responsive.scss */
.distribution-index #orders table ul.dropdown-menu a {
padding: 15px;
}
/* line 139, ../sass/_responsive.scss */
/* line 148, ../sass/_responsive.scss */
.distribution-index #orders table button.dropdown-toggle,
.distribution-index #orders table button.btn-moins,
.distribution-index #orders table button.btn-plus {
padding: 15px;
}
/* line 146, ../sass/_responsive.scss */
/* line 155, ../sass/_responsive.scss */
.distribution-index #orders table .column-origin,
.distribution-index #orders table .column-point-sale,
.distribution-index #orders table .column-state-payment,

+ 61
- 5
backend/web/sass/_adminlte.scss Visa fil

@@ -3,8 +3,12 @@ body.skin-black {
.main-header {
.logo {
background-color: white ;
&:hover {
font-family: 'highvoltageregular';
font-size: 23px;

&:hover, &:focus {
background-color: white ;
text-decoration: none;
}
.logo-lg {
img {
@@ -21,6 +25,45 @@ body.skin-black {
}
.navbar {
background-color: white ;

.producer {
float: left;
padding: 15px;
padding-left: 57px;

&.without-logo {
padding-left: 10px;
}

.logo {
position: absolute;
top: 5px;
left: 50px;
background-color: white;
width: 40px;
height: 40px;
@include border-radius(50px);
border: solid 1px #e0e0e0;
text-align: center;
overflow: hidden;

.img-logo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 35px;
max-height: 35px;
}
}

.title {
position: relative;
top: 2px;
text-transform: uppercase;
}
}

.sidebar-toggle {
color: #333 ;
}
@@ -95,6 +138,21 @@ body.skin-black {
.sidebar-menu > li.active > a {
border-color: $color1 ;
}

section.sidebar {
.user-panel {
text-align: center;

.image {
margin-bottom: 3px;
}

.title {
font-weight: bold;
color: white;
}
}
}
.content-wrapper {
background-color: #f5f5f5 ;
@@ -113,12 +171,10 @@ body.skin-black {
}
h1 {
font-family: 'highvoltageregular' ;
font-family: 'myriadpro-light';
font-size: 20px;
}
}
a {
color: $color1 ;
}

+ 9
- 0
backend/web/sass/_responsive.scss Visa fil

@@ -38,9 +38,18 @@ termes.
@media screen and (max-width: 768px) {

.main-header {

.logo {
color: #333 !important;
}

.navbar {
border-top: solid 1px #e0e0e0;
border-bottom: solid 1px #e0e0e0;

.producer {
display: none;
}
}
}


+ 68
- 58
frontend/views/layouts/main.php Visa fil

@@ -37,6 +37,7 @@
*/

use common\helpers\GlobalParam;
use common\logic\User\User\Wrapper\UserManager;
use yii\helpers\Html;
use yii\bootstrap\Nav;
use common\helpers\Url;
@@ -45,13 +46,14 @@ use common\logic\Producer\Producer\Model\Producer;
/* @var $this \yii\web\View */
/* @var $content string */

$userManager = UserManager::getInstance();
$isHome = (Yii::$app->controller->id == 'site' && \Yii::$app->controller->action->id == 'index');

\common\assets\CommonAsset::register($this);
\frontend\assets\AppAsset::register($this);

$producer = null;
if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
if ($userManager->isCurrentProducer()) {
$producer = Producer::searchOne(['id' => \Yii::$app->user->identity->id_producer]);
}

@@ -78,21 +80,72 @@ if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
<body class="<?php if ($isHome): echo 'home'; endif; ?><?php if (!Yii::$app->user->isGuest): ?> connected<?php endif; ?>">
<?php $this->beginBody() ?>
<div id="back"></div>
<?php if (YII_ENV == 'demo'): ?>
<div id="block-demo">

<section id="section-user-top">
<nav class="navbar navbar-inverse">
<div class="container">
<span class="glyphicon glyphicon-eye-open"></span> <strong>Espace de démonstration</strong> :
Testez la plateforme sans avoir à vous inscrire. Les données sont réinitialisées quotidiennement
&bull; <?= Html::a('Retour', Url::env('prod', 'frontend')) ?>
<?php if($userManager->isCurrentProducer()): ?>
<div class="navbar-header">
<span class="navbar-brand" href="javascript:void(0);"><?= Html::encode($producer->name); ?></span>
</div>
<?php endif; ?>

<?php
echo Nav::widget([
'encodeLabels' => false,
'options' => ['class' => 'nav nav-pills navbar-nav navbar-right'],
'items' => [
[
'label' => '<span class="glyphicon glyphicon-cog"></span> Administration',
'url' => $this->getUrlManagerBackend()->createAbsoluteUrl(['site/index']),
'visible' => $userManager->isCurrentProducer()
],
[
'label' => '<span class="glyphicon glyphicon-grain"></span> Espace producteur',
'url' => $this->getUrlManagerProducer()->createAbsoluteUrl(['site/index', 'slug_producer' => $producer ? $producer->slug : '']),
'visible' => $userManager->isCurrentProducer()
],
[
'label' => '<span class="glyphicon glyphicon-user"></span> ' . ((!Yii::$app->user->isGuest) ? Html::encode(Yii::$app->user->identity->name . ' ' . strtoupper(substr(Yii::$app->user->identity->lastname, 0, 1))) : '') . '. ',
'options' => ['id' => 'label1'],
'url' => '#',
'items' => [
[
'label' => '<span class="glyphicon glyphicon-user"></span> Profil',
'url' => $this->getUrlManager()->createUrl(['user/update']),
],
[
'label' => '<span class="glyphicon glyphicon-off"></span> Déconnexion',
'url' => $this->getUrlManager()->createUrl(['site/logout']),
]
],
'visible' => !Yii::$app->user->isGuest
],
[
'label' => '<span class="glyphicon glyphicon-log-in"></span> Connexion',
'url' => $this->getUrlManager()->createUrl(['site/login']),
'visible' => \Yii::$app->user->isGuest,
'active' => $this->getControllerAction() == 'site/login'
],
[
'label' => '<span class="glyphicon glyphicon-user"></span> Inscription',
'url' => $this->getUrlManager()->createUrl(['site/signup']),
'visible' => \Yii::$app->user->isGuest,
'active' => $this->getControllerAction() == 'site/signup'
],
]]);
?>
</div>
</div>
<?php endif; ?>
</nav>
</section>

<header id="header">
<nav class="navbar navbar-default">
<div id="the-header" class="container">
<div class="navbar-header">
<a id="link-home" href="<?= $this->getUrlManager()->createUrl('site/index'); ?>">
<img src="<?php echo $this->getUrlManager()->getBaseUrl(); ?>/img/logo-distrib.png" alt=""/>
<!--<img src="<?php echo $this->getUrlManager()->getBaseUrl(); ?>/img/logo-distrib.png" alt=""/>-->
Open<span>distrib</span>
</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w0-collapse"><span
class="sr-only">Toggle navigation</span>
@@ -108,7 +161,7 @@ if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
'options' => ['class' => 'nav nav-pills navbar-nav navbar-right'],
'items' => [
[
'label' => '<span class="glyphicon glyphicon-home"></span> Accueil',
'label' => '<span class="glyphicon glyphicon-home"></span> Présentation',
'url' => $this->getUrlManager()->createUrl(['site/index']),
'active' => $this->getControllerAction() == 'site/index',
'options' => ['id' => 'li-home']
@@ -120,10 +173,10 @@ if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
'options' => ['id' => 'li-producteurs']
],
[
'label' => '<span class="glyphicon glyphicon-eur"></span> Tarifs',
'url' => $this->getUrlManager()->createUrl(['site/prices']),
'active' => $this->getControllerAction() == 'site/prices',
'options' => ['id' => 'li-producteurs']
'label' => '<span class="glyphicon glyphicon-info-sign"></span> À propos',
'url' => $this->getUrlManager()->createUrl(['site/about']),
'active' => $this->getControllerAction() == 'site/about',
'options' => ['id' => 'li-about']
],
[
'label' => '<span class="glyphicon glyphicon-envelope"></span> Contact',
@@ -131,49 +184,6 @@ if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
'active' => $this->getControllerAction() == 'site/contact',
'options' => ['id' => 'li-contact']
],
[
'label' => '<span class="glyphicon glyphicon-flag"></span> ' . ($producer ? Html::encode($producer->name) : ''),
'url' => '#',
'items' => [
[
'label' => '<span class="glyphicon glyphicon-th-large"></span> Mon espace',
'url' => $this->getUrlManagerProducer()->createAbsoluteUrl(['site/index', 'slug_producer' => $producer ? $producer->slug : '']),
],
[
'label' => '<span class="glyphicon glyphicon-cog"></span> Administration',
'url' => $this->getUrlManagerBackend()->createAbsoluteUrl(['site/index']),
]
],
'visible' => !Yii::$app->user->isGuest && $producer
],
[
'label' => '<span class="glyphicon glyphicon-log-in"></span> Connexion',
'url' => $this->getUrlManager()->createUrl(['site/login']),
'visible' => \Yii::$app->user->isGuest,
'active' => $this->getControllerAction() == 'site/login'
],
[
'label' => '<span class="glyphicon glyphicon-user"></span> Inscription',
'url' => $this->getUrlManager()->createUrl(['site/signup']),
'visible' => \Yii::$app->user->isGuest,
'active' => $this->getControllerAction() == 'site/signup'
],
[
'label' => '<span class="glyphicon glyphicon-user"></span> ' . ((!Yii::$app->user->isGuest) ? Html::encode(Yii::$app->user->identity->name . ' ' . strtoupper(substr(Yii::$app->user->identity->lastname, 0, 1))) : '') . '. ',
'options' => ['id' => 'label1'],
'url' => '#',
'items' => [
[
'label' => '<span class="glyphicon glyphicon-user"></span> Profil',
'url' => $this->getUrlManager()->createUrl(['user/update']),
],
[
'label' => '<span class="glyphicon glyphicon-off"></span> Déconnexion',
'url' => $this->getUrlManager()->createUrl(['site/logout']),
]
],
'visible' => !Yii::$app->user->isGuest
],
]
]);
?>
@@ -182,7 +192,7 @@ if (!Yii::$app->user->isGuest && \Yii::$app->user->identity->id_producer > 0) {
</nav>
</header>

<?php if (!Yii::$app->user->isGuest): ?>
<?php if (!Yii::$app->user->isGuest && false): ?>
<section id="bookmarked-producers">
<div class="container">
<?php

+ 23
- 4
frontend/views/site/_prices_producer.php Visa fil

@@ -43,7 +43,8 @@ use yii\grid\GridView;
<div class="alert alert-warning" role="alert">
Découvrez ci-dessous notre <strong>grille tarifaire</strong> pour l'hébergement de votre circuit court sur Opendistrib.
Le montant qui vous est facturé mensuellement dépend de votre chiffre d’affaire hors taxe réalisé sur le logiciel.
Il sera donc adapté chaque mois en fonction de l’évolution de votre activité.
Il est donc adapté chaque mois en fonction de l’évolution de votre activité.<br />
Le service est <strong>sans engagement</strong>, vous arrêtez quand vous voulez sur simple désactivation de votre compte.
</div>

<?=
@@ -79,7 +80,25 @@ GridView::widget([
]
]);
?>
<?php if (!isset($noButton)){ ?>
<a class="btn btn-default" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/prices']) ?>"><span class="glyphicon glyphicon-eur"></span> En savoir plus sur nos tarifs</a>
<?php } ?>

<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Module</th>
<th>Activation du module (HT)</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Paiement en ligne</strong><br />
<p>Le paiement en ligne permet à vos clients d'alimenter leur crédit (compte prépayé en ligne) par carte bancaire.<br />
Le logiciel fonctionne avec la plateforme <a href="https://stripe.com/fr">Stripe</a> pour accepter les paiements.<br />
<a href="https://stripe.com/fr/pricing">Voir les tarifs Stripe</a>
</p>
</td>
<td>120 €</td>
</tr>
</tbody>
</table>


+ 127
- 66
frontend/views/site/index.php Visa fil

@@ -1,70 +1,78 @@
<?php

/**
Copyright distrib (2018)
* Copyright distrib (2018)
*
* contact@opendistrib.net
*
* 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.
*/

contact@opendistrib.net
use common\helpers\Url;

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 common\helpers\Url ;

$this->setTitle('Logiciel libre de distribution alimentaire en circuit court') ;
$this->setMeta('description', 'Simplifiez la distribution de vos produits en circuit court grâce à des outils web adaptés.') ;
$this->setTitle('Logiciel de distribution alimentaire en circuit court');
$this->setMeta('description', 'Simplifiez la distribution de vos produits en circuit court grâce à des outils web adaptés.');

?>

<div id="presentation">
<div id="presentation-distrib">
<h1><span>Logiciel libre<br />
de distribution alimentaire<br />
en circuit court</span></h1>
<p>simple, ouvert et participatif</p>
<h1><strong>Opendistrib</strong>, logiciel<br/>
de distribution alimentaire<br/>
en circuit court</h1>
</div>
<div id="row-users-producers">
<div class="col-md-6 producer">
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
<img class="img" src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/cagette.png" id="img-producer" />
<img class="img" src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/cagette.png"
id="img-producer"/>
<span class="the-title">Producteurs</span>
</h2>
</div>
<div class="panel-body">
<p class="presentation">Simplifiez la distribution de vos produits<br /> avec des outils adaptés.</p>
<?php if(Yii::$app->user->isGuest): ?>
<a class="btn btn-primary" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/signup']) ; ?>"><span class="glyphicon glyphicon-user"></span> Je crée mon espace</a>
<p class="presentation">Simplifiez la distribution de vos produits en circuit court<br/> avec des
outils adaptés à la vente en pré-commande.</p>
<?php if (Yii::$app->user->isGuest): ?>
<a class="btn btn-primary"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/signup']); ?>">
<span class="glyphicon glyphicon-user"></span> Je crée mon espace
</a>
<?php endif; ?>
<a class="btn btn-default" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/contact']) ; ?>"><span class="glyphicon glyphicon-info-sign"></span> Demande d'informations</a>
<a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank">
<span class="glyphicon glyphicon-education"></span> Je demande une démo
</a>

<!--<a class="btn btn-default" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/contact']); ?>"><span class="glyphicon glyphicon-info-sign"></span> Demande d'informations</a>-->
</div>
</div>
</div>
@@ -72,26 +80,32 @@ $this->setMeta('description', 'Simplifiez la distribution de vos produits en cir
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
<img class="img" src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/users.png" id="img-users" />
<img class="img" src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/users.png"
id="img-users"/>
<span class="the-title">Clients</span>
</h2>
</div>
<div class="panel-body">
<p class="presentation">Réservez vos produits en ligne et récupérez votre commande
chez votre producteur ou dans un dépôt près de chez vous.</p>
<?php if(Yii::$app->user->isGuest): ?>
<a class="btn btn-primary" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/signup']) ; ?>"><span class="glyphicon glyphicon-user"></span> Je m'inscris</a>
<p class="presentation">Réservez facilement vos produits en ligne et récupérez votre commande
chez votre producteur ou dans un point de vente près de chez vous.</p>
<?php if (Yii::$app->user->isGuest): ?>
<a class="btn btn-primary"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/signup']); ?>"><span
class="glyphicon glyphicon-user"></span> Je m'inscris</a>
<?php endif; ?>
<a class="btn btn-default" href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/producers']) ; ?>"><span class="glyphicon glyphicon-search"></span> Je recherche un producteur</a>
<a class="btn btn-default"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/producers']); ?>"><span
class="glyphicon glyphicon-search"></span> Je recherche un producteur</a>
</div>
</div>
</div>
<div class="clr"></div>
</div>
<?php if(Yii::$app->user->isGuest && YII_ENV == 'demo'): ?>
<div class="row" id="row-signup">
<a class="btn btn-primary btn-lg" href="<?= Url::env('prod','frontend'); ?>"><span class="glyphicon glyphicon-circle-arrow-left"></span> Retour sur le site</a>
</div>
<?php if (Yii::$app->user->isGuest && YII_ENV == 'demo'): ?>
<div class="row" id="row-signup">
<a class="btn btn-primary btn-lg" href="<?= Url::env('prod', 'frontend'); ?>"><span
class="glyphicon glyphicon-circle-arrow-left"></span> Retour sur le site</a>
</div>
<?php endif; ?>

<div id="row-functionalities-rates">
@@ -103,39 +117,86 @@ $this->setMeta('description', 'Simplifiez la distribution de vos produits en cir
</div>
<div class="panel-body">
<div class="block block-order col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/order.png" />
<p>Prise de commande en ligne automatisée avec génération d'un récapitulatif par jour de distribution.</p>
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/order.png"/>
<p>Prise de commande en ligne automatisée avec génération d'un récapitulatif par jour de
distribution.</p>
<div class="clr"></div>
</div>
<div class="block block-payment col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/payment.png" />
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/payment.png"/>
<p>Système de crédit permettant la comptabilisation des paiements.</p>
<div class="clr"></div>
</div>
<div class="clr"></div>
<div class="block block-points-sale-products col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/map-marker.png" />
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/map-marker.png"/>
<p>Gestion des différents points de vente et produits.</p>
<div class="clr"></div>
</div>
<div class="block block-subscriptions col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/subscription.png" />
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/subscription.png"/>
<p>Gestion des abonnement.</p>
<div class="clr"></div>
</div>
<div class="clr"></div>
<div class="block block-communication col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/megaphone.png" />
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/megaphone.png"/>
<p>Communication simplifiée avec les clients.</p>
<div class="clr"></div>
</div>
<div class="block block-evolution col-md-6">
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/idea.png" />
<p><a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">Proposez-nous</a> vos idées afin de faire évoluer l'outil !</p>
<div class="clr"></div>
</div>
</div>

<div class="panel panel-default" id="block-services">
<div class="panel-heading">
<h2 class="panel-title">
<span class="glyphicon glyphicon-euro"></span> <span class="the-title">Services</span>
</h2>
</div>
<div class="panel-body">

<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-body">
<h3>Évolutions régulières</h3>
<p>Les évolutions sont développées en fonction des retours de tous les producteurs et le logiciel est régulièrement mis à jour.<br />
Si vous avez un besoin spécifique à votre activité, nous pouvons réaliser des développements sur-mesure sur devis :
<a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">nous contacter</a>.</p>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<h3>Formation & accompagnement</h3>
<p>Au moment du lancement de votre circuit court sur Opendistrib, ainsi que tout au long de votre projet,
nous assurons la formation et l'accompagnement dans l'utilisation du logiciel.</p>
</div>
</div>
</div>

<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-body">
<h3>Support</h3>
<p>Nous sommes disponibles pour répondre rapidement à toutes vos questions par email ou par téléphone.</p>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<h3>Maintenance</h3>
<p>Nous travaillons contamment sur la qualité/sécurité du logiciel et
intervenons au plus vite en cas de bug.</p>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<h3>Hébergement</h3>
<p>La plateforme est hébergée en France par la société <a href="https://www.alwaysdata.com/">Alwaysdata</a>.</p>
</div>
</div>
</div>
</div>
</div>

<div class="panel panel-default" id="block-rates">
<div class="panel-heading">
<h2 class="panel-title">

+ 15
- 45
frontend/views/site/prices.php Visa fil

@@ -59,12 +59,11 @@ $this->setMeta('description', 'Découvrez les tarifs de l\application Opendistri
</h2>
</div>
<div class="panel-body">
<p>Vous avez accès à toutes les fonctionnalités d’Opendistrib quelque soit votre tranche tarifaire (hormis le paiement en ligne).
Ce tarif prend également en compte les mises à jour du logiciel. Les fonctionnalités sont développées en
fonction de vos retours et besoins.
<p>Hormis le paiement en ligne, vous avez accès à toutes les fonctionnalités d’Opendistrib quelque soit votre tranche tarifaire.
Les évolutions sont développées en fonction des retours de tous les producteurs.
</p>
<p>Pour vos besoins spécifiques, nous pouvons réaliser des développements sur-mesure sur devis
(<a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">nous contacter</a>).</p>
<p>Si vous avez un besoin spécifique à votre activité, nous pouvons réaliser des développements sur-mesure sur devis :
<a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">nous contacter</a>.</p>
</div>
</div>
</div>
@@ -72,13 +71,17 @@ $this->setMeta('description', 'Découvrez les tarifs de l\application Opendistri
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
<span class="the-title">Support & maintenance</span>
<span class="the-title">Support, maintenance & hébergement</span>
</h2>
</div>
<div class="panel-body">
<p>Le service comprend l’hébergement, le support et la maintenance. Nous sommes
disponibles pour répondre à vos questions, vous accompagner à l’utilisation du logiciel et corriger
les problèmes que vous ou vos clients pouvez rencontrer.</p>
<p>Le service comprend :</p>
<ul>
<li><strong>Le support</strong> : nous sommes disponibles pour répondre rapidement à toutes vos questions par email ou par téléphone.</li>
<li><strong>La maintenance</strong> : nous travaillons contamment sur la qualité/sécurité du logiciel et
intervenons immédiatement en cas de bug.</li>
<li><strong>L'hébergement</strong> : la plateforme est hébergée en France par la société <a href="https://www.alwaysdata.com/">Alwaysdata</a>.</li>
</ul>
</div>
</div>
</div>
@@ -96,7 +99,7 @@ $this->setMeta('description', 'Découvrez les tarifs de l\application Opendistri
<p>Vous avez plusieurs solutions pour découvrir le logiciel : </p>
<ul>
<li>
<a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">Nous demander une démo</a> pour
<a href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank">Nous demander une démo</a> pour
que l'on vous fasse une présentation.
</li>
<li>
@@ -117,44 +120,11 @@ $this->setMeta('description', 'Découvrez les tarifs de l\application Opendistri
</h2>
</div>
<div class="panel-body">
<p>Si besoin, au moment du lancement de votre circuit court sur Opendistrib, nous pouvons vous proposer
des temps de formation et d'accompagnement au tarif de <strong>40&nbsp;€&nbsp;HT&nbsp;/&nbsp;heure</strong>.
</p>
</div>
</div>
</div>
</div>

<div class="row equal">
<div class="col-md-6 col-xs-12 producer">
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
<span class="the-title">Paiement en ligne</span>
</h2>
</div>
<div class="panel-body">
<p>Le paiement en ligne permet à vos clients d'alimenter leur crédit (compte prépayé en ligne) par carte bancaire.
Le logiciel fonctionne avec la plateforme <a href="https://stripe.com/fr">Stripe</a> pour accepter les paiements.</p>
<p>
Activation de l'option : <strong>120 € HT</strong><br />
<a href="https://stripe.com/fr/pricing">Voir les tarifs Stripe</a>
<p>Au moment du lancement de votre circuit court sur Opendistrib, ainsi que tout au long de votre projet,
la formation et l'accompagnement sont compris dans l'abonnement mensuel.</p>
</p>
</div>
</div>
</div>
<div class="col-md-6 col-xs-12 producer">
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
<span class="the-title">Durée d'engagement</span>
</h2>
</div>
<div class="panel-body ">
<p>Ce service est sans engagement de durée. Si vous souhaitez arrêter, vous aurez simplement à le configurer dans vos
paramètres en mettant hors-ligne votre compte.</p>
</div>
</div>
</div>
</div>
</div>

+ 194
- 180
frontend/web/css/screen.css
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 886
- 839
frontend/web/sass/screen.scss
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


Laddar…
Avbryt
Spara