/branches/livraison_aha/client/bazar/bibliotheque/bazar.fonct.rss.php |
---|
19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: bazar.fonct.rss.php,v 1.99.2.13 2008-04-16 12:39:56 alexandre_tb Exp $ |
// CVS : $Id: bazar.fonct.rss.php,v 1.99.2.14 2008-11-19 09:30:18 aperonnet Exp $ |
/** |
* |
*@package bazar |
28,7 → 28,7 |
*@author Florian Schmitt <florian@ecole-et-nature.org> |
//Autres auteurs : |
*@copyright Tela-Botanica 2000-2006 |
*@version $Revision: 1.99.2.13 $ |
*@version $Revision: 1.99.2.14 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
617,7 → 617,7 |
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='', $requeteSQLFrom = '', $requeteWhereListe = '', $categorie_nature='', $order = '') { |
// generation de la requete MySQL personnalisee |
$req_where=0; |
$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bf_description, bn_label_nature, bf_date_creation_fiche '. |
$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bf_description, bn_label_nature, bf_date_creation_fiche, bf_ce_utilisateur '. |
'FROM bazar_fiche, bazar_nature '.$requeteSQLFrom.' WHERE '.$requeteWhereListe; |
if ($valide!=2) { |
$requete .= 'bf_statut_fiche='.$valide; |
735,6 → 735,15 |
if ($resultat->numRows() > 0) { |
// Creation des items : titre + lien + description + date de publication |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) { |
$requetenom = 'SELECT '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' FROM '. |
BAZ_ANNUAIRE.' WHERE '.BAZ_CHAMPS_ID.'='.$ligne['bf_ce_utilisateur']; |
$res = $GLOBALS['_BAZAR_']['db']->query($requetenom) ; |
if (DB::isError($res)) { |
die ($res->getMessage().$res->getDebugInfo()) ; |
} |
$nomprenom = $res->fetchRow(DB_FETCHMODE_ASSOC); |
$xml .= "\r\n "; |
$xml .= XML_Util::createStartElement ('item'); |
$xml .= "\r\n "; |
747,6 → 756,10 |
$xml .= "\r\n "; |
$xml .= XML_Util::createTag ('guid', null, $lien->getURL()); |
$xml .= "\r\n "; |
$xml .= XML_Util::createTag ('category', null, encoder_en_utf8($ligne['bn_label_nature'])); |
$xml .= "\r\n "; |
$xml .= XML_Util::createTag ('author', null, encoder_en_utf8($nomprenom[BAZ_CHAMPS_NOM].' '.$nomprenom[BAZ_CHAMPS_PRENOM])); |
$xml .= "\r\n "; |
$xml .= XML_Util::createStartElement ('description'); |
$xml .= "\r\n "; |
if ($_GET[BAZ_VARIABLE_ACTION] != BAZ_VOIR_TOUTES_ANNONCES) { |
1228,6 → 1241,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.99.2.13 2008-04-16 12:39:56 alexandre_tb |
* simplification du code en utilisant la classe Bazar_element |
* |
* Revision 1.99.2.12 2008-03-17 14:02:53 jp_milcent |
* Ajout d'un message demandant de s'identifiez pour poser des commentaires. |
* Amélioration du XHTML (me prévenir en cas de pb). |
/branches/livraison_aha/client/projet/classes/ezmlm-php-2.0/services_vpopmail/derniers_messages.php |
---|
1,5 → 1,39 |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU General Public | |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id $ |
/** |
* Application projet |
* |
* Action forums |
* |
*@package projet |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2008 |
*@version $Revision: 1.3.2.1 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
include_once 'ezmlm-php-2.0/ezmlm.php' ; |
10,22 → 44,28 |
$info->listdir = '/home/vpopmail/domains/'.$domaine.'/'.$liste ; |
$info->listname = $liste; |
$info->listdomain = $domaine ; |
$html = $info->show_recentmsgs() ; |
ob_start() ; |
if (!$info->show_recentmsgs()) { |
include_once 'XML/Util.php' ; |
$xml = XML_Util::getXMLDeclaration('1.0', 'ISO-8859-15', 'no') ; |
if (!file_exists($info->listdir.'/num')) { |
$xml .= XML_Util::createStartElement ('ezmlm_derniers_messages', array('domaine' => $domaine, 'liste' => $liste, 'langue' => $langue)) ; |
$xml .= '<![CDATA[il n\'y a pas de messages dans cette liste pour le moment.]]>'; |
$xml .= XML_Util::createEndElement('ezmlm_derniers_messages') ; |
header ('Content-type: text/xml'); |
echo $xml; |
exit(); |
} |
if (!$html) { |
if (!$info) { |
ob_end_clean() ; |
echo 'Les fichiers de la liste ne sont pas visible sur le serveur' ; |
echo 'Les fichiers de la liste ne sont pas visibles sur le serveur' ; |
exit(); |
} |
} |
$html = ob_get_contents() ; |
ob_end_clean() ; |
include_once 'XML/Util.php' ; |
$xml = XML_Util::getXMLDeclaration('1.0', 'ISO-8859-15', 'no') ; |
$xml .= XML_Util::createStartElement ('ezmlm_derniers_messages', array('domaine' => $domaine, 'liste' => $liste, 'langue' => $langue)) ; |
$xml .= '<![CDATA[ '.$html.']]>'; |
33,4 → 73,17 |
$xml .= XML_Util::createEndElement('ezmlm_derniers_messages') ; |
header ('Content-type: text/xml'); |
echo $xml ; |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.5 2008-11-04 17:11:10 aperonnet |
* correction de bugs dans la liste des derniers messages |
* |
* Revision 1.4 2008-08-25 15:25:09 alexandre_tb |
* optimisation et gestion des erreurs |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/branches/livraison_aha/client/projet/classes/ezmlm-php-2.0/ezmlm-threads.php |
---|
1,5 → 1,5 |
<?php |
// $Id: ezmlm-threads.php,v 1.5.4.2 2008-11-05 09:55:56 aperonnet Exp $ |
// $Id: ezmlm-threads.php,v 1.5.4.3 2008-11-19 09:30:18 aperonnet Exp $ |
// |
// ezmlm-threads.php - ezmlm-php v2.0 |
// -------------------------------------------------------------- |
33,11 → 33,12 |
fclose($fd); |
$md5 = rtrim(preg_replace('/^md5:/', '', $md5), "\n"); |
if ($md5 != $this->md5_of_file($this->listdir . "/archive/threads/" . $month)) { |
print "<!-- $md5 ne " . $this->md5_of_file($this->listdir . "/archive/threads/" . $month) . " -->\n"; |
$html .= "<!-- $md5 ne " . $this->md5_of_file($this->listdir . "/archive/threads/" . $month) . " -->\n"; |
$this->build($month); |
} |
} |
return $this->display($month); |
$html .= $this->display($month); |
return $html ; |
} |
// display: this loads each cache file sequentially and displays the messages in them |
45,6 → 46,7 |
// view the threads |
function display($month) { |
$seq = 0; |
$html = '' ; |
if (!is_dir($this->tempdir . "/ezmlm-php-" . $this->listname)) { |
$cache = $this->tempdir . "/ezmlm-php-" . $this->listname . "-" . $month; |
} else { |
51,22 → 53,24 |
$cache = $this->tempdir . "/ezmlm-php-" . $this->listname . "/" . $month; |
} |
// Le lien par date et par thread |
$html = '[ '.$this->makelink('action=show_month&actionargs[]='.$month, 'par date').' ]' ; |
$html .= '[ '.$this->makelink('action=show_month&actionargs[]='.$month, 'par date').' ]' ; |
$months = array(1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', |
9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December'); |
// remplacé par le tableau globals $mois dans ezmlm.php |
$html = '<h2>'.FIL_DE_DISCUSSION.' pour '.$GLOBALS['mois'][((int)substr($month,4,2) / 1) -1] .', ' . substr($month,0,4) . '</h2>'."\n"; |
$html .= '<h2>'.FIL_DE_DISCUSSION.' pour '.$GLOBALS['mois'][((int)substr($month,4,2) / 1) -1] .', ' . substr($month,0,4) . '</h2>'."\n"; |
$html = '<table class="table_cadre">'."\n"; |
$html = '<tr><th>Num</th><th>De</th><th>Sujet</th><th>Date</th></tr>'."\n"; |
$html = '<tr><td colspan="3"><hr /></td></tr>'."\n"; |
$html .= '<table class="table_cadre">'."\n"; |
$html .= '<tr><th>Num</th><th>De</th><th>Sujet</th><th>Date</th></tr>'."\n"; |
$html .= '<tr><td colspan="3"><hr /></td></tr>'."\n"; |
$ctc = 0; |
if (is_file($cache)) { |
include($cache); |
} |
$html = '<tr><td colspan="3"></td></tr>'."\n"; |
$html = '</table>'."\n"; |
$html .= '<tr><td colspan="3"></td></tr>'."\n"; |
$html .= '</table>'."\n"; |
return $html ; |
} |
/branches/livraison_aha/papyrus/applettes/moteur_recherche/bibliotheque/more_recherche.class.php |
---|
21,7 → 21,7 |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: more_recherche.class.php,v 1.12.2.1 2008-10-22 07:45:46 aperonnet Exp $ |
// CVS : $Id: more_recherche.class.php,v 1.12.2.2 2008-11-19 09:30:18 aperonnet Exp $ |
/** |
* Classe permettant d'effectuer des recherches sur les métas informations des menus. |
* |
34,7 → 34,7 |
//Autres auteurs : |
*@author aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.12.2.1 $ $Date: 2008-10-22 07:45:46 $ |
*@version $Revision: 1.12.2.2 $ $Date: 2008-11-19 09:30:18 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
86,6 → 86,11 |
} |
// Méthodes |
function eliminerAccents($motif) |
{ |
return strtr($motif,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç'", |
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc " ); |
} |
function ajouterRecherche(&$objet_recherche) { |
return $this->setMoteur($objet_recherche); |
96,8 → 101,10 |
$this->setResultats(array_merge((array)$this->getResultats(),(array)$val->rechercherMotif($this->getMotif()))); |
} |
$aso_resultats = $this->getResultats(); |
if(!function_exists('comparer')) |
{ |
// on teste l'existence de la fonction anonyme car sinon bug d'inclusion très pénible ! |
if (!function_exists('comparer')) { |
function comparer($a, $b) { |
if ($a['poids'] > $b['poids']) { |
return -1; |
156,7 → 163,7 |
$compteur_mot = 0; |
foreach ($tab_motif as $mot) { |
//$nbre_correspondance += preg_match_all('/'.$mot.'/i', $texte, $tab_morceaux); |
$nbre_correspondance = substr_count(strtolower($texte), strtolower($mot)); |
$nbre_correspondance = substr_count($this->eliminerAccents(strtolower($texte)), $this->eliminerAccents(strtolower($mot))); |
if ($nbre_correspondance > 0) { |
$compteur_mot++; |
} |
225,11 → 232,113 |
return ''; |
} |
} |
/** |
* Coupe un texte suivant une taille donnée, pour éviter qu'il ne soit |
* trop long lors de l'affichage |
* @param String texte à couper |
* @param int taille maximum du texte |
*/ |
function couperTexte($texte, $taille = 50) |
{ |
$texte = substr($texte, 0, 400 + 2*$taille); /* eviter de travailler sur 10ko pour extraire 150 caracteres */ |
// on utilise les \r pour passer entre les gouttes |
$texte = str_replace("\r\n", "\n", $texte); |
$texte = str_replace("\r", "\n", $texte); |
// sauts de ligne et paragraphes |
$texte = ereg_replace("\n\n+", "\r", $texte); |
$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte); |
// supprimer les traits, lignes etc |
$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte); |
// supprimer les tags |
$texte = $this->supprimerTags($texte); |
$texte = trim(str_replace("\n"," ", $texte)); |
$texte .= "\n"; // marquer la fin |
// travailler en accents charset |
// On supprime dans Papyrus car cela tire trop de fonctions... |
//$texte = $this->filtrer_entites($texte); |
// supprimer les liens |
$texte = ereg_replace("\[->([^]]*)\]","\\1", $texte); // liens sans texte |
$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte); |
// supprimer les notes |
$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte); |
// supprimer les codes typos |
$texte = ereg_replace("[}{]", "", $texte); |
// supprimer les tableaux |
$texte = ereg_replace("(^|\r)\|.*\|\r", "\r", $texte); |
// couper au mot precedent |
$long = $this->gererSubstr($texte, 0, max($taille-4,1)); |
$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long); |
$points = MORE_LG_RESULTAT_ETC; |
// trop court ? ne pas faire de (...) |
if (strlen($court) < max(0.75 * $taille,2)) { |
$points = ''; |
$long = $this->gererSubstr($texte, 0, $taille); |
$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long); |
// encore trop court ? couper au caractere |
if (strlen($texte) < 0.75 * $taille) |
$texte = $long; |
} else |
$texte = $court; |
if (strpos($texte, "\n")) // la fin est encore la : c'est qu'on n'a pas de texte de suite |
$points = ''; |
// remettre les paragraphes |
$texte = ereg_replace("\r+", "\n\n", $texte); |
// supprimer l'eventuelle entite finale mal coupee |
$texte = preg_replace('/&#?[a-z0-9]*$/', '', $texte); |
return trim($texte).$points; |
} |
// Gerer les outils mb_string |
// Fichier : inc_texte.php3 |
function gererSubstr($c, $start=0, $end='') |
{ |
// methode substr normale |
if ($end) { |
return substr($c, $start, $end); |
} else { |
return substr($c, $start); |
} |
} |
// Suppression basique et brutale de tous les <...> |
// Fichier : inc_filtres.php3 |
function supprimerTags($texte, $rempl = "") |
{ |
$texte = preg_replace(",<[^>]*>,U", $rempl, $texte); |
// ne pas oublier un < final non ferme |
$texte = str_replace('<', ' ', $texte); |
return $texte; |
} |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.15 2008-11-04 17:34:37 aperonnet |
* le moteur de recherche donne les même résultats avec ou sans accents |
* |
* Revision 1.14 2008-10-21 16:54:18 aperonnet |
* correction de bug de double inclusion de fichier quand une balise syndication est présente dans la page |
* |
* Revision 1.13 2008-10-21 15:24:50 aperonnet |
* Ajout de résultats issus des fiches de bazar pour le moteur de recherche |
* |
* Revision 1.12 2007-10-29 18:29:30 jp_milcent |
* Ajout d'un préfixe devant les classes de l'applette pour éviter les conflits avec d'autres classes provenant des applis clientes. |
* |