2023-11-09 13:59:05 +03:00
< ? php
namespace YesWiki\Custom\Field ;
use YesWiki\Bazar\Field\BazarField ;
use YesWiki\Core\Service\PageManager ;
use Psr\Container\ContainerInterface ;
/**
* @ Field ({ " trajet " })
*/
class TrajetField extends BazarField
{
public function __construct ( array $values , ContainerInterface $services )
{
parent :: __construct ( $values , $services );
$this -> size = null ;
$this -> maxChars = null ;
$this -> default = " " ;
}
protected function renderInput ( $entry )
{
if ( ! empty ( $_GET [ 'trajet' ])) {
$traj = baz_valeurs_fiche ( $_GET [ 'trajet' ]);
2024-12-02 13:04:09 +03:00
setlocale ( LC_ALL , 'fr_FR.UTF8' , 'fr_FR' , 'fr' , 'fr' , 'fra' , 'fr_FR@euro' );
2023-11-09 13:59:05 +03:00
$date = str_replace ( ' à 0:00' , '' , strftime ( " %A %d %B %Y à %k:%M " , strtotime ( $traj [ 'date_du_trajet' ])));
$prod = baz_valeurs_fiche ( $_GET [ 'producteur' ]);
// Do the page change in any case (useful for attach or grid)
$oldPage = $GLOBALS [ 'wiki' ] -> GetPageTag ();
$oldPageArray = $GLOBALS [ 'wiki' ] -> page ;
$GLOBALS [ 'wiki' ] -> tag = $_GET [ 'producteur' ];
$GLOBALS [ 'wiki' ] -> page = $GLOBALS [ 'wiki' ] -> LoadPage ( $_GET [ 'producteur' ]);
$output = '<div class="text-left"><h3>Trajet proposé le ' . $date . ' par ' . $traj [ 'owner' ] . '</h3>' ;
$output .= $GLOBALS [ 'wiki' ] -> Format ( '===Comment commander===' . " \n " . $prod [ " bf_process_commande " ]);
$output .= $GLOBALS [ 'wiki' ] -> Format ( '===Produits commandables===' . " \n " . $prod [ " bf_produits_commandables " ]);
$output .= $GLOBALS [ 'wiki' ] -> Format ( '===RIB pour paiement===' . " \n " . $prod [ " bf_rib " ]);
$output .= '</div>' ;
$output .= '<input type="hidden" name="trajet" value="' . $_GET [ 'trajet' ] . '" />' ;
$GLOBALS [ 'wiki' ] -> tag = $oldPage ;
$GLOBALS [ 'wiki' ] -> page = $oldPageArray ;
return $output ;
} else {
return 'Pas normal' ;
}
}
public function formatValuesBeforeSave ( $entry )
{
if ( ! empty ( $entry [ 'bf_telephone' ]) && ! empty ( $entry [ 'trajet' ])) {
$traj = baz_valeurs_fiche ( $entry [ 'trajet' ]);
$u = $GLOBALS [ 'wiki' ] -> services -> get ( PageManager :: class ) -> getOwner ( $traj [ 'id_fiche' ]);
$u = $GLOBALS [ 'wiki' ] -> LoadUser ( $u );
$mail_receiver = $u [ 'email' ];
2024-12-02 13:04:09 +03:00
setlocale ( LC_ALL , 'fr_FR.UTF8' , 'fr_FR' , 'fr' , 'fr' , 'fra' , 'fr_FR@euro' );
2023-11-09 13:59:05 +03:00
setlocale ( LC_TIME , " fr_FR " );
2023-11-09 14:39:06 +03:00
$dateTimeObj = new \DateTime ( $traj [ 'date_du_trajet' ], new \DateTimeZone ( 'Europe/Paris' ));
2023-11-09 14:34:54 +03:00
$date =
2023-11-09 14:39:06 +03:00
str_replace ( ' à 0:00' , '' , \IntlDateFormatter :: formatObject (
2023-11-09 14:34:54 +03:00
$dateTimeObj ,
'eeee d MMMM y à HH:mm' ,
'fr'
));
$urlperso = $GLOBALS [ 'wiki' ] -> href ( '' , 'espace-perso' );
2023-11-09 13:59:05 +03:00
$message = 'Une nouvelle personne souhaite profiter du trajet que vous avez proposé le ' . $date . ' .
Prénom : '.$entry[' bf_prenom '].'
Nom : '.$entry[' bf_nom '].'
Téléphone : '.$entry[' bf_telephone '].'
Son commentaire lors de son inscription : '.$entry[' bf_commentaire '].'
Ses coordonnées figureront sur la liste des participants à votre trajet que nous vous invitons à éditer avant de partir chez le producteur concerné . Cela vous permettra de vérifier sur place , le jour même avec le producteur , que les commandes de toutes les personnes qui se sont inscrites vous soient bien remises .
2023-11-09 14:34:54 +03:00
Pour éditer la liste des participants à votre trajet , cliquez sur ce lien : '.$urlperso.' .
2023-11-09 13:59:05 +03:00
Merci pour la proposition de ce trajet .
En cas de souci avec l’ outil numérique , vous pouvez contacter Cyrille Bombard au 06 63 28 13 11 ou par mail à cyrille . bombard @ wision . info ' ;
$message_html = nl2br ( $message );
2024-12-02 13:04:09 +03:00
include_once 'tools/contact/libs/contact.functions.php' ;
2023-11-09 13:59:05 +03:00
if ( ! empty ( $mail_receiver )) {
2024-12-02 13:04:09 +03:00
send_mail ( 'noreply@yeswiki.pro' , 'Outil Circuit Court' , $mail_receiver , '[Outil CC] Une nouvelle personne pour votre trajet du ' . $date , $message , $message_html );
2023-11-09 13:59:05 +03:00
}
2024-12-02 13:04:09 +03:00
$mailProducteur = '' ;
$traj = baz_valeurs_fiche ( $entry [ 'trajet' ]);
if ( ! empty ( $traj )) {
$prod = baz_valeurs_fiche ( $traj [ 'producteur' ]);
if ( ! empty ( $traj )) {
$mailProducteur = $prod [ 'bf_mail_prod' ] ? ? '' ;
}
}
if ( ! empty ( $mailProducteur )) {
$messageProd = 'Une nouvelle personne profite d\'un trajet pour aller chez vous le ' . $date . ' .
Prénom : '.$entry[' bf_prenom '].'
Nom : '.$entry[' bf_nom '].'
Téléphone : '.$entry[' bf_telephone '].'
En tant que producteur . trice chez qui le trajet va se faire , ce mail vous permet de vérifier que vous avez bien reçue par ailleurs une commande de la personne qui s’ est inscrite sur l’ outil .
En cas de souci avec l’ outil numérique , vous pouvez contacter Cyrille Bombard au 06 63 28 13 11 ou par mail à cyrille . bombard @ wision . info ' ;
$messageProdHtml = nl2br ( $messageProd );
send_mail ( 'noreply@yeswiki.pro' , 'Outil Circuit Court' , $mailProducteur , '[Outil CC] Une nouvelle personne profite d\'un trajet pour aller chez vous le ' . $date , $messageProd , $messageProdHtml );
}
2023-11-09 13:59:05 +03:00
}
return array_merge (
[ 'trajet' => $entry [ 'trajet' ]],
);
}
protected function renderStatic ( $entry )
{
2023-12-21 12:05:43 +03:00
return 'Trajet concerné : ' . $GLOBALS [ 'wiki' ] -> Format ( $entry [ 'trajet' ]);
2023-11-09 13:59:05 +03:00
}
// change return of this method to keep compatible with php 7.3 (mixed is not managed)
#[\ReturnTypeWillChange]
public function jsonSerialize ()
{
return array_merge (
parent :: jsonSerialize (),
[
//'reservation_button' => '<a class="btn btn-primary" href="#"><i class="fa fa-plus"></i> Je profite de ce trajet</a>'
]
);
}
}