Subversion Repositories Applications.papyrus

Rev

Rev 1678 | Rev 2104 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1678 Rev 1933
Line 106... Line 106...
106
		            } else if (trim($Article->soustitre) != '') {
106
		            } else if (trim($Article->soustitre) != '') {
107
		                $aso_resultat['titre'] = htmlentities($Article->soustitre);
107
		                $aso_resultat['titre'] = htmlentities($Article->soustitre);
108
		            }
108
		            }
109
		            $aso_resultat['hreflang'] = htmlentities($Article->lang);
109
		            $aso_resultat['hreflang'] = htmlentities($Article->lang);
Line 110... Line 110...
110
		            
110
		            
Line 111... Line 111...
111
		            $aso_resultat['description'] = $this->couper($Article->texte, MORE_RESULTAT_TAILLE_DESCRIPTION);
111
		            $aso_resultat['description'] = $this->couperTexte($Article->texte, MORE_RESULTAT_TAILLE_DESCRIPTION);
112
		            
112
		            
113
		            if (($jour = date('d', strtotime($Article->date)) ) != 0 ) {
113
		            if (($jour = date('d', strtotime($Article->date)) ) != 0 ) {
114
		                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
114
		                $aso_resultat['date_creation'] .= '<span class="page_modification_jour"> '.$jour.'</span>'."\n";
Line 151... Line 151...
151
	    }
151
	    }
152
	    $resultat->free();
152
	    $resultat->free();
Line 153... Line 153...
153
	
153
	
154
	    return $tab_retour;
154
	    return $tab_retour;
155
	}
-
 
156
	
-
 
157
	// Fichier : inc_texte.php3
-
 
158
	function couper($texte, $taille = 50)
-
 
159
	{
-
 
160
		$texte = substr($texte, 0, 400 + 2*$taille); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
-
 
161
	
-
 
162
		// on utilise les \r pour passer entre les gouttes
-
 
163
		$texte = str_replace("\r\n", "\n", $texte);
-
 
164
		$texte = str_replace("\r", "\n", $texte);
-
 
165
	
-
 
166
		// sauts de ligne et paragraphes
-
 
167
		$texte = ereg_replace("\n\n+", "\r", $texte);
-
 
168
		$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte);
-
 
169
	
-
 
170
		// supprimer les traits, lignes etc
-
 
171
		$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte);
-
 
172
	
-
 
173
		// supprimer les tags
-
 
174
		$texte = $this->supprimer_tags($texte);
-
 
175
		$texte = trim(str_replace("\n"," ", $texte));
-
 
176
		$texte .= "\n";	// marquer la fin
-
 
177
	
-
 
178
		// travailler en accents charset
-
 
179
		// On supprime dans Papyrus car cela tire trop de fonctions...
-
 
180
		//$texte = $this->filtrer_entites($texte);
-
 
181
	
-
 
182
		// supprimer les liens
-
 
183
		$texte = ereg_replace("\[->([^]]*)\]","\\1", $texte); // liens sans texte
-
 
184
		$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte);
-
 
185
	
-
 
186
		// supprimer les notes
-
 
187
		$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);
-
 
188
	
-
 
189
		// supprimer les codes typos
-
 
190
		$texte = ereg_replace("[}{]", "", $texte);
-
 
191
	
-
 
192
		// supprimer les tableaux
-
 
193
		$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte);
-
 
194
	
-
 
195
		// couper au mot precedent
-
 
196
		$long = $this->spip_substr($texte, 0, max($taille-4,1));
-
 
197
		$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
-
 
198
		$points = MORE_LG_RESULTAT_ETC;
-
 
199
	
-
 
200
		// trop court ? ne pas faire de (...)
-
 
201
		if (strlen($court) < max(0.75 * $taille,2)) {
-
 
202
			$points = '';
-
 
203
			$long = $this->spip_substr($texte, 0, $taille);
-
 
204
			$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long);
-
 
205
			// encore trop court ? couper au caractere
-
 
206
			if (strlen($texte) < 0.75 * $taille)
-
 
207
				$texte = $long;
-
 
208
		} else
-
 
209
			$texte = $court;
-
 
210
	
-
 
211
		if (strpos($texte, "\n"))	// la fin est encore la : c'est qu'on n'a pas de texte de suite
-
 
212
			$points = '';
-
 
213
	
-
 
214
		// remettre les paragraphes
-
 
215
		$texte = ereg_replace("\r+", "\n\n", $texte);
-
 
216
	
-
 
217
		// supprimer l'eventuelle entite finale mal coupee
-
 
218
		$texte = preg_replace('/&#?[a-z0-9]*$/', '', $texte);
-
 
219
	
-
 
220
		return trim($texte).$points;
-
 
221
	}
-
 
222
	
-
 
223
	// Gerer les outils mb_string
-
 
224
	// Fichier : inc_texte.php3	
-
 
225
	function spip_substr($c, $start=0, $end='')
-
 
226
	{
-
 
227
		// methode substr normale
-
 
228
		if ($end) {
-
 
229
			return substr($c, $start, $end);
-
 
230
		} else {
-
 
231
			return substr($c, $start);
-
 
232
		}
-
 
233
	}
-
 
234
 
-
 
235
	// Suppression basique et brutale de tous les <...>
-
 
236
	// Fichier : inc_filtres.php3
-
 
237
	function supprimer_tags($texte, $rempl = "")
-
 
238
	{
-
 
239
		$texte = preg_replace(",<[^>]*>,U", $rempl, $texte);
-
 
240
		// ne pas oublier un < final non ferme
-
 
241
		$texte = str_replace('<', ' ', $texte);
-
 
242
		return $texte;
-
 
243
	}
-
 
244
 
155
	}
Line 245... Line 156...
245
}
156
}
246
 
157
 
247
/* +--Fin du code ----------------------------------------------------------------------------------------+
158
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
159
*
-
 
160
* $Log$
-
 
161
* Revision 1.7  2007-10-29 18:29:30  jp_milcent
248
*
162
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes.
249
* $Log$
163
*
250
* Revision 1.6  2007-01-02 18:49:22  jp_milcent
164
* Revision 1.6  2007-01-02 18:49:22  jp_milcent
251
* Amélioration de la gestion du motif.
165
* Amélioration de la gestion du motif.
252
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.
166
* Ajout de la gestion des expressions complête via l'utilisation de guillemets.