Bonjour,
Je tente de créer un nouveau module sur la base de Fullcalendar.
Actuellement je le fait fonctionner hors environnement xoops.
L'extraction des données de la base mysql se fait avec PDO.
Comme ça :
try {
$bdd = new PDO($url, $username, $password);
$requete = "SELECT id, title, start, end, allday";
$requete.= " FROM agenda";
$requete.= " ORDER BY id";
$result = $bdd->prepare($requete);
$result->execute();
echo json_encode($result-> fetchALL(PDO :: FETCH_ASSOC)); // !!!!!!!!!!!!!!!
exit();
} catch (PDOException $e){
echo $e->getMessage();
}
donc c'est pas du tout Xoopssien tout ça !
Maintenant, j'ai donc ça dans mon module :
<?php
include "header.php";
$myts =& MyTextSanitizer::getInstance(); // MyTextSanitizer object
include_once XOOPS_ROOT_PATH."/class/xoopstree.php";
$mytree = new XoopsTree($xoopsDB->prefix("agenda"),"id","title","start","end", "allday");
include XOOPS_ROOT_PATH."/header.php";
$sql = "SELECT id, title, start, end, allday";
$sql.= " FROM ".$xoopsDB->prefix("agenda");
$sql.= " ORDER BY id";
$result=$xoopsDB->query($sql) or exit("Erreur");
$events = array();
$year = date('Y');
$month = date('m');
$i = 0;
while ($evenement = $xoopsDB->fetchArray($result))
{
$id = $evenement["id"];
$title = $evenement["title"];
$start = $evenement ["start"];
$end = $evenement ["end"];
$allday = $evenement ["allday"];
$e = array(
'id' => $id,
'title' => $title,
'start' => $start,//["Jour"],//$start,
'end' => $end,//["Jour"],
'allDay' => $allday
);
$events[$i] = $e;
$i++;
}
echo (json_encode($events)); // !!!!!!!!!!!!!!!!
include XOOPS_ROOT_PATH.'/footer.php';
?>
La différence est entre
echo (json_encode($events));
et
echo json_encode($result-> fetchALL(PDO :: FETCH_ASSOC));
LE PROBLEME c'est que ne pas passer par PDO et donc ne pas utiliser
fetchALL(PDO :: FETCH_ASSOC)
semble ne pas convenir pour l'affichage des données par fullcalendar.
Un problème de format je crois.
$xoopsDB->fetchArray
ne semble pas équivalent !
Mon idée (pas sûr que ce soit bien dans l'environnement Xoops mais je veux au moins le voir fonctionner un peu pour l'instant ! ) est de tester le code qui fonctionne dans mon module (avec PDO donc) mais je dois utiliser
$bdd = new PDO($url, $username, $password);
pour me connecter !!
Il y a-t-il des variables Xoops à mettre à la place de $url, $username et $password ???
J'ai essayé $xoopsDB pour $url et ça n'a pas l'air de fonctionner.
Merci !