Ajout de greffons

Bonjour,

J'ai découvert pluxml il y a quelques temps et décidé de l'utiliser, j'apprécie beaucoup sa philosophie ultra-légère (d'ailleurs j'ai pris la version "classique" et je compte bien y rester); mais connaissant le html/css j'ai créé un thème et ajouté plusieurs greffons à partir de scripts trouvés sur le net (rien de bien extravagant: un moteur de recherche, un formulaire et des pages statiques).

J'avais aussi la contrainte de faire en sorte que mes pages soient éditables depuis l'administration, parce que mon hébergeur (Free) n'accepte pas les connexions FTP de l'étranger, ce qui est pratique quand on y fait ses études.

La modification consiste simplement à copier l'index.php de pluxml sous le nom du fichier désiré (search.php, etc.) et lui dire de créer un nouveau mode (recherche, ou greffon par exemple); et ajouter le mode en question dans le template, en lui disant <include> une page externe. Comme ça, on obtient une page vierge pluxml, dans laquelle vient s'insérer le contenu d'une page .php ou .htm située ailleurs.

En même temps, j'ai fait une copie de l'uploader d'images, changé les types et viré la ligne qui vérifie la taille, comme ça il peut m'uploader tout et n'importe quoi dans un dossier choisi – mais ce n'est pas l'important.

Ce qui fait que mes rubriques m'ont permis de créer 4-5 nouveaux "modes", ce qui n'est pas très hergonomique. Mais je pense que quelqu'un qui connaît le php mieux que moi pourrait n'utiliser qu'un seul "mode", et lui dire que si l'url est par exemple "search.php", le fichier à inclure dans la page est "greffons/search.php". Avec ce système, il suffirait d'uploader le greffon (qui pourrait contenir une galerie, des téléchargements, des liens, n'importe quoi en fait, même des éléments complexes avec de nouvelles bibliothèques, etc.) et peut etre d'ajouter un éditeur de texte pour le dossier de greffons et uploader la page de liens vers les .php en question.

Sinon, j'ai un peu lu les posts au sujet des éditeurs WYSIWYG, des tags, des moteurs sans base de données qui apparaissent et disposent de ces avancées, et je ne pense pas que mes commentaires soient utiles car je suis particulièrement rétrograde, mais en tant que développeurs d'un bon petit CMS, n'avez vous pas l'impression que l'explosion de blogs ruine un peu l'art de la chose? Je veux dire... avant un site web, ça représentait du travail, c'était quelque chose de vraiment personnel auquel on mettait du coeur, et maintenant il suffit de télécharger un truc tout prêt, d'ouvrir une canette de soda, et d'écrire trois paragraphes sur sa petite vie.

Je comprends qu'il faille une base solide pour la plupart des utilisateurs qui n'ont pas le temps ou les connaissances pour se plonger dans le code, mais bon, tout ne va quand même pas leur tomber dans le bec non plus, si? Depuis que j'ai essayé Joomla (et crashé X bases de données sans savoir comment), je fais une allergie au WYSIWYG, tout simplement parce que ça prend autant de temps que d'écrire trois balises html, sinon plus; je suis partisane des aides sur les balises à la rigueur, mais c'est tout (genre un bouton qui pose les deux balises). Et puis si l'utilisateur lambda est incapable de mettre des balises, au moins ça nous évitera de voir du vert pomme sur fond rose bonbon ... ça fera du ménage.

Le développement actuel du web est franchement de mauvais goût, les bons sites/blogs sont rares dans une masse de pages d'une qualité souvent douteuse; ce n'est peut être pas "vendeur", mais je crois que le web est un apprentissage et qu'il faut accepter de mettre un minimum la main à la pâte pour avoir son site, rien qu'à soi, et pas le cinq millionnième blog de je ne sais quel moteur, qui sont tous pareills sauf les couleurs.

Voilà, c'était juste un avis, je ne demande pas qu'il soit pris en compte. J'espère que mes idées sur les pages externes pourront vous servir, même si ce n'est vraiment pas grand chose (je peux aller rechercher mes bouts de code si ça vous intéresse, mais ce n'est vraiment pas difficile, et je peux vous donner un lien vers mon site également, quand j'aurai nettoyé mon crash-test).

Bonne continuation à l'équipe de pluxml

Réponses

  • KyodevKyodev Member
    merci pour ces infos,
    Ienissei a écrit:
    ... un moteur de recherche...
    tu as un lien sur un script de recherche à nous indiquer?
    ...si l'url est par exemple "search.php", le fichier à inclure dans la page est "greffons/search.php".
    l'idée serait bonne, mais je ne connais pas Poo...
  • J'ai un peu paumé l'adresse du script que j'ai pris, mais il s'agit d'une modification d'un script provenant de Terraserver.de. Apparemment il est sur leur FTP (pour tester) et en plusieurs versions, et en téléchargeant cSearch, on obtient des fichiers php en allemand et anglais (les deux).

    La version que j'utilise est un peu différente, elle tient en un seul fichier, que j'ai moi-même remodifié un peu pour l'intégrer à pluxml (changé les url des résultats, etc.)... Ce script va rechercher directement dans les fichiers du dossier indiqué (/xml, en l'occurence), et sur les types indiqués. Par contre il faut modifier l'un des fichiers de pluxml et le template (mais on pourrait très bien appeler un fichier .php externe, selon la méthode que j'ai indiqué dans mon premier post, et faire une modification unique du template).

    Le script
    (note: à la racine du site se trouve mon "crash test" avec une démo du script, entre autres ... j'ai honte)

    Je crois que c'est dans lib/functions.php, au niveau de "case 'catlist'", il faut rajouter "index.php" dans les url (pour éviter que le menu lance la requête sur search.php?catégorie/etc.), voici ce que ça donne sur le pluxml classique:
    case 'catlist':
    	echo '<ul>';
    	if ($option != ''){
    		echo '<li><a href="index.php">'.$option.'</a></li>';
    	}
    	foreach($pluxml->cat_used as $cat_num => $cat_info) {
    		echo '<li><a href="index.php?'.$cat_num.'/'.$cat_info['url'].'">'.$cat_info['name'].'</a></li>';
    	}
    	echo "</ul>\n";
    	break;
    
    Dans le template, ajouter, par exemple après la note "fin mode article":
    <?php?> <!-- En mode 'search' -->
    	<?php if($pluxml->mode == 'search') : ?>
    		
    	<div id="content">
    		<div class="post">
    			<h2 class="articletitle">Moteur de recherche</h2>
    			<p>
    
    				<? search_form($HTTP_GET_VARS, $limit_hits, $default_val, $message_5, $message_6, $PHP_SELF); ?>
    
    				<?
    				// search_headline():
    				search_headline($HTTP_GET_VARS, $message_3);
    				// search_error():
    				search_error($HTTP_GET_VARS, $min_chars, $max_chars, $message_1, $message_2, $limit_hits);
    				// search_dir():
    				search_dir($my_server, $my_root, $s_dirs, $s_files, $s_skip, $message_1, $message_2, $no_title, $limit_extracts, $byte_size, $HTTP_GET_VARS);
    				// search_no_hits():
    				search_no_hits($HTTP_GET_VARS, $count_hits, $message_4);
    				?>
    
    			</p>
    		</div>
    	</div>
    
    	<?php endif; ?>
    <?php?> <!-- Fin mode 'search' -->
    
    Il faut bien sûr aussi ajouter le lien, ce que j'ai fait à coup de template, mais j'ai vu qu'il existe un script sur ce forum, qui gère ça dans l'admin.

    Le script se configure en deux endroits, à moitié en anglais et à moitié en français (enfin je peux traduire si ça intéresse quelqu'un).

    Au début du script, il y a la config du moteur de recherche à proprement parler, ne pas oublier notamment la variable s_dirs, qui doit contenir li'url du dossier dans lequel rechercher.

    A la fin, il y a une copie modifiée de l'index.php de pluxml, qui dit de créer un mode "search", et qui n'essaie pas d'ouvrir les fichiers ou variables inutiles. Ici, il faut encore une fois modifier le dossier contenant pluxml ("core" chez moi), et peut être ajouter d'autres bibliothèques pour la version blog.

    Pour le CSS du script, j'ai utilisé <p>, <i>, <b>, <h1>, <h2>, <h3>, qui sont normalement configurés dans le CSS du template, mais en cas d'incompatibilité, il suffit de les interchanger dans le search.php, ou de créer de nouvelles classes.
  • KyodevKyodev Member
    merci pour cette réponse et ces infos.
    je viens de survoler cSearch, et apparemment il ne sait pas gérer register_globals à off. j'ai aussi un script ancien à transformer, je verrais lequel des deux est le plus simple à mettre à jour, mais comme tu a déjà adapté cSearch à pluxml, je vais l'étudier plus en profondeur.
  • Bonsoir,
    Kyodev a écrit:
    je viens de survoler cSearch, et apparemment il ne sait pas gérer register_globals à off.
    Que sont les register_globals? (pour ma culture générale, même si ça ne sert pas tous les jours)

    J'ai jeté un oeil à mes fichiers php, et changé quelques détails pour ne créer qu'un "mode" dans le template, donc maintenant tout se fait à partir du fichier .php qui indique son titre et la page de contenu à inclure (pour conserver une url à peu près potable et éviter les "/dossier1/dossier2"). Il faut que je regarde le plugin d'ajout de liens par l'administration, et que je voie comment adapter ça à mon système pour afficher ou masquer les pages supplémentaires une fois qu'elles sont uploadées sur le serveur.

    J'ai aussi commencé un script de statistiques; j'ai vu qu'il y avait plusieurs adaptations d'autres scripts, mais ça ne me convenait pas, et je n'avais vraiment pas envie d'avoir 300 images de navigateurs, 15 javascripts et 20 fichiers php pour gérer 112 options. J'ai décidé de faire mon script exclusivement en xml et php, sans base de données.
    Pour l'instant, je lui fais créer un fichier xml par jour ou par mois (au choix), contenant les informations de chaque page visitée; ensuite je traite le fichier avec une feuille xsl et je lui demande de créer un tableau contenant les différentes données et le nombre d'apparitions (genre: "IP: 0.0.0.255 -- 5 fois dans le fichier"). Je fais plusieurs feuilles xsl en fonction de la donnée à traiter, avec un petit css par dessus pour la présentation.
    Ensuite je pense utiliser un fichier php et lui dire d'associer telle feuille de style au log demandé, en fonction d'une requête dans l'url, intégrer tout ça à l'admin, et prier pour que ça marche. Je ferai aussi un fichier de config à part, qui sera inclus dans le .php de l'admin, et dans celui qui est inclus dans le template.

    J'ai deux petites questions au sujet des données à récupérer par contre.
    Déjà, sur le FAI:
    $ip = $_SERVER['REMOTE_ADDR'];
    
    Dans mon fichier xml, rend: ip***.cab***.tln.starman.ee
    Les *** sont respectivement l'avant dernier et le dernier chiffre de mon IP, qui apparaissent en clair, donc je traduis que la ligne doit vouloir dire quelque chose comme: n°IP parmi ceux de la division interne "cab***" à Tallinn chez starman.ee (mon FAI)

    Question: est-ce le même schéma partout, et/ou comment rendre ça "reader-friendly"? Par exemple afficher simplement le FAI, et le pays ou la ville?

    Idem pour le navigateur, j'utilise:
    $browser = $_SERVER['HTTP_USER_AGENT'];
    
    Ca me donne: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/419.2.1 (KHTML, like Gecko) Safari/419.3

    Bon, d'accord, c'est mon navigateur et mon OS... mais est-ce que quelqu'un saurait comment faire en sorte que php me traduise ça par exemple en navigateur et OS?

    Je suppose qu'il faut découper l'expression en rondelles avec php, j'ai vu ça plusieurs fois dans des fichiers, mais j'avoue que mes connaissances sont vraiment trop limitées pour écrire ça...

    Bonne soirée
  • KyodevKyodev Member
    pour register_globals à off, +d'infos ici:
    http://fr2.php.net/manual/fr/security.globals.php

    connais tu BBClone (bbclone.de)? un script libre, simple sans base sql (fichier text), simple, pas de javascript nécessaire sur le client. je l'utilise depuis 5 ans sans soucis. ça sort du vrai, pas de fausses infos marketing, avec lien whois sur IP dans stats détaillées.

    là-bas tu y trouveras une base txt de localisation de n°IP, IP2EXT (c'est déjà un sacré boulot à maintenir, presque 1Mo de données) et tu verras dans leur fichier comment ils traitent les navigateurs (browser.php) et aussi (très important, 0.5Mo) les robots (regression.php). Il faut aussi définir le regroupement des IP sur un intervalle de temps défini, ce que certains appellent, faussement, le nombres de visiteurs (http://www.analog.cx/docs/webworks.html)

    sans oublier le filtrage des robots de spam. BBClone traite environ 100 navigateurs, 270 pays, 50 Os, 325 robots.

    tout ça pour dire que les referrers ne suivent pas tous le même schéma, chacun fait ce qui lui plaît et les différences sont nombreuses et importantes.

    voilà, si ça peut aider...
  • DitiDiti Member
    Mais euh, vous n'attendez pas la prochaine version de Pluxml ?
  • Pourquoi pas :)

    Mais j'ai cru comprendre que les développements futurs seraient plutôt orientés vers la version blog, non? Dans ce cas je préfère garder une version classique et faire quelques modifications ou adaptations, car ce qui m'intéresse c'est justement de ne pas avoir les options d'un blog avec les commentaires, etc ...

    Kyodev > Merci pour tes informations, j'ai (re)regardé BBClone, je cherche quelque chose de beaucoup plus basique, je ne regarde quasi jamais les statistiques, mais j'ai seulement besoin d'avoir un log des visites en cas de problème et de voir les pages les plus lues, les heures les plus chargées, etc. pour cibler un peu le profil du lecteur type et adapter mes articles en fonction de ce qui plait.
  • Ienissei a écrit:
    Mais j'ai cru comprendre que les développements futurs seraient plutôt orientés vers la version blog, non?
    Quelle est donc cette grosse difference ?.
    classique pas de commentaires possibles.

    blog : commentaires possibles et qui peuvent etre désactivé dans l'admin.. du coup le pluxml blog devient un pluxml classique .

    Autant alors s'appuyez sur les dernieres versions qui font les 2.

    gc


    Quand au plugin de recherche , il en existe deja un qui fonctionne sur pluxml. (suffit de rechercher dans le forum justement , peut-etre ne convient t-il pas ..).

    Quelques modifs permettent d'effectué la recherche sur l'article et/ou le chapo et/ou le titre de l'article.
  • KyodevKyodev Member
    gcyrillus a écrit:
    Autant alors s'appuyez sur les dernieres versions qui font les 2.
    +1

    >Quand au plugin de recherche , il en existe deja un qui fonctionne sur pluxml.
    >(suffit de rechercher dans le forum justement..)
    humm, j'ai peut-être mal cherché, mais j'ai pas vu de version 'plugin' autonome.
    je cherche pas de version clé en mains avec des options qui ne m'intéressent pas et où je saurais pas comment mettre à jour.

    et il faut aussi que je revois un moteur pour des sites pro à mettre à jour.

    @diti: que promet la prochaine version de Pluxml ?
  • DitiDiti Member
    Kyodev a écrit:
    @diti: que promet la prochaine version de Pluxml ?
    Tu as tout dans l'annonce officielle :)
  • gcyrillus, Kyodev > J'ai déjà un plugin recherche qui marche, je ne vais pas aller en chercher un autre :) Je n'en cherchais aucun... j'ai seulement dit que j'en avais un autre qui pouvait potentiellement intéresser quelqu'un...

    J'ai modifié mon script en adaptant le plugin de liens (pour la version blog), et ajouté une prévisualisation des greffons dans l'admin (à partir du css utilisé en madia="print"), comme ça on peut les ajouter en copiant simplement l'adresse dans la page de gestion des liens. A part quelques optimisations, genre mettre un include dans le template plutôt qu'un gros bout de script et améliorer 2-3 trucs, c'est fonctionnel. Ca marche aussi pour ajouter des pages php utilisant les requêtes dans l'url (c'est adapté à mes besoins, même si ça peut paraître étrange comme fonctionnement).

    Je sais aussi qu'il suffit de désactiver les paramètres de la version blog pour avoir une version "classique"... mais je ne vois pas l'intérêt de prendre la version blog juste pour désactiver toutes les fonctionnalités supplémentaires, alors que la version classique fait ce dont j'ai besoin. Je préfère modifier la version que j'utilise pour y incorporer des améliorations pour avoir les options qui me sont nécessaires...
  • DitiDiti Member
    Ienissei a écrit:
    mais je ne vois pas l'intérêt de prendre la version blog juste pour désactiver toutes les fonctionnalités supplémentaires, alors que la version classique fait ce dont j'ai besoin.
    Amalgame avec Firefox : tu préfères prendre la version 1.5, qui fait tout ce dont tu as besoin, ou la version 2 ?
    La version blog actuelle de Pluxml est bien plus récente et puissante.
  • Diti a écrit:
    Amalgame avec Firefox : tu préfères prendre la version 1.5, qui fait tout ce dont tu as besoin, ou la version 2 ?
    La version blog actuelle de Pluxml est bien plus récente et puissante.
    Tu veux vraiment connaître la réponse? Je suis passée en 1.5 la dernière fois que j'ai réinstallé (parce que j'avais perdu l'ancienne)... Firefox est bien un programme qui n'est jamais à jour chez moi (comme tout windows en fait).

    Ce que je veux dire par là c'est que si c'est bien d'utiliser les versions "récentes", il ne fait pas nécessairement jeter les vieilles sous prétexte qu'elles sont moins puissantes. Un site est un site, toutes les améliorations du web 2.0, 3.0 ou je ne sais quoi encore sont arrivées en masse il y a quelques années (je suis optimiste), et on ne se portait pas plus mal avant d'en "profiter". Sans aller jusqu'à prôner le retour au vieux html et au design tout carré avec des images gif, je crois qu'il ne faut pas faire un site en partant de la puissance technique du moteur, mais pluôt se demander ce qu'on veut donner à l'utilisateur, au niveau de l'interface mais surtout au niveau du contenu. On peut avoir un site qui intègre des fonctionnalités très avancées, et qui soit à la fois terriblement brouillon parce que surchargé et mal agencé (par le webmaster), je crois au contraire que les limitations techniques forcent le rédacteur à s'adapter à son site, et à proposer quelque chose de plus personnel que le N.ième blog standardisé...

    Le problème ne vient pas du moteur, mais du webmaster... Je pense que si on ne s'est jamais frotté aux code d'un site, on ne peut pas se rendre compte des éléments qui sont facultatifs, ou qui gênent le lecteur plus qu'autre chose. Je préfère utiliser le moins de "tout prêt" possible et développer mes propres trucs de mon côté. Dans mon évolution personnelle, il est assez clair que j'ai commencé en ajoutant plein d'options, et que plus j'ai appris à coder, plus mes sites ont été minimalistes dans leurs options (en flash / action-script jusqu'à present). Pour moi, il est très important de bien saisir le but à atteindre et de ne pas y aller par quatre chemins, tant pour le code que pour l'interface utilisateur; n'avoir que l'utile à disposition.

    Je n'apprécie pas les nouvelles évolutions du web, et je ne souhaite simplement pas m'y mouiller...
  • DitiDiti Member
    Je ne comprends pas l'utilité de ton post… Selon toi, le progrès est négatif ?
    Dois-je en conclure que tu n'as jamais utilisé l'utilitaire de mise à jour de ton système, que tu ne mets pas à jour ton antivirus, que tu accepte de laisser des pages web malveillantes contaminer ton système ?

    Je t'invite à télécharger les premières versions de Pluxml ou en télécharger une au hasard et à regarder le changelog. Tu trouveras des failles de sécurité comblées version après version.

    C'est ton choix de ne pas te mettre à jour. Mais, pour info, connais-tu Thunderseb ?
    D'après sa signature, il ne jure que par Windows Media Player 8, Internet Explorer 6 et compagnie. Pourtant, moi et un ami venons de le convaincre, aujourd'hui à 12:33, de se mettre à jour.
    Il a refusé, et en a expliqué les raisons (sécurité, code de Microsoft sans doute malveillant). Il a donc décidé… de passer à Linux. Comme quoi le progrès n'est pas si négatif.
  • Et je ne comprends pas vraiment non plus le but de rabrouer les gens sous prétexte qu'ils ne souhaitent pas suivre exactement le courant de pensée locale... j'ai mes raisons de préférer une version plutôt qu'une autre, et cela n'engage que moi.

    Je ne dis pas que le progrès est négatif, mais simplement que je pense qu'il ne faut pas se ruer dessus simplement sous prétexte que c'est "mieux", et surtout, que le progrès est pluri-dimensionnel... le progrès technique ne fait pas tout...

    Pour info sur mon OS, je n'ai pas updaté windows depuis belle lurette parce que je m'en sers avec quelques programmes que je n'ai pas sous OSX... mais il m'arrive dans tous les cas de conserver de vieux programmes qui fonctionnent très bien, surtout si ce sont des programmes commerciaux avec mises à jour payantes. Et je regrette amèrement d'avoir installé sous windows le dernier WMP avec le dernier internet explorer qui est encore pire que les vieux niveau interface...

    Il y a une mesure à trouver dans le "progrès", et chacun a la sienne... Pour un site non commercial, j'estime que les failles de sécurité peuvent attendre une refonte, qui est décidée par le webmaster et pas par l'arrivée d'une nouvelle version du programme.

    Sur ce, je crois que je vais continuer mes essais dans mon coin...
  • lol t pas un peu compliké tt simplement toi ?

    Bon, je rapelle vite fait que pour pas se prendre la tete a essayer de réinventer la roue, des versions de Pluxml modifiés avec moteur de recherche entre autre, se trouvent sur Pluxthemes.com ... en attendant la prochaine version de Pluxml, ca permet de bénéficier de pleins de fonctions utiles en majeur partie désactivables ds l'admin :)

    Sinon ... VIVE LE PROGRES lol le WEB 2.0 et SARKOZY !! Ah non, pas le dernier me suis emportée lol
  • Diti a écrit:
    Tu as tout dans l'annonce officielle
    humm j'imaginais du concret, un roadmap daté, pas une wishlist sans position officielle du dev. donc faut continuer à se faire des modifications manuelles. et d'un certain côté c'est plaisant.

    le moteur de recherche que j'ai aperçu dans un topic ne présentent pas les détails de la recherche, le niveau est donc aussi...faible que celui de PunBB. Vous imaginez un page de résultat Google avec juste des liens sans explications?

    Ienissei rassure toi, tu n'es pas seul, j'ai encore des 98, des FF1.5 tant que ça marche. windows update est désactivé depuis longtemps (quand un windows fonctionne on y touche surtout plus) et je n'ai pas d'antivirus sur mes Pc principaux, mais j'ai la dernière version du 'je fais rien sans réfléchir'.

    certains m'ont l'air formatés génération micosoft. oui le progrès peut être négatif (ex: 'vista') s'il n'apporte rien d'autre que du relooking de surface.
    libre à certains d'apprécier ça, mais ne cherchez pas à entraîner ceux qui privilégient le bons-sens, le contenu, ou les fonctionnalités répondant à LEURS besoins (qui ne sont pas forcément ceux des autres).
    je ne parlerai donc pas de mes linux en mode console uniquement, ils ne peuvent servir qu'à mes besoins...

    quant aux versions modifiées prépackagées, c'est une vrai jungle, il y est rarement indiqués sur quelle version elles s'appuient, elles sont (semblent) disséminées à plusieurs endroit, n'ont pas l'air d'être mise à jour activement, pour certains (dont moi) ça n'inspire pas confiance.
  • IenisseiIenissei Member
    juillet 2007 modifié
    Kyodev a écrit:
    Ienissei rassure toi, tu n'es pas seul, j'ai encore des 98, des FF1.5 tant que ça marche.
    :)

    Le moteur de recherche que j'ai adapté, même s'il ne fonctionne peut-être pas si les register_globals sont à off, et qu'il est un peu bourrin (il ne fait pas dans le détail titre/chapo/corps du post), donne un éxtrait des résultats, et on peut paramétrer le nombre d'extraits (par exemple, celui qui tape "des" aura 5 résultats même si la page en contient 50). Il y a peut être quelques bons trucs à prendre ou à améliorer dedans, même si je n'ai pas les connaissances suffisantes.

    J'ai aussi fini mon petit script d'ajout de greffons, qui n'utilise qu'une ou deux fonctions prédéfinies de pluxml, donc je suis quasiment certaine qu'on peut l'adapter à la version blog ou à une version ultérieure sans aucun problème. autant que je me souvienne, j'ai utilisé __glob et ajouté quelques lignes dans le fichier functions.php

    Il y a une page contenant une version modifiée de l'index de pluxml ainsi que deux lignes de configuration pour indiquer le fichier à inclure (documents/fichier.htm/php) et son titre. Dans l'absolu, le créateur du greffon peut les remplir et l'utilisateur n'a pas vraiment de raison de les modifier. Le template va chercher ces deux variables pour afficher le titre et inclure la page additionnelle, par le biais d'un nouveau mode (un seul, pas 50).

    Dans l'admin, j'ai créé une nouvelle page qui va chercher tous les .php de la racine et vire ceux qui appartiennent à pluxml, qui les liste par ordre alphabétique, offre une prévisualisation (il vaut mieux ajouter un script printer-friendly dans le template), et permet de les activer/désactiver (en les renommant en .off, même si je pourrais les faire mettre dans un dossier de stockage).

    On peut aussi choisir de mettre un lien ou non; les liens sont stockés dans un fichier .htm tout simple, mon script affiche les nouveaux liens en fin de liste, mais supprime automatiquement les doublons, et affiche une prévisualisation du fichier. Le lien se crée pour le fichier .php et avec le nom précisé dans la configuration du fichier (à condition de ne pas toucher les deux lignes critiques du fichier).

    Je ne poste rien pour l'instant car mon panneau d'admin est un peu à l'arrache, je n'ai pas encore jugé bon de mettre un lien dans le fichier top.php ...

    Je pense pouvoir adapter le script à des plugins genre lightbox, un module printer-friendly, du javascript, ou n'importe quoi qui se place etre les balises head, avec un include d'un fichier php qui contient la liste des plugins à inclure. J'ai vu qu'il y avait déjà un projet d'inclusion genre lightbox, je regarderai ça de plus près avant de me lancer.
  • bonjour,

    ne te sens pas attaquer (en tout cas pas par moi .. avais tu remarqué le : peut-etre ne convient-il pas ? a propos du moteur de recherche. ), je suis aussi un bricolo au niveau php avec mon CAP de cuisinier.


    Un "gestionnaire de plugin " et le greffon lighbox v2 en demo , fonctionne sur les dernieres versions blog .

    Ce gestionnaire que j'ai sortit un peu maladroitement (coté code) etait surtout pour demontrer qu'il est possible d'automatiser l'installation d'un script en se greffant ici et la sur , entre , dans les differents fichiers et fonctions de pluxml et aussi dans l'idée de motiver d'autres a chercher de ce coté.
    http://forum.pluxml.org/viewtopic.php?id=593

    Sinon , Pas besoin d'un gestionnaire pour integré le lighbox :) si on a besoin que de ça ...

    Le gestionnaire se greffe de lui même sur un pluxml blog flop 15 a v3 ,et ce principe peut-etre appliqué a n'importe quel plugin en faisant les modifs par le biais du script plutot que d'editer chaque fichiers a la main.

    Encore une fois , je crois qu'il faut attendre la sortie de la v3 qui , selon les dires de skyline , aurait un code entierement repris .

    Je crois que pour le moment peu de personne ont de l'interet sur les plugin bidouillée pour les premieres versions de pluxml , d'ailleurs , beaucoup s'y perdent , ne serait ce que pour les differents théme.

    Il est vrai aussi que seul la version classique est en "version" stable , et que la version blog est encore au stade de la beta.

    Pour la variable "mode" , elle est bien pratique , elle permet de selectionné les portions de template a utiliser et de charger si necessaire les fonctions utiles au moment ou on en a besoin, .. pourquoi charger le moteur de recherche , le formulaire de contact , le script d'envoi de courriel si un commentaire est ajouté , ou je ne sais quel autres fonctions/greffons quand on demande a afficher simplement l'article.

    Le code du gestionnaire de plugin est commenté . Il y a d'abord un fichiers d'install , qui genere l'arborescence utile , les liens dans l'admin et l'interface du gestionaire elle même .

    L'install du lighbox est lancé a partir du gestionnaire , mais pourrait se faire sans le gestionnair en simplifiant son script d'install.

    Je suis curieux de voir ce que tu as fait , plusieurs idées valent toujours mieux qu'une seule , et comme j'ai tendance a etre "bordelique" et a compliqué les choses ....

    Gc

    (je suis en train de passé a ubuntu feisty , mais je garde aussi mon windows en dual boot , par contre je suis pas loin de jeter le pc par la fenêtre , hardware problemes (hd , ram , video ,...) que linux gere encore moins bien que windows ... )
  • Bonsoir,

    Je ne me sens pas attaquée, ne t'inquiète pas ... j'avais remarqué ton commentaire sur le moteur de recherche, mais à vrai dire, je fais en général mes recherches sur le web avant de les faire sur un forum (pas trop l'habitude), donc j'avais déjà tout préparé avant de lire le forum...

    Les plugins disponibles sont effectivement un peu "douteux" car ça reste très artisanal au niveau de l'installation et de la compatibilité avec ls autres versions, mais si plusieurs personnes bidouillent quelques trucs, je pense que ça peut donner un résultat assez intéressant et efficace.

    Je n'ai pas regardé ton script, mais je vais le télécharger pour voir, car il doit pouvoir se convertir assez facilement pour la version classique. Personnellement, si je veux ajouter un petit plugin, j'aurai plutôt tendance à passer direct par le code et un petit coup d'upload, mais ce genre de scripts est nécessaire à un CMS destiné au public, je crois.

    La variable mode est bien pratique, mais si on se contente de créer plusieurs modes, il en faut un nouveau pour chaque greffon, ce qui fait un template à rallonge et totalement illisible à force. Le système que j'ai créé permet de définir l'adresse et le nom du plugin comme variables, et de les importer dans le template en créant un seul mode (genre "plugin") qui est un fait une page vierge qui va inclure le fichier contenant le "texte" du plugin.

    Je ne peux pas te poster les fichiers pour l'instant car c'est encore un peu brouillon (enfin... mon code est très "bordélique", et je me complique sûrement la vie avec des commandes inutiles). En gros, c'est basé sur le script d'upload d'images qui liste les fichiers du dossier et les renvoie sous forme de liste, qu'on trie par nom ensuite et qu'on place dans un tableau. En parallèle, le script va lire la variable de titre pour en faire le texte du lien (j'ai demandé de lire le fichier entier, de sortir un tableau avec $valeur = chaque ligne de code, et si $valeur == "StartConfig", le titre est à la ligne suivante ... c'est maladroit, je sais). Puis j'ai ajouté des liens utilisant la méthode GET (on envoie la variable url et la variable titre). Là, un bout de code récupère les variables et l'ordre (genre ajouter, supprimer), et les traduit soit en renommant le fichier (.php > .off) soit en copiant le contenu du fichier lien, remplaçant la valeur si elle est en doublon, et ajoutant/supprimant le lien. L'utilisateur n'a pas besoin de taper quoique ce soit, et théoriquement ça fonctionne avec les caractères spéciaux (enfin... les apostrophes passent, le reste je n'ai pas essayé).

    Donc à ce niveau, je pense qu'il serait très facile de recopier le script en changeant les dossiers et les extensions pour gérer n'importe quel plugin, et sortir le code en tant que <include(le plugin);> dans un fichier .php lui même inclus dans le template ... Je regarderai ton script, surtout au niveau de l'automatisation de l'installation et/ou de l'upload à proprement parler. Pour uploader des scripts complexes, il faudrait carrément pouvoir balancer un dossier entier et qu'il mette tout sur le serveur (peut-être que ton installateur ou un autre script fait déjà ça, je regarderai).

    Faute de mieux, j'espère que cette explication pourra résumer un peu le fonctionnement du script, qui n'est pas complexe (enfin, pour moi, si, parce que je n'y connais pas grand chose en php). J'essaierai de faire un .zip + les instructions sur les modifications des autres fichiers (minimes) d'ici dimanche prochain - ensuite je pars en vacances...
  • Je poste vite fait le contenu de mon script pour ajouter des greffons, auquel j'ai incorporé un script pour gérer les inclusions entre les balises <head>, ce qui permet d'avoir un seul script printer-friendly pour tous les templates, qui s'adapte bien sûr aux .css de chaque template. Je n'ai pas essayé avec des scripts genre lightbox, mais ça devrait marcher.

    Je ne poste pas les fichiers car il y a plusieurs modifications; j'en oublie peut-être. Normalement ça fonctionne en pluxml classique, pour les versions blog il faudra modifier quelques détails, surtout les valirables "pluxml->..." ...

    Déjà, le script en soi, avec quelques commentaires – ça va dans l'admin:
    <?php
    include('include.php');
    
    // Définition des dossiers à ouvrir et des types de fichiers
    $a_greffons = _glob('../../','/(.*).(php)/i'); // Greffons activés
    $o_greffons = _glob('../../','/(.*).(off)/i'); // Greffons désactivés (extension .off)
    
    $a_mods = _glob('../mods/','/(.*).(js|php)/i'); // Mods activés
    $o_mods = _glob('../mods/off/','/(.*).(js|php)/i'); // Mods désactivés
    
    // Définition du fichier html contenant les liens
    $links = "../conf/liens.htm";
    $mods = "../conf/mods.php";
    $defaultValue = "<!-- Fichier contenant les liens vers les greffons -->\n";
    
    
    // Si le fichier n'existe pas, le créer
    if(!file_exists($links)) {
    	$fp = fopen($links, "a");
    	fputs ($fp, $defaultValue);
    	fclose($fp);
    }
    if(!file_exists($mods)) {
    	$fp = fopen($mods, "a");
    	fputs ($fp, "<?php\n?>");
    	fclose($fp);
    }
    
    // Si le fichier est vide, ajouter le commentaire par défaut
    if(filesize($links) == 0) {
    	$fp = fopen($links, "r+");
    	fputs ($fp, $defaultValue);
    	fclose($fp);
    }
    if(filesize($mods) == 0) {
    	$fp = fopen($mods, "r+");
    	fputs ($fp, "<?php\n?>");
    	fclose($fp);
    }
    
    // Lorsque l'on désactive le greffon, renommer le fichier et supprimer le lien
    if(isset($_GET['del'])){
    	$file = $_GET['del']; // Récupérer la variable dans la chaîne de requête
    	$titre = stripslashes($_GET['name']); // Récupérer la variable dans la chaîne de requête
    	$renamed = str_replace('.php', '.off', $file); // Changer l'extension
    	rename ("$file", "$renamed"); // Renommer le fichier
    	header('Location: greffons.php');
    	
    	$data = str_replace('../../', '', $file); // Lien à partir de la racine du site
    	$write = "<li><a href=$data>$titre</a></li>\n"; // Code html du lien
    	
    	$fp = fopen($links, rb);
    	$contenu = fread ($fp, filesize($links));
    	fclose($fp);
    	
    	$contenuClean = str_replace($write, '', $contenu); // Supprimer le lien
    	
    	$fp = fopen($links, "w+");
    	fputs ($fp, $contenuClean);
    	fclose($fp);
    	
    	header('Location: greffons.php');
    }
    
    // Lorsque l'on active le greffon, renommer le fichier
    if(isset($_GET['add'])){
    	$file = $_GET['add']; // Récupérer la variable dans la chaîne de requête
    	$renamed = str_replace('.off', '.php', $file); // Changer l'extension
    	rename ("$file", "$renamed"); // Renommer le fichier
    	
    	header('Location: greffons.php');
    }
    
    // Lorsque l'on ajoute un lien, ouvrir le fichier de config et ajouter un lien en bas; supprimer les doublons
    if(isset($_GET['addLink'])){	
    	$data = $_GET['addLink']; // Récupérer la variable dans la chaîne de requête
    	$titre = stripslashes($_GET['name']); // Récupérer la variable dans la chaîne de requête
    	$write = "<li><a href=$data>$titre</a></li>\n"; // Code html du lien
    	
    	$fp = fopen($links, rb);
    	$contenu = fread ($fp, filesize($links));
    	fclose($fp);
    	
    	$contenuClean = str_replace($write, '', $contenu);  // Supprimer les doublons
    	$newLinks = $contenuClean . $write; // Ajouter le lien
    	
    	$fp = fopen($links, "w+");
    	fputs ($fp, $newLinks);
    	fclose($fp);
    	
    	header('Location: greffons.php');
    }
    
    // Lorsque l'on supprime un lien, ouvrir le fichier de config et supprimer la ligne en question
    if(isset($_GET['delLink'])){	
    	$data = $_GET['delLink']; // Récupérer la variable dans la chaîne de requête
    	$titre = stripslashes($_GET['name']); // Récupérer la variable dans la chaîne de requête
    	$write = "<li><a href=$data>$titre</a></li>\n"; // Code html du lien
    	
    	$fp = fopen($links, rb);
    	$contenu = fread ($fp, filesize($links));
    	fclose($fp);
    	
    	$contenuClean = str_replace($write, '', $contenu); // Supprimer le lien
    	
    	$fp = fopen($links, "w+");
    	fputs ($fp, $contenuClean);
    	fclose($fp);
    	
    	header('Location: greffons.php');
    }
    
    // Lorsque l'on désactive le mod, déplacer le fichier et supprimer le lien
    if(isset($_GET['delMod'])){
    	$file = $_GET['delMod']; // Récupérer la variable dans la chaîne de requête
    	$renamed = str_replace('../mods/', '../mods/off/', $file); // Déplacer le fichier
    	rename ("$file", "$renamed"); // Renommer le fichier
    	
    	header('Location: greffons.php');
    	
    	$data = str_replace('../mods/', 'core/mods/', $file); // Lien à partir de la racine du site
    	$write = "include ('$data');\n"; // Code de la ligne en php
    	
    	$fp = fopen($mods, rb);
    	$contenu = fread ($fp, filesize($mods));
    	fclose($fp);
    	
    	$contenuClean = str_replace($write, '', $contenu); // Supprimer la ligne
    	
    	$fp = fopen($mods, "w+");
    	fputs ($fp, $contenuClean);
    	fclose($fp);
    	
    	header('Location: greffons.php');
    }
    
    // Lorsque l'on active le mod, déplacer le fichier et ajouter le lien
    if(isset($_GET['addMod'])){
    	$file = $_GET['addMod']; // Récupérer la variable dans la chaîne de requête
    	$renamed = str_replace('../mods/off/', '../mods/', $file); // Déplacer le fichier
    	rename ("$file", "$renamed"); // Renommer le fichier
    	
    	header('Location: greffons.php');
    	
    	$data = str_replace('../mods/off/', 'core/mods/', $file); // Lien à partir de la racine du site
    	$write = "\ninclude ('$data');"; // Code de la ligne en php
    	
    	$fp = fopen($mods, rb);
    	$contenu = fread ($fp, filesize($mods));
    	fclose($fp);
    	
    	$contenu = str_replace ("\n?>", '', $contenu);
    	$contenuClean = str_replace($write, '', $contenu); // Supprimer les doublons
    	$newMod = $contenuClean . $write . "\n?>"; // Ajouter la ligne
    	
    	$fp = fopen($mods, "w+");
    	fputs ($fp, $newMod);
    	fclose($fp);
    	
    	header('Location: greffons.php');
    }
    
    include('top.php');
    
    ?>
    
    <ul>
    	<table width="600px" border="0" cellspacing="0"">
    		<tr>
    			<td width="250px" class="separateTables">
    				<h2>Menu greffons tel qu'il appraît dans le site</h2>
    			</td>
    			<td width="50px">
    			</td>
    			<td width="300px">
    				<h2>Autres greffons disponibles</h2>
    			</td>
    		</tr>
    		<tr>
    			<td width="250px"  class="separateTables" valign="top">
    				<!-- Inclure le fichier de liens pour la prévisualisation -->
    				<?php include($links); ?>
    			</td>
    			<td width="50px">
    			</td>
    			<td width="300px" valign="top">
    				<!-- Créer un nouveau tableau pour y placer les greffons désactivés -->
    				<table width="300px" border="0" cellspacing="0">
    				<?php
    				if(!$o_greffons){
    					echo '<tr><td colspan="2"><p>Aucun autre greffon n\'est disponible</p></td></tr>';
    				}
    				else {
    					for($i=0; $i < count($o_greffons); $i++){
    						sort($o_greffons);
    						foreach ($o_greffons as $i => $val) {
    						
    							// On formate plusieurs versions du fichier pour en afficher le nom et l'URL relative
    							$o_grefUrl = str_replace('../../', '', $val);
    							$o_grefName = str_replace('.off', '', $o_grefUrl);
    					
    							// On ajoute les lignes nécessaires au tableau
    							echo '<tr><td class="Table"><p class="getFile">'.$o_grefName.'</p></td><td class="Table" align="right"><a href="?add='.$val.'">Activer le fichier principal</a></tr>';
    						}
    					}
    				}
    				?>
    				</table>
    			</td>
    		</tr>
    	</table>
    </ul>
    
    <br/>
    
    <ul>
    	<table width="600px" border="0" cellspacing="0">
    		<tr>
    			<td colspan="2">
    				<h2>Liste des greffons activés</h2>	
    			</td>
    		</tr>
    	
    		<?php
    		if(count($a_greffons) <= 3){
    			echo '<tr><td colspan="2" class="Table"><p>Aucun greffon n\'est activé</p></td></tr>';
    		}
    		else {
    			for($i=0; $i < count($a_greffons); $i++){
    				sort($a_greffons);
    				foreach ($a_greffons as $i => $val) {
    			
    					// On formate plusieurs versions du fichier pour en afficher le nom et l'URL relative
    					$a_grefUrl = str_replace('../../', '', $val);
    					$a_grefName = str_replace('.php', '', $a_grefUrl);
    				
    					// On va chercher le texte de configuration dans le greffon, on le traite, et on extrait le titre
    					$tableau = file($a_greffons[$i]);
    					while(list($cle,$valeur) = each($tableau)) {
    						if ($valeur == "//StartConfig\n") {
    							$line = $cle + 1;
    							$Titre = $tableau[$line];
    	
    							$varStart = '$pluxml->pageTitle = "';
    							$varEnd = '";';
    	
    							$ExtTitre = str_replace($varStart, '', $Titre);
    							$ExtTitre = str_replace($varEnd, '', $ExtTitre);
    						}
    					}
    				
    					// On masque les pages nécessaires au fonctionnement du site
    					if ($a_greffons[$i] == "../../index.php") {}
    					elseif ($a_greffons[$i] == "../../install.php") {}
    					elseif ($a_greffons[$i] == "../../maj.php") {}
    				
    					// On ajoute les lignes nécessaires au tableau
    					else {
    						echo '<tr><td class="Table"><p class="getFile">'.$a_grefName.' (<a href="#" onclick="window.open(\''.$val.'?id=print\', \'Visualiser le greffon\', \'height=600, width=500, top=100, left=100, toolbar=yes, menubar=no, location=no, resizable=yes, scrollbars=yes, status=yes\');return false;">Visualiser</a>)</p></td>';
    						echo '<td class="Table" align="right"><a href="?addLink='.$a_grefUrl.'&name='.$ExtTitre.'">Ajouter un lien</a> | <a href="?delLink='.$a_grefUrl.'&name='.$ExtTitre.'">Supprimer le lien</a> | <a href="?del='.$val.'&name='.$ExtTitre.'">Désactiver le fichier principal</a></tr>';
    					}
    				}
    			}
    		}
    		?>
    	</table>
    </ul>
    
    <br/>
    
    <!-- Pour les mods -->
    <ul>
    	<table width="600px" border="0" cellspacing="0">
    		<tr>
    			<td colspan="2">
    				<h2>Liste des mods activés</h2>	
    			</td>
    		</tr>
    	
    		<?php
    		if(!$a_mods){
    			echo '<tr><td colspan="2" class="Table"><p>Aucun mod n\'est activé</p></td></tr>';
    		}
    		else {
    			for($i=0; $i < count($a_mods); $i++){
    				sort($a_mods);
    				foreach ($a_mods as $i => $val) {
    			
    					// On formate plusieurs versions du fichier pour en afficher le nom et l'URL relative
    					$a_modName = str_replace ('../mods/', '', $val);
    					$a_modName = str_replace('.php', '', $a_modName);
    					$a_modName = str_replace ('.js', '', $a_modName);
    				
    					// On ajoute les lignes nécessaires au tableau
    					echo '<tr><td class="Table"><p class="getFile">'.$a_modName.'</p></td>';
    					echo '<td class="Table" align="right"><a href="?delMod='.$val.'">Désactiver</a></td></tr>';
    				}
    			}
    		}
    		?>
    	</table>
    </ul>
    
    <br/>
    
    <ul>
    	<table width="600px" border="0" cellspacing="0">
    		<tr>
    			<td colspan="2">
    				<h2>Liste des mods disponibles</h2>	
    			</td>
    		</tr>
    	
    		<?php
    		if(!$o_mods){
    			echo '<tr><td colspan="2" class="Table"><p>Aucun autre mod n\'est disponible</p></td></tr>';
    		}
    		else {
    			for($i=0; $i < count($o_mods); $i++){
    				sort($o_mods);
    				foreach ($o_mods as $i => $val) {
    			
    					// On formate plusieurs versions du fichier pour en afficher le nom et l'URL relative
    					$o_modName = str_replace ('../mods/off/', '', $val);
    					$o_modName = str_replace('.php', '', $o_modName);
    					$o_modName = str_replace ('.js', '', $o_modName);
    				
    					// On ajoute les lignes nécessaires au tableau
    					echo '<tr><td class="Table"><p class="getFile">'.$o_modName.'</p></td>';
    					echo '<td class="Table" align="right"><a href="?addMod='.$val.'">Activer</a></td></tr>';
    				}
    			}
    		}
    		?>
    	</table>
    </ul>
    
    <?php
    include('foot.php');
    ?>
    
    Ensuite, dans le template, deux modifications; entre les balises <head>:
    <!-- Inclure les modules -->
    	<?php include('core/conf/mods.php') ?>
    
    Entre deux "modes" existants
    <?php?> <!-- En mode 'greffon' -->
    		<?php if($pluxml->mode == 'greffon') : ?>
    		
    		<div id="content">
    			<div class="post">
    				<h2 class="articletitle"><?php __('greffonTitle'); ?></h2>
    			
    				<? include('greffons/'.$pluxml->greffonInclude.''); ?>
    			</div>
    		</div>
    		
    		<?php endif; ?>
    	<?php?> <!-- Fin mode 'greffon' -->
    
    C'est tout pour le template; dans le dossier lib/functions:
    case 'pagetitle':
    		   	if($pluxml->mode == 'home'){
    				echo $pluxml->config['title'].' - '.$pluxml->config['description'];
    			}
    			if($pluxml->mode == 'article'){
    				echo $pluxml->a_article['0']['title'].' - '.$pluxml->config['title'];
    			}
    			if($pluxml->mode == 'cat'){
    				echo $pluxml->cat_used[$pluxml->a_article['0']['cat_num']]['name'].' - '.$pluxml->config['title'];
    				}
    			if($pluxml->mode == 'greffon') {
    				echo $pluxml->pageTitle.' - '.$pluxml->config['title'];
    			}
    		break;
    
    		case 'greffonTitle':
    			echo $pluxml->pageTitle;
    		break;
    
    C'est pour aller chercher le titre du greffon et en faire le titre de la page.

    Maintenant, les formats (complètement arbitraires) que j'ai utilisés. Les greffons ressemblent à ça:

    [greffon].php dans la racine du site (code ci-dessous)
    [page à inclure, c'est-à-dire le contenu du greffon].php|htm dans le dossier "greffons"
    <?php
    /* This file is part of Pluxml. Copyright (c) 2006 Skyline-arts.com. All rights reserved.*/
    
    /* Configuration:
    	Pour utiliser cette page comme plugin, vérifier que le le fichier soit bien lu en mode "greffon"
    	Modifier au besoin les variables '$pluxml->pageTitle' et 'pluxml->greffonInclude' */
    
    if(!file_exists('core/conf/config.xml')){
    	header('Content-Type: text/plain');
    	echo "Pluxml n'est pas configurZ\n";
    	echo "Executer le fichier install.php pour lancer l'installation";
    	exit;
    }
    
    # On inclut les librairies nécéssaires
    include ('core/lib/class.pluxml.php');
    include ('core/lib/lib.util.php');
    include ('core/lib/functions.php');
    
    # CrZation de l'objet principal
    $pluxml = new pluxml('core/conf/config.xml','core/conf/categorie.xml');
    $pluxml->mode = 'greffon'; # Le fichier est à lire en mode greffon.
    
    if($pluxml->cat_all && $pluxml->all_files){
    	$pluxml->cat_used = $pluxml->usedCategorie();
    }
    
    # Définition du titre de la page, et du fichier à inclure, situé dans le dossier "documents/" (ne pas ajouter)
    # Ne RIEN changer dans les lignes du blog config, sauf les variables entre guillemets
    
    //StartConfig
    $pluxml->pageTitle = "VOTRE TITRE";
    $pluxml->greffonInclude = "VOTRE PAGE A INCLURE";
    //EndConfig
    
    # Insertion du template
    include ('core/templates/'.$pluxml->style.'/template.php');
    ?>
    
    Sinon, ce que j'ai appelé les "mods", qui sont les inclusions dans le header, sont pour l'instant au format .php ou .js (mais je n'ai pas testé si php pouvait faire un include là dessus...) et à uploader dans le dossier /core/mods/off/ (ils sont ainsi désactivés, ce qui permet de les activer proprement dans l'admin et de créer un lien).


    Je réfléchis en même temps à un moyen pour envoyer soit un fichier seul dans le bon dossier, soit pour les plugins plus gros, un zip avec le fichier de base et un dossier contenant tout le reste (et demander à pluxml de dézipper tout seul)... Voilà.

    Désolée gcyrillus, je n'ai pas regardé ton script, j'ai juste copié-collé le mien et changé les variables... c'était plus rapide, mais j'ai noté de regarder comment marche le tien.

    J'ai aussi fini un script de statistiques qui fonctionne sur le même principe (mais bon, comme il faut charcuter dans l'admin, je doute automatiser ça...). Il donne quelques infos sur les IP, heures de visites, etc ... et il est en xml/xsl ce qui fait qu'on peut modifier les templates très facilement (les miens ne sont pas vraiment top) ... et il compare aussi le nombre d'articles présents/ajoutés sur le site à une date donnée par rapport au nombre actuel, et le nombre de visites à cette date par rapport au total. Bien sur ça n'est pas comparable à un truc "pro"... mais ça me suffit et c'est déjà mieux que les statistiques de Free qui montrent les 15 dernières entrées...

    En fait, j'y songeais, on peut facilement automatiser l'installation de pages dans l'admin je pense, mais il faudrait revoir la structure du fichier top.php.
    En imaginant que le top.php aille à la ligne quand il y a trop de modules sur une ligne (par tableau, bêtement), et qu'on convienne d'une balise genre:

    // Pages complementaires

    Il suffirait de faire lire le fichier, trouver la balise, coller les données juste en dessous avec 1-2 sauts de ligne et écrire; et pour désinstaller, on fait un coup de str_replace. (un peu dans le genre de ce que j'ai fait pour mon script de greffons, pour trouver le titre de la page).
Connectez-vous ou Inscrivez-vous pour répondre.