Le résultat c'est qu'effectivement il m'affiche tout ! Mais tous les
auteurs, ça fait une jolie liste après bonjour !
Regarde la doc et cherche un peu de temps en temps.
Il faut passer à ta boucle l'id_auteur concerné que ce soit par
l'adresse http, par un contexte (l'auteur d'un article), etc..., sinon
effectivement il va aller te chercher tous les auteurs.
Je ne connais pas le plugin authentification donc je ne sais pas
comment aller chercher l'information. Tu peux toujours aller
rechercher dans Spip-BB qui fait ce genre de chose également.
Je crois que le statut visiteur est "6visiteur" (vois la table auteurs si besoin). Si tu veux dire "Bonjour X." quel que soit le statut, ceci devrait suffire:
Je crois que le statut visiteur est "6visiteur" (vois la table auteurs si besoin). Si tu veux dire "Bonjour X." quel que soit le statut, ceci devrait suffire:
Merci beaucoup je vais tester... Je n'avais pas imaginer un script avec du php comme ça, content de voir que je n'ai pas posté pour rien, je n'aurais jamais trouvé ça !
Merci beaucoup je vais tester... Je n'avais pas imaginer un script avec du php comme ça, content de voir que je n'ai pas posté pour rien, je n'aurais jamais trouvé ça !
C'est une variation sur base d'un article de la doc:
Le php dans les squelettes c'est pas trop recommandé mais bon, jusqu'ici j'ai pas trouvé mieux. Note que le comportement est en apparence parfois bizarre, en fonction des caches de navigateur, de proxy, etc. Mais si tu as plusieurs navigateurs ou ordinateurs sous la main, tu verras que c'est OK.
Merci beaucoup je vais tester... Je n'avais pas imaginer un script avec du php comme ça, content de voir que je n'ai pas posté pour rien, je n'aurais jamais trouvé ça !
C'est une variation sur base d'un article de la doc:
Le php dans les squelettes c'est pas trop recommandé mais bon, jusqu'ici j'ai pas trouvé mieux. Note que le comportement est en apparence parfois bizarre, en fonction des caches de navigateur, de proxy, etc. Mais si tu as plusieurs navigateurs ou ordinateurs sous la main, tu verras que c'est OK.
le cache doit être nul ou très petit pour ne pas mettre en cache le résultat.
il faut associer à droit.html, le fichier droits_fonctions.php dans lequel sont définies les balises
<?php
function calcul_DROITS() {
//pour ne pas modifier le coeur de spip il faudra aller faire une
//requet sur la table adherent
//on en profitera pour v?fier la validit?e sa date
global $auteur_session;
$cgfp_retour='';
$cgfp_statut_loc=$auteur_session['statut'];
if (strlen($cgfp_statut_loc)==0)
$cgfp_retour= 10;
if ((strlen($cgfp_statut_loc)>0) AND
(settype($cgfp_statut_loc,"integer"))) {
switch($cgfp_statut_loc):
case 0:
$cgfp_retour= 0;
break;
case 1:
$cgfp_retour= 1;
break;
case 5:
$cgfp_retour= 10;
break;
case 6:
$cgfp_retour= 6;
break;
default:
$cgfp_retour= 10;
break;
endswitch;
}
return $cgfp_retour;
}
function balise_DROITS ($p){
$p->code="calcul_DROITS()";
$p->statut = 'html';
return $p;
}
function calcul_IDENTITE (){
global $auteur_session;
$nom_connecte = $auteur_session['nom'];
return $nom_connecte;
}
function balise_IDENTITE($p){
$p->code="calcul_IDENTITE()";
$p->statut = 'html';
return $p;
}
?>
le cache doit être nul ou très petit pour ne pas mettre en cache le résultat.
il faut associer à droit.html, le fichier droits_fonctions.php dans lequel sont définies les balises
<?php
function calcul_DROITS() {
//pour ne pas modifier le coeur de spip il faudra aller faire une
//requet sur la table adherent
//on en profitera pour v?fier la validit?e sa date
global $auteur_session;
$cgfp_retour='';
$cgfp_statut_loc=$auteur_session['statut'];
if (strlen($cgfp_statut_loc)==0)
$cgfp_retour= 10;
if ((strlen($cgfp_statut_loc)>0) AND
(settype($cgfp_statut_loc,"integer"))) {
switch($cgfp_statut_loc):
case 0:
$cgfp_retour= 0;
break;
case 1:
$cgfp_retour= 1;
break;
case 5:
$cgfp_retour= 10;
break;
case 6:
$cgfp_retour= 6;
break;
default:
$cgfp_retour= 10;
break;
endswitch;
}
return $cgfp_retour;
}
function balise_DROITS ($p){
$p->code="calcul_DROITS()";
$p->statut = 'html';
return $p;
}
function calcul_IDENTITE (){
global $auteur_session;
$nom_connecte = $auteur_session['nom'];
return $nom_connecte;
}
function balise_IDENTITE($p){
$p->code="calcul_IDENTITE()";
$p->statut = 'html';
return $p;
}
?>
le cache doit être nul ou très petit pour ne pas mettre en cache le résultat.
il faut associer à droit.html, le fichier droits_fonctions.php dans lequel sont définies les balises
<?php
function calcul_DROITS() {
//pour ne pas modifier le coeur de spip il faudra aller faire une
//requet sur la table adherent
//on en profitera pour v?fier la validit?e sa date
global $auteur_session;
$cgfp_retour='';
$cgfp_statut_loc=$auteur_session['statut'];
if (strlen($cgfp_statut_loc)==0)
$cgfp_retour= 10;
if ((strlen($cgfp_statut_loc)>0) AND
(settype($cgfp_statut_loc,"integer"))) {
switch($cgfp_statut_loc):
case 0:
$cgfp_retour= 0;
break;
case 1:
$cgfp_retour= 1;
break;
case 5:
$cgfp_retour= 10;
break;
case 6:
$cgfp_retour= 6;
break;
default:
$cgfp_retour= 10;
break;
endswitch;
}
return $cgfp_retour;
}
function balise_DROITS ($p){
$p->code="calcul_DROITS()";
$p->statut = 'html';
return $p;
}
function calcul_IDENTITE (){
global $auteur_session;
$nom_connecte = $auteur_session['nom'];
return $nom_connecte;
}
function balise_IDENTITE($p){
$p->code="calcul_IDENTITE()";
$p->statut = 'html';
return $p;
}
?>
le cache doit être nul ou très petit pour ne pas mettre en cache le résultat.
il faut associer à droit.html, le fichier droits_fonctions.php dans lequel sont définies les balises
Comme deja expliqué, cette solution n'est vraiment pas une bonne approche.
Il vaut mieux mettre du code PHP dans le squelette plutot que ca !
Si tu generes un cache de cette facon, il est valable pour tout le monde.
Pour aborder les acces restreints ou la personnalisation, il faut generer plusieurs caches differents en fonction du statut ou de l'id de l'utilisateur.
La, si mysql tombe en panne, le dernier cache généré sera renvoyé à tout le monde, donc si c'est un admin, hop, tout le monde admin !
C'est quand meme pas dur de faire un inclure :
<INCLURE(bloc_statut.php){bloc=toto}>
et dans bloc_statut.php :
<?php
//quelques tests de secu, ici ...
$fond=$contexte_inclus['bloc']
$contexte_inclus['statut']=$auteur_session['statut'];
include ("inc-public.php3");
?>
La, tu es sur que chaque statut utilisera un cache different.
comme dit dans le titre, je m'interroge s'il est possible d'appliquer un filtre (j'ai tenté les abs_url, ...) ou si quelqu'un a l'idée d'une manip qui permettrait que la source de l'image créée par image_typo soit une adresse absolue et non relative, pour les curieux c'est parce que je veux utiliser ce filtre sur une newsletter et héberger les images sur le site donc.
ah bien je crois que j'ai finalement trouvé ma réponse sur cette page Discuter chez rezo.net
donc le filtre à utiliser pour récupérer l'adresse de l'image est : fichier_seul
ca va me faciliter la vie youpiii
troOn
troOn a écrit :
salut,
comme dit dans le titre, je m'interroge s'il est possible d'appliquer un filtre (j'ai tenté les abs_url, ...) ou si quelqu'un a l'idée d'une manip qui permettrait que la source de l'image créée par image_typo soit une adresse absolue et non relative, pour les curieux c'est parce que je veux utiliser ce filtre sur une newsletter et héberger les images sur le site donc.
bon finalement ce filtre semble avoir été supprimé depuis un an, je ne saisis pas comment faire, donc j'ai toujours besoin de vous, à l'aiiiiiiide
je suis sur la version 1.9 beta3
troOn
troOn a écrit :
ah bien je crois que j'ai finalement trouvé ma réponse sur cette page Discuter chez rezo.net
donc le filtre à utiliser pour récupérer l'adresse de l'image est : fichier_seul
ca va me faciliter la vie youpiii
troOn
troOn a écrit :
salut,
comme dit dans le titre, je m'interroge s'il est possible d'appliquer un filtre (j'ai tenté les abs_url, ...) ou si quelqu'un a l'idée d'une manip qui permettrait que la source de l'image créée par image_typo soit une adresse absolue et non relative, pour les curieux c'est parce que je veux utiliser ce filtre sur une newsletter et héberger les images sur le site donc.
bon finalement ce filtre semble avoir été supprimé depuis un an, je ne saisis pas comment faire, donc j'ai toujours besoin de vous, à l'aiiiiiiide
je suis sur la version 1.9 beta3
en 1.9 il y a 2 plugins sur spip-zone qui font des newsletter, regarde comment elles font, dans spip_liste, il y a un filtre :
function url_absolues($texte, $base='') {
if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),ims',
$texte, $liens, PREG_SET_ORDER)) {
foreach ($liens as $lien) {
if (substr($lien[2],0,1)!='#'){
$abs = url_absolue($lien[2], $base);
if ($abs <> $lien[2])
$texte = str_replace($lien[0], $lien[1].$abs.$lien[3], $texte);
}
}
}
if (preg_match_all(',(<img[[:space:]]+[^<>]*src=["\']?)([^"\' ><[:space:]]+)([^<>]*>),ims',
$texte, $liens, PREG_SET_ORDER)) {
foreach ($liens as $lien) {
$abs = url_absolue($lien[2], $base);
if ($abs <> $lien[2])
$texte = str_replace($lien[0], $lien[1].$abs.$lien[3], $texte);
}
}
return $texte;
}
@++
Comme deja expliqué, cette solution n'est vraiment pas une bonne approche.
Il vaut mieux mettre du code PHP dans le squelette plutot que ca !
Si tu generes un cache de cette facon, il est valable pour tout le monde.
je pensais qu'avec un cache de 0, je n'avis pas de cache!
Pour aborder les acces restreints ou la personnalisation, il faut generer plusieurs caches differents en fonction du statut ou de l'id de l'utilisateur.
La, si mysql tombe en panne, le dernier cache généré sera renvoyé à tout le monde, donc si c'est un admin, hop, tout le monde admin !
effectivement je n'avais pas pensé à la panne mysql!
C'est quand meme pas dur de faire un inclure :
en tout cas, vu le nombre de demande ce n'est pas aussi évident que ça!
<INCLURE(bloc_statut.php){bloc=toto}>
et dans bloc_statut.php :
<?php
//quelques tests de secu, ici ...
$fond=$contexte_inclus['bloc']
$contexte_inclus['statut']=$auteur_session['statut'];
include ("inc-public.php3");
?>
rpapa a écrit :
>> Il vaut mieux mettre du code PHP dans le squelette plutot que ca !
> je pensais qu'avec un cache de 0, je n'avis pas de cache!
???
ben il faut bien compiler le squelette et l'executer (cad generer le fichier de cache correspondant) pour avoir le resultat ...
Mais de toutes facons, comme je le disais, il vaut mieux dans ce cas mettre du PHP dans le squelette.
Au moins
- le reste est mis en cache et tu peux donc exploiter ce cache
- le code est executer à chaque fois, mais c'est le but
- tu ne fais pas generer du code au compilo à chaque appel (puisqu'il le genere à chaque fois et qu'à chaque fois c'est le meme ... autant ecrire direct le resultat, non ?)
L'approche un cache par statut, c'est quand meme mieux.
Pour le cache "personnel" (quand tu met l'id de l'utilisateur dans le contexte), c'est plus discutable, mais j'ai pas mal de cas ou c'est interessant.
en tout cas, vu le nombre de demande ce n'est pas aussi évident que ça!
<INCLURE(bloc_statut.php){bloc=toto}>
et dans bloc_statut.php :
<?php
//quelques tests de secu, ici ...
$fond=$contexte_inclus['bloc']
$contexte_inclus['statut']=$auteur_session['statut'];
include ("inc-public.php3");
?>
reprenons dans le cas de la 1.9b2
comment faire alors qu'il n'y a plus de .php?
si ca marche encore.
Si tu ne passes pas de fichier à l'inclure, il utilise spip.php (ex page.php).
Si tu passes un fichier, il ira le chercher dans le path.
Les differents blocs d'inclusions peuvent donc etre mis dans /squelette (et si possible, un petit .htaccess empeche l'acces direct.
Au fait, il vaut mieux choisir un autre nom que statut et id_auteur (plutot session_statut et session_id_auteur) pour eviter les embrouilles avec des champs spip.