Forum CMS Made Simple FR

Version complète : Création de pages php pour futur appel ajax
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

ma question aujourd'hui, ne concerne pas un module en particulier mais plutôt une façon de procéder afin de me simplifier la vie.

utilisant pas mal de requêtes ajax, pour le moment, ma méthode est de créer une UDT dans lequel je rentre mon scipt php puis, j'appelle cette même UDT dans une page vierge(template épuré au maximum)et enfin, lors de ma requête ajax, j'appelle cette page.
le soucis, c'est que je me retrouve avec pas mal d'UDT et de pages qui ne servent qu'à ces appels ajax.

Mon idée serait de créer un dossier 'ajax' a la racine du site par example dans lequel il y'aurait les pages php qui servent aux requêtes ajax.
pour faciliter le truc, il faut pouvoir coder ces pages comme des UDT, en faisant appel aux modules et classes smarty.
donc, je suppose qu'il faut intégrer des choses en début de ces pages pour qu'elles puisses être exploitées comme des UDT

ma question:

qu'est-ce qui doit être intégré en début de page?


example de page qu'il faut compléter pour fonctionner:

Code :
[== PHP ==]

<?

// choses à mettre pour que le reste soit interprété correctement


global $gCms;
$error = "";
$result = "";

if($params['userid']){
   $user_id = $params['userid'];}
else{
   $user_id = $_POST['userid'];}

$feusers = cms_utils::get_module('FrontEndUsers');

if ($feusers) {
   if ($user_id == "") {
      $error = " [UDT get_feu_properties Error; Missing or empty parameter: user_id] ";
   }
   else {
      if( $feusers->GetUserSession($user_id))
            {
            echo '
               <div class="vendeur_connected">
                   <a href="#" title="utilisateur connecté">VENDEUR EN LIGNE</a>
               </div>';}
            else{
            echo '
               <div class="vendeur_disconnect">VENDEUR HORS LIGNE</div>';
            }
    }
}
else {
   return $error;
}

?>


Merci pour vos lumières Wink
Citation :global $gCms;

Depuis version 1.9 déprécié
oui pardon, je vais déjà remplacer par $gCms = cmsms();
bonsoir,
et pourquoi ne ferais-tu pas un module dans lequel chacune de tes pages appelée par ajax serait une action?
parceque je me suis jamais lancé dans la création de modules et que je ne suis pas sûr d'avoir les connaissances suffisantes pour y arriver... mais j'y ai plus ou moins pensé!
j'ai pensé faire un système similaire à celui des udt sauf qu'au lieu d'enregistrer le script dans la bd, une page php serait crée dans un dossier "ajax". il ne resetrait plus qu'à appeler la page ainsi crée.
ça permettrait de gérer ses script directement depuis l'admin de cmsms.
pour le moment, j'ai trouvé un moyen de le faire fonctionner en créant directement mes pages php sur le serveur, dans un dossier ajax en écrivant mes pages sous la forme:

Code :
<?

require_once('../include.php');

$gCms = cmsms();
$error = "";
$result = "";

if($params['userid']){
   $user_id = $params['userid'];}
else{
   $user_id = $_POST['userid'];}

$feusers = cms_utils::get_module('FrontEndUsers');

if ($feusers) {
   if ($user_id == "") {
      $error = " [UDT get_feu_properties Error; Missing or empty parameter: user_id] ";
   }
   else {
      if( $feusers->GetUserSession($user_id))
            {
            echo '
               <div class="vendeur_connected">
                   <a href="#" title="utilisateur connecté">VENDEUR EN LIGNE</a>
               </div>';}
            else{
            echo '
               <div class="vendeur_disconnect">VENDEUR HORS LIGNE</div>';
            }
    }
}
else {
   return $error;
}

?>

Je nomme cette page "user_statut.php" et dans ma requête ajax, je l'appelle comme ça: "ajax/user_statut.php".

le hic que j'ai pu rencontrer avec cette methode, c'est dans les templates de feu par example, que j'appelle par une de mes pages php, les adresses des images doivent être en chemin absolu ou relative au dossier "ajax".
la création d'un module supprimerait peut-être cette contrainte mais si ça demanderait quelques heures à certain pour créer ce module, il va me falloir, à moi, plusieurs jour puisqu'il me faut étudier le comment faire.
D'autant plus, j'ai du mal à saisir le fait de lier un appel ajax à une action car à chaque nouvelle requête crée, il faut créer aussi l'action qui correspond, donc modifier le core du module....

ou alors, il faut du coté admin, 2 zones de texte une pour le script js l'autre pour le php.
les 2 sont enregistrés dans la bd et à l'appel du module on affiche le scriptjs et on crée dynamiquement la page php par une requête sql, grâce à un paramètre défini....
C'est jouable, mais au-delà mes compétances actuelles, j'en ai bien peur!
Bess a écrit une série d'articles sur la création d'un module la première partie est ici.
Il y a aussi un livre sur le developpement qui est excellent.
je suis déjà allé faire un tour sur ce tuto en plusieurs partie mais n'étant pas à 100% dedans, je me suis vite noyé et suis passé à autre chose.
je vais essayer de me repencher dessus de façon plus sérieuse et on verra si on arrive à faire quelquechose qui fonctionne.
Jissey à raison : passe par un module.

imagine un module "Toto" qui permet d'enregistrer X script php, il te reste à l'insérer dans 1 page "tata" de cette manière {Toto script=$params['script']}

tu lie ta page à un gabarit ultra minimaliste : uniquement {content}

et tu peux faire tes appel ajax ainsi :

site.fr/tata?script=script32

tu peux également ajouter des paramètres à tes scripts, faut juste ajuster en conséquence les appels.

commence par étudier à fond mon tuto pour faire toi même un script qui néttoie les fichiers de langue dans cmsms. Ensuite tu y verra plus clair Smile
tu peux aussi appeler un module avec le paramètre notemplate (je ne l'ai pas en tête).
c'est vrai qu'un tel module pourrait simplifier la vie pour ttou ce qui est appel ajax d'autant que les paramètres des appels sont passés en post et celui appelant le bon script php en get donc, facilement différenciables et identifiables.
je vais me pencher dessus plus sérieusement.

Les autres, ils font comment pour le moment???
ils créent une page différente pour chaque appel?
j'ai testé récemment avec xajax, c'est le même principe d'appel mais c'est moins "fin" que jquery au niveau javascript.
je me permet de remonter le sujet pour corriger un point :

le paramètre pour cacher le template et n'afficher que le {content} d'une page n'est pas "notemplate" mais "showtemplate=false" qui fonctionne d'ailleurs extrêmement bien avec une requête Ajax et/ou pretty URL

exemple : http://www.cmsmadesimple.fr/presentation-cms, ajoutez "?showtemplate=false" à la fin et constatez le résultat

voilà, c'est plus pour le détail qu'autre chose, je viens d'en avoir besoin à nouveau Smile