Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 21 → Rev 22

/trunk/bazar.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.php,v 1.8 2005-09-30 13:00:05 ddelon Exp $
// CVS : $Id: bazar.php,v 1.9 2005-10-12 13:35:07 florian Exp $
/**
*
*@package bazar
28,7 → 28,7
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.8 $ $Date: 2005-09-30 13:00:05 $
*@version $Revision: 1.9 $ $Date: 2005-10-12 13:35:07 $
// +------------------------------------------------------------------------------------------------------+
*/
 
91,10 → 91,10
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_TOUTES_ANNONCES);
$GLOBALS['_BAZAR_']['url']->addQueryString('nature', 'toutes');
//partie consultation d'annonces
$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_CONSULTER.'</a>'."\n".'<ul>'."\n";
$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_CONSULTER.'</a>'."\n".'</li>'."\n";
$GLOBALS['_BAZAR_']['url']->removeQueryString('nature');
$requete = 'SELECT bn_id_nature, bn_label_nature FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.' or bn_ce_id_menu=0';
/*$requete = 'SELECT bn_id_nature, bn_label_nature FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.' or bn_ce_id_menu=0';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
112,14 → 112,14
//partie recherche d'annonces
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_RECHERCHER_ANNONCE);
$res .='<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_RECHERCHER_DES_ANNONCES.'</a></li>'."\n";
$res .='<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_RECHERCHER.'</a></li>'."\n";
$GLOBALS['_BAZAR_']['url']->removeQueryString('action');
//pour les identifiés seulement
if ($GLOBALS['AUTH']->getAuth()) {
if ($GLOBALS['AUTH']->getAuth()) {*/
//partie abonnement aux annonces
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_S_INSCRIRE);
$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_S_INSCRIRE_AUX_ANNONCES.'</a></li>'."\n" ;
$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_S_ABONNER.'</a></li>'."\n" ;
$GLOBALS['_BAZAR_']['url']->removeQueryString('action');
//partie saisie d'annonces
137,17 → 137,18
//choix des administrateurs
$est_admin=0;
$requete='SELECT bn_id_nature FROM bazar_nature';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ((niveau_droit($ligne['bn_id_nature'],$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID)))=='administrateur') {
$est_admin=1;
if ($GLOBALS['AUTH']->getAuth()) {
$requete='SELECT bn_id_nature FROM bazar_nature';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
if (($est_admin)or(niveau_droit($id_nature_offre='0',$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID))=='superadministrateur')) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
if ((niveau_droit($ligne['bn_id_nature'],$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID)))=='administrateur') {
$est_admin=1;
}
}
if (($est_admin)or(niveau_droit($id_nature_offre='0',$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID))=='superadministrateur')) {
//partie administrer
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_ANNONCES_A_VALIDER);
$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_ADMINISTRER.'</a><ul>'."\n";
164,12 → 165,9
$GLOBALS['_BAZAR_']['url']->removeQueryString('action');
}
$res .= '</ul></li>'."\n";
$res.= '</ul>'."\n";
}
}
else $res .='<li><span style="color:#02587B;">'.BAZ_IDENTIFIEZ_VOUS_POUR_SAISIR.'</span></li></ul>';
}
}
$res.= '</ul>'."\n";
$res.='</div>'."\n";
//le corps de l'appli
177,7 → 175,7
if (isset($_GET['action'])) {
switch ($_GET['action']) {
case BAZ_VOIR_VOS_ANNONCES : $res .= mes_fiches(); break;
case BAZ_VOIR_TOUTES_ANNONCES : $res .= baz_liste($_GET['nature'],'',''); break;
case BAZ_VOIR_TOUTES_ANNONCES : $res .= baz_liste($_REQUEST['nature'],'',''); break;
case BAZ_RECHERCHER_ANNONCE : $res .= baz_rechercher(); break;
case BAZ_DEPOSER_ANNONCE : $res .= baz_formulaire(BAZ_DEPOSER_ANNONCE); break;
case BAZ_ANNONCES_A_VALIDER : $res .= fiches_a_valider(); break;
209,6 → 207,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.8 2005/09/30 13:00:05 ddelon
* Fiche bazar generique
*
* Revision 1.7 2005/09/30 12:34:44 ddelon
* petite modification pour integration bazar dans papyrus
*
/trunk/bazar.interne.css
10,16 → 10,16
+----------------------------------------------------------------------------+
*/
#BAZ_corps {width:100%;}
#BAZ_menu {width:100%;height:40px;font: normal 9px Georgia, serif;margin: 10px 0 10px 0;}
#BAZ_menu a {text-decoration: none;display: block;width: 9em;}
#BAZ_menu {height:23px;width:100%;font: normal 12px Georgia, serif;margin: 10px 0 10px 0;}
#BAZ_menu a {text-decoration: none;display: block;width: 8em;}
#BAZ_menu ul {padding: 0;}
#BAZ_menu li {padding: 2px;margin: 0;height:23px;float: left;list-style: none;list-style-type:none;background:transparent;
#BAZ_menu li {text-align:center;padding: 2px;margin: 0;float: left;list-style: none;list-style-type:none;background:transparent;
border-left: 3px solid #849950;border-right: 3px solid #849950;border-bottom: 2px solid #849950;}
#BAZ_menu li:hover {color: #FFF;background-color: #B1BB7E;}
#BAZ_menu li ul {position: absolute;background:#FFF;border: 1px solid #849950;left: -999em;width: 10.1em;z-index:14;}
#BAZ_menu li ul {position: absolute;background:#FFF;border: 1px solid #849950;left: -999em;width: 8.6em;z-index:14;}
#BAZ_menu li:hover ul {left: auto;margin: 2px 0 0 -6px;z-index:15;}
#BAZ_menu ul li a:hover {color: #FFF;}
 
.enligne {display:inline;}
/*-------------Les fiches Bazar-------------------------------------------------*/
.BAZ_cadre_fiche {color:#000;margin:0 auto;width:654px;}
.BAZ_cadre_fiche a {font: 13px arial, sans-serif;color:#000;text-decoration:none;}
/trunk/bibliotheque/bazar.fonct.rss.php
57,7 → 57,7
$requete = 'INSERT INTO bazar_commentaires VALUES ('.baz_nextid('bazar_commentaires', 'bc_id_commentaire', $GLOBALS['_BAZAR_']['db']).', '.$GLOBALS['_BAZAR_']['id_fiche'].', "'.$_POST['Nom'].'", "'.$_POST['Commentaire'].'", NOW() )';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
}
//cas ou un commetaire va été supprimé
//cas ou un commentaire va être supprimé
elseif (isset($_GET['id_commentaire'])) {
$requete = 'DELETE FROM bazar_commentaires WHERE bc_id_commentaire='.$_GET['id_commentaire'].' LIMIT 1';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
233,7 → 233,7
$res .= '</div>'."\n";
//on ajoute les commentaires, s'il le faut
if ($GLOBALS['_BAZAR_']['commentaire']==1) {
if (($danslappli==1)and($GLOBALS['_BAZAR_']['commentaire']==1)) {
$res .= '<div class="BAZ_cadre_fiche">'."\n";
$res .= '<div class="BAZ_cadre_fiche_haut">&nbsp;</div>'."\n";
$res .= '<div class="BAZ_cadre_fiche_corps">'."\n";
292,7 → 292,7
}
//on ajoute les appropriations, s'il le faut
if ($GLOBALS['_BAZAR_']['appropriation']==1) {
if (($danslappli==1)and($GLOBALS['_BAZAR_']['appropriation']==1)) {
$res .= '<div class="BAZ_cadre_fiche">'."\n";
$res .= '<div class="BAZ_cadre_fiche_haut">&nbsp;</div>'."\n";
$res .= '<div class="BAZ_cadre_fiche_corps">'."\n";
358,7 → 358,7
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='') {
// génération de la requete MySQL personnalisée
$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bn_label_nature FROM bazar_fiche, bazar_nature';
$requete .= ' WHERE bf_statut_fiche='.$valide;
$requete .= ' WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.' AND bf_statut_fiche='.$valide;
$nomflux=BAZ_DERNIERE_ACTU;
if (($typeannonce!='')and($typeannonce!='toutes')) {
$requete .= ' AND bn_label_nature="'.$typeannonce.'"';
380,7 → 380,7
$nomflux .= ' ('.$ligne[BAZ_CHAMPS_NOM].' '.$ligne[BAZ_CHAMPS_PRENOM].')';
}
if ($requeteSQL!='') $requete .= ' AND ('.$requeteSQL.')';
$requete .= ' ORDER BY bf_date_debut_validite_fiche, bf_date_fin_validite_fiche, bf_date_maj_fiche DESC';
$requete .= ' ORDER BY bf_date_debut_validite_fiche DESC, bf_date_fin_validite_fiche DESC, bf_date_maj_fiche DESC';
if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
415,7 → 415,7
else {//pas d'annonces
$xml .= '<item>'."\n";
$xml .= '<title>'.BAZ_PAS_D_ANNONCES.'</title>'."\n";
$xml .= '<link></link>'."\n";
$xml .= '<link>#</link>'."\n";
$xml .= '<description>'.BAZ_PAS_D_ANNONCES.'</description>'."\n";
$xml .= '<pubDate>'.strftime('%d %b %Y %H:%M:%S GMT',strtotime('12/12/2004')).'</pubDate>'."\n";
$xml .= '</item>'."\n";
430,9 → 430,87
* @return string le code HTML à afficher
*/
function baz_liste($typeannonce='toutes') {
//titre
if ($typeannonce=='toutes') $res= '<h2>'.BAZ_TOUTES_LES_ANNONCES.'</h2>'."\n";
else $res= '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.$typeannonce.'</h2>'."\n";
$res.=RSSversHTML(gen_RSS($typeannonce, '', '', 1, ''), 0, 'jm') ;
else $res = '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.$typeannonce.'</h2>'."\n";
//création du lien pour le formulaire de recherche
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_TOUTES_ANNONCES);
$lien_formulaire=preg_replace ('/&amp;/', '&', $GLOBALS['_BAZAR_']['url']->getURL()) ;
$formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire) ;
$squelette =&$formtemplate->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<ul>'."\n".'{content}'."\n".'</ul>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li class="enligne">'."\n".'{element}'."\n".
'</li>'."\n");
//requete pour obtenir l'id et le label des types d'annonces
$requete = 'SELECT bn_label_nature '.
'FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
' or bn_ce_id_menu=0 ORDER BY bn_label_nature ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$type_annonce_select['toutes']=BAZ_TOUS_TYPES_FICHES;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$type_annonce_select[$ligne['bn_label_nature']] = $ligne['bn_label_nature'];
}
$option=array('style'=>'width: 130px;', 'onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'nature', BAZ_TYPEANNONCE, $type_annonce_select, $option) ;
//requete pour obtenir l'id, le nom et prénom de toutes les personnes ayant une fiche publiée actuellement
$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' '.
'FROM bazar_fiche,'.BAZ_ANNUAIRE.' '.
'WHERE bf_statut_fiche=1 AND bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() AND bf_ce_utilisateur='.BAZ_CHAMPS_ID.' '.
'ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$personnes_select['tous']=BAZ_TOUS_LES_EMETTEURS;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
}
$option=array('style'=>'width: 130px;', 'onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'personnes', BAZ_EMETTEUR, $personnes_select, $option) ;
//champs texte pour entrer les mots clés
$option=array('size'=>15,'maxlength'=>40);
$formtemplate->addElement('text', 'recherche_mots_cles', BAZ_MOT_CLE, $option) ;
$defauts=array('recherche_mots_cles'=>BAZ_MOT_CLE);
$formtemplate->setDefaults($defauts);
//Bouton de validation du formulaire
$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
$formtemplate->addGroup($bouton, null, null, '');
$requeteSQL='';
//affichage des résultats de la recherche si le formulaire a été envoyé
if (isset($_POST['nature'])) {
$res.= $formtemplate->toHTML() ;
//préparation de la requète pour trouver les mots clés
if ($_POST['recherche_mots_cles']!='') {
//découpage des mots clés
$recherche = split(' ', $_POST['recherche_mots_cles']) ;
$nbmots=count($recherche);
for ($i=0; $i<$nbmots; $i++) {
if ($i>0) $requeteSQL.=' OR ';
$requeteSQL.='bf_titre LIKE "%'.$recherche[$i].'%" OR bf_description LIKE "%'.$recherche[$i].'%" ';
}
}
//génération de l'affichage
$res.=RSSversHTML(gen_RSS($_POST['nature'], '', $_POST['personnes'], 1, $requeteSQL), 1, 'jm') ;
}
else {
//Bouton de validation du formulaire
$res.=$formtemplate->toHTML()."\n";
}
$res .= RSSversHTML(gen_RSS($typeannonce, '', '', 1, ''), 0, 'jm') ;
return $res;
}