Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

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

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 06/01/2012 18:58:39

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

news : gestion de l'url

Nous avons déjà vu qu'il est possible de modifier les metadata des news dans ces tutos :
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=3558
et http://www.cmsmadesimple.fr/forum/viewtopic.php?id=1457

Depuis la version 1.9+, un champ "url" est maintenant disponible dans la page de création des news.

Mais un rédacteur sans connaissance des règles de l'url va se trouver confronté à des messages d'erreurs s'il insère des caractères interdits comme des espaces, ponctuation ou caractères accentués et ne va généralement pas comprendre quel est le problème...

Il serait également appréciable que si le rédacteur laisse le champ url vide, le titre vienne s'insérer dans l'url après suppression automatique des caractères interdits et des mots de moins de 3 caractères qui allongent inutilement l'url.

Exemple : le titre est "Histoire évolutive de l'œil !!"
l'url deviendra "histoire-evolutive-oeil"

ATTENTION : cette astuce est fortement déconseillée aux développeurs non aguerris car nous devons modifier des fichiers et il faudra vérifier vos mises à jour.


Version cmsms 1.10.2
Ouvrez le fichier modules/News/action.addarticle.php à la ligne 110 (if( empty($error) && $news_url != '' ))
et ajoutez ces quelques lignes :

if( empty($error) && $news_url != '' )
      {
	//conversion des caractères
	$news_url = iconv('UTF-8', 'ASCII//TRANSLIT', trim($title));
	//suppression des mots inférieurs à 3 caractères, non-représentatifs pour les moteurs de recherche
	$news_url = preg_replace("!\\b\\w{1,3}\\b!", "", $news_url);
	//suppression des caractères interdits dans l'url et tirets consécutifs
	$news_url = strtolower(trim(preg_replace(array("/ /", "/[^A-Za-z0-9-\-]/", "/--/"),array("-", "", "-"),$news_url),"-"));
		
	// check for starting or ending slashes

Ensuite, ajoutez à la fin de cette condition une nouvelle condition à la ligne +/- 149, juste après la fermeture de l'accolade et juste avant

    //
    // database work
    //
//ATTENTION AJOUT PERSO attention à l'update
//le titre de l'article devient l'url si le champ url est vide
if( empty($error) && $news_url == '' )
       {
	//conversion des caractères
	$news_url = iconv('UTF-8', 'ASCII//TRANSLIT', trim($title));
	//suppression des mots inférieurs à 3 caractères, non-représentatifs pour les moteurs de recherche
	$news_url = preg_replace("!\\b\\w{1,3}\\b!", "", $news_url);
	//suppression des caractères interdits dans l'url et tirets consécutifs
	$news_url = strtolower(trim(preg_replace(array("/ /", "/[^A-Za-z0-9-\-]/", "/--/"),array("-", "", "-"),$news_url),"-"));
			
	// check for starting or ending slashes
	if( startswith($news_url,'/') || endswith($news_url,'/') )
	  {
	    $error = $this->ShowErrors($this->Lang('error_invalidurl'));
	  }

	if( $error === FALSE )
	  {
	    // check for invalid chars.
	    $translated = munge_string_to_url($news_url,false,true);
	    if( strtolower($translated) != strtolower($news_url) )
	      {
		$error = $this->ShowErrors($this->Lang('error_invalidurl'));
	      }
	  }

	if( $error === FALSE )
	  {
	    // make sure this url isn't taken.
	    $news_url = trim($news_url," /\t\r\n\0\x08");
	    cms_route_manager::load_routes();
	    $route = cms_route_manager::find_match($news_url);
	    if( $route )
	      {
		// we're adding an article, not editing... any matching route is bad.
		$error = $this->ShowErrors($this->Lang('error_invalidurl'));
	      }
	  }
      }

Comme vous pouvez le constater, il reste du code original qui fait doublon, mais il ne gêne pas, autant le laisser pour la facilité.

Passons maintenant au fichier modules/News/action.editarticle.php et ajoutez le code aux environs de la ligne 121

if( empty($error) && $news_url != '' )
      {
	//conversion des caractères
	$news_url = iconv('UTF-8', 'ASCII//TRANSLIT', trim($title));
	//suppression des mots inférieurs à 3 caractères, non-représentatifs pour les moteurs de recherche
	$news_url = preg_replace("!\\b\\w{1,3}\\b!", "", $news_url);
	//suppression des caractères interdits dans l'url et tirets consécutifs
	$news_url = strtolower(trim(preg_replace(array("/ /", "/[^A-Za-z0-9-\-]/", "/--/"),array("-", "", "-"),$news_url),"-"));
	// check for starting or ending slashes

Le champ url peut être édité lors d'une modification d'article et sera automatiquement mis à jour dans les règles de l'art.


Have fun smile

Dernière modification par Jean le Chauve (08/01/2012 13:42:57)

Hors ligne

#2 07/01/2012 15:11:59

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : news : gestion de l'url

l'idée est bonne mais nécessite effectivement la modification des fichiers du noyau.

donc oui je déconseille très fortement cette manip.

Par contre il serait intéressant que calguy implémente ton code smile

Hors ligne

#3 07/01/2012 19:03:41

jce76350
Administrateur
Lieu : Rouen
Inscription : 23/09/2007
Messages : 6 086
Site Web

Re : news : gestion de l'url

Mais un rédacteur sans connaissance des règles de l'url va se trouver confronté à des messages d'erreurs s'il insère des caractères interdits comme des espaces, ponctuation ou caractères accentués

alors dans ce cas il faut d'abord éduquer le rédacteur et non lui laisser faire les c...ries ;

donc oui je déconseille très fortement cette manip.

Bien sur c'est il ne faut surtout pas utiliser ce truc, qui part d'un "bon sentiment"


J-C Etiemble Tutoriels v 2.2.x

Hors ligne

#4 07/01/2012 21:26:58

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : news : gestion de l'url

Sauf si tu sais ce que tu fais et que c'est toi qui gère les updates  tongue

Parce qu'éduquer un rédacteur, laisse-moi rire, le lendemain il a déjà oublié où il a mis le manuel et, généralement, c'est un autre qui s'y colle le mois suivant, quand il ne délègue pas son job à la nouvelle stagiaire. Depuis le temps que je travaille dans ma petite asbl, je connais les humains, ils ne veulent pas que tu leur expliques, ils veulent juste que tu répares l'erreur, quitte à te rappeler la semaine suivante.

Hors ligne

#5 08/01/2012 13:12:33

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : news : gestion de l'url

@Jean Le Chauve : nous ne critiquons pas le fait qu'un rédacteur par définition est mal poli et qu'il oublis ce que tu lui as dit la veille.

Là où ça coince c'est que la team org refuse tous les posts relatif à du hack de fichier du code source. Et même si l'on a aucun couteau sous la gorge pour rédiger nos règles sur le forum je dois admettre que je suis complètement d'accord avec eux : pas de hack de fichier source.

Alors que faire dans notre cas : conserver cela sous la main, prévenir en gros rouge gras que c'est hyper dangereux de faire ces manipulations sans une bonne et solide expérience et surtout surtout surtout aller gueuler sur Calguy pour qu'il implémente ton code

Bref pour moi le débat doit être ailleurs.

AMHA wink

Hors ligne

#6 08/01/2012 13:42:22

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : news : gestion de l'url

Le rouge était déjà en place, je rajoute le gras  lol

Hors ligne

#7 15/01/2012 10:11:07

Phil
Membre
Lieu : Asnières sur seine
Inscription : 15/01/2012
Messages : 41

Re : news : gestion de l'url

Le code peut être simplifié.

Mais surtout, je crois voir un problème sur le code natif...

La vérification de l'existence de l'url ne se fait que sur les pages  sans inclure les news elles même.

Il est donc possible de créer des news avec la même url (en mode édition ou création).

Info notifiée à CG.

Merci de me confirmer cela (vu que je modifie beaucoup le core...histoire de voir si cela vient seulement de mon côté)


Un autre bug sur le module news (peut-être déjà corrigé)

Dans les options :

Autoriser seulement le téléchargement des fichiers avec ces extensions : gif,png,jpeg,jpg.... (sensible à la casse !)

Hors ligne

#8 15/01/2012 19:15:55

jce76350
Administrateur
Lieu : Rouen
Inscription : 23/09/2007
Messages : 6 086
Site Web

Re : news : gestion de l'url

Il est donc possible de créer des news avec la même url (en mode édition ou création).

démonstration ??

Peut être avec le même titre mais surement pas avec la même URL

vu que je modifie beaucoup le core

????!!*#**


J-C Etiemble Tutoriels v 2.2.x

Hors ligne

#9 15/01/2012 20:08:54

Phil
Membre
Lieu : Asnières sur seine
Inscription : 15/01/2012
Messages : 41

Re : news : gestion de l'url

Titre news 1 = titre1   url=news-1

Titre news 2 = titre2   url=news-1

Pour moi ça passe, pas d'indication d'erreur, sauf que les liens pointent affichent le contenu de la news 2.
Impossible d'afficher la news 1...


En passant, je note la remarque "créer le même titre surement"... ça aussi on ne devrait pas pouvoir le faire..(pas testé).


désolé... je voulais dire "je modifie beaucoup le corps du programme" et non core en anglais...hum

Hack dans tous les sens, (restrictions de modifications de menus, titres, pages, modules etc...) j'ai peut-être ouvert une restriction sur les news...mais j'en doute

Je vais réinstaller une version propre pour vérifier.

Hors ligne

#10 15/01/2012 20:22:29

Phil
Membre
Lieu : Asnières sur seine
Inscription : 15/01/2012
Messages : 41

Re : news : gestion de l'url

Testé sur version propre 1.10.2 avec ou sans réécriture des URL.

Duplication d'url confirmée.

Idem pour les titres.

...et de votre côté ?

Hors ligne

#11 24/04/2012 18:56:09

Phil
Membre
Lieu : Asnières sur seine
Inscription : 15/01/2012
Messages : 41

Re : news : gestion de l'url

La duplication d'url sera corrigée avec la prochaine version 1.11.

Hors ligne

#12 24/04/2012 18:59:19

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Hors ligne

Pied de page des forums