Skip to content
Extraits de code Groupes Projets
  1. oct. 26, 2006
  2. oct. 25, 2006
  3. oct. 24, 2006
    • esj's avatar
      [7695] encore plus informatif. · 9646958d
      esj a rédigé
      9646958d
    • esj's avatar
      Suite de [7691]: le bouton "retour" dans le formulaire de message de forum... · 4cbea1de
      esj a rédigé
      Suite de [7691]: le bouton "retour" dans le formulaire de message de forum interne ne marchait plus au 2e coup, vues les acrobaties imposées par le non respect du RFC. On retarde donc au maximum la création de l'URL de retour, avec joli lot de consolation au final. En effet, cette page présentait le défaut de ne pas spécifier à quel objet ce forum se rapportait (elle n'affichait que le titre, qui pouvait de plus changer dans le fil des messages). A présent le haut de page rappelle le type de l'objet initial (article, breve et), son numéro et son titre. Seul regret: le non respect du RFC empeche d'installer une ancre pour atterir au niveau du formulaire dans la page. Mais ça n'est vraiment genant que dans une réponse à un message de forum particulièrement long.
      4cbea1de
    • esj's avatar
      Tache #605: forum_envoi délègue l'écriture en base à un script de action/. · b2f1b72a
      esj a rédigé
      Sportif d'une part parce que pas du tout conforme XHTML, et surtout parce que les clients HTTP ne respectent pas son RFC en ce qu'une redirection d'un POST est faite en GET et est donc inutilisable ici. Conséquence: le script est obligé d'inclure ecrire/index, lequel pensait benoitement que toutes ses variables seraient toujours globales, ce qui n'est pas le cas dans ce contexte. Bilan: réécriture de ecrire/index en explicitant $GLOBALS partout, et réécriture aussi de inc/lang qui doit chercher des mots dans le module "ecrire" quand bien meme on l'utilise à partir de l'espace public.
      b2f1b72a
  4. oct. 23, 2006
    • esj's avatar
      Fusion des fonctions spip_initialisation et spip_intialisation_parametree. · 5b1b73ff
      esj a rédigé
      Suite à quelques essais (pas toujours réussis il est vrai) et échanges divers, l'installation de Spip, notamment en mutualisé, repose à présent sur les symboles suivants:
      
      - plusieurs constantes _DIR_* au début de inc_version définissent les répertoires où se trouvent les sources, considérées comme inaccessibles en écriture car partageable par plusieurs sites.
      
      - ensuite, plusieurs constantes _NOM_* définissent le nom (relatif) des fichiers et répertoires propres et indispensables à chaque site utilisant Spip, savoir 
      
      	define('_NOM_CONFIG', 'mes_options');	
      	define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/"); 
      	define('_NOM_TEMPORAIRES_ACCESSIBLES', "var/");
      	define('_NOM_PERMANENTS_INACCESSIBLES', "etc/");
      	define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/");
      
      	var/ comportant les images réduites créé dynamiquement
      	tmp/ jouant le role d'ecrire/data  et comportant egalement CACHE/
      	etc/ jouant le role de ecrire/ en tant que repertoire accessible en écriture.
      
      - inc_version ne définit plus de fontions, mais charge immédiatement inc/utils qui à l'inverse ne fait que définir des fonctions.
      
      - inc_version charge ensuite le fichier ecrire/mes_options.php (pour compatibilité) ou etc/mes_options (préférable aujourd'hui);
      
      - enfin, il appelle la fonction d'initialisation ainsi:
      
      	@spip_initialisation(
      	       (_DIR_RACINE  . _NOM_PERMANENTS_INACCESSIBLES),
      	       (_DIR_RACINE  . _NOM_PERMANENTS_ACCESSIBLES),
      	       (_DIR_RACINE  . _NOM_TEMPORAIRES_INACCESSIBLES),
      	       (_DIR_RACINE  . _NOM_TEMPORAIRES_ACCESSIBLES)
      	       );
      
      ce qui va définir les 4 répertoires accessibles en écriture à la racine du site, et initialiser toutes les autres constantes (notamment _SPIP_CHMOD).
      
      - toutefois l'inclusion de mes_options peut neutraliser cet appel soit partiellement (en définissant quelques unes des constantes normalement définies par spip_initialisation qui ne pourra plus agir dessus) soit totalement (en appelant lui-meme spip_initialisation avec d'autres arguments que ceux ci-dessus).
      
      Une application typique est de mettre dans ecrire/mes_options.php (ou etc/mes_otpions.php) les lignes suivantes:
      
      define('_SPIP_CHMOD', 0770);
      
      if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
      	if (is_dir($e = _DIR_RACINE . 'Ajouts/' . $r[1]. '/')) {
      		$cookie_prefix = $table_prefix = $r[1];
      		define('_SPIP_PATH', 
      			_DIR_RACINE . 'Ajouts/' . $table_prefix  . '/:' .
      			_DIR_RACINE.':'.
      			_DIR_RACINE .'dist/:' .
      			_DIR_RESTREINT);
      
      		spip_initialisation(
      		       ($e . _NOM_PERMANENTS_INACCESSIBLES),
      		       ($e . _NOM_PERMANENTS_ACCESSIBLES),
      		       ($e . _NOM_TEMPORAIRES_INACCESSIBLES),
      		       ($e . _NOM_TEMPORAIRES_ACCESSIBLES)
      		       );
      
      		if (is_readable($e .=  _NOM_CONFIG . '.php')) include($e);
      	}
       }
      
      La première ligne réduit l'accès aux répertoires et fichiers créés par le serveur http à ce seul serveur. 
      
      A partir de l'URL du script appelé, les lignes suivantes déduisent un nom qui doit etre le nom d'un sous-répertoire Ajouts dans l'installation de Spip. L'exécution de ce script commence donc par déclarer les 4 sous-répertoires spécifiques au site, ainsi que le préfixe de ses table SQL. Au cas où existerait un fichier etc/mes_options pour ce site spécifique, celui est également chargé.
      
      L'utilisation des constantes _NOM_* permet donc de disposer d'un ensemble de répertoires et fichiers qui n'ont meme pas à savoir s'ils utilisent une installation mutualisée ou non de Spip.
      
      ATTENTION: il faut bien voir que les fonctions de inc/utils ne seront vraiment utilisables qu'après appel de spip_initialisation, car les constantes qu'elles utilisent (_DIR_TMP, _DIR_IMG etc) ne sont pas encore définies à l'entrée de mes_options (c'est justement ce qui permet de les personnaliser).
      5b1b73ff
  5. oct. 22, 2006
  6. oct. 21, 2006
    • Fil's avatar
      attention aux champs extra; desormais les fonctions qui creent le formulaire... · 5d05165a
      Fil a rédigé
      attention aux champs extra; desormais les fonctions qui creent le formulaire extra ou la liste des champs enregistres ne font plus echo eux-memes (a reporter dans les plugins) + il y avait un bug dans editer_rubriques, car ['champs_extra'] c'est la config des champs, pas les donnees envoyees par le redacteur
      5d05165a
    • JamesRezo's avatar
      la fonction spip_initialisation_parametree prend désormais 4 paramètres... · a9936bf2
      JamesRezo a rédigé
      la fonction spip_initialisation_parametree prend désormais 4 paramètres représentant les 4 répertoires non partageables d'un SPIP.
      _DIR_CHMOD, s'appelle maintenant _SPIP_CHMOD et est calculée à l'installation de spip. On colle la constante dans le fichier de connection.
      On ajoute le répertoire tmp_img/ qui servira de base aux données volatiles mais devant être accessible via http. C'est là qu'on calculera tous les images réduites, (à tester)
      On en profite pour faire une très légère toilette au page d'installation. C'est pas encore fantastik ;)
      
      TODO: la vérification des sous-répertoires de tmp/ en écriture, voire, leur création à la volée
      a9936bf2
  7. oct. 19, 2006
  8. oct. 17, 2006
  9. oct. 16, 2006
  10. oct. 15, 2006
  11. oct. 13, 2006
    • esj's avatar
      Tache #605: la création ou la modification d'un auteur passent dans le... · ec4f8b3e
      esj a rédigé
      Tache #605: la création ou la modification d'un auteur passent dans le répertoire action. Difficile, car il y avait aussi le mode d'appel "ajouter un nouvel auteur à cet article" plus le formulaire "restreindre à la rubrique" qui induisaient une grosse combinatoire de cas, à tester et à la production du formulaire et à sa réception par souci de sécurité (sinon il aurait été facile de rejouer un hash permettant de tout faire sur tout le monde). Un petit changement du coup: dès l'aterrissage sur le script de création, l'auteur est créé.
      
      Là aussi la fusion auteur_info / auteurs_edit se pose, mais il y a encore un téléchargement: le logo. Il faudrait étudier la mise en invisibilité de celui-ci lorsqu'on ouvre le formulaire de modification et réciproquement. Cela dit la
      remarque vaut pour articles / articles_edit où les boutons de téléchargement pourraient devenir inopérants.
      ec4f8b3e
  12. oct. 11, 2006
    • esj's avatar
      L'espace privé passe en XHTML 1.0 transitionnal: suite aux nombreuses... · 49b975c9
      esj a rédigé
      L'espace privé passe en XHTML 1.0 transitionnal: suite aux nombreuses réécritures de ces derniers temps pour placer du Ajax à tous les coins de formulaire, le code HTML de l'espace privé est à présent très proche de ce standard. Les erreurs restantes sont pour la plupart communes avec le HTML4, il n'est donc plus nécessaire de conserver ce Doctype anté-diluvien.
      
      Ce dépot résoud aussi #617 (qui a involontairement permis de trouver des
      non conformités XHTML).
      49b975c9
  13. oct. 10, 2006
  14. oct. 09, 2006
    • esj's avatar
      Tâche #605: l'accès en écriture de la table des rubriques est déporté dans le... · 40bb3067
      esj a rédigé
      Tâche #605: l'accès en écriture de la table des rubriques est déporté dans le répertoire action. En prime, un admin restreint cliquant sur le bouton de création de rubrique (et non de sous-rubrique) crééra une sous-rubrique dans sa premiere rubrique plutot que d'etre rejeté. Et filtrage plus systématique des mauvais déplacements.
      40bb3067
    • esj's avatar
      Depuis la mise sous forme d'action (tache #605) de la modification d'un... · 1c7144c4
      esj a rédigé
      Depuis la mise sous forme d'action (tache #605) de la modification d'un article, il était possible à un admin restreint de publier un article dans n'importe quelle rubrique, après l'avoir publié dans une des siennes. A présent cette tentative mettre l'article comme "soumis à publication" dans la rubrique visée.
      
      A noter aussi un petit bug qui empechait un article déplacé d'hériter de langue de sa nouvelle rubrique si celle-ci l'exigeait.
      1c7144c4
  15. oct. 08, 2006
    • esj's avatar
      Rendre surchargeables les fonctions produisant des flux RSS: c'était déjà... · 55ba07f8
      esj a rédigé
      Rendre surchargeables les fonctions produisant des flux RSS: c'était déjà presque le cas avec le "function_exists('affiche_rss'....)" et ses 3 fonctions prédéfinies qui sont donc maintenant 3 fichiers.
      
      Le répertoire inc/ commençant à contenir vraiment trop de fichiers, les 3 fichiers en question sont abrités dans un nouveau répertoire nommé xml/. On pourrait d'ailleurs convenir plus généralement que tout fichier dont le role est de construire un texte dans un certain format MIME aille dans un répertoire à ce nom, ça permetrait de réorganiser inc/. 
      
      A noter que l'appel de action/rss.php avec le format dit "ical"  ne semble déclenché nulle part (ça tombe bien, il ne devrait pas etre dans un répertoire nommé xml/ ...).
      55ba07f8
  16. oct. 04, 2006
  17. oct. 03, 2006
    • esj's avatar
      Passage en Ajax du formulaire de changement des droits d'un auteur: la... · c85a72dd
      esj a rédigé
      Passage en Ajax du formulaire de changement des droits d'un auteur: la fonction "afficher_formulaire_statut_auteur" cède la place au trio de scripts "instituer_auteur" greffant dans le DOM un noeud homonyme . Le script "auteurs_edit" (mal nommé) est entièrement en Ajax, le script "auteur_infos" (idem) l'est à moitié mais ne présente déjà plus de risque de perte de saisie comme auparavant.
      
      A noter qu'il a fallu désamorcer le cache du DOM dans le mini-navigateur Ajax
      de rubrique, car il est incompatible avec un Ajax englobant, ce qui est le cas
      pour la gestion des adminstrateurs restreints. Il faudra repenser le système
      de référence dans le DOM à terme.
      c85a72dd
  18. oct. 02, 2006
  19. sept. 30, 2006
  20. sept. 29, 2006
  21. sept. 27, 2006
    • esj's avatar
      Interface de gestion des logos: · d0f96ff4
      esj a rédigé
      	- la fonction inc_chercher_logo introduite en [6883] était souvent déjà chargée avant que l'on calcule la surcharge, ce qui rendait celle-ci inopérante;
      
      	- le formulaire de gestion des logos (ci-devant afficher_boite_logo) devient une fonction surchargeable inc_iconifier_dist;
      
      	- dans le cas de la suppression, ce formulaire est appelé en mode Ajax.
      
      	- au passage, correction du bug qui empechait l'affichage du logo des rubriques dans l'affichage de la page d'accueil et autres;
      
      Et un peu de #587 dans le script articles.
      d0f96ff4
  22. sept. 25, 2006
  23. sept. 24, 2006
Chargement en cours