Forum pragmaMx France 11 Février 2012 à 10:40:16 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Module Tutoriaux [PHP-Nuke ==> PMX].  (Lu 3544 fois)
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« le: 21 Avril 2010 à 22:50:01 »

 Sourire

Bonjour,

Je m'intéresse beaucoup au langage PHP actuellement. J'ai d'abord commencé par créer quelques petits blocs (visible sur mon site: bloc utilisateur - Contenu RD) avec interrogations de la base de données histoire de commencer par du facile, enfin bref ce n'est point un sujet pour raconter ma vie ^^.

Récemment j'ai récupéré un module Tutoriaux, ce que je cherchais depuis un petit moment, ce module est issu de PHP-Nuke, pas mal de boulot sont à faire dessus, ce dernier va me prendre du temps pour qu'il soit fonctionnel et sécurisé.

Pour le moment j'ai fini d'intégrer l'éditeur Spaw (par défaut il y avait un "truc" en java/flash enfin un "bidule" tout pas beau.)

L'intégration c'est plus ou moins bien terminée mais je but sur l'interrogation de la base de donnée, il m'est impossible de récupérer le texte depuis l'éditeur. Le "bidule" pas beau était codé en HTML.

J'ai bien renseigné les tables à aller chercher mais l'éditeur ne trouve pas le texte, ce que je trouve bizarre. Je me suis aidé du module "Sections" pour le code de Spaw.

Ce module pourrait être utile à la communauté, pour cela que je souhaite de l'aides pour mieux l'adapter et le sécuriser comme je l'ai signalé en début de message.

Le module est fonctionnel sous PMX, testé sur mon serveur de dev.

Si vous souhaitez m'aider dans le "développement" n'hésitez pas à vous manifester, cela m'aidera grandement  Clin d'oeil

Lien vers le module (version PHP-Nuke)

Le fichier function.php que j'ai commencé à éditer.
Ce fichier se trouve dans /modules/Tutoriaux/admin/
« Dernière édition: 21 Avril 2010 à 23:14:33 par Skud29 » Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #1 le: 22 Avril 2010 à 10:44:01 »

Slt,

J'ai regardé ce module codé à l'ancienne (phpnuke) qu'il faudrait reprendre pas à pas pour qu'il soit full pmx. pas trop compliqué des petites connaissances en php sont requise.

ex: sans parler de l'admin en début de chaque fichier .php

sur phpnuke on peut trouver ça:
Code:
if (!stristr($_SERVER['SCRIPT_NAME'], "modules.php")) {
die ("You can't acces this file directly...");
}

require_once("mainfile.php");

a supprimer car pour pragmamx en fait la première ligne (après les commentaires de source code) doit être

Code:
defined('mxMainFileLoaded') or die('access denied');

Idem sur phpnuke
Code:
get_lang($module_name);
devient
Code:
mxGetLangfile($module_name);

la variable
Code:
$bgcolor2
est obsolète car sur pmx on passe par le css

et autres choses...
ON pourrait travailler ensemble dessus mais il faudrait un cvs  Clin d'oeil


Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #2 le: 22 Avril 2010 à 11:05:52 »

regarde un exemple simple le fichier function.php du module avec la première fonction qui permet d'afficher le menu navigation du module en frontend

Code:
function menu($prefix, $db, $module_name){
global $admin;
OpenTable();
$res1 = $db->sql_query("SELECT allow_inactivetuto FROM ".$prefix."_tuto_config");
list($allow_inactivetuto) = $db->sql_fetchrow($res1);
echo "<center>[ ";
if ($allow_inactivetuto == 1)
{
echo "<a href=\"modules.php?name=$module_name&amp;rop=enprepa\">"._TUTINPROGR."</a> |";
}
echo " <a href=\"modules.php?name=$module_name&amp;rop=informations\">"._RUBINFOS."</a> | <a href=\"modules.php?name=$module_name\">"._TUTO."</a>";
if(is_admin($admin))
{
echo " | <a href=\"admin.php?op=cat\">"._ADMINISTRATION."</a> | <a href=\"admin.php?op=arborescence\">"._ARBORE."</a>";
}
echo " ]</center>";
CloseTable();
echo "<br />";
}

Avec pragmamx et ma façon de coder (simple quote, espaces pour la lisibilité, indentation du html),, ça donne:
Code:
function menu(){
global $prefix, $module_name;
OpenTable();
$res1 = sql_query("SELECT allow_inactivetuto FROM ${prefix}_tuto_config");
list($allow_inactivetuto) = sql_fetch_row($res1);
echo '
<center>[ ';
if (!empty($allow_inactivetuto)) {
echo '
<a href="modules.php?name=' . $module_name . '&amp;rop=enprepa">' . _TUTINPROGR . '</a> |';
}
echo '
<a href="modules.php?name=' . $module_name . '&amp;rop=informations">' . _RUBINFOS . '</a> | <a href="modules.php?name=' . $module_name . '">'._TUTO.'</a>';
if (MX_IS_ADMIN) {
echo '
| <a href="admin.php?op=cat">'._ADMINISTRATION.'</a> | <a href="admin.php?op=arborescence">' . _ARBORE . '</a>';
}
echo '
]</center>';
CloseTable();
echo '
<br />';
}

En  allant plus loin, j'aurais supprimé cette requete sql en plaçant les fichiers de configuration dans un fichier texte genre settings.php comme on trouve sur pragmamx d'habitude.
Car dans le cas présent on fait une requête sql pour simplement savoir si on a autorisé la présentation des travaux en cours dans l'admin du module.

 Comme dit faudrait revoir le module pas à pas pour optimiser tout cela, c'est possible vu qu'il est pas trop gros  Clin d'oeil
De pas oublier aussi de passer en mode debug car y a pas mald e supprises de ce coté là pour ce module  bof
« Dernière édition: 22 Avril 2010 à 11:21:07 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #3 le: 22 Avril 2010 à 15:57:27 »

Bonjour Diabolo,

Ok merci, je vais commencer par modifier ça. Cela me permet d'apprendre en même temps  Sourire
Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #4 le: 22 Avril 2010 à 22:19:13 »


Re, j'ai fait pas mal de modifications, notamment côté menu admin du module. Cependant je coince toujours avec Spaw, c'est le seul gros souci que j'ai actuellement.

J'en suis là:

Code:
// Code qui affiche l'éditeur Spaw

function posting($eid, $cid, $did, $tid, $subtitle, $page){
      global $db, $prefix, $bgcolor1, $bgcolor2, $language;
      $chemin = "modules/Tutoriaux/admin/images";
      echo "<form action=\"admin.php\" method=\"post\" name=\"post\" onsubmit=\"return checkForm(this)\">
               <fieldset><legend>" . _ADDANEWTUTO . "</legend>"
              "<form action=\"admin.php\" method=\"post\">"
              "<b>" . _TITLE . ":</b><br>"
              "<input type=\"text\" name=\"title\" size=\"50\"><br><br>";
      echo '<b>' . _CONTENT . ':</b><br />';
        if ($GLOBALS['wysiwyg'] && $GLOBALS['wysiwyg_tutoriaux']) {
        $GLOBALS['show_pagebreak'] = true;
        $sw = new SPAW_Wysiwyg('page', '', _DOC_LANGUAGE, $GLOBALS['wysiwyg_toolbar'], $GLOBALS['wysiwyg_btnset'],      
        '100%', '400');
        $sw->show();
        } else {
        echo "<textarea name=\"page\" cols=\"60\" rows=\"20\">$page</textarea>";
        }

// Code qui affiche l'éditeur Spaw FIN


Après réflexion, ce code me paraît bien long pour seulement Spaw.
« Dernière édition: 22 Avril 2010 à 22:28:57 par Skud29 » Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #5 le: 22 Avril 2010 à 22:36:41 »

Slt,
Et sans spaw avec juste le textarea ça fonctionne bien quand tu saisi du contenu ?
Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #6 le: 22 Avril 2010 à 22:41:34 »

Oui, je viens justement de faire le test ^^.
Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #7 le: 22 Avril 2010 à 22:46:19 »

Mets ça en début de fichier ;-)
Code:
$wysiwyg = 1;
$wysiwyg_tutoriaux = 1;
include_once('spaw/spaw_control.class.php');

et supprime
Code:
$GLOBALS['show_pagebreak'] = true;

et supprime
Code:
onsubmit=\"return checkForm(this)\"
dans le <form
« Dernière édition: 22 Avril 2010 à 22:48:11 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #8 le: 22 Avril 2010 à 22:52:21 »

J'ai fais un essai qui fonctionne

en début du fichier function.php on rajoute
Code:
$wysiwyg = 1;
$wysiwyg_tutoriaux = 1;
include_once('spaw/spaw_control.class.php');

et voila la fonction posting
Code:
function posting($eid, $cid, $did, $tid, $subtitle, $page){
global $db, $prefix, $bgcolor1, $bgcolor2, $language, $textcolor1;
$chemin = "modules/Tutoriaux/admin/images";
echo "<br clear=\"all\" />
<form action=\"admin.php\" method=\"post\" name=\"post\">
<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\"><td width=\"5%\" bgcolor=\"$bgcolor2\" rowspan=\"8\"></td>
<tr>
<td><b>"._SUBTITLE."</b></td>
</tr>
<tr>
<td>
<input type=\"text\" name=\"subtitle\" size=\"45\" maxlength=\"60\" style=\"width:450px\" tabindex=\"2\" value=\"$subtitle\" />
</td>
</tr>
<tr>
<td>";
     if ($GLOBALS['wysiwyg'] && $GLOBALS['wysiwyg_tutoriaux']) {
        $sw = new SPAW_Wysiwyg('page', '', _DOC_LANGUAGE, $GLOBALS['wysiwyg_toolbar'], $GLOBALS['wysiwyg_btnset'],     
        '100%', '400');
        $sw->show();
        } else {
        echo "<textarea name=\"page\" cols=\"60\" rows=\"20\">$page</textarea>";
        }
       
//<textarea name=\"page\" rows=\"15\" cols=\"35\" wrap=\"virtual\" style=\"width:450px\" tabindex=\"3\" onselect=\"storeCaret(this);\" onclick=\"storeCaret(this);\" onkeyup=\"storeCaret(this);\">$page</textarea>

echo "
</td>
</tr>
<td class=\"catBottom\" colspan=\"2\" align=\"center\" height=\"28\">
<input type=\"hidden\" name=\"eid\" value=\"$eid\">
<input type=\"hidden\" name=\"cid\" value=\"$cid\">
<input type=\"hidden\" name=\"did\" value=\"$did\">
<input type=\"hidden\" name=\"tid\" value=\"$tid\">";
}

Atention c'est brut de pomme non testé non vérifié non débugé  Sourire
Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #9 le: 22 Avril 2010 à 22:56:32 »

Merci Diabolo, je vais tester et étudier ce code.

J'avais pas fait attention mais $wysiwyg ainsi que $wysiwyg_tutoriaux étaient à "0"
Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #10 le: 23 Avril 2010 à 00:25:39 »

Après différents test pas moyen de récupérer le texte de la page dans Spaw, du coup, j'ai regardé le module "Sections" avec attention pour y trouver la solution, chose que j'ai fini par trouver. En fait ton code était bon, mais il manquait une petite chose. il fallait ajouter $page dans le code Spaw:

Avant modification:

Code:

$sw = new SPAW_Wysiwyg('page', '', _DOC_LANGUAGE, $GLOBALS['wysiwyg_toolbar'], $GLOBALS['wysiwyg_btnset'],  


Après modification:

Code:

$sw = new SPAW_Wysiwyg('page', $page, _DOC_LANGUAGE, $GLOBALS['wysiwyg_toolbar'], $GLOBALS['wysiwyg_btnset'],  

« Dernière édition: 23 Avril 2010 à 01:03:33 par Skud29 » Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Pages: [1]   Haut de page
Imprimer
Forum pragmaMx France  |  PragmaMx  |  Administration  |  Editeur WYSIWYG (SPAW) (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: Module Tutoriaux [PHP-Nuke ==> PMX].
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus