accueil
downloads
links
bugmanager
header
**

Par respect de la netiquette, tous les contributeurs s'engagent à ne tenir ni propos insultants ni propos infamants envers un tiers. Merci d'avance à tous et ... bonne pêche aux infos - (Les numéros IP sont conservés.)
XML/RSS 2.0  page_down
newtopiclink  replylink  Version imprimable 
Ascending order Descending order   » Sujet: iXprim Generator [update : 21/03/2006]
Auteur: Message:


 Posté le 2006/3/16 à 06:15
Salut à tous !

Bon je me lance dans le projet.

Petit rappel pour savoir comment est partie l'idée : ICI

Je n'ai aucune prétention dans le lancement ce ce truc fou (je dois être fou), mais je pense que c'est un outil qui peut apporter beaucoup.
Si des programmeurs php veulent ce joindre à moi, c'est avec joie.

Voici donc en vrac à quoi je destine iXprim Générator :

- Création des fichiers de bases d'un nouveau module et configuration à la volée (en gros on duplique à la volée le module example)
- Génération de code de requetes (afficher un element, créer une liste)
- Géneration et affichage de formulaire
- Création assistée de fonctions ixprim
- Création assitée de tables mysql
- Création de boucle
- Génération de fichiers langues avec traduction à la volée

Ce projet à deux but :

- faciliter et accelerer le developement de modules
- Commenter le code et apporter un explicatif dans le script iXprim Generator pour expliquer les fonctionnalités ixprim (qui fait quoi ? comment ? etc.). Logiciel à 2 etiquettes de developpement et de documentation iXprim (?)
- Obtenir rapidement un module "propre"
- faire ce qu'il pourra faire ;) (oui, je connais mal le systéme iXprim d'aujourd'hui ;) - mais c'est un bon apprentissage)

Les difficultés :
- suivre iXprim et être à jour : Pour celà le projet sera architecturé par mini module et le code generé correspondra à une version précise d'ixprim. En cas d'evolution majeure d'iXprim, le mini module est conservé, mais un autre mini module est crée pour être à jour. Avantage, on a des modules qui fonctionneront jusqu'à la derniere version iXprim (il faudra parfois attendre une MAJ pour avoir le script complétement fonctionnel)
- Generer du code propre ce qui signifie connaitre par coeur iXprim
- Je suis tout seul pour le moment, mais j'ai le courage necessaire. Me manque la connaissance complète d'iXprim dans le code. En plus je suis plus designer que programmeur. Mais bon comme ça je connaîtrais iXprim par coeur ;)

Voilà tout est dit.
J'espère seulement que je ne soit pas trop ambitieux... ni prétentieux...

Si je peux avoir une aide dans un premier temps, ce sera avec joie (quand je dis aide c'est pas me programmer le truc pour moi. Mais si je pouvais entrer en contact avec un mod developpeur pour m'expliquer plus en détails les appels de code au coeur d'iXprim. Exemple : créer un tableau html iXprim - je sais comment mais voir avec le mod developpeur les détails de toute la procédure de génération de tableau html)

En même temps ca permettra de rediger une doc au coeur du script.

Au boulot !

[Edité le 16/03/2006 par pyksel]

[Edité le 20/03/2006 par pyksel]

[Edité le 21/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
Profile Message Privé Editer le message Voir le site de l'utilisateur Chercher tous les messages de cet utilisateur Signaler ce message aux Administrateurs top


   Posté le 2006/3/16 à 09:44

pyksel a écrit:
Voilà tout est dit.
J'espère seulement que je ne soit pas trop ambitieux... ni prétentieux...

Moi je trouve que si mais c'est plutôt positif, c'est ça qui fait avancer :)
Moi-même je me trouvais trop ambitieux quand j'ai commencé à développer des modules pour iXprim et puis finalement je m'en suis pas trop mal sorti.

Bref, je répondrai donc bien évidement à tes questions puisque je commence à connaître pas mal le code d'iXprim...
Out of iXprim project...
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 11:48
[Troll]
Sauf si t'es dispo que le soir, vu que B-L-O-N-D est pas dispo le soir :( :( :(
[/Troll]
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 11:49
Lis ma signature, ça permet de meiux apréhender la chose ;)

merci pour ton aide sinon :).

Tu sais j'ai farfouillé pas mal de CMS, j'ai même été lead dans le projet envolution qui est devenu mdpro. Est c'est avec ce genre d'idée que j'ai pu apporter ma griffe dans certains CMS.

Je me souviens du projet ambitieux dans envolution qui permettait de generer du CSS à la volée sans passer par un editeur et le tout online. Même à l'époque on avait réalisé un autotheme interne qui faisait comme ixprim : à savoir réaliser des templates totalement visible dans un WYSIWYG. Puis autotheme est sorti et allait plus vite que nous. on a laissé tombé le projet. D'autant plus qu'on avait pas mal galeré avec la mise en cache et les chemins... MD pro utilise autotheme et Timax (lead) n'a pas poursuivi l'edition de template visibles en WYSIWYG.

Par contre on avait developpé un systéme de blocks ultra puissant, mais en admin c'était une usine à gaz...

Bref, c'est que des bons souvenirs en tout cas... Même si je suis pas un monstre en pHp, je me débrouille toujours pour que ça fonctionne ;)





[Edité le 16/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 11:50

cedsib a écrit:
[Troll]
Sauf si t'es dispo que le soir, vu que B-L-O-N-D est pas dispo le soir :( :( :(
[/Troll]


Je le contacterais la nuit ;) ;) ;) - Et si il veut pas je le harcéle ;) ;) ;) mouarf
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 12:19

cedsib a écrit:
Sauf si t'es dispo que le soir, vu que B-L-O-N-D est pas dispo le soir :( :( :(

Oh l'enfoiré !!!
J'étais en réunion hier soir... En plus je t'avais prévenu : pas avant jeudi mon petit choux :P

En plus, je suis très souvent dispo en journée pendant que toi tu dors en cours ou en stage ;)

[Edité le 16/03/2006 par pgilbert]
Out of iXprim project...
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 12:31
enfoiré bis ;)
j'suis en stage et je taf sur de la génération de code :D
Pas dispo ce soir, mais STOP TROLL because le topic est trop intéressant pour qu'il parte en vrille....
:cool:
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/16 à 12:40

cedsib a écrit:
enfoiré bis ;)
STOP TROLL because le topic est trop intéressant pour qu'il parte en vrille....
:cool:


:) ca a un minumum d'interêt au moins ... Bon maintenant que je me suis mis en galère je vais essayer d'avancer...
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/17 à 06:52
Bon voici en gros à quoi ça commence à ressembler :



En gros le but c'est donner un explicatif du code que l'on veut generer : a quoi sert une fonction iXprim

Pour le global, à quoi sert $ixpmodule, etc... (cf petite icone (?))

Hop, ca va generer du code dans un fichier puis on le réaffiche en colorisant le code (fonction show_source(_file);)

Eventuellement on l'affiche dans un formulaire (copier/coller) et eventuellement encore on sauvegarde le fichier...

En tout cas je me suis pas attaqué à un truc facile... :( mais bon, courage !
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/17 à 08:11
Ca commence bien :)

Pour ta sélection des globals, tu devrais la mettre en liste verticale aprce qu'il peut y en avoir d'autre.
Et pour pas t'embeter tu devrais mettre qu'un seul lien d'aide (sur "gestion du global") avec le descriptif de toutes les global dans la fenetre.

Voila pour ma première sugestion ;)

Bonne continuation
Out of iXprim project...
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/17 à 08:32
ouep :) et à terme, on est d'accord que ce module sera un module d'iXprim ? outu voix ça en externe ?
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/17 à 18:43
Merci pour les suggestions...

Je sais pas si ce module sera en interne ou externe... Là est la question. Pour le moment il est en externe...

Le mettre en interne a serait bien, mais je sais pas créer de module iXprim... C'est un peu débile de créer un assistant de création de module quand on est pas foutu de créer le moindre module complet ;) ;) ;)

C'est justement grâce à cet outils que je vais entrer dans le coeur d'iXprim...

Donc oui, mon projet est plus que prétentieux... Mais en partant du principe que le php est un language simple, et imaginons que ce soit un moteur de voiture, ben y a plus qu'a le demonter dans un sens pour le remonter dans l'autre... C'est ce que j'ai fait réellement sur une vielle 4L. Et ma foi elle roule toujours ;) ;) ;) ;)

Avec le recul,je vois bien que je suis fou ! En effet, je suis même plus beta-testeur donc je me tiens à la version 1.1. J'ai plus la notion de code de l'ixprim que j'ai connu, mais bon a je me débrouille aprés...

Mon but evidement c'est de federer le projet pour pouvoir mettre ce module en CVS et qu'il evolue le plus naturellement possible vers un truc complet.

Plus qu'un CVS, je pense que c'est le genre de truc qui doit ressembler à du wiki... Un module wikicore, pourquoi pas ?

Maintenant la question est de savoir si réellement le truc est viable et si l'évolution d'iXprim ne tuera pas mon projet dans l'oeuf...

Imaginons une tonne de code pour generer des formulaires html et que trollix pour une raison X (huhu le jeu de mot) passe à une classe totalement différente de celle actuelle... Plouf ! Tout un travail qui tombe à l'eau...

Ca veut pas dire que j'abondonne déjà (je vois déjà la réponse). Au contraire !
Mais autant faire un truc qui dure dans le temps pour eviter que des mises à jour majeures d'iXprim ne rende le projet trop complexe à mettre à jour ;)

Simplement je voudrais l'avis de trollix sur le sujet. Même un conseil pour comment architecturer la chose. Si il à une idée bien sûr !

Bref ! Pour moi ce projet est viable. Mais il faut vraiment qu'il est un mode de mise à jour ultra performant. C'est a dire que ce projet doit posseder un noyau tellement solide et facile à mettre en oeuvre que je pense qu'il doit totalement être à part du code d'iXprim lui même... Même s'il doit être dans le dossier racine, car eventuellement le projet ce couplera à la base de données du site. Et securité oblige avec le 777, le fonctionnera qu'en local exclusivement. Donc non ! Ce module n'est pas module (ou projet plutôt) qui est à mettre en ligne avec le site ixprim. Oui ! il doit pouvoir s'architecturer de faon solide au sein d'iXprim tout en étant détaché et lié uniquement par des données locales...

Bref... plutôt que de faire du tape à l'oeil en screenant des formulaires et montrant des traitements de formulaire avec des switch et if à la pelle; et de la génération de code. ce qui n'a aucun interêt car avec un minimum de php en main tout le monde peut le faire je pense que réellement j'ai besoin d'un coup de main pour archictecturé l'ensemble. Afinc que les mises à jour majeures rende la mise à jour du projet aisée...

Quelle tartine ! ;)

Qu'en pensez-vous ?

[Edité le 17/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/18 à 13:35
Je pense que ce projet de générateur de module est très ambitieux. Il va te permettre très certainement de maitriser le code du noyau d'ixprim...
Ce n'est que du positif. Pour toi, pour nous tous et pour Ixprim...

Ceci dit, il me semble aujourd'hui qu'il y ait besoin de quelque chose d'aussi ambitieux et qui pourrait booter dix foix plus Ixprim qu'un générateur de module...

L'idée de ton générateur m'a donné une autre idée... Pourquoi pas un système de thème paramétrable online plutôt qu'un générateur de module ? Ce serait génialissime. Pourquoi ?
Parce qu'en ce domaine tout est à faire. Ixprim permet une très grande souplesse. Autant au niveau des CSS qu'au niveau de theme.php.
Dynamiquement on peut beaucoup de choses. Seule l'imagination en est la limite. CSS en ligne, etc...

Bon c'est un peu tard comme réaction, et ça n'engage que moi...
HQCH - Hope Que ça Helpe
Celui qui vise à la perfection sera au-dessus de la médiocrité, mais celui qui vise à la médiocrité tombera plus bas encore. "Proverbe chinois"
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/18 à 14:31
pourquoi pas l'un et l'autre ? :)
bon, il faudrait pas que le p'tit gars soit seul... mais bon :)
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/19 à 09:44
Pour répondre à trollix dans un premier temps :
En effet, un générateur de théme est une excellente idée... Pour envolution, on avait avec timax (si tu le connais) developpé un générateur de css online et un générateur de template. Ca fonctionnait plutôt bien, et pour le css c'était vraiment pratique. Par contre c'était resté en version beta non publiée. y a eu quelques bribres de generation de placement de block libres, mais envolution était pas trés souple a faire fonctionner. Mais iXprim à cette capacité d'avancer plus que n'importe quel CMS. Comme tu dis l'imagination est la seule limite. Simplement l'orientation du code que tu as donné à iXprim est tellement rationnelle qu'un graphiste est libre à 1000%.
Dés l'instant où le code n'entrave pas la liberté de présentation (comme hélas le fait si bien postnuke), on peut tout imaginé...
Je suis pour privilégier un cms qui integre l'ajout de pages statiques. C'est du tout benef pour la présentation. Ton systéme de layout est parfait (même si pour moi je peux pas encore y mettre du php directement - mais ça c'est pas génant dans la mesure ou je crée le tag dans le theme.php.

Comme tu le dis aussi, cette appli me permettra de maîtriser le code iXprim parfaitement...

J'ai une petite suggestion à te soummettre : Est-il possible que tu parraine ce projet ? je m'explique. Il s'agit d'aller dans la meilleure direction et developper ceci afin d'être au plus proche d'iXprim. Est-ce qu'une page de suivi de developpement telle que celle du bug manager ne permettrait pas de soummetre des suggestion et d'orienter le code. A savoir : une proposition, une étude de developpement, un état d'avancement. Dans un premier temps, il s'agit de developper une API de l'application suffisament solide pour pouvoir facilement coder les génération de code (on inclue l'assisatnce théme evidement - Ben oui le CSS online, etc...) Autant faire tout : du moduel au théme. Que cette application serve aussi de documentation par un systeme de wiki... héhé le wiki iXprim, celui qui permettra de rédiger une doc grâce à la caommunauté ! -> soumission de définition, validation, diffusion... Moi je suis hyper motivé pour ça...
Faut pas non plus que celà te prenne un temps fou, mais que tu puisse evidement suivre le tout et apporter tes corrections.

Voilà j'ai fini ;) !

Pour cedsib :
J'ai du répondre à ta question dans ce qui est cité plus haut -> oui moi lfaire les deux, je pense que c'est viable aussi...

Tout seul ? ben ca me fait pas peur, mais un coup de main c'est bienvenu. D'autant plus que si je me débrouille bien en php, je suis un peu bordélique dans mon code. J'arrive toujours a faire fonctionner un truc, même si ca parait inconcevable (pas prétentieux le gars). mais pour une API, je suis pas trés fort... ;)

La seule chose, c'est que quelques bribes de codes de l'époque d'envolution (notament le moteur encompass) sur les moteur de thémes à fini dans des moteurs comme xanthia (cf crédits dans postnuke). Ca fait plaisir, mais bon, les directions choisies pour xanthia était pas celle qu'encompass lui destinait. Postnuke, c'est trop gros pour pouvoir faire aboutir des idées... D'ailleurs on compte pas les séparations de team et explosions de cms crée par des dev team de phpnuke, postnuke et cie ;)

iXprim à ce caractére indépendant qui fait que c'est vraiment un projet qui me seemble lui convenir ;) ;) ;) (on verra bien)

[Edité le 19/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/20 à 19:59
Bon, ben c'est parti...

Pour le moment je suis en externe iXprim...

J'ai commencé une classe simple qui génére un module (les dossiers pour le moment)

Voici le code de index.php et de la classe...
Il n'y a qu'a lire le script pour créer les dossiers necessaire. Je les donne quand même :

iXprimGenerator
|__API
| |__class
| |__class.iXpGenModule.php
|
|__databank
| |__modules (c'est dans ce dossier qu'on génére du code)
|
|__index.php

Les classes php semble la meilleure solution...
Quand je mets à jour le code je donne la nouvelle version dispo. Si il y a des suggestions : hésitez pas ! :)

index.php

CODE PHP:
<?php
error_reporting(0);

echo "iXprimGenerator pour iXprimnContact : <a href="mailto:pyksel@wanadoo.fr">Pyksel</a>";
include_once 'API/class/class.iXpGenModule.php';

if ($_GET && $_GET['op'] == 'create') { new iXpGenModule(); }

echo "--> <a href="index.php?op=create&phpMyAdmin=082df031b86b1c3d5caf207b118df034">Générer un module nommé 'test'</a>";

$current_dir = "databank/";
if ($_GET && $_GET['folder']) { $current_dir = base64_decode($_GET['folder'])."/"; }
if (eregi("..+$",$current_dir)) { $current_dir = "databank/"; unset($file);}

