pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
|
pgilbert
Mod Developer    Messages: 653 Inscrit(e) le: 2004/3/25 Statut: Déconnecté(e)
|
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... |
|
|
cedsib
Béta-testeur    Messages: 582 Inscrit(e) le: 2004/6/1 Statut: Déconnecté(e)
|
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] |
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pgilbert
Mod Developer    Messages: 653 Inscrit(e) le: 2004/3/25 Statut: Déconnecté(e)
|
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
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... |
|
|
cedsib
Béta-testeur    Messages: 582 Inscrit(e) le: 2004/6/1 Statut: Déconnecté(e)
|
Posté le 2006/3/16 à 12:31 |
enfoiré bis 
j'suis en stage et je taf sur de la génération de code 
Pas dispo ce soir, mais STOP TROLL because le topic est trop
intéressant pour qu'il parte en vrille....
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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....
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pgilbert
Mod Developer    Messages: 653 Inscrit(e) le: 2004/3/25 Statut: Déconnecté(e)
|
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... |
|
|
cedsib
Béta-testeur    Messages: 582 Inscrit(e) le: 2004/6/1 Statut: Déconnecté(e)
|
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 ? |
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
trollix
Core Developer    Messages: 2732 Inscrit(e) le: 2003/1/14 Statut: Déconnecté(e)
|
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" |
|
|
cedsib
Béta-testeur    Messages: 582 Inscrit(e) le: 2004/6/1 Statut: Déconnecté(e)
|
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  |
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
Posté le 2006/3/21 à 06:57 |
|
|
pyksel
Débutant    Messages: 69 Inscrit(e) le: 2004/1/11 Statut: Déconnecté(e)
|
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. |
|
|
trollix
Core Developer    Messages: 2732 Inscrit(e) le: 2003/1/14 Statut: Déconnecté(e)
|
Posté le 2006/4/10 à 08:58 |
| Super nouvelle. Merci à toi. | 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" |
|
|
pgilbert
Mod Developer    Messages: 653 Inscrit(e) le: 2004/3/25 Statut: Déconnecté(e)
|
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... |
|
|