Dotclear

2017 août 13

Dotclear 2.12.1

Une nouvelle petite mise à jour aujourd'hui qui corrige un bug qui touche ceux qui utilisent un thème basé sur le jeu de template (par défaut) mustek. Elle règle aussi un petit problème avec les titres de certains médias au moment de leur envoi dans la médiathèque.

N'oubliez pas de vider le cache des templates (plugin Entretien) ainsi que le cache de votre navigateur après avoir fait une mise à jour. Dans le cas où vous auriez opté pour une mise à jour manuelle, n'oubliez pas non plus de vous déconnecter et de vous reconnecter, certaines mises à jour (concernant la base de données) se font à ce moment là.

2017 juil. 27

Dotclear 2.12

Mise à jour minimaliste, bien que le CHANGELOG ne soit pas si ridicule que ça, vu qu'il n'y aucune fonctionnalité supplémentaire, simplement des améliorations et des corrections de bug.

Vu l'état des troupes depuis de nombreux mois, voire de nombreuses années, j'ai décidé de réduire la voilure en terme de développement car étant seul pour coder je n'ai pas le courage de me lancer dans des projets conséquents[1] — oui, on a un bus factor de 1 chez Dotclear.

Exit donc l'API REST que j'avais en tête — cela dit un plugin tiers est en cours de développement qui devrait apporter cette fonctionnalité —, exit aussi l'intégration du moteur Twig pour les thèmes, exit aussi pas mal de tickets qui restaient en souffrance faute de bras pour les prendre en charge.

Je vais continuer à maintenir Dotclear, ajouter quelques petites choses qui manquent, comme le support des bases de données MySQL UTF8-MB4, une gestion des mots de passe un peu plus robuste, et ça fera l'objet d'une prochaine 2.13 qui au passage nécessitera PHP 5.5 minimum — il est grand temps de laisser tomber PHP 5.3 vieillissant et plus du tout maintenu.

Note

[1] D'une part c'est pas drôle de coder seul, d'autre part ça manque de revue de code et c'est dangereux.

2016 déc. 29

Dotclear 2.11.2

Une nouvelle petite mise à jour aujourd'hui qui corrige quelques bugs gênants avec PHP 5.3 et PHP 5.4 ; elle règle également le problème de prévisualisation des billets et pages en cours d'édition.

N'oubliez pas de vider le cache des templates (plugin Entretien) ainsi que le cache de votre navigateur après avoir fait une mise à jour. Dans le cas où vous auriez opté pour une mise à jour manuelle, n'oubliez pas non plus de vous déconnecter et de vous reconnecter, certaines mises à jour (concernant la base de données) se font à ce moment là.

2016 déc. 28

Dotclear 2.11.1

Une petite mise à jour qui corrige un problème passé inaperçu lorsqu'on utilise une version de PHP antérieure à 5.5.

Ce problème empêche l'affichage du menu d'administration (colonne de gauche) avec la plupart des plugins, voire empêche leur accès.

Dotclear 2.11

Une nouvelle version qui déroge à nos habitudes, vu qu'elle n'est pas publiée un 13, et en avance par rapport au planning, vu qu'elle était prévue mi-février 2017. Elle déroge aussi avec l'habitude d'avoir un copieux CHANGELOG (liste des modifications/corrections).

En effet, cette version n'apporte rien d'extraordinaire sauf qu'elle facilite à pas mal d'endroits, l'utilisation de Dotclear, et elle corrige quelques bugs parfois gênants au quotidien :

  • Accès plus facile aux réglages des plugins,
  • une personnalisation un peu plus poussée (taille des textes, affichage ou pas d'information complémentaires, …),
  • quelques attributs supplémentaires pour les développeurs/bidouilleurs de thèmes,
  • les webmentions qui viennent s'ajouter aux existants rétroliens (trackbacks) et pingbacks,
  • le thème Berlin s'appuie maintenant sur le jeu de template dotty, qui exploite au mieux HTML5,

L'aspect général de l'administration change également parce qu'avec la 2.11, on utilise dorénavant la police système disponible sur votre machine plutôt que l'Helvetica Neue habituelle. Elle change aussi parce qu'elle met en œuvre une taille de police qui s'adapte, entre deux seuils, à la place disponible sur votre écran. Vous pourrez modifier la taille générale de la police dans vos préférences (3 réglages sont proposés).

À noter qu'on a laissé tomber le support des vieux navigateurs, en particulier toutes les versions d'Internet Explorer à un chiffre, soit jusqu'à la version 9 incluse ; ça permet d'utiliser un peu plus facilement quelques nouveautés de CSS 3, en particulier le système flex pour l'agencement des blocs dans une zone.

Mais je vous laisse découvrir ça chez vous, une fois que vous aurez fait l'attendue mise-à-jour !

PS : Cette version nécessite PHP 5.3 a minima, mais je ne saurais trop vous conseiller de passer à PHP 5.6 voire PHP 7 sans attendre — cette dernière offre un gain de vitesse très appréciable. Il est très possible que la version suivante de Dotclear nécessite une version plus récente que la déjà obsolète 5.3.


Quelques détails techniques pour les développeurs de plugins et les administrateurs de blog :

Réglages et paramètres des plugins

La nouvelle version 2.11 introduit un nouveau système qui permet de définir et de trouver les différents endroits où un plugin peut être paramétré.

Définitions

Il faut définir dans le fichier _define.php du plugin une propriété supplémentaire, nommée settings et qui se construit de la façon suivante :

'settings' => array(
    'self'  => '',
    'blog'  => '#params.id',
    'pref'  => '#user-options.id'
)

La ligne avec ‘self’ permet d’indiquer qu’il y a des réglages sur la page principale du plugin (c’est-à-dire pour les développeurs, dans le fichier index.php).

La ligne avec ‘blog’ permet d’indiquer qu’il y a des réglages dans les paramètres du blog, normalement sur l’onglet « Paramètres » (le #params sert à ça) et que le premier élément concernant le plugin a un identifiant égal à id (on peut par exemple positionner cet id sur l’élément de titre, h4 ou h5, qui précède les options du plugin).

La ligne avec ‘pref’ permet d’indiquer qu’il y a des réglages dans les préférences utilisateur, normalement sur l’onglet « Mes options » (le #user-options sert à ça) et que le premier élément concernant le plugin a un identifiant égal à id.

Vous pouvez, et même devez, ne préciser que les lignes qui sont pertinentes.

Il n’est pas obligatoire de préciser l’id, dans ce cas il suffit de préciser simplement l’onglet. Il n’est pas non plus obligatoire de préciser l’onglet, dans ce cas laisser simplement une chaine vide (”).

Les liens seront affichés dans l’ordre où ils sont définis dans la propriété ‘settings’.

Nota : À cette liste de lien sera ajoutée en premier, s’il existe, le lien vers le fichier _config.php du plugin.

Exemples de définitions

Plugin Antispam

'settings' => array(
    'self' => '',
    'blog' => '#params.antispam_params'
)
  • self → accès aux réglages principaux du plugin sur sa propre page (index.php)
  • blog → accès aux réglages secondaires dans les paramètres du blog

Plugin Mot-clés

'settings' => array(
    'pref' => '#user-options.tags_prefs'
)
  • pref → accès au réglage du format de liste des mot-clés dans les préférences utilisateur

Plugin Maintenance

'settings' => array(
    'self' => '#settings'
)
  • self → accès à l’onglet “Réglages” de la propre page du plugin (index.php)

Affichage

L’affichage des URLs de réglage se font à deux endroits :

Sur la page de gestion des plugins, en dépliant les infos supplémentaires (il suffit de cliquer sur le nom du plugin pour les obtenir)

Sur chacune des pages principales des plugins, à condition d’avoir les droits pour y accéder aux différents réglages, sachant que ce qui est définit pour ‘self’ ne sera pas affiché (a priori on y est déjà).


Si vous avez besoin de plus d'information sur ces développements techniques, utilisez le forum et/ou la mailing-list de développement, voire même le canal IRC #dotclear (irc.freenode.net) où certains d'entre nous traînent parfois…

2016 nov. 2

Dotclear 2.10.4

Une mise à jour qui corrige un problème de connexion à la base de données avec les installations utilisant PostgreSQL inférieur à 9.1

Si vous n'êtes pas dans ce cas, la mise à jour automatique fonctionnera comme d'habitude.

Si vous êtes dans ce cas, pour pouvoir faire la mise à jour automatique, suivez la procédure suivante :

  1. Ouvrez le fichier /inc/libs/clearbricks/dblayer/class.pgsql.php
  2. Insérez une ligne devant la ligne 103 et insérer sur cette nouvelle ligne le code suivant et sauvegardez :
return;

Vous devriez avoir quelque chose comme ça :

		/** @ignore */
		private function db_post_connect($handle,$database)
		{
return;
			$result = $this->db_query($handle,"SELECT * FROM pg_collation WHERE (collcollate LIKE '%.utf8')");
			if($this->db_num_rows($result) > 0) {
				$this->db_result_seek($result, 0);
				$row = $this->db_fetch_assoc($result);
				$this->utf8_unicode_ci = '"'.$row['collname'].'"';
			}
		}

Cette modification vous redonnera accès à votre installation.

Pour la mise à jour automatique, qui détectera cette modification, il faudra installer au préalable un plugin qui permet de passer outre l'avertissement. Ce plugin, FakeMeUp, est disponible sur DotAddict.

Une fois ce plugin installé, vous pourrez faire la mise à jour, puis une fois celle-ci terminée, le désactiver ou le désinstaller.

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.


Le CHANGELOG de cette version :

Dotclear 2.10.4 - 2016-11-02
===========================================================
* PostgreSQL < 9.1 fix

2016 nov. 1

Dotclear 2.10.3

Une petite mise à jour qui corrige principalement deux failles de sécurité légères et qui devrait permettre un fonctionnement plus souple avec certaines configurations de serveur utilisant un proxy.

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.


Le CHANGELOG de cette version :

Dotclear 2.10.3 - 2016-11-01
===========================================================
* Security: Fix CVE-2016-7903: Password Reset Address Spoof — Thank's Hongkun Zeng for report
* Security: Fix CVE-2016-7902: Media Manager, unrestricted File Upload — Thank's Hongkun Zeng for report
* CSP: Cope with external sources used in editor's iframe to preview public external content
* Fix: Cope with post.post_position field during flat import
* Fix: Prevents precondition failed during currently activated theme update
* Fix: Remove unecessary header (cope by dotclear) in page plugin
* Fix: Let some proxies playing with standard http and https ports
* Fix: Let SSL runs through a proxy, it may be ok, sometimes
* 🐛 → Various bugs and typos fixed

2016 août 17

Dotclear 2.10.2

Une petite mise à jour qui corrige un problème qui empêche la mise à jour avec les installations utilisant le système de base de données PostgreSQL.

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

2016 août 15

Dotclear 2.10.1

Une petite mise à jour qui corrige un problème qui empêche l'affichage correct de l'administration pour les nouvelles installations (les mises à jour ne sont pas concernées), une application un peu trop stricte des CSP (Content-Security-Policies) en est la cause, signe que cette protection est efficace !

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

2016 août 14

Dotclear 2.10 : attention !

On vient de me signaler un problème qui empêche les feuilles de style CSS et les scripts Javascript d'être chargées dans l'administration de Dotclear, mais uniquement pour les nouvelles installations.

Si vous êtes confrontés à ce problème, téléchargez plutôt une version 2.9.1, installez-là, puis faites ensuite la mise à jour proposée sur le tableau de bord, cette dernière n'étant pas concernée par ce problème.

Vous pouvez aussi attendre demain que je sorte une version 2.10.1 de Dotclear qui réglera ce bug.

2016 août 13

Dotclear 2.10

Il ne fallait pas manquer l'occasion de sortir une version pour le 13e anniversaire de Dotclear et donc voilà, la 2.10 est disponible dès maintenant et très rapidement sur votre tableau de bord[1] !

Au menu (liste non exhaustive, voyez le CHANGELOG pour plus de détails) :

  • Quelques vulnérabilités corrigées
  • Pas mal de bugs éradiqués
  • Un nouveau jeu de template nommé dotty utilisant autant que faire se peut les nouvelles balises sémantiques HTML5
  • De nouvelles options pour personnaliser et utiliser un peu plus facilement votre administration (dossiers favoris pour la médiathèque, colonnes optionnelles pour les listes de pages et de billets, …)
  • La mise en place des Content-Security-Policies pour l'administration, prélude à une implémentation côté blogs pour la future version 2.11[2]
  • De nouvelles facilités et possibilités pour les développeurs de plugins (elles sont détaillées ci-dessous)
  • Des mises à jour des librairies Javascript utilisées (CKEditor, Codemirror, …)

Pas de révolution donc, mais des évolutions pour une application plus sécurisée et plus robuste ; pour finir, joyeux anniversaire Dotclear \o/

PS : Cette version nécessite PHP 5.3 a minima, mais je ne saurais trop vous conseiller de passer à PHP 5.6 voire PHP 7 sans attendre — cette dernière offre un gain de vitesse très appréciable. Il est très possible que la version suivante de Dotclear nécessite une version plus récente que la déjà obsolète 5.3.


Quelques détails techniques pour les développeurs de plugins (et de thèmes) et les administrateurs de blog :

CSP, aka Content-Security-Policies

Content Security Policy (abrégé CSP) est un mécanisme de sécurité permettant de restreindre l'origine du contenu (tel qu'un script Javascript, une feuille de style etc.) dans une page web à certains sites autorisés. Cela permet de mieux se prémunir d'une éventuelle faille XSS.

[ Wikipedia « Content Security Policy » ]

Les paramètres utilisés (activation et directives) sont accessibles via le module about:config du menu Réglages système. Voir la partie « system », les paramètres concernés étant les suivants :

  • csp_admin_on : activation/désactivation
  • csp_admin_default : directive CSP default-src
  • csp_admin_img : directive CSP img-src
  • csp_admin_script : directive CSP script-src
  • csp_admin_style : directive CSP style-src

Un plugin tiers devant utiliser les services d'un serveur externe peut compléter tout ou partie de ces directives à l'aide du behavior adminPageHTTPHeaderCSP qui fournit en argument un tableau à clé, Chacune des clés correspond à une des directives CSP, sa valeur fournissant la liste des éléments (séparés par des espaces) de la directive.

Exemple :

Si un plugin utilise côté administration l'API Google Maps (pour les scripts), il peut ajouter le serveur correspondant de cette façon :

$core->addBehavior('adminPageHTTPHeaderCSP',array('myAdminBehaviors','adminPageHTTPHeaderCSP'));

class myAdminBehaviors
{
	public static function adminPageHTMLHead($csp)
	{
		if (isset($csp['script-src'])) {
			$csp['script-src'] .= ' maps.googleapis.com';
		} else {
			$csp['script-src'] = 'maps.googleapis.com';
		}
	}
}

Répertoire privé /var

Un nouveau répertoire, nommé var fait son apparition avec la 2.10. Il est situé à la racine et devrait être utilisé pour le stockage d'éléments n'ayant rien à faire dans la médiathèque ou dans le répertoire de cache (qui peut être supprimé à n'importe quel moment sans remettre en question le fonctionnement de Dotclear).

Une constante, DC_VAR, est disponible automatiquement et peut être personnalisée dans le fichier config.php pour construire des chemins d'accès. Deux fonctions sont également disponibles pour récupérer des URLs :

  • dcPage::getVF() pour une URL basée sur l'URL d'administration du blog
  • dcBlog::getVF() pour une URL publique basée sur l'URL du blog

Les développeurs de plugin sont fortement encouragés à créer leur propre répertoire au sein de ce répertoire /var afin de conserver un semblant d'ordre.

Coloration syntaxique via Codemirror

La librairie Codemirror utilisée par l'éditeur de thème est désormais utilisable (côté administration) par n'importe quel plugin. Deux fonctions sont disponibles pour le chargement de la librairie et pour son exécution :

  • dcPage::jsLoadCodeMirror() pour le chargement
  • dcPage::jsRunCodeMirror() pour l'exécution

Exemple pour du code CSS :

# Get interface setting
$core->auth->user_prefs->addWorkspace('interface');
$user_ui_colorsyntax = $core->auth->user_prefs->interface->colorsyntax;
$user_ui_colorsyntax_theme = $core->auth->user_prefs->interface->colorsyntax_theme;

# in <head>
if ($user_ui_colorsyntax) {
	echo dcPage::jsLoadCodeMirror($user_ui_colorsyntax_theme,false,array('css'));
}

# in <body>
if ($user_ui_colorsyntax) {
	echo dcPage::jsRunCodeMirror('editor_css','css_content','css',$user_ui_colorsyntax_theme);
}

L'activation de la coloration syntaxique et le choix du thème à utiliser (parmi les quarante et plus proposés) se font dans « Mes préférences », onglet « Mes options ».


Si vous avez besoin de plus d'information sur ces développements techniques, utilisez le forum et/ou la mailing-list de développement, voire même le canal IRC #dotclear (irc.freenode.net) où certains d'entre nous traînent parfois…

Notes

[1] Un patch est également disponible pour ceux qui préfèrent cette méthode pour appliquer la mise à jour.

[2] La mise en place des CSP est consécutive à une conférence de Nicolas Hoffmann à ce sujet, à Paris-Web en 2015, à laquelle j'ai assisté.

2016 mar. 27

Dotclear 2.9.1

Une version de maintenance qui corrige quelques défauts de la 2.9 précédente. Je rappelle que Dotclear est compatible avec PHP 7 et que les performances en sont considérablement améliorées[1].

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

Note

[1] Si vous utilisez MySQL pour votre base de données, veillez à utiliser mysqli au lieu de mysql qui n'est plus supporté par PHP 7 (voir dans votre fichier inc/config.php).

2016 fév. 29

Dotclear 2.9

Mes agneaux, c'est l'heure de mettre à jour, la nouvelle version 2.9 vous tend les bras !

Fédor Balanovitch (en sortant du bus, ou presque) — Zazie dans le métro, R. Queneau

Au menu de cette version essentiellement de quoi faciliter un peu la vie de ceux qui passent du temps du côté de l'administration de leur(s) blog(s). Une recherche et les derniers dossiers visités pour le gestionnaire de médias, des menus mieux triés et des listes un peu plus filtrables, quelques mises à jour bienvenues pour les librairies javascript utilisées[1].

Et puis on a aussi fait le nécessaire pour que Dotclear tourne correctement avec la nouvelle version 7 de PHP, version assez impressionnante en termes de gain de vitesse, et vous noterez au passage que la version minimum requise de PHP est la 5.3, comme on l'avait annoncé au moment de la sortie de la version 2.8[2].

Pas mal de bugs ont été éradiqués, quelques possibilités nouvelles ont été implémentées pour les développeurs de plugins et les concepteurs de thème, et pour finir une application plus robuste pour tout le monde.

La future version 2.10 sera essentiellement axée sur deux aspects. Premièrement une « remise à plat » des scripts javascript utilisés côté administration, parce qu'à force on finit par avoir quelques vieilleries dans notre « collection », et, deuxièmement, une migration « douce » vers plus de HTML5/CSS3 côté templates et thèmes. Cela dit nous comptons sur vous pour nous dire si vous préféreriez autre chose pour la suite, rien n'est gravé dans le marbre !

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

Notes

[1] D'ailleurs la version 2.2.0 de jQuery est dorénavant disponible côté public de vos blogs, si nécessaire.

[2] Il n'y a d'ailleurs plus guère d'hébergeurs utilisant encore une version antérieure ; même les Pages Perso chez Free sont dorénavant motorisées avec une version 5.6.

2015 oct. 25

Dotclear 2.8.2

Une nouvelle version de maintenance qui règle une potentielle faille de sécurité du côté de la liste des commentaires, et qui renforce le contrôle des extensions de média pouvant être envoyés à la médiathèque[1], vulnérabilités signalées par Tim Coen (Curesec GmbH) que nous remercions pour le signalement, ainsi que deux autres défauts.

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

Note

[1] Vous pouvez également créer un fichier .htaccess à la racine de votre dossier public et y insérer une directive php_flag engine Off pour empêcher toute exécution de code PHP depuis votre médiathèque.

2015 sept. 23

Dotclear 2.8.1

Une nouvelle version de maintenance qui règle une potentielle faille de sécurité du côté des listes des billets et des pages, faille signalée par Yuji Tounai of NTT Com Security (Japan) KK (via Keiko Yashiki du JPCERT/CC) que nous remercions pour le signalement, ainsi que deux autres défauts moins critiques.

La proposition de mise à jour de votre installation devrait apparaître sur votre tableau de bord aujourd'hui ou demain (selon les réglages de votre hébergement) et un patch est disponible pour les développeurs préférant appliquer cette méthode.

- page 5 de 14 -

Sites map