Changeset 49186 in spip-zone
- Timestamp:
- Jun 29, 2011, 11:52:54 PM (10 years ago)
- Location:
- _plugins_/spip-lettres
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/spip-lettres/spip-lettres-200/classes/abonne.php
r48782 r49186 234 234 235 235 if ($redirection) 236 return $redirection;236 return corrige_lien($redirection); 237 237 else 238 238 return $GLOBALS['meta']['adresse_site']; -
_plugins_/spip-lettres/spip-lettres-200/lettres_fonctions.php
r49185 r49186 107 107 $url = sql_fetch($verification_clic); 108 108 $redirection = $url['url']; 109 } else {109 } else 110 110 $redirection = $GLOBALS['meta']['adresse_site']; 111 } 112 return $redirection; 111 return corrige_lien($redirection); 113 112 } 114 113 114 115 function corrige_lien ($url) { 116 $replace = array( 117 'articles' => 'article', 118 'naviguer' => 'rubrique', 119 'breves' => 'breve', 120 'mots_edit' => 'mot', 121 'sites_tous' => 'site', 122 ); 123 foreach ($replace as $key => $value) 124 $url = str_ireplace ("/ecrire/?exec=$key&", "/spip.php?page=$value&", $url); 125 return $url; 126 } 115 127 116 128 if(!function_exists('str_split')) { … … 159 171 // et le lien clicable à la suite, entre parenthèse. 160 172 // Si le texte du lien est déjà une url ou y ressemble fort, on ne met que l'url 173 // Si c'est une url relative, on ajoute l'adresse du site 161 174 function prepare_format_texte_lien($matches) { 162 175 if ((strpos(ltrim($matches[2]), 'http:')===0) 163 176 or (strpos(ltrim($matches[2]), 'www.')===0)) 164 177 return $matches[1]; 165 else return $matches[2]." [ ".$matches[1]." ]"; 178 if (strpos(ltrim($matches[1]),'/')===0) 179 $matches[1] = $GLOBALS['meta']['adresse_site'].$matches[1]; 180 return $matches[2]." [ ".$matches[1]." ]"; 166 181 }; 167 182 function prepare_format_texte ($html) { … … 169 184 return textebrut (preg_replace_callback ($pat, 'prepare_format_texte_lien', $html)); 170 185 }; 171 172 /**173 * Filtre copié depuis spip-listes http://zone.spip.org/trac/spip-zone/changeset/49179174 * author: paladin@...175 * Corrige le bug de spip2 (corrigé dans spip3) qui fait que liens [ xxx->n] calculés dans le privé176 * (comme les lettres le sont au moment de leur envoi) pointent vers l'adresse privée au lieu de publique177 * J'y ajoute une fonction corrige_liens_publics, à utiliser de préférence dans SPIP2 pour corriger les liens,178 * et qui est redéfinie dans la version pour SPIP 3, de manière à ce que les squelettes ne corrigent plus,179 * sans devoir être immédiatement corrigés, eux, lors du portage du site sous spip3.180 *181 * Commentaire d'origine :182 *183 * Un filtre pour transformer les URLs relatives184 * à l'espace privé en URLs pour espace public.185 * A appliquer au conteneur, dans le patron,186 * du style : [(#TEXTE|liens_publics)]187 * @version CP-20110629188 * @example [(#TEXTE|liens_publics)]189 * @see http://www.spip.net/fr_article3377.html190 * @param string $texte191 * @return string192 */193 function corrige_liens_publics ($texte) {194 return liens_publics ($texte);195 }196 function liens_publics ($texte)197 {198 $url_site = $GLOBALS['meta']['adresse_site'];199 200 $replace = array(201 'articles' => 'article',202 'naviguer' => 'rubrique',203 'breves' => 'breve',204 'mots_edit' => 'mot',205 'sites_tous' => 'site',206 );207 208 foreach ($replace as $key => $value)209 {210 if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?' . $url_site . ')'211 . '/ecrire/\?exec=(' . $key . ')'212 . '([^<>]*>),imsS',213 $texte,214 $liens,215 PREG_SET_ORDER))216 {217 foreach ($liens as $lien)218 {219 $to = $lien[1] . '/?page=' . $value . $lien[3];220 $texte = str_ireplace($lien[0], $to, $texte);221 }222 }223 }224 return ($texte);225 }226 186 ?> -
_plugins_/spip-lettres/trunk/lettres_fonctions.php
r49185 r49186 159 159 // et le lien clicable à la suite, entre parenthèse. 160 160 // Si le texte du lien est déjà une url ou y ressemble fort, on ne met que l'url 161 // Si c'est une url relative, on ajoute l'adresse du site avant 161 162 function prepare_format_texte_lien($matches) { 162 163 if ((strpos(ltrim($matches[2]), 'http:')===0) 163 164 or (strpos(ltrim($matches[2]), 'www.')===0)) 164 165 return $matches[1]; 165 else return $matches[2]." [ ".$matches[1]." ]"; 166 if (strpos(ltrim($matches[1]),'/')===0) 167 $matches[1] = $GLOBALS['meta']['adresse_site'].$matches[1]; 168 return $matches[2]." [ ".$matches[1]." ]"; 166 169 }; 167 170 function prepare_format_texte ($html) { … … 169 172 return textebrut (preg_replace_callback ($pat, 'prepare_format_texte_lien', $html)); 170 173 }; 171 172 /** 173 * Filtre copié depuis spip-listes http://zone.spip.org/trac/spip-zone/changeset/49179 174 * author: paladin@... 175 * Corrige le bug de spip2 (corrigé dans spip3) qui fait que liens [ xxx->n] calculés dans le privé 176 * (comme les lettres le sont au moment de leur envoi) pointent vers l'adresse privée au lieu de publique 177 * J(JLuc)'y ajoute une fonction corrige_liens_publics, à utiliser de préférence dans SPIP2 pour corriger les liens, 178 * et qui est redéfinie dans la version pour SPIP 3, de manière à ce que les squelettes ne corrigent plus, 179 * sans devoir être immédiatement corrigés, eux, lors du portage du site sous spip3. 180 * 181 * Commentaire d'origine : 182 * 183 * Un filtre pour transformer les URLs relatives 184 * à l'espace privé en URLs pour espace public. 185 * A appliquer au conteneur, dans le patron, 186 * du style : [(#TEXTE|liens_publics)] 187 * @version CP-20110629 188 * @example [(#TEXTE|liens_publics)] 189 * @see http://www.spip.net/fr_article3377.html 190 * @param string $texte 191 * @return string 192 */ 193 // pour compatibilité des squelettes : ne fait plus rien dans spip3, retirer des squelettes 194 function corrige_liens_publics ($texte) { 195 return $texte; 196 } 197 function liens_publics ($texte) 198 { 199 $url_site = $GLOBALS['meta']['adresse_site']; 200 201 $replace = array( 202 'articles' => 'article', 203 'naviguer' => 'rubrique', 204 'breves' => 'breve', 205 'mots_edit' => 'mot', 206 'sites_tous' => 'site', 207 ); 208 209 foreach ($replace as $key => $value) 210 { 211 if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?' . $url_site . ')' 212 . '/ecrire/\?exec=(' . $key . ')' 213 . '([^<>]*>),imsS', 214 $texte, 215 $liens, 216 PREG_SET_ORDER)) 217 { 218 foreach ($liens as $lien) 219 { 220 $to = $lien[1] . '/?page=' . $value . $lien[3]; 221 $texte = str_ireplace($lien[0], $to, $texte); 222 } 223 } 224 } 225 return ($texte); 226 } 174 227 175 ?>
Note: See TracChangeset
for help on using the changeset viewer.