Dotclear

2018 août 13

Dotclear 2.14

Nom de code : Dark Crystal

Crystal parce que noces de, vu que ça fait 15 ans aujourd'hui que Dotclear tourne sur les meilleurs serveurs de blogs de la planète !

Dark parce qu'il y a, depuis cette version, un mode sombre pour l'interface d'administration !

Dark Crystal parce que j'aime bien ce film sorti il y a 35 ans :-)

Sinon, c'est comme d'habitude…

Enjoy!

2018 janv. 27

Dotclear 2.13.1

Une petite mise à jour qui corrige deux bugs agaçants dans l'éditeur de thème (lorsque la coloration syntaxique est activée) et avec l'éditeur traditionnel de Dotclear, en mode XHTML.

2018 janv. 13

Dotclear 2.13

Quelques mots :

  • PHP 5.5+ devient obligatoire comme un nouveau système plus sécurisé a été implémenté pour le stockage des mots de passe dans la base de données, système qui nécessite a minima cette version de PHP
  • Les informations affichées sur le tableau de bord, comme les mises à jour de Dotclear ou les nouvelles, le sont dorénavant de manière asynchrone, donc plus de blocage inhérent à un serveur parfois fantôme !
  • Un nouveau driver pour les bases de données MySQL encodées avec UTF8-mb4
  • Quelques bugs corrigés
  • Quelques améliorations de l'expérience utilisateur côté administration des blogs

Profitez !


Note pour les utilisateurs et administrateurs :

Le nouveau système de chiffrement des mots de passe ne nécessite aucune procédure de migration. Ceci sera fait au fur et à mesure à la première connexion de chacun des utilisateurs.

Notes pour les développeurs :

Le nouveau système des mots de passe implique deux incompatibilités par rapport aux versions précédentes :

  1. La fonction/méthode checkPassword() (/inc/core/class.dc.auth.php) requiert dorénavant un mot de passe non chiffré (habituellement le contenu du champ de formulaire) plutôt que la forme déjà chiffrée.
    Vous devez donc maintenant l'utiliser de cette façon : $core->auth->checkPassword($_POST['your_pwd']) plutôt que celle-ci : $core->auth->checkPassword($core->auth->crypt($_POST['your_pwd'])).

  2. La fonction/méthode crypt() (/inc/core/class.dc.auth.php) ne donne maintenant plus deux fois de suite le même résultat pour le même paramètre. Si vous avez besoin d'un chiffrement à l'ancienne mode vous pouvez utiliser la fonction/méthode cryptLegacy() (même fichier).

Si vous avez besoin d'un UID/clé unique, utilisez http::browserUID(DC_MASTER_KEY.$core->auth->userID().$core->auth->cryptLegacy($core->auth->userID())) (sera peut-être sujet à amélioration dans le futur).

2017 oct. 26

Dotclear sur Github

J'ai trouvé et configuré, il y a quelques jours, un service nommé Git-hg Mirror qui permet de synchroniser un dépôt Bitbucket (mercurial ou hg) avec un dépôt Github (git), dans les deux sens, ou dans un seul des deux sens seulement.

J'ai choisi de conserver Bitbucket comme référence, lui-même étant une copie du dépôt officiel du serveur Dotclear, et d'utiliser Github comme dépôt secondaire pour recueillir d'éventuels tickets et dans le meilleur des cas patchs et pull-requests.

La synchronisation s'effectue toutes les 3 heures et au passage je tiens à remercier le support de Git-hg Mirror qui est super réactif.

J'ai également fait de même avec le dépôt de Clearbricks.

En détail, les dépôts Github sont ici :

Si vous voulez utiliser ces dépôts pour développer et contribuer, clonez d'abord le dépôt dotclear puis, clonez le dépôt clearbricks en sous-module dans le sous-répertoire inc/libs/clearbricks.

Il sera peut-être utile de configurer un .git-ignore local à votre installation pour ignorer le sous-module, en fonction de vos besoins. D'ailleurs si nécessaire on rajoutera ce .git-ignore au dépôt officiel côté mercurial.

Enjoy and contribute!

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. 7

Dans le bas de laine de Dotclear

Je ne sais plus si on l’a dit ici, mais Noé aka Lomalarch a pris du galon au sein de l’association Dotclear : de Trésorier adjoint, il est devenu Trésorier en plein – le poste d’adjointe étant depuis lors occupé par Luce aka llu sur le forum. Les manœuvres iznogoudiennes qui ont permis cette évolution majeure dans l’équipe ne sont pourtant pas le sujet de ce billet. À l’occasion d’une interview sur ZDNet de l’indispensable Tristan Nitot[1], où il nous fait l’amitié de parler de Dotclear, le chef suprême nous a demandé de clarifier pour la foule de nos lecteurs le fonctionnement économique de notre petite association.

Nous n’irons pas par quatre chemins : l’argent de Dotclear, c’est vous, donateurs et adhérents de l’association. Nous recevons régulièrement dons et adhésions ou renouvellement, car nous avons la chance d’avoir une communauté mobilisée, pour qui la pérennité du projet est importante. Et on vous aime aussi !

Par ailleurs, cela suffit aussi parce que nous avons peu de frais. Pas de salaires, notamment. Comme le souligne Tristan, le projet repose entièrement sur le bénévolat. Alors que dépensons-nous ? Tous les mois, nous réglons la facture du serveur chez Online[2] qui abrite les sites DotAddict, et chaque année, les noms de domaine associés au projet sont renouvelés auprès de Gandi.

Pour le reste, il nous arrive de financer quelques repas lors de réunions de travail ou install parties, voire le déplacement de certains de nos campeurs Dotclear.

Pour gérer tout ça, après une période avec Peakasso, nous utilisons désormais le CRM (évidemment libre) Dolibarr.

Et afin que vous visualisiez les zilliards dont nous avons la charge, les noms de domaine associés au projet, reviennent à un peu moins de 220 € / an (TTC, en tant qu’association nous ne sommes pas assujettis à la TVA), le serveur un peu moins de 11 € par mois (soit pas tout à fait 130 € par an) (mais c’était pas loin du triple avant l’été dernier). Vos dons et adhésions ont représenté en 2015 un peu plus de… (on retient son souffle) 475 € ! Je vous laisse, je vais faire creuser ma deuxième piscine \o/

Notes

[1] Actuellement en tournée promo pour son livre Surveillance :// que nous recommandons les yeux fermés.

[2] Serveur déménagé l’été dernier pour une formule plus économique.

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.

- page 5 de 20 -

Sites map