Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
URL rewriting Catégories News
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.5
#~ Url du site :
#~ Hébergeur / Soft : 1and1
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.5
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.4
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.12
#~ Search: 1.7.8
#~ ThemeManager: 1.1.8
#~ TinyMCE: 2.9.12
#~ SEOTools2: 1.1.1
#~ Gallery: 1.6.1
#~ btAdminer: 1.5.1
#~ ImageCompressor: 0.10
#~ Notifications: 1.0
#~ SiteUtilities: 0.1
#~ CGExtensions: 1.32.2
#~ CGJobMgr: 1.2.14
#~ NMS: 2.7.2
#~ SiteMapMadeSimple: 1.2.7
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression: false
#~ max_upload_size: 40000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR.utf8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.4.12
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 90M
#~ max_execution_time: 50000
#~ output_buffering: 0
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 40M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.67
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour à tous,


J'ai un petit soucis avec la réécriture d'URL pour les catégories du module News.

J'aimerai en effet que l'URL lorsque l'on souhaite voir afficher les articles de la catégorie "Générale" par exemple, l'url soit

http://www.mon-site.com/blog/categorie/generale.html

au lieu de :

http://www.mon-site.com/index.php?mact=N...eturnid=16


Sachant que la réécriture d'URL de mes news et autres pages se font correctement.

Sauf lorsqu'on fait une recherche via le module "Search" les url des news ne sont réécrites, ya t-il un moyen pour corriger cela également ?


Après plusieurs recherche sur Internet, je n'ai rien trouvé de correct.


Est-ce-que quelqu'un aurai une idée de comment procéder car je pense que je ne suis pas le seul à vouloir faire cela ?


Merci par avance
Répondre
#2
même problème chez moi

http://www.furie.be/ => pretty-url ok
http://www.furie.be/tag/cmsmadesimple/69 => pretty-url ko

le seul moment ou le second lien génère du PU c'est lorsque je spécifie manuellement une URL dans le champs dédié de l'article ...

Je penche pour un bug mais je n'ai pas eu l'occasion de me pencher sérieusement dessus Sad
Répondre
#3
J'ai corrigé le soucis qui -il me semble- est bien un bug dans News

test et dis moi si ça corrige ton bug de ton côté ?

dans fichier /modules/News.module.php

trouver la fonction SearchResultWithParams($returnid, $articleid, $attr = '', $params = '')

à l’intérieur trouver le code suivant :

Code :
[== Indéfini ==]
              if( $row['news_url'] != '' )
                {
                  $aliased_title = munge_string_to_url($row['news_title']);
                  $prettyurl = 'news/' . $articleid.'/'.$detailpage."/$aliased_title".$detailtemplate;
                }
              else
                {
                  $prettyurl = $row['news_url'];
                }

sur la première ligne, remplacer

Code :
if( $row['news_url'] != '' )
{

par

Code :
if( $row['news_url'] == '' )
{
Répondre
#4
@ Bess ta proposition casse tout et ne fonctionne pas enfin pour moi Wink sur un site de test jce.cmsms.fr/cms_dev
J-C Etiemble v 2.2.xx
Répondre
#5
:lol: c'est embêtant dis moi ... :lol:

tu joues avec quelle version de News sur ton site de test ?

de mon côté :

CMS Made Simple 1.11.4 "Fernandina"
News 2.12.10

en tout cas je suis quasi-formel : le code du module est erroné en l'état :

Code :
if( $row['news_url'] == '' )
                {
                  $aliased_title = munge_string_to_url($row['news_title']);
                  $prettyurl = 'news/' . $articleid.'/'.$detailpage."/$aliased_title".$detailtemplate;
                }
              else
                {
                  $prettyurl = $row['news_url'];
                }

Si il n'y a pas d'url personnalisée pour la news alors je génère une pretty url (what?)
Sinon je récupère cette url personnalisée (re-what??) qui est donc inexistante
Répondre
#6
>tu joues avec quelle version de News sur ton site de test ?
V 1.11.5 + NEWS 2.12.12
mais en fait si je l'aisse ta modif je n'ais plus d'accès à la liste des modules en admin
Et je me sert uniquement de l'install par défaut pas de modification

je te passe les infos par mail
J-C Etiemble v 2.2.xx
Répondre
#7
bess a écrit :J'ai corrigé le soucis qui -il me semble- est bien un bug dans News

test et dis moi si ça corrige ton bug de ton côté ?

dans fichier /modules/News.module.php

trouver la fonction SearchResultWithParams($returnid, $articleid, $attr = '', $params = '')

à l’intérieur trouver le code suivant :

Code :
[== Indéfini ==]
              if( $row['news_url'] != '' )
                {
                  $aliased_title = munge_string_to_url($row['news_title']);
                  $prettyurl = 'news/' . $articleid.'/'.$detailpage."/$aliased_title".$detailtemplate;
                }
              else
                {
                  $prettyurl = $row['news_url'];
                }

sur la première ligne, remplacer

Code :
if( $row['news_url'] != '' )

par

Code :
if( $row['news_url'] == '' )

Alors je viens de faire la modification et cela fonctionne pour la recherche des news uniquement, leurs URLs sont bien ré-écrites.

En revanche, les catégories, ne le sont pas, mais je vais essayer de me pencher de manière plus approfondis sur le sujet même si je n'ai pas toutes les compétences nécessaires.

Qui c'est j'aurai peut être la chance du débutant Smile

Merci encore pour ta réponse BESS
Répondre
#8
j'ai corrigé le bug chez Jce (un copier coller malheureux)

Je vous confirme que ma correction porte sur les résultats de recherche, c'est pas étudié pour les catégories je suis désolé, mal lu Smile

du coup... il faut quoi ? du pretty url sur le lien vers les catégories ?

genre : http://www.furie.be/index.php?mact=News,...eturnid=15

devienne un truc du style : http://www.furie.be/3/15/categories/java ?

Je vais jeter un coup d'oeil, mais ça va demander des modif importantes je pense.
Répondre
#9
http://dev.cmsmadesimple.org/bug/view/8880 pretty url de catégorie impossible donc

Par contre tu peux manipuler toi même ces urls afin de sortir de News leur traitement.

Exemple pratique, je vais utiliser l'url http://localhost/cmsms/categorie/3__2_248/Vacances comme url propre et le transformer en son équivalent : http://localhost/cmsms/index.php?mact=Ne...turnid=248

Je fais un rapide mapping :

categorie/99_99_99_99/blabla

les 4 chiffres sont respectivement les informations suivantes :
number
detailpage
categoryId
returnId

le texte avant et après ne sert qu'au décors. Tous les nombres sont facultatifs ce qui expliquera un 99__99_99 par exemple si detailpage n'est pas renseigné ce qui est souvent le cas.

mon .htaccess s'enrichit d'une nouvelle ligne en conséquence :

Code :
[== Indéfini ==]
#rewrite categorie
# categorie/number_detailpage_categoryId_returnId/texte
RewriteRule ^categorie/([0-9]*)_([0-9]*)_([0-9]*)_([0-9]*)\/(.*)$ index.php?&mact=News,cntnt01,default,0&cntnt01number=$1&cntnt01detailpage=$2&cntnt01category_id=$3&cntnt01returnid=$4 [NC,L]

C'est barbare mais c'est uniquement du rewrite. Un test dans mon navigateur http://localhost/cmsms/categorie/3__2_248/Vacances me ramène bien à la liste des articles de cette catégorie #2 (Vacances)

Maintenant la partie chiante : comment constituer cette url depuis le gabarit de sommaire.

dans un gabarit standard fournit de base j'ai choisit de placer l'url à cliquer sur l'information de la catégorie de chaque article.

J'ai trouvé :

Code :
<div class="NewsSummaryCategory">
    {$category_label} {$entry->category}'>
</div>

que j'ai remplacé par

Code :
<div class="NewsSummaryCategory">
    {$category_label} <a href='{root_url}/categorie/{$param_number}_{$param_detailpage}_{getCategorieId name=$entry->category}_{$returnid}/{$entry->category}'>{$entry->category}</a>
</div>

et j'ai ajouté un UDT nommé getCategorieId qui me convertit un titre de catégorie en son ID correspondant, voici le code :

Code :
[== Indéfini ==]
$db = cmsms()->getDb();
$sql = "SELECT news_category_id FROM ".cms_db_prefix()."module_news_categories  WHERE news_category_name = ?";

$parametreSql = array();
$parametreSql[] = $params['name'];

$dbretour= $db->Execute($sql, $parametreSql);

while ($row = $dbretour->FetchRow()){
  echo $row['news_category_id'];
  return;
}

echo -1;


Le résultat : http://img4.hostingpics.net/pics/1685112...143651.png
Répondre
#10
J'ai pas eu le temps de finir mais je ferrais le même test sur mon site perso pour la bande de droite : http://www.furie.be/

le .htaccess sera différent et le code du gabarit également, mais l'esprit restera le même. A suivre.
Répondre
#11
Merci Bess et désolé pour ce retard de réponse mais pas mal de projet en même temps.

Je regarde cela dès que je peux et je te fais un retour la-dessus.

Est-il prévu dans les futurs versions de mettre cela en place directement afin d'optimiser les URLs ?
Répondre
#12
Citation :Est-il prévu dans les futurs versions de mettre cela en place directement afin d'optimiser les URLs ?

non, c'est pas mon module, je ne peux pas agir dessus et CG est très strict sur l'envoi de code depuis l'exterieur. La raison est que je n'ai pas le recul sur les éventuels effets de bord que le dev original pourra avoir, et connaissant CG il doit y avoir une sérieuse raison pour qu'il n'ai pas implémenté de pretty-url dans son module Wink
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)