Fork me on GitHub


 Bas   Précédent   Suivant

« 1 (2) 3 4 5 ... 12 »


Re: Fullcalendar - essai de création d'un module
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Pour supprimer un éléments de la BDD ça fonctionne !

if (isset($_POST['id'])) {
    
$id $_POST['id'];
}

$sql "DELETE from " .$xoopsDB->prefix('agenda'); 
$sql .= " WHERE id = $id";

$result=$xoopsDB->queryF($sql) or exit("Erreur");


Pourquoi ?????
Pourquoi la méthode POST fonctionne là et pas ailleurs ?

J'ai essayé de passer un seul élément pour update (les autres écrits en dur dans mon code php) et ça ne fonctionne toujours pas.

Suis perplexe. :/

Posté le : 27/12/2014 09:21
Transférer la contribution vers d'autres applications Transférer


Re: Fullcalendar - essai de création d'un module
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Je continue avec mes questions. Je pense que les problèmes que je rencontre et les réponses apportées dans ce forum pourront être utiles à toute personne qui comme moi se lance dans la création d'un premier module (sans vraiment être un as en programmation).

Après la lecture des données, ce qui suit concerne l'écriture dans la BDD.

Pour ajouter un évènement de l'agenda, dans un premier temps, ça ne fonctionnait pas. Je pensais que c'était un problème de syntaxe. J'ai donc récupéré ma variable $sql
$sql 'INSERT INTO '.$xoopsDB->prefix('agenda');
$sql.=  ' (id,title,start,end,allday) '
$sql.= " VALUES (NULL,$title,$start,$end,$allday)";
echo 
$sql;

et je l'ai testée dans phpMyAdmin. En constatant que ça fonctionnait j'ai décidé de forcer l'écriture avec queryF :

$result=$xoopsDB->queryF($sql) or exit("Erreur");


Donc ça écrit dans la BDD, mais uniquement si je fourni en dur dans le code la valeur des variables :
$title $xoopsDB->quoteString("toto");
etc...

En fonctionnement normal les valeurs doivent être fournies par prompt (js dans le template) :

$.ajax({
 
type"POST",
 
url'http://localhost/modules/fullcalendar/add_events.php',
 
data'title='title+'&start='start +'&end='end ,
 
success: function(json) {
 
alert('OK');
 }
 });


Mon problème c'est que j'utilise la méthode post pour récupérer dans mon fichier add_events.php mes valeurs pour $title, $start etc
if (isset($_POST['title'])) {
    
$title $_POST['title'];
}

et que là ça ne fonctionne pas. Toutes les valeurs sont vides !!

Why ?
Merci

Posté le : 26/12/2014 19:13
Transférer la contribution vers d'autres applications Transférer


Re: Fullcalendar - essai de création d'un module
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Damned !!

Je ne sais pas ce qui m'a pris, j'ai ajouté exit à la fin de mon code comme ça :

echo (json_encode($events)); 

exit();

include 
XOOPS_ROOT_PATH.'/footer.php';


et ça fonctionne !!
C'est le miracle de Noël !

: )

En réalité c'est le footer.php qui met la pagaille.
Je le supprime et ça fonctionne.

Je sens que je vais mieux digérer ma dinde ce soir.

Posté le : 24/12/2014 14:11
Transférer la contribution vers d'autres applications Transférer


Re: Fullcalendar - essai de création d'un module
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Oui Montuy, mon intention est bien d'utiliser in fine la classe xoopsDB.


J'ai appliqué le var-dump dans les deux cas.
Alors j'ai une bonne et une mauvaise nouvelle.

La bonne : Les tableaux sont strictement identiques ! (avec les mêmes valeurs rentrées dans les deux Bdd pour être plus sûr).
La mauvaise : l'affichage des données dans Fullcalendar ne fonctionne pas dans l'environnement xoops.

Résumons.
J'ouvre la page index.php de mon module dont le template doit afficher Fullcalendar en lisant les données de la BDD via une page get-events.php dont l'adresse est transmise dans une propriété events: "http://etc.... " de mon template.

La page get-events.php est bien ouverte et lue (j'ai vérifié en faisant des tests de variables). Mais echo dans cette page ne renvoie pas le tableau pourtant correctement mis en forme.
Et Fullcalendar ne se charge pas avec les données de la BDD alors que ça fonctionne hors environnement xoops.

Grat, grat, grat...

Je suis parti pour vérifier mon code à la loupe.

Posté le : 24/12/2014 13:50
Transférer la contribution vers d'autres applications Transférer


Fullcalendar - essai de création d'un module
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
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 !

Posté le : 23/12/2014 15:12
Transférer la contribution vers d'autres applications Transférer


Re: Smartmedia - reprendre le dévellopement
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Ce genre de projet ne me laisse pas indifférent vu que je tente de me lancer dans la construction d'un module.
J'ai les mains dans le moteur jusqu'au cou et je bois souvent la tasse. : )

Vu mon peu de savoir sur le sujet j'aurai souvent l'occasion de demander conseil dans les forums. Et je ne manquerai pas de consulter ici les difficultés que tu rencontreras avec smartmedia.

Bon courage !

Posté le : 22/12/2014 12:33
Transférer la contribution vers d'autres applications Transférer


Re: php et template
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Oui ! Merci !
ça fonctionne.
Je manque d'expérience. : )


Posté le : 21/12/2014 15:08
Transférer la contribution vers d'autres applications Transférer


Re: php et template
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
!
ça fonctionne.

il y avait une variable non déclarée dans le js, ce qui bloquait la suite du code.

Merci et désolé, je galère un peu.

J'enchaîne sur la suite du problème.

Ce que je voudrais faire c'est récupérer dans le js de mon template (celui qui construit les évènements pour remplir l'agenda)
events: [
{
title 'titre',
start: new Date(ymd-5),
end: new Date(ymd-2)
}]
etc...

les données de la variable smarty que j'ai chargée dans mon php avec les valeurs extraites de ma DB.

Actuellement je peux lire en html un élément du tableau avec
{$evene[1].titre}

donc les données sont bien présentes dans mon template


J'ai donc initialisé un tableau en js
var Tabl = new Array();


Je réussi à charger les valeurs de mon tableau en statique :
var Tabl = ["rdv SSD",
"conférence",
"Lucien",
"Repas GH",
"Séance FF"];


puis à les lire

events: [
{
title Tabl[3],
start: new Date(ymd-5),
end: new Date(ymd-2)
}]


Mais je ne sais pas comment attribuer à mon tableau Tabl les données du tableau de ma variable smarty $evene.

Merci !

Posté le : 21/12/2014 15:00
Transférer la contribution vers d'autres applications Transférer


Re: php et template
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
J'ai essayé de changer l'ordre, ça ne fonctionne toujours pas.

Je remarque deux choses.

Lors du signalement de l'erreur par l'outil de développement de chrome, les chemins sont différents entre quand ça fonctionne :
Citation :
GET http://localhost/portail/modules/full ... ar/include/jquery.min.map 404 (Not Found) portail/modules/fullcalendar/include/jquery.min.map:1

et quand ça fonctionne pas :
Citation :
GET http://localhost/portail/modules/full ... ar/include/jquery.min.map 404 (Not Found) include/jquery.min.map:1


Ensuite, quand ça fonctionne et affiche l'agenda c'est le javascript de extgallery (diaporama) qui ne fonctionne plus.


Posté le : 21/12/2014 12:41
Transférer la contribution vers d'autres applications Transférer


Re: php et template
Régulier
Inscrit: 21/08/2006 03:21
Messages: 113
Je crois que le javascript n'est pas lu quand ça ne marche pas.

Dans un bloc xoops personnalisé il est lu mais pas dans ma page de template index.html.


Posté le : 21/12/2014 01:06
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 (2) 3 4 5 ... 12 »




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

71 Personne(s) en ligne (59 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 71 | Plus ...