+ Chaque theme de couleur a sa définition (.spip-theme-colors-0 ou [data-spip-theme-colors="3"])
On propose les variantes suivantes : white lightest lighter light dark darker darkest black,
où black et white sont très proches de blanc ou noir.
Ces variantes s'appuient sur un dégradé créé avec couleur_eclaircir ou couleur_foncer à partire de la couleur du thème.
J'ai testé différentes méthodes (dégradés à partir du "l" de hsl, ou du "l" de hslux, fixes (0, 10%, 10%...) ou proportionnels à la luminosité de la couleur d'origine,
mais rien ne collait mieux finalement et apriori d'utiliser couleur_eclaircir ou couleur_foncer.
- encoding (utf8)
- eof_ending (saut le ligne en fin de fichier)
- elseif (pas else if)
- function_call_space (espaces sur fonctions)
- function_declaration (pareil)
- function_typehint_space (pareil)
Au passage on evacue le lien messagerie (disponible le cas echeant sur la fiche auteur linkee), et on limite au 10 derniers auteurs connectes (par ordre chronologique inverse), en indiquant simplement le nombre total si il y en a plus que 10
_SPIP_AJAX peut egalement etre evacue a plusieurs endroits car il suffit de prefixer .blocreplie par .js pour gerer le cas sans js (et garder les blocs deplies dans ce cas)
Les deux feuilles de style spip_style_invisible et spip_style_visible peuvent aussi etre remplacees par l'utilisation des classes .js et .no-js
ordonner les composants js-inline puis css puis js externe (chargement sans blocage)
corrolairement, eviter les appels a jquery dans le js-inline
poser les classes no-js, langue et direction sur <html>, un javascript en debut de head remplace no-js par js
(nhoizey, selon http://paulirish.com/2009/avoiding-the-fouc-v3/ & modernizr & htmlboilerplate)
definir les jeu de classes (tetue) :
none, none-js, none-nojs : masque un element (respectivement toujours, en presence de js,en absence de js)
hidden, hidden-js, hidden-nojs : passe un element en visibility hidden (respectivement toujours, en presence de js, en absence de js)
over, over-js, over-nojs : envoie hors champ un element (respectivement toujours, en presence de js, en absence de js)
Je profite de cette écriture massive pour normaliser quelque chose de trompeur lorsqu'on compare deux versions, savoir l'usage de " ou ' dans le premier argument de define et defined. Comme les chaînes entre apostrophes sont plus rapidement analysées que celles entre guillemets, je choisis l'apostrophe.
Dépot obtenu avec le script Shell:
{{{
a=$(find . -name "*.php" |grep -v extensions/ | grep -v /config/ | grep -v index.php | grep -v public.php | grep -v prive.php )
echo -n "Fichiers: "
echo $a|wc -w
for i in $a
do
sed -f ~/Sites/spip/spip.sed $i > /tmp/f.php
if diff -q $i /tmp/f.php
then
:
else
diff $i /tmp/f.php
# echo $i; php /tmp/f.php
# mv /tmp/f.php $i
fi
done
}}}
et le script Sed:
{{{
s/Copyright (c) 2001-20../Copyright (c) 2001-2011/
s,\(if [(]!*\)*\(defined* *[(]\)"\([^"]*\)"\(.*\);[[:space:]]*[#/]*.*$,\1\2'\3'\4;,
}}}
et permettra aussi de gerer les liens auteur sur n'importe quel objet. On a en plus un champ vu sur la table de liaison, qui est utilise dans la messagerie.
On pourra avoir plus tard un champ role permettant de distinguer les roles des auteurs.
Ce premier commit met a jour toutes les requetes SQL, et prend en charge l'upgrade de la base.
Mais il n'est pas encore totalement fonctionnel.
debug a suivre.
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).
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
Le porte pour MySQL a été reproduit tel quel en PG (en attendant d'y mettre en l'oeuvre l'améioration produite, pour SQLite, je n'ai pas vu où déclarer la fonction.