Commit 030de0d3 by Van

feat(all): Add TwigFunction DataAttributes

parent 9dfd9222
...@@ -118,19 +118,44 @@ cdn_url: 'http://cdt64.media.tourinsoft.eu/upload/' ...@@ -118,19 +118,44 @@ cdn_url: 'http://cdt64.media.tourinsoft.eu/upload/'
Exemple Exemple
user_id : 1 user_id : 1
```` ````
## Twig Function
#### DataAttributes :
###### Set & Get data-attributes for filtered
###### Exemple
```
Valeur en entrée :
<div class="col-md-4">...</div>
```
```
Application de la fonction:
<div class="col-md-4" {{ dataAttribute('HOT', record)|raw }}>
```
```
Valeur en sortie :
<div class="col-md-4"
data-lat="43.1133015" data-lng="-0.1974632" data-communes="64339" data-animaux="true"
data-handi="true" data-stars="3 étoiles" data-piscine="true" data-groupe="true">
</div>
```
## Twig Filters ## Twig Filters
In order to parse data, you can use twig filter In order to parse data, you can use twig filter
******************************************************************************************************** ********************************************************************************************************
#### TourinsoftFilter : #### TourinsoftFilter :
###### Transforme les "#" en lignes et les "|" en items d'un même tableau ###### Transforme les "#" en lignes et les "|" en items d'un même tableau
###### Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
nay-bastide-depart-140925-triple.pdf|nay-bastide-depart-140925-triple#nay-faubourgs-depart-140926-triple.pdf|nay-faubourgs-depart-140926-triple" nay-bastide-depart-140925-triple.pdf|nay-bastide-depart-140925-triple#nay-faubourgs-depart-140926-triple.pdf|nay-faubourgs-depart-140926-triple"
......
...@@ -16,8 +16,8 @@ use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\PhotoFilter; ...@@ -16,8 +16,8 @@ use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\PhotoFilter;
use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\SimpleOpeningFilter; use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\SimpleOpeningFilter;
use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\TelFilter; use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\TelFilter;
use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\ValidatedDateFilter; use Bolt\Extension\Appolo\Tourinsoft\TwigFilters\ValidatedDateFilter;
use Bolt\Extension\Appolo\Tourinsoft\TwigFunctions\DataAttributeFunction;
use Bolt\Extension\DatabaseSchemaTrait; use Bolt\Extension\DatabaseSchemaTrait;
use Bolt\Extension\StorageTrait;
use Bolt\Menu\MenuEntry; use Bolt\Menu\MenuEntry;
use Silex\Application; use Silex\Application;
use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface;
...@@ -34,14 +34,12 @@ use Bolt\Extension\Appolo\Tourinsoft\Controller\Backend\FluxController; ...@@ -34,14 +34,12 @@ use Bolt\Extension\Appolo\Tourinsoft\Controller\Backend\FluxController;
use Bolt\Extension\Appolo\Tourinsoft\Nut\CronCommand; use Bolt\Extension\Appolo\Tourinsoft\Nut\CronCommand;
/** /**
* Tourinsoft extension class. * Tourinsoft extension class.
* *
*/ */
class TourinsoftExtension extends SimpleExtension class TourinsoftExtension extends SimpleExtension
{ {
use StorageTrait;
use DatabaseSchemaTrait; use DatabaseSchemaTrait;
/** /**
...@@ -116,6 +114,13 @@ class TourinsoftExtension extends SimpleExtension ...@@ -116,6 +114,13 @@ class TourinsoftExtension extends SimpleExtension
]; ];
} }
protected function registerTwigFunctions()
{
return [
'dataAttribute' => [[new DataAttributeFunction($this->getConfig(), true), 'run']]
];
}
/** /**
* @param Application $app * @param Application $app
*/ */
......
<?php
namespace Bolt\Extension\Appolo\Tourinsoft\TwigFunctions;
use Bolt\Legacy\Content;
class DataAttributeFunction
{
/**
* @param $type
* @param Content $record
* @return string
*/
public static function run($type, Content $record)
{
$attributes = '';
/* Coordonnées */
if ($record->get('lat')){
$attributes .= ' data-lat=' .$record->get('lat');
}
if ($record->get('lon')){
$attributes .= ' data-lng=' .$record->get('lon');
}
if ($record->get('communeinsee')){
$attributes .= ' data-communes=' .$record->get('communeinsee');
}
/* Champs génériques */
if ($record->get('animaux') === 'oui'){
$attributes .= ' data-animaux=true';
}
if ($record->get('acceshandi') === 'oui'){
$attributes .= ' data-handi=true';
}
switch ($type) {
case 'HOT':
if ($record->get('clas')){
$attributes .= " data-stars='" .$record->get('clas')."'";
}
if(strpos($record->get('services'), 'Wifi') !== false) {
$attributes .= ' data-wifi=true';
}
if(strpos($record->get('equip'), 'Piscine') !== false) {
$attributes .= ' data-piscine=true';
}
if ($record->get('groupe') === 'oui'){
$attributes .= ' data-groupe=true';
}
case 'HLO':
if ($record->get('clas')){
$attributes .= " data-stars='" .$record->get('clas')."'";
}
if(strpos($record->get('services'), 'Wifi') !== false) {
$attributes .= ' data-wifi=true';
}
if(strpos($record->get('equip'), 'Piscine') !== false) {
$attributes .= ' data-piscine=true';
}
case 'HCO':
if(strpos($record->get('services'), 'Wifi') !== false) {
$attributes .= ' data-wifi=true';
}
if(strpos($record->get('equip'), 'Piscine') !== false) {
$attributes .= ' data-piscine=true';
}
if ($record->get('groupe') === 'oui'){
$attributes .= ' data-groupe=true';
}
case 'HPA':
if(strpos($record->get('services'), 'Wifi') !== false) {
$attributes .= ' data-wifi=true';
}
if(strpos($record->get('equip'), 'Piscine') !== false) {
$attributes .= ' data-piscine=true';
}
if ($record->get('groupe') === 'oui'){
$attributes .= ' data-groupe=true';
}
if ($record->get('clas')){
$attributes .= " data-stars='" .$record->get('clas')."'";
}
case 'ACC':
if(strpos($record->get('services'), 'Wifi') !== false) {
$attributes .= ' data-wifi=true';
}
if(strpos($record->get('equip'), 'Piscine') !== false) {
$attributes .= ' data-piscine=true';
}
if ($record->get('groupe') === 'oui'){
$attributes .= ' data-groupe=true';
}
if ($record->get('modgest')){
$attributes .= " data-modgest'" .$record->get('modgest'). "'";
}
case 'LOI':
if ($record->get('groupe') === 'oui'){
$attributes .= ' data-groupe=true';
}
case 'ASC':
if ($record->get('typeasc')){
$attributes .= " data-typeasc='" .$record->get('typeasc'). "'";
}
case 'ITI':
if ($record->get('publiciti')){
$attributes .= " data-publiciti='" .$record->get('publiciti'). "'";
}
}
return $attributes;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment