From 69af3238bb668347b2756256ff654a0ced3fa52d Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Tue, 2 May 2006 23:14:51 +0000
Subject: [PATCH] =?UTF-8?q?int=C3=A9gration=20de=20#215=20"Incoh=C3=A9renc?=
 =?UTF-8?q?e=20dans=20la=20gestion=20des=20URL=20internes/externes"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/breves_edit.php |  1 -
 ecrire/exec/breves_voir.php |  9 ++-------
 ecrire/public/balises.php   | 19 ++++++++++++++++---
 ecrire/public/composer.php  |  7 +++++++
 4 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 7aa32a490f..bcfcb482e0 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -141,7 +141,6 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 	echo _T('info_titre')."<BR>";
 	echo "<INPUT TYPE='text' CLASS='forml' NAME='lien_titre' VALUE=\"$lien_titre\" SIZE='40'><BR>";
 
-	if (strlen($lien_url) < 8) $lien_url="http://";
 	echo _T('info_url')."<BR>";
 	echo "<INPUT TYPE='text' CLASS='forml' NAME='lien_url' VALUE=\"$lien_url\" SIZE='40'><P>";
 
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 118948b3a7..11e3bb6690 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -175,13 +175,8 @@ if (($GLOBALS['meta']['multi_articles'] == 'oui') AND ($flag_editable)) {
 
 echo justifier(propre($texte))."\n";
 
-if (strlen($lien_url)>7 AND strlen($lien_titre)>2){
-	echo "<P><font size=1>"._T('lien_voir_en_ligne')."</font> <A HREF='$lien_url'><B>".typo($lien_titre)."</B></A>\n";
-} else if (strlen($lien_titre)>2) {
-	echo "<P><font size=1>"._T('lien_nom_site')."</font> ".typo($lien_titre)."</B></A>\n";
-} else if (strlen($lien_url)>7) {
-	echo "<P><font size=1>"._T('info_url_site')."</font> <tt>$lien_url</tt>\n";
-}
+$texte_case = ($lien_titre.$lien_url) ? "{{"._T('lien_voir_en_ligne')."}} [".$lien_titre."->".$lien_url."]" : '';
+	echo propre($texte_case);
 
 if ($les_notes) {
 	echo "<hr width='70%' height=1 align='left'><font size=2>$les_notes</font>\n";
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index 7b6fab5456..bd77b3e12b 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -185,9 +185,22 @@ function balise_URL_MOT_dist($p) {
 	return $p;
 }
 
-# remarque : URL_SITE ne figure pas ici car c'est une donnee 'brute'
-# correspondant a l'URL du site reference ; URL_SYNDIC correspond
-# pour sa part a l'adresse de son backend.
+// #NOM_SITE affiche le nom du site, ou sinon l'URL ou le titre de l'objet
+function balise_NOM_SITE_dist($p) {
+	if (!$p->etoile) {
+		$p->code = "construire_titre_lien(" .
+		champ_sql('nom_site',$p) ."," .
+		champ_sql('url_site',$p) . 
+		")";
+	} else
+		$p->code = champ_sql('nom_site',$p);
+
+	$p->interdire_scripts = true;
+	return $p;
+}
+
+# URL_SITE est une donnee "brute" tiree de la base de donnees
+# URL_SYNDIC correspond a l'adresse de son backend.
 # Il n'existe pas de balise pour afficher generer_url_site($id_syndic),
 # a part [(#ID_SYNDIC|generer_url_site)]
 
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 2359a6c61c..c25341f0b6 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -456,6 +456,13 @@ function calculer_notes() {
 	return $r;
 }
 
+// Renvoie le titre du "lien hypertexte"
+function construire_titre_lien($nom,$url) {
+	$result = extraire_lien(array(1=>$nom, 3=>$url));
+	preg_match("/>([^>]*)<\/a>/", $result[0], $matches);
+	return $matches[1];
+}
+
 // Ajouter "&lang=..." si la langue de base n'est pas celle du site
 function lang_parametres_forum($s) {
 	// ne pas se fatiguer si le site est unilingue (plus rapide)
-- 
GitLab