- sept. 11, 2010
-
-
cerdic a rédigé
-
cerdic a rédigé
Pour bloquer l'acces a une page de l'espace prive en squelette, il suffit de placer avant la zone interdite un test avec |interdire_acces, qui redirige vers /?exec=403 si il recoit un false ou equivalent : [(#AUTORISER{faire,truc}|interdire_acces)] Le filtre provoque une redirection avec un exit. On cree un squelette pour la page 403, et on autorise les exec a commencer par un 4 dans la verification de index.php
-
cerdic a rédigé
-
cerdic a rédigé
ne plus generer le title dans le php de commencer_page lorsqu'on utilise un squelette, pour permettre de le mettre a la main dans head/xxx Par defaut, la fonction f_title_auto est appelee dans le pipeline affichage_final_prive et pose un title si il n'y en a pas, en capturant le premier h1 de la page (ou a defaut le premier h2/h3).
-
cerdic a rédigé
rajouter un div dans la zone haute qui sert a mettre la hierarchie, les onglets et le gros titre, pour centrer tout cela comme dans la version php
-
cerdic a rédigé
deplacer le titrage auto dans le charger du formulaire_editer_logo, ca permet de l'appeler depuis un squelette sans avoir a preciser le titre (mais ca reste toujours possible)
-
Fil a rédigé
-
cerdic a rédigé
pour les pages de squelette prive, envoyer dans les pipelines affichage_final_prive et affichage_entetes_final_prive
-
- sept. 10, 2010
-
-
cerdic a rédigé
systeme de boite pour l'espace prive (#BOITE_OUVRIR, #BOITE_PIED, #BOITE_FERMER), en demonstration sur la page ecrire/?exec=typo, qui montre aussi comment appeler des onglets
-
cerdic a rédigé
-
cerdic a rédigé
#INTRODUCTION doit toujours renvoyer un texte dans un paragraphe quand toujours_paragrapher est actif : il faut reparagrapher apres avoir coupe
-
cerdic a rédigé
Introduction de styliser_par_z_dist surchargable, qui inclus les mecanismes de ZPIP, actifs pour l'espace prive, activable pour l'espace public par un define('_ZPIP'); la fonction echaffaudable est egalement integree, mais pas la fonction d'echaffaudage. Aucun echaffaudage n'est pour l'instant integre dans l'espace prive La structure des blocs pour l'espace prive est : head, barre-nav, hierarchie, navigation, extra, contenu et pied Structure minimaliste des squelettes, avec une implementation par defaut de chaque bloc. Pour le moment, les squelettes head, barre-nav et pied font appel aux fonctions php pour generer le html comme sur les autres pages, mais il va sans dire qu'a terme on inversera le schema (quelques fonctions sont crees pour atteindre le bon morceau de html, et quelques appels sont rationalises en faisant disparaitre les vieux arguments plus utilises) La squelettes de l'espace prive sont detectes par la fonction tester_url_ecrire qui aiguille sur exec=fond pour les squelettes Z et exec=fond_monobloc pour les anciens squelettes temporaires mono-fichier balises par des commentaires. En l'etat, il est possible de creer une page de l'espace prive par un simple squelette contenu/page-xx ou contenu/yyy pour un objet de SPIP (on maintient le distingo entre les deux types de page). Les plugins pourront le faire de meme, a condition de bien mettre dans un sous dossier prive/squelettes/ du plugin On integre le modele typo de petronille (merci tetue) et une page-typo pour commencer
-
- sept. 09, 2010
-
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
Lorsque les arguments d'un CVT contiennent une url de retour, et que celle-ci est construite par l'appelant sur la base de #SELF, celle-ci peut etre polluee par une variable postee dans le formulaire. Du coup les arguments changent et la balise #FORMULAIRE ne reconait pas le formulaire responsable du post. La seule solution etait de forcer la prise en compte du POST, ce qui interdit d'avoir plusieurs formulaires sur la meme page. Pour y remedier, on introduit en sus des 3 fonctionc charger, verifier, traiter, une fonction optionnelle identifier qui est chargee de retourner une signature en fonction des arguments du formulaire, en ignorant ceux qui ne reprensentent pas l'objet saisi. On aurait pu demander a charger de retourner cette signature dans la table des valeurs, mais ca aurait oblige a faire un double appel a la fonction charger() du formulaire.
-
cerdic a rédigé
En attendant une vrai refonte des logos, moderniser le formulaire d'edition des logo en passant en CVT, puisque tout etait presque pret dans le plugin ajaxforms Evacuation du code mort dans inc/iconifier
-
cerdic a rédigé
Lorsqu'un define force les droits de webmestre, l'indiquer sur sa fiche perso (si on ne l'est pas) ou lors de la tentative d'edition des statuts d'un admin (si on l'est) Si on n'est pas webmestre et que ce n'est pas gere par un define, un bouton 'Me donner les droits de webmestre' permet de se promouvoir avec verification par FTP sans avoir a refaire l'installation.
-
salvatore a rédigé
-
salvatore a rédigé
-
salvatore a rédigé
-
Fil a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
merge des langues avec la branche 2.1 (+ correctif sur icone_visiter_site qui etait doublonee dans ecrire et spip par une erreur lors de l'integration du bandeau) Salvatore si tu m'entends ....
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
objet=syndic -> site public=1 n'est pas un connect (on n'accepte pas les numerique pur pour connect)
-
cerdic a rédigé
-
cerdic a rédigé
Permet par exemple de recuperer dans le plugin forum le titre et l'url de l'objet sur lequel porte le forum, quel qu'il soit (ce que ne permet pas une boucle dont la table doit etre connue a la compilation), avec #INFO_URL{#OBJET,#ID_OBJET} et #INFO_TITRE{#OBJET,#ID_OBJET} Utilise le filtre generer_info_entite($id_objet,$ojet,$info). Attention, l'ordre des arguments de ce filtre est inverse, par coherence avec la fonction existante generer_url_entite. Il peut de ce fait aussi etre utilise plus simplement comme filtre : [(#ID_ARTICLE|generer_info_entite{'article','titre'})] /** * Donner n'importe quelle information sur un objet de maniere generique. * * La fonction va gerer en interne deux cas particuliers les plus utilises : * l'URL et le titre (qui n'est pas forcemment le champ SQL "titre"). * * On peut ensuite personnaliser les autres infos en creant une fonction * generer_<nom_info>_entite($id_objet, $type_objet, $ligne). * $ligne correspond a la ligne SQL de tous les champs de l'objet, les fonctions * de personnalisation n'ont donc pas a refaire de requete. * * @param int $id_objet * @param string $type_objet * @param string $info * @return string */ function generer_info_entite($id_objet,$ojet,$info)
-
cerdic a rédigé
suite de [16057] : la page mots_tous fait appel maintenant a lister_objets pour lister les mots d'un groupe. Le processus de suppression d'un mot est revu pour plus de convivialite une action supprimer_mot dediee est cree pour simplifier (un peu) l'action editer_mots qui ne doit plus servir dans ce cas. On evacue grouper_mots qui ne sert plus
-
cerdic a rédigé
3 classes error, noticen et success a utiliser pour styles les messages hors formulaire
-
- sept. 08, 2010
-
-
cerdic a rédigé
-
cerdic a rédigé
Les vues sont definies dans prive/listes/ elles portent par defaut le nom de la table spip, mais il peut y avoir des variantes (cf vue visiteurs.html) Elles sont utilisees dans l'espace prive via $lister_objets = charger_fonction('lister_objets','inc'); et ensuite appelees par $lister_objets($vue,$contexte); A noter la presence d'un critere where qui permet d'injecter des conditions specifiques ponctuelles, et qui recupere le 'where' fournit au contexte. Ces listes sont aisement reutilisables dans des squelettes meme_rubrique est unifiee en faisant appel direct a lister_objets. Les informations inutiles sont masquees en css. afficher_objets devient obsolete. On ne supprime pas tout son code car il peut encore etre utilise par des plugins, mais on note l'obsolesence dans les divers fichiers concernes. Il reste la page mots_tous a unifier, elle presente un type de liste de mot particulier.
-
cerdic a rédigé
-
cerdic a rédigé
* #SAUTER{n} permet de sauter en avant n resultats dans une boucle * La balise modifie le compteur courant de la boucle, mais pas les autres * champs qui restent les valeurs de la boucle avant le saut. Il est donc * preferable d'utiliser la balise juste avant la fermeture </BOUCLE> * * L'argument n doit etre superieur a zero sinon la balise ne fait rien * */
-
cerdic a rédigé
* Implementation securisee du saut en avant, * qui ne depend pas de la disponibilite de la fonction sql_seek * ne fait rien pour une valeur negative ou nulle de $saut * retourne la position apres le saut * * @param resource $res * @param int $pos * position courante * @param int $saut * saut demande * @param int $count * position maximale * (nombre de resultat de la requete OU position qu'on ne veut pas depasser) * @param <type> $serveur * @param <type> $option * @return int */ function sql_skip($res, $pos, $saut, $count, $serveur='', $option=true)
-
cerdic a rédigé
utilise pour les listes d'objets de l'espace prive (a suivre) /** * Un critere {tri} pour gerer un champ de tri qui peut etre modifie dynamiquement * par la balise #TRI * * {tri [champ_par_defaut][,sens_par_defaut][,nom_variable]} * champ_par_defaut : un champ de la table sql * sens_par_defaut : -1 ou inverse pour decroissant, 1 ou direct pour croissant * peut etre un tableau pour preciser des sens par defaut associes a chaque champ * exemple : array('titre'=>1,'date'=>-1) pour trier par defaut * les titre croissant et les dates decroissantes * dans ce cas, quand un champ est utilise pour le tri et n'est pas present dans le tableau * c'est la premiere valeur qui est utilisee * nom_variable : nom de la variable utilisee (par defaut tri_nomboucle) * * {tri titre} * {tri titre,inverse} * {tri titre,-1} * {tri titre,-1,truc} * * le critere {tri} s'utilise conjointement avec la balise #TRI dans la meme boucle * pour generer les liens qui permettent de changer le critere de tri et le sens du tri * * Exemple d'utilisation * * <B_articles> * <p>#TRI{titre,'Trier par titre'} | #TRI{date,'Trier par date'}</p> * <ul> * <BOUCLE_articles(ARTICLES){tri titre}> * <li>#TITRE - [(#DATE|affdate_jourcourt)]</li> * </BOUCLE_articles> * </ul> * </B_articles> * * NB : * contraitement a {par ...} {tri} ne peut prendre qu'un seul champ, * mais il peut etre complete avec {par ...} pour indiquer des criteres secondaires * * ex : * {tri num titre}{par titre} permet de faire un tri sur le rang (modifiable dynamiquement) * avec un second critere sur le titre en cas d'egalite des rang * */
-
cerdic a rédigé
-
cerdic a rédigé
-