$dir = opendir($current_dir);
echo "<h1>Détails des fichiers :</h1><h2>Dossier courant : $current_dir</h2>";
echo "<hr>";
while($file = readdir($dir))
{
        echo "<a href="index.php?folder=".base64_encode($current_dir.$file).""&phpMyAdmin=082df031b86b1c3d5caf207b118df034>$file</a>";
}
echo "</hr>";
closedir($dir);
unset($op);
unset($folder);
?>


class.iXpGenModule.php :

CODE PHP:
<?php
        class iXpGenModule
        {
               
                function iXpGenModule()
                {
                        $name = "test";
                        $this->CreateModule($name);
                }
               
                // A mettre en public
                function CreateModule($name)
                {
                        // PHASE 1 : Création des dossiers :
                        // -------------------------------
                       
                        // Dossier Pincipal - Création
                        $this->CreateFolder($name);
                                // Sous-dossier - Création du dossier admin
                                $this->CreateFolder($name."/admin");
                               
                                // Sous-dossier - Création du dossier conf
                                $this->CreateFolder($name."/conf");
                               
                                // Sous-dossier - Créer du dossier images
                                $this->CreateFolder($name."/images");
                               
                                // Sous-dossier - Création du dossier include
                                $this->CreateFolder($name."/include");
                               
                                // Sous-dossier - Création du dossier language
                                $this->CreateFolder($name."/language");
                                        // Sous-dossier - Création du dossier English
                                        $this->CreateFolder($name."/language/english");
                                        // Sous-dossier - Création du dossier French
                                        $this->CreateFolder($name."/language/french");
                               
                                // Sous-dossier - Création du dossier main
                                $this->CreateFolder($name."/main");
                }
               
                // Private
                function CreateFolder($name)
                {
                        $path = "databank/modules/".$name;
                        $oldmask = umask(0);
                        if (!file_exists($path))
                        {
                                mkdir($path, 0777);
                                umask($oldmask);
                        }
                }              
        }
?>




[Edité le 20/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/20 à 20:03
Attention aux erreur que le code php du forum pourrait generer les devant les " ;) (virer le error_reporting(0) si besoin ;)
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/21 à 06:49
On modifie légèrement la calsse pour générer les fichiers index.html de chaque dossier :


CODE PHP:

// Private
                function CreateFolder($name)
                {
                        $path = "databank/modules/".$name;
                        $oldmask = umask(0);
                        if (!file_exists($path))
                        {
                                mkdir($path, 0777);
                                $this->CreateIndexHTML($path); // Création du fichier index.html
                                umask($oldmask);
                        }
                }
               
                // Private
                function CreateIndexHTML($path)
                {
                        $output = "<html>n<head>n<title> no access </title>nn<body>nhistory.go(-1);</script>n</body>n</html>";
                        $file = fopen($path."/index.html", "w+");
                        fputs($file, $output);
                }       
 


Pareil : attention aux erreur de code generées par le forum n par exemple et les "

Manque aussi le javascript... Je pense que je vais mettre ca sur CVS ou dossier compressé...

[Edité le 21/03/2006 par pyksel]
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/3/21 à 06:57
Télécharger ici
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/4/10 à 06:48
Salut à tous !

J'avance tout doucement, mais alors trés doucement.

Le génération de code, c'est vraiment pas évident...

En plus je suis pas mal pris par mon boulot donc dur d'avancer, mais j'espére ne pas desesperer ;)

Dés que j'ai plus de concret je poste tout ça ici ;)
Rien est impossible, il suffit d'y croire.
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/4/10 à 08:58
Super nouvelle. Merci à toi.
HQCH - Hope Que &ccedil;a Helpe
Celui qui vise &agrave; la perfection sera au-dessus de la
m&eacute;diocrit&eacute;, mais celui qui vise &agrave; la
m&eacute;diocrit&eacute; tombera plus bas encore. "Proverbe chinois"
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top


   Posté le 2006/4/10 à 10:00

pyksel a écrit:
J'avance tout doucement, mais alors trés doucement.
Le génération de code, c'est vraiment pas évident...

Courage !
Out of iXprim project...
profilebutton Message Privé Editer le message Voir le site de l'utilisateur searchbutton  top
newtopiclink  replylink  Version imprimable 

page_up

 

Powered by XForum 3.5.1-ix by Trollix Software
0.2486229 - 61 queries