Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Version future » » URL rewriting  
AuteurURL rewriting
freud
113     

freud
  Posté : 17-05-2010 12:43

Bonjour,

La forme des urls à son importance pour le référencement, la sécurité mais apporte aussi un plus aux utilisateurs si l'on y place les titres des pages correspondantes. On a un aperçu du sujet en voyant juste le lien.

Pour des sites dynamiques, il faut passer par une fonction qui se chargera de la formater, et faire appel à cette fonction à chaque lien dynamique du site. Cela suppose également de revoir le fichier pages.php pour que ces nouvelles urls soient reconnues et agir en conséquence (meta, etc.).

Ça nécessite pas mal de boulot mais je crois qu'il faudra y venir tôt ou tard. Je suis prêt à travailler avec vous là-dessus si le cœur vous en dit.

Je l'ai fait sur une version Sable et ça marche très bien. Je bosse actuellement sur un nouveau site en version REvolution et je suis en train de mettre ça en place en apportant encore quelques modifs, notamment sur la forme des urls pour hiérarchiser les pages avec des slash.


Il convient donc de faire passer ces infos dans la fonction de construction d'url en prédéterminant le nombre de champs requis



make_!url(!'discussion',$topic,$page,$ancre,$autre)

- discussion indique le type d'url à trait er, nécessaire pour la formater ensuite)
- $topic étant l'id de la discussion
- $page et $ancre vous l'aurez compris
- $autre si d'autres infos sont à véhicule r. A déterminer



La fonction se charge alors de récolter le ou les titres dans la BDD :



if ($type=="article") { $table="stories"; $title="title";  $id="sid"; }
else if ($type=="sondage") { $table="poll_desc"; $ti tle="pollTitle"; $id="pollID"; }
else if ($type=="forum") { $table="forums"; $title=" forum_name"; $id="forum_id"; }
else if ($type=="discussion") { $table="forumtopics";&nbs p;$title="topic_title"; $id="topic_id"; }
...

$result=mysql_query("SELECT $title FROM $table WHERE  ;$id='$sid'");
...



On formate en commençant par supprimer les caractères spéciaux, en remplaçant les espaces par des tirets, etc. puis on renvoi l'url ainsi formatée.

On se retrouve avec des balises hypertextes sous la forme suivante :


<a href="'.make_!url(!'type',$id,'','').'" title="$title">lie n</a>



Message édité par : freud / 17-05-2010 12:44


  Profil  www  Citation   
developpeur
24581       
 

developpeur
  Posté : 17-05-2010 23:51

t'en penses quoi JPB ?

  Profil  E-mail  www  Citation   
freud
113     

freud
  Posté : 18-05-2010 01:44

Une toute toute petite précision
Sur le premier site j'ai employé les formes suivantes :

http://site.com/forum.html
http://site.com/forum-23-nom-du-forum.html (id forum = 23)
http://site.com/discussion-23-2690-nom-de-la-discussion.html (+ id topic = 2690)
http://site.com/discussion-23-2690-10-nom-de-la-discussion.html (+ n° de page, messages 10 à 19)

Je n'en suis après coup pas satisfait. Ce n'est pas clair, de plus je n'aurais pas dû remettre l'id du forum dans l'url de la discussion car si le topic est déplacé l'url va changer à son tour. Le robot de Google index rapidement les pages. S'il est passé avant de l'avoir il indexera la page en double, avec 2 urls différentes. Pour le coup ils le considère en duplicate content.

La solution à la mode consiste malgré ce que je viens de dire à y faire figurer la hiérarchie.
- C'est plus propre et mieux ordonné.
- Ça ajoute des mots clés important dans l'url, excellent pour le référencement.
- Très bien pour l'utilisateur qui sait ou il se trouve précisément.

Il faudrait malgré tout faire passer l'id dans l'url, à la fin par exemple de manière plus implicite et sans extension, ce qui donnerait un truc du genre :

http://site.com/
http://site.com/forum/
http://site.com/forum/nom-du-forum/f23
http://site.com/forum/nom-du-forum/nom-de-la-discussion/d2690
http://site.com/forum/nom-du-forum/nom-de-la-discussion/d2690m10

Ce qui contredit mon précédant point de vue qui voulait que plus rien ne face référence au forum en cas de déplacement du topic. A débattre ...

Le fichier .htaccess saura découper ces url et redirigera vers l'url réelle mais de manière invisible pour l'utilisateur. On y reviendra le moment venu.
Juste pour info, la redirection s'opère ainsi :

RewriteRule ^forum-([0-9]+)-(.*)\.html /viewforum\.php?forum=$1 [L]

([0-9]+) : tous chiffres entre forum- et un tiret, valeur transmise en variable $1
(.*) : tous caractères entre le tiret précédé, lui-même précédé du nombre et de forum-, et suivis .html. Variable $2 non utilisée.

Si ce modèle est reconnu, rediriger vers "viewforum.php?forum=xxx"


Dernière chose. Le modèle hiérarchisé avec les slash pose problème et nécessite d'ajouter le domaine ($nuke_url) au début de chacun des liens hypertextes, images, importation JS et CSS, ... sans quoi depuis une page de troisième niveau et plus les urls relatives seraient erronées. Exemple :

http://site.com/forum/nom-du-forum/contact.html

au lieu de

http://site.com/contact.html


Il est bon de savoir tout ça avant de poursuivre
Juste au cas ou, il faudrait aussi que le webmestre puisse choisir ou non d'employer l'url-rewriting sur son site, des fois que son hébergement ne le permette pas notamment.

Ok j'arrête ..

Message édité par : freud / 18-05-2010 01:44


  Profil  www  Citation   
jpb
2626       
 

jpb
  Posté : 21-05-2010 13:32

YO
Je pense que le docteur freud a bien bossé mais cet url rewriting est ce vraiment le must... ? Je me pose encore la question...

Je prend l'exemple de mon site dont l'url est http://www.grottes-et-karsts-de-chine.org
Quand je tape les mots clef grottes chine 1 er sur google
Quand je tape les mots clef grotte chine 3 eme sur google
Quand je tape les mots clef karst chine 1 er sur google
Quand je tape les mots clef karsts chine 1 er sur google
etc...

ce qui prouve que sans url rewriting on peut obtenir de bonne place avec simplement
un sitemap.php (xml) pour les outils webmaster de google
une gestion de pages.php avec un soin particulier pour le titre de la page
et une gestion dynamique des metatag : mots clefs et descriotion (hack du header.php dans npds) ...

si "On a un aperçu du sujet en voyant juste le lien. " ce qui est bien pour l'utilisateur, moi je n'aime pas quand je me place en tant que developpeur une url est un élément qui a un sens technique aussi (extremement utile pour la compréhension de l'architecture et du fonctionnement du site)...

Contrairement au titre de la page la limite des caractères qu'elle peut utiliser est un frein pour arriver (exactement) au but fixé présenter le contenu dans l'url...
car par exemple pour un forum se nommant : sécurité et un nom de discussion : base de donnée hackée
on n'aura jamais ça dans l'url....donc pas de gain du côté de google vu que les occurences ne correspondront pas...

donc en conclusion un beau challenge et BEAUCOUP de travail dans le core de NPDS mais est ce bien nécessaire je ne suis pas convaincu et a mon sens les systemes de positionnement dans chaque pages sont peut être plus rentable...

  Profil  www  Citation   
freud
113     

freud
  Posté : 21-05-2010 14:08

Salut et merci pour cet avis, bien que je ne le partage vraiment.

Il y a de nombreux paramètres à prendre en compte et je n'ai pas trop le temps aujourd'hui. De retour lundi pour en parler plus longuement.
Mais déjà, l'url rewriting n'exclue pas une optimisation des pages en elles-même. l'un n'empêche pas l'autre.

L'un des atouts est la gestion des meta-données avec le fichier pages.php par exemple.
Tu vas souvent avoir le même fichier pour différentes pages, et donc une gestion commune de l'ensemble.
Selon la manière d'opérer en renommant des tes urls tu pourras aisément personnaliser l'ensemble. J'utilise aussi le fichier pages.php pour charger des CSS ou JS sur des pages spécifiques de sorte à ce qu'elles entrent bien dans les balises .
Je charge également le on-load de cette manière pour Google Map par exemple.

Faut que j'vous laisse
Bon week-end

Fred

  Profil  www  Citation   
  
Sauter à :

Temps : 0.0135 seconde(s)