Afficher l’URL propre dans la partie privée

All contributions published for previous SPIP versions

Dans l’interface privée j’affiche le nom de la future page
(en haut de la colonne de gauche, dans le petit cadre sous l’Id de l’article). C’est très pratique pour la mise au point des url_propres alors voici comment faire.

Attention : il faut que cette information n’apparaisse qu’à la personne chargée des url_propres, que ci après je vais appeler le webmaster.
En effet, les rédacteurs doivent continuer à faire des liens utilisant l’Id de l’article ([un lien->334]) et ne doivent surtout pas utiliser directement l’adresse propre, toujours susceptible de changer si l’algorythme change !!
Je suppose dans ce qui suit que le webmaster a un identifiant d’auteur égal ... à 1 , ce qui est souvent le cas... Si il y a d’autres webmasters, ajustez le test en première ligne.

Le code à ajouter se situe aux environs de la ligne 397 (sur a 1.8.1) de ecrire/articles.php3 :

...
echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"._T('info_numero_article')."</b></font>\n";
echo "<br><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_article</b></font>\n";

// JLUC Ajout affichage url_propre sous le numéro de l'article
          if ($auteur_session['id_auteur']==1) { 
                $row = spip_fetch_array(spip_query("SELECT url_propre FROM spip_articles WHERE id_article=$id_article"));
                $url_propre = $row['url_propre'];
                if ($url_propre AND $url_propre != "")
                        echo "<br><font face='Verdana,Arial,Sans,sans-serif' size='1'><b>Adresse publique de la page :<br>"
                                .$url_propre."</b></font>\n";
           };
// JLUC Fin de l'ajout                

voir_en_ligne ('article', $id_article, $statut_article);
...

updated on 11 August 2018

Discussion

Une discussion

  • 3

    Bonjour
    Ce serait très très utile si on pouvait editer l’url; ça permettrait de mettre les mots clés souhaités

    • Je viens de travailler sur le fait d’ajouter la possibilité de modifier l’url propre à partir de l’interface privée. Attention toutefois, la modification que je propose n’effectue absolumment aucune vérification. Par conséquent, si vous utilisez des caractères non adéquats, cela peut faire planter l’accès à l’article. J’utilise la même vérification que dans la contrib, à savoir que l’id de l’auteur doit être 1.

      Dans articles_edit.php3, par exemple après :

      if ($lier_trad) {
      	echo "<INPUT TYPE='Hidden' NAME='lier_trad' VALUE='$lier_trad'>";
      	echo "<INPUT TYPE='Hidden' NAME='changer_lang' VALUE='$spip_lang'>";
      }

      Ajouter :

      // Ajout affichage url_propre
              if ($auteur_session['id_auteur']==1) {
      			echo "<B>Url propre</B>";
      			echo "<BR><INPUT TYPE='text' NAME='url_propre' CLASS='forml' VALUE=\"$row[url_propre]\" SIZE='40'><P>";
      		}
      		else {
      			echo "<INPUT TYPE='hidden' NAME='url_propre' VALUE=\"$url_propre\" >";
      		};
      // Fin ajout

      Et dans articles.php3, remplacer :

      $query = "UPDATE spip_articles SET surtitre='$surtitre', titre='$titre', soustitre='$soustitre', $change_rubrique descriptif='$descriptif', chapo='$chapo', texte='$texte', ps='$ps', url_site='$url_site', nom_site='$nom_site' $add_extra WHERE id_article=$id_article";

      Par :

      $query = "UPDATE spip_articles SET url_propre='$url_propre', surtitre='$surtitre', titre='$titre', soustitre='$soustitre', $change_rubrique descriptif='$descriptif', chapo='$chapo', texte='$texte', ps='$ps', url_site='$url_site', nom_site='$nom_site' $add_extra WHERE id_article=$id_article";

      Je n’ai fait que des tests rapides et sur un site qui utilise le champ url_propre de façon détournée. Aussi, pensez à sauvegarder votre site avant de tenter quoi que ce soit, au cas où.

    • Bonjour ,

      Voici une adaptation de cette contrib pour SPIP 1.9.2

      Dans le fichier inc/editer_article.php ajouter en fin de fichier la fonction suivante :

      function editer_article_url_propre($url_propre, $config, $aider)
      {
              if ($GLOBALS['auteur_session']['statut'] == '0minirezo') {
                return  "\n<p><b>"
                        . 'URL Propre' # (à mettre ds fichier de langue)
                        ."</b><br />"
                        .        "<input type='text' name='url_propre' class='forml spip_xx-small' value=\"$url_propre\" size='40' />"
                        . "</p>\n";
              }
              else {
                return "";
              }
      }

      Et dans la fonction “inc_editer_article_dist” ajoutez la ligne suivante quelque part entre la ligne n°49 et n° 59 de ce fichier :
              . editer_article_url_propre($row['url_propre'], $config, $aider)  # ajout edition url propre

      Ici, la fonction est réservée aux administrateurs et aucun contrôle n’est fait sur le texte saisi.

      Conseil : mettre le fichier modifié “inc/editer_article.php” dans un plugin.

    • Merci pour ces mises à jours et compléments.

      Tu conseilles de mettre “en plugin” : veux tu dire simplement : “dans un sous répertoire inc du dossier squelette” ? (car a priori cela suffit, pas la peine de plugin)

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom