Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2008-08-12 21:02:07

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Import depuis DC1 : pas de titre de l'article dans les URL générées

Salut,

je m'éparpille un peu, mais c'est pour éviter de faire du hors sujet dans une section de ce forum.

J'écrivais récemment pour avoir de l'aide avec l'extension dc1redirect car j'expérimente quelques menus soucis pour migrer mon blog de DC1 vers DC2. Je me suis vite rendu compte que ce n'était peut-être pas dc1redirect qui posait problème, mais l'import des données de mon ancien blog.

En fait, l'importation se passe pour le mieux dans le meilleur des mondes possible, sauf que les billets fraîchement importés sont accessibles via une URL de la forme

http://localhost/~pierre/dotclear2/index.php?post/2008/07/08/260

Ce qui me chiffonne, c'est que le titre n'apparaît pas ; seul l'ID de l'article est là. Ce que j'entends par là c'est que l'URL sur mon blog Dotclear 1 est de cette forme :

http://localhost/~pierre/dotclear/index.php?2008/07/08/260-nouvelle-categorie

Ici, on a à la fois l'ID et le titre de l'article. Du coup, pas étonnant que dc1redirect ne fonctionne pas...

Alors ma question est la suivante : est-ce que ça fait la même chose chez vous lorsque vous importez un blog DC1 ? Pour l'instant, je travaille en local, mon blog DC1 est en MySQL et le DC2 en PostgreSQL. Help! :)


Pierre

Hors ligne

#2 2008-08-12 21:08:29

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Petite précision supplémentaire : j'ai tenté une réinstallation du blog Dotclear 2 et un import direct après, et ça a fait la même chose.

D'autre part, je pourrais éditer l'URL de chaque article à la main, mais :

- j'ai plusieurs centaines d'articles, donc ça va me prendre un temps fou ;
- Dotclear 2 n'utilise pas les mêmes règles que le premier en ce qui concerne lq gestion des URL. Par exemple, les caractères comme ":" n'étaient pas pris en compte dans Dotclear 1. Du coup, une URL comme index.php?post/2008/08/01/Dotclear-2-:-elle-est-la-et-pour-longtemps (Dotclear 2) est écrite différemment dans Dotclear 1 (index.php?2008/08/01/263-dotclear-2-elle-est-la-et-pour-longtemps)


Pierre

Hors ligne

#3 2008-08-13 18:35:11

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Salut,

J'ai rencontré le même problème que j'ai corrigé avec un bout de script php... Je suis tombé sur cette page en effectuant une recherche sur un autre problème alors si cela peut t'aider, voici mon script :

<?php

$mysqlconnexion=mysql_connect('db-host','db-user','db-pass') or die("Impossible de se connecter : " . mysql_error());

mysql_select_db('db-name',$mysqlconnexion) or die("Impossible de sélectionner la base : " . mysql_error());

# on sélectionne les billets dans la nouvelle base
$select=mysql_query("SELECT * FROM `dc2_post`");

while ($row = mysql_fetch_array($select, MYSQL_BOTH)) {
	# pour chaque billet, on récupère son url et son id
	$badurl=$row[post_url];
	$newpostid=$row[post_id];
	# on récupère l'ancien id du billet grâce à l'url
	$badurlexploded=explode("/", $badurl);
	$oldpostid=$badurlexploded[3];
	# on va chercher le billet correspondant dans l'ancien blog
	$select2=@mysql_query("SELECT * FROM `dc_post` WHERE `post_id` = ".$oldpostid);
	while ($row2 = @mysql_fetch_array($select2, MYSQL_BOTH)) {
		# on récupère la bon url (sans la date)
		$goodurltitle=$row2[post_titre_url];
		$newurl="/".$oldurlexploded[0]."/".$oldurlexploded[1]."/".$oldurlexploded[2]."/".$goodurltitle;
		mysql_query("UPDATE `db-name`.`dc2_post` SET `post_url` = '".$newurl."' WHERE `dc2_post`.`post_id` =".$newpostid." LIMIT 1");
	}
}

mysql_close();

echo "<br /><br />MAJ TERMINEE";

?>

Il faut considérer que tous les billets sont affectés, mais si ils ne le sont pas, ça ne devrait pas poser de problème compte tenu du fait que

$select2=@mysql_query("SELECT * FROM `dc_post` WHERE `post_id` = ".$oldpostid);

ne va rien retourner :)

Hors ligne

#4 2008-08-13 18:44:29

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Attention j'ai mis un slash en trop voici la ligne de code corrigée :

$newurl=$oldurlexploded[0]."/".$oldurlexploded[1]."/".$oldurlexploded[2]."/".$goodurltitle;

Hors ligne

#5 2008-08-13 19:14:11

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Merci pour ton coup de main, mais mon Dotclear 2 tourne sous Postgre, donc ton script ne fonctionnera pas...


Pierre

Hors ligne

#6 2008-08-13 19:28:09

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

ça ne doit pas être bien dur à traduire pour postgre :)

Hors ligne

#7 2008-08-13 20:18:59

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Oui sauf que mon Dotclear 1 est en MySQL... Et ton script est fait pour des tables se trouvant sur la même base.


Pierre

Hors ligne

#8 2008-08-13 21:15:54

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

En fait ce que je cherchais à savoir à la base, c'était si ce comportement (le fait que les URL générées n'incluent que l'ID) était normal ou pas. Le fait que tu aies eu toi aussi un problème m'apporte un élément de réponse :)


Pierre

Hors ligne

#9 2008-08-13 21:57:35

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Oui c'est normal il n'y a plus l'id dans les urls de billet.


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#10 2008-08-13 22:58:32

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Heu... j'ai pas compris. Kozlika, tu veux dire "il n'y a plus que l'id dans les uls de billet" ? Du coup, il faudrait modifier le plugin dc1redirect pour qu'il fonctionne, non ?


Pierre

Hors ligne

#11 2008-08-14 05:32:49

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Oups pardon je crois que je suis hors sujet ! ;-)


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#12 2008-08-14 10:55:51

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Quoi qu'il en soit le problème est assez simple, dc2 va chercher la date+id du billet dans l'ancienne table pour créer le lien (/year/month/day/id).

Il suffit donc de parser ce lien pour récupérer l'id dans l'ancienne base (qui peut être différent dans la nouvelle) et aller chercher le lien qui va bien pour le mettre dans la nouvelle base :)

Je ne sais pas si c'est un comportement normal mais bon... Moi ça m'a dérangé alors j'ai corrigé ça comme j'ai pu :p

Hors ligne

#13 2008-08-14 12:26:11

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Ahah :) Un peu McGyveresque comme réaction, mais tu as raison et tu es pragmatique.

Une autre solution serait d'adapter le plugin dc1redirect, mais je ne comprends pas trop la logique d'une des lignes de PHP (je n'ai jamais bossé sur PHP5 et encore moins sur le code de Dotclear2, donc...). Ça va me faire un joli devoir de vacances !

Parce que je suppose que tous ceux qui vont migrer leurs articles auront potentiellement les mêmes soucis que nous... donc autant faire un truc fonctionnel pour tout le monde :)


Pierre

Hors ligne

#14 2008-08-14 15:22:39

olivier
Administrator
Inscription : 2004-10-11

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Non mais c'est moche, j'ai oublié la partie titre dans le module d'import, je suis trop bête :)

Une mise à jour du plugin arrive, je suis en train de tester un import et je suis vraiment navré.


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

#15 2008-08-14 15:29:25

olivier
Administrator
Inscription : 2004-10-11

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

http://dev.dotclear.net/2.0/changeset/2246

Je n'ai pas le temps de faire une mise à jour du plugin, il n'y a qu'un fichier à changer. J'ai un déménagement sur le feu :)

Par contre, la nightly qui vient de tomber corriger le problème. http://download.dotclear.net/nightly/


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

#16 2008-08-15 00:38:06

michel v
Membre
Inscription : 2005-09-12
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Bon, je vais faire court parce que j'ai déjà perdu une heure et quelques sur ces "bugs" d'URL avec la mise à jour d'un blog sous DC2, et que je risque d'employer des mots qui dépassent ma pensée.

Ne pas supporter d'entrée de jeu les URL existantes dans Dotclear 1, c'est ne pas assurer une transition potable aux utilisateurs existants qui mettent à jour vers la v2.
C'est donner des 404 aux liens entrants sur les vieux billets, et aux aggrégateurs qui tapent sur le flux rss.php ou atom.php (youpi le lecteur occasionnel via flux RSS qui pense que vous n'avez plus rien posté depuis un moment).

Le passage à une version supérieure (pour un utilisateur de base, c'est une "mise à jour" et non une "migration" vers une nouvelle plateforme) ne justifie aucunement de casser les URL de l'existant.

Qu'il n'y ait pas de titres lors de l'import, c'est excusable puisque c'est un oubli reconnu et corrigé dans la foulée.

Mais que les URL de Dotclear 1 ne soit pas prises en compte du tout (désolé mais dc1redirect n'est pas la panacée, les liens des flux restent cassés), alors que ça ne nécessiterait à vue de nez pas beaucoup plus de 10 lignes de code, c'est INEXCUSABLE.

Qu'il faille installer un plugin qui n'est présent qu'en page 5 sur 6 sur un site qui n'est pas dotclear.net (pourquoi n'est-il pas sur dotclear.net s'il est indispensable après une mise à jour ?) pour supporter les anciennes URL d'articles est tout aussi inexcusable.
Que ça ne fasse pas partie de la doc de mise à jour…

"Cool URIs don't change", rappelez-vous. Même en 2008, c'est toujours d'actu.

Ce que l'équipe de choc de Dotclear peut faire pour améliorer la situation :
- supporter d'emblée les anciennes URL au moyen de redirections, pour tout ce qui commence par index.php
- lister des règles htaccess de redirection pour rss.php et atom.php, à la fin de la doc de mise à jour
- acquérir un poney et m'en accorder l'usufruit

(Pour info, j'ai perdu une heure à chercher et tester des trucs, mais l'utilisatrice du blog en question, qui n'est pas une dev web, a perdu tout autant de temps à importer son blog DC1, changer des réglages, réimporter, se demander ce qu'elle a fait de mal au monde pour en arriver là, réimporter, etc, pour finir par se coucher quand elle en a eu marre. Ceci n'est pas une bonne expérience de mise à jour !)

(Oui bon finalement j'ai pas fait court.)

Hors ligne

#17 2008-08-15 01:08:28

Pep
Membre
Inscription : 2004-08-24
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

michel v a écrit :

(désolé mais dc1redirect n'est pas la panacée, les liens des flux restent cassés)

Non mais z'allez lui lâcher les burnes à ce pauvre dc1redirect ?! :-)
Je le dis et le redis : ce truc est à la base un bricolage pour contourner un problème de rewrite rules qu'on avait rencontrés sur l'APINC lors de la migration du Standblog, il y a de cela un bail.

Après, pour l'histoire de la compatibilité des URLs DC1 nativement dans DC2, je ne discute pas. Les modérateurs ne risquent pas de manquer de boulot à ce sujet dans les semaines qui viennent.

Et qu'est ce que tu vas faire avec ce fichu poney, d'abord ?!


Who Cares ?

Hors ligne

#18 2008-08-15 01:14:37

michel v
Membre
Inscription : 2005-09-12
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Pep a écrit :

Et qu'est ce que tu vas faire avec ce fichu poney, d'abord ?!

Ce que tout un chacun ferait avec un poney, voyons : le peindre en rose étoilé, lui mettre un ruban dans les cheveux, et galoper dans les collines verdoyantes avec lui.

Et je voudrai bien déserrer l'étreinte sur les attributs virils de dc1redirect quand je connaitrai l'existence d'une autre solution qui marche.
(Je pourrais m'économiser toutes ces lignes et faire les rewriterules qui vont bien, ça me prendrai deux minutes, mais ça ne résoudrait le problème que pour un blog, et non pour tous ceux qui mettent à jour leur DC…)

Hors ligne

#19 2008-08-15 06:20:36

biou
dev dcTeam
Lieu : Teutonie du Sud
Inscription : 2004-10-01
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

michel v a écrit :

Ce que tout un chacun ferait avec un poney, voyons : le peindre en rose étoilé, lui mettre un ruban dans les cheveux, et galoper dans les collines verdoyantes avec lui.

OMG P0nies !!!@#@@@!!!!!

Hors ligne

#20 2008-08-15 06:49:45

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

michel v a écrit :

(Je pourrais m'économiser toutes ces lignes et faire les rewriterules qui vont bien, ça me prendrai deux minutes, mais ça ne résoudrait le problème que pour un blog, et non pour tous ceux qui mettent à jour leur DC…)

D'accord avec l'argument sur les urls qui ne devraient pas changer, et sur le manque de précisions dans la doc au sujet des redirections dc1-dc2.

Toutefois, cette documentation étant modifiable par tout un chacun, ce serait bien que toi ou d'autres passent ces deux minutes pour publier leurs solutions, ça rendrait assurément service. Le nombre de rédacteurs volontaires étant ce qu'il est, je veux bien participer à la rédaction et même tout recopier si on me donne le contenu ;)

Pour le poney, je dis simplement qu'on ne joue pas avec la nourriture, vous n'avez pas honte ?

Hors ligne

#21 2008-08-15 09:08:15

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

C'était donc un bug, ça ne m'étonne pas ;)

@olivier : Dans le même genre, j'ai du me taper l'exportation de mes tags à la main, les tables se ressemblant énormément, il aurait été cool de faire un module d'export en fonction des plugins meta qui existent pour DC1... Le plus chiant pour moi fut le blob dans la table dc_post que je n'avais pas capté :(

Hors ligne

#22 2008-08-15 11:21:07

olivier
Administrator
Inscription : 2004-10-11

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Les tags sont importés s'ils viennent de twtags. Michel, amalgame a raison, la doc, tout le monde peut la modifier :)


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

#23 2008-08-15 11:28:51

MatC
Membre
Inscription : 2008-08-13

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Alors allez savoir pourquoi mes twtags n'ont pas été importés... :(

Hors ligne

#24 2008-08-15 12:10:40

michel v
Membre
Inscription : 2005-09-12
Site Web

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Olivier, amalgame, ce n'est pas un problème de documentation, mais de comportement de l'appli. L'appli ne devrait pas nécessiter de module externe (qui a été décrit comme un bricolage, d'ailleurs) pour que les URL existantes soient redirigées. L'appli ne devrait pas nécessiter de RewriteRules pour que les flux ne soient pas cassés.

Ces deux points sont des barrières à la mise à jour qui n'ont pas lieu d'être.

(Et là je fais mes bagages, je décolle demain, j'aurai absolument pas le temps d'écrire de la doc. Surtout qu'idéalement, de la doc sur ce point ne devrait pas avoir à exister, Dotclear 2 devrait accepter les vieilles URL.)

Hors ligne

#25 2008-08-15 13:23:34

Pierre
Membre
Lieu : Taipei, Taiwan
Inscription : 2004-11-15

Re : Import depuis DC1 : pas de titre de l'article dans les URL générées

Mouais... le problème avec les htaccess c'est que ça ne marche pas chez tout le monde (je pense évidemment à Free !).

Maintenant, je suis d'accord : je pense que dc1redirect devrait être intégré par défaut à Dotclear 2... ça serait bien pratique, d'autant qu'il n'y a aucune configuration nécessaire du plugin : on l'installe et ça fonctionne ! :)

Olivier, merci pour la nightly, je vais tester ça quand j'aurai un peu de temps !


Pierre

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map