Bonjour,
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Merci d'avance.
pierre
PS : actuellement elles sont dans le fichier mes_fonctions.php.
Pierre Fiches a écrit :
Bonjour,
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Merci d'avance.
pierre
PS : actuellement elles sont dans le fichier mes_fonctions.php.
Salut,
en fait tu voudrais que ces fonctions ne soient définies que si elles sont appelées a partir d'un "fond" ?
je ne vois pas trop l'intérêt mais bon éventuellement dans une balise du type #NOOP|fonctions_a_definir{ma_fonction}
et dans ton mes_fonctions tu aurais la définition de la fonction en question ...
Mais bon je pense que je dois pas avoir tout compris a ce que tu voulais faire car je trouve ca bizarre 
a+
Le 5 déc. 08 à 15:00, Yoann Nogues a écrit :
Pierre Fiches a écrit :
Bonjour,
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Merci d'avance.
pierre
PS : actuellement elles sont dans le fichier mes_fonctions.php.
Salut,
en fait tu voudrais que ces fonctions ne soient définies que si elles sont appelées a partir d'un "fond" ?
je ne vois pas trop l'intérêt mais bon éventuellement dans une balise du type #NOOP|fonctions_a_definir{ma_fonction}
et dans ton mes_fonctions tu aurais la définition de la fonction en question ...
Mais bon je pense que je dois pas avoir tout compris a ce que tu voulais faire car je trouve ca bizarre 
L'intérêt sauf erreur de ma part c'est d'avoir un mes_fonctions le plus léger possible et d'avoir des fonctions de configuration quand j'en ai besoin c'est à dire lorsque j'utilise un fichier cfg :
exemple : dans dans mon fichier de config je met :
#SET{nom,bloc}
[(#GET{nom}|couleurBloc{ps,Couleur de fond des blocs,#bloc1 à 9,#ENV{bc_#GET{nom}},Ces réglages s'appliquent à tous les blocs.,right})]
et et dans mes_fonctions php :
// couleur des blocs
function couleurBloc($nom, $casier, $titre, $arbre, $color, $explications, $position) {
$racine = 'xzx';
$prefixe = 'xzx_';
// bc pour background-color
$var1 = 'bc_'.$nom;
$titre1 = 'Couleur';
$chemin1=lire_config($racine.'/'.$casier.'/'.$var1);
$r = '<div class="form-item {$position}"><h5>'.$titre.'</h5>';
$r .= '<div><label for="'.$prefixe.''.$var1.'" class="label"><a href="#" title="'.$arbre.' - '.$explications.'">'.$titre1.'</a></label>';
$r .= '<input type="text" name="'.$var1.'" class="palette br" id="'.$prefixe.''.$var1.'" value="'.$color.'" size="8" />';
$r .= '<div class="memo">Config de '.$arbre.''.(empty($chemin1) ? '' : ' : <b>'.$chemin1.'</b>').'</div></div>';
$r .= '</div>';
return $r;
}
Ma bibliothèque de fonctions de config est encore très limitée mais à terme ça pourrait représenter un fichier un peu lourd.
D'où ma question est il possible d'avoir un mes fonction pour un dossier comme il est possible d'avoir pour un fichier....
en espérant être plus clair.
Pierre Fiches a écrit :
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Il est possible d'avoir un fichier PHP uniquement associé à un squelette particulier, me semble-t-il.
--
RastaPopoulos
RastaPopoulos a écrit :
Pierre Fiches a écrit :
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Il est possible d'avoir un fichier PHP uniquement associé à un squelette particulier, me semble-t-il.
Salut,
ca je sais pas trop ... j'ai pas cherché ...
Mais la solution que je t'ai donné ne me semble pas si mauvaise que cela ... certes tu as toujours un gros fichiers mes_fonctions.php ... mais tu peux éventuellement plutôt que de déclarer toutes tes fonctions dans ce fichier, les déclarer dans un fichier par type de fonction.
Ce qui donne si on reprend en gros :
ton squelette de config :
[(#NOOP|definir_fonctions{fct_config})]
mes_fonctions :
function definir_fonctions($nom_fonction){
switch($nom_fonction){
case 'fct_config':
include_spip('inc/fct_config');
break;
......
}
....
}
et dans inc/fct_config
tu mets ta fonction couleurBloc
Vous en pensez quoi ?
Le 8 déc. 08 à 10:51, Yoann Nogues a écrit :
RastaPopoulos a écrit :
Pierre Fiches a écrit :
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l'occurrence).
Est ce possible ?
Si oui comment ?
Il est possible d'avoir un fichier PHP uniquement associé à un squelette particulier, me semble-t-il.
Salut,
ca je sais pas trop ... j'ai pas cherché ...
Mais la solution que je t'ai donné ne me semble pas si mauvaise que cela ... certes tu as toujours un gros fichiers mes_fonctions.php ... mais tu peux éventuellement plutôt que de déclarer toutes tes fonctions dans ce fichier, les déclarer dans un fichier par type de fonction.
Ce qui donne si on reprend en gros :
ton squelette de config :
[(#NOOP|definir_fonctions{fct_config})]
mes_fonctions :
function definir_fonctions($nom_fonction){
switch($nom_fonction){
case 'fct_config':
include_spip('inc/fct_config');
break;
......
}
....
}
et dans inc/fct_config
tu mets ta fonction couleurBloc
Vous en pensez quoi ?
Ha oui et sauf erreur ça premet de minimiser le mes_fonctions en fonction du lieu d'éxécution et éventuellement de la configuration du squelette.
Est-ce une "bonne" pratique ou y a-t-il un autre dispositif possible ?
En tout cas merci pour cette piste.
pierre
Pierre Fiches a écrit :
Le 8 déc. 08 à 10:51, Yoann Nogues a écrit :
RastaPopoulos a écrit :
Pierre Fiches a écrit :
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l’occurrence).
Est ce possible ?
Si oui comment ?
Il est possible d’avoir un fichier PHP uniquement associé à un squelette particulier, me semble-t-il.
Salut,
ca je sais pas trop … j’ai pas cherché …
Mais la solution que je t’ai donné ne me semble pas si mauvaise que cela … certes tu as toujours un gros fichiers mes_fonctions.php … mais tu peux éventuellement plutôt que de déclarer toutes tes fonctions dans ce fichier, les déclarer dans un fichier par type de fonction.
Ce qui donne si on reprend en gros :
ton squelette de config :
[(#NOOP|definir_fonctions{fct_config})]
mes_fonctions :
function definir_fonctions($nom_fonction){
switch($nom_fonction){
case ‹ fct_config ›:
include_spip(‹ inc/fct_config ›);
break;
…
}
…
}
et dans inc/fct_config
tu mets ta fonction couleurBloc
Vous en pensez quoi ?
Ha oui et sauf erreur ça premet de minimiser le mes_fonctions en fonction du lieu d’éxécution et éventuellement de la configuration du squelette.
Est-ce une « bonne » pratique ou y a-t-il un autre dispositif possible ?
En tout cas merci pour cette piste.
pierre
On pourrait changer le sujet et mettre :
Comment déclarer dynamiquement des fonctions a l’intérieur de squelettes ?
non ?
Le 8 déc. 08 à 12:12, Yoann Nogues a écrit :
Pierre Fiches a écrit :
Le 8 déc. 08 à 10:51, Yoann Nogues a écrit :
RastaPopoulos a écrit :
Pierre Fiches a écrit :
Je cherche à optimiser un jeu de fonctions utiles uniquement pour les fichiers dans un seul dossier (le dossier fonds en l’occurrence).
Est ce possible ?
Si oui comment ?
Il est possible d’avoir un fichier PHP uniquement associé à un squelette particulier, me semble-t-il.
Salut,
ca je sais pas trop … j’ai pas cherché …
Mais la solution que je t’ai donné ne me semble pas si mauvaise que cela … certes tu as toujours un gros fichiers mes_fonctions.php … mais tu peux éventuellement plutôt que de déclarer toutes tes fonctions dans ce fichier, les déclarer dans un fichier par type de fonction.
Ce qui donne si on reprend en gros :
ton squelette de config :
[(#NOOP|definir_fonctions{fct_config})]
mes_fonctions :
function definir_fonctions($nom_fonction){
switch($nom_fonction){
case ‹ fct_config ›:
include_spip(‹ inc/fct_config ›);
break;
…
}
…
}
et dans inc/fct_config
tu mets ta fonction couleurBloc
Vous en pensez quoi ?
Ha oui et sauf erreur ça premet de minimiser le mes_fonctions en fonction du lieu d’éxécution et éventuellement de la configuration du squelette.
Est-ce une « bonne » pratique ou y a-t-il un autre dispositif possible ?
En tout cas merci pour cette piste.
pierre
On pourrait changer le sujet et mettre :
Comment déclarer dynamiquement des fonctions a l’intérieur de squelettes ?
non ?
oui
Salut,
J’ai essayé de réfléchir un petit peu a ce soucis …
Je pense que tu pourrais faire dans le format plugin avec un fichier de fonctions ma_bibliotheque qui agit sur le pipeline exec_init pour l’espace privé
mais pour définir tes fonctions dans l’espace public … je n’ai pas d’idées …
Si on part du principe que tu « actives » la déclaration des fonctions dans ton squelette CFG ( ou autre ), je pense c’est que ca risque d’être très consommateur de ressources … plus que ce que ca risque de te rapporter …
a la limite tu pourrais faire unplugin bibliotheque, un peu dans le même genre que le couteau suisse qui te permet d’activer une série de fonction via une interface dans l’espace privé … a la limite ce serait le mieux et finalement le plus propre et la tu vas vraiment gagner en ressources ( mémoire ).
en creusant donc tu fais un fond cfg qui défini une variable de config sur chaque des fonctions de ta bibliothèque
tu fais un fichier plugin/bibliotheque/bibliotheque_fonctions.php ( appellé via le plugin.xml comme un fichier fonctions ou options … je sais pas trop … mais je dirai option a priori . ) dans lequel tu auras ce genre de ligne avant chaque définition de fonction
if(lire_config(biliotheque/fonction_un)){
function fonction_un(…){
…
}
}
attention a ce que ton plugin dépende bien de CFG comme ca il est chargé après et la fonction lire_config sera automatiquement définie.
Voila j’espère que je ne me trompe pas (trop) 
a+
Pierre Fiches a écrit :
je compatis vraiment…
prends soin de toi.
Le 12 déc. 08 à 09:54, Yoann Nogues a écrit :
Pierre Fiches a écrit :
Le 8 déc. 08 à 18:05, Yoann Nogues a écrit :
Pierre Fiches a écrit :
En fait pas moyen de le faire marcher on squelette de config :
[(#NOOP|definir_fonctions{fonctions_config})]
et cette fonction dans mes_fonctions :
function definir_fonctions($nom_fonction){
switch($nom_fonction){
case ‹ fonctions_config ›:
include_spip(‹ inc/xzx_fonctions_config ›);
break;
}
}
Fatal error: Call to undefined function styleDesBords() in /var/www/vhosts/angels-informatique.eu/httpdocs/ecrire/public/composer.php(51) : eval()'d code on line 145
en incluant directement ça dans mes_fonctions :
include_spip(‹ inc/fct_config ›);
ça marche mais sinon j’ai une erreur squelette
une idée ? c’est mon switch qui va pas ?
oui probablement que c’est en fait le type de chargement des fichiers mes_fonctions et mes_options …
essaie en mettant ton switch dans mes_options
et sinon si tu passes par un require(squelettes/inc/xxxxxxx.php) et pas par un include_spip ?
ni l’un ni l’autre ne fonctionne 
Salut,
Désolé de ne pas avoir répondu … j’ai eu un serveur qui a crashé et j’ai quasiment pas dormi en 2 nuits …
La j’ai pas d’idée pour le moment mais je vais y réfléchir et je t’écrirai lundi