Subversion Repositories Applications.projet

Rev

Rev 435 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?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: projet.php,v 1.15 2007-06-25 12:15:06 alexandre_tb Exp $
/**
* Application projet
*
* Fichier d'appel pour papyrus
*
*@package projet
//Auteur original :
*@author        Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author        Aucun
*@copyright     Tela-Botanica 2000-2004
*@version       $Revision: 1.15 $
// +------------------------------------------------------------------------------------------------------+
*/

// +------------------------------------------------------------------------------------------------------+
// |                                            ENTETE du PROGRAMME                                       |
// +------------------------------------------------------------------------------------------------------+

include_once 'configuration/projet.config.inc.php' ;
include_once PROJET_CHEMIN_CLASSES.'projetControleur.class.php' ;

// meta OpenGraph pour reseaux sociaux
GEN_modifierMetaProperty('og:title', 'Projets');
GEN_modifierMetaProperty('og:description', 'Rejoignez-nous et participez aux projets de Tela Botanica. &Eacute;changez et produisez de la connaissance  &agrave; travers des forums g&eacute;n&eacute;ralistes ou sp&eacute;cialis&eacute;s.');

// Inclusion des styles selon papyrus
if (function_exists("GEN_stockerStyleExterne")) {
        if (file_exists(PROJET_CHEMIN_APPLI . 'projet.css')) GEN_stockerStyleExterne('projet', PROJET_CHEMIN_APPLI . 'projet.css') ;
}

// Nettoyage de la variable logout de papyrus
$GLOBALS['url']->removeQueryString('logout');

// Nous indiquons � Papyrus de ne pas chercher de balises d'applettes dans le contenu g�n�r� par l'appli
$GLOBALS['_PAPYRUS_']['applette']['analyse'] = true;
// +------------------------------------------------------------------------------------------------------+
// |                                           LISTE des constantes                                       |
// +------------------------------------------------------------------------------------------------------+

define ("PROJET_DEFAUT", 1) ;
define ("PROJET_VOIR", 2) ;
define ('PROJET_MENU_AFFICHER_CONTENU_CORPS', 1) ;
// +------------------------------------------------------------------------------------------------------+
// |                                           LISTE de FONCTIONS                                         |
// +------------------------------------------------------------------------------------------------------+

if (isset($_REQUEST[PROJET_VARIABLE_ID_PROJET])) {
    function afficherContenuNavigation () {
        $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ID_PROJET, $_REQUEST[PROJET_VARIABLE_ID_PROJET]) ;
        if (empty($_REQUEST[PROJET_VARIABLE_ACTION])) {
            $_REQUEST[PROJET_VARIABLE_ACTION] = PROJET_ACTION_VOIR_RESUME ;
        }
        $res = '' ;
        if (isset($GLOBALS['_GEN_commun']['info_application']->presentation)) {
            $res .= '<ul class="onglets">';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_RESUME);
            $res .= '<li id="projet_resume" class="'.cma(PROJET_ACTION_VOIR_RESUME).'"><a href="'.$GLOBALS['url']->getURL().'">'.PROJET_SYNTHESE.'</a></li>';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_DESCRIPTION);
            $res .= '<li id="projet_description" class="'.cma(PROJET_ACTION_VOIR_DESCRIPTION).'"><a href="'.$GLOBALS['url']->getURL().'">'.PROJET_DESCRIPTION.'</a></li>';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_WIKINI);
            $res .= '<li id="projet_wikini" class="'.cma(PROJET_ACTION_VOIR_WIKINI).'"><a href="'.$GLOBALS['url']->getURL().'">'.PROJET_WIKINI.'</a></li>';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_DOCUMENT) ;
            $res .= '<li id="projet_documents" class="'.cma(PROJET_ACTION_VOIR_DOCUMENT).'"><a href="'.$GLOBALS['url']->getURL().'">Documents</a></li>';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_FORUM) ;
            $res .= '<li id="projet_forum" class="'.cma(PROJET_ACTION_VOIR_FORUM).'"><a href="'.$GLOBALS['url']->getURL().'">Forum</a></li>';
            $GLOBALS['url']->addQueryString(PROJET_VARIABLE_ACTION, PROJET_ACTION_VOIR_PARTICIPANT) ;
            $res .= '<li id="projet_participants" class="'.cma(PROJET_ACTION_VOIR_PARTICIPANT).'"><a href="'.$GLOBALS['url']->getURL().'">Participants</a></li>';
            $res .= '</ul>';
            //$GLOBALS['url']->removeQueryString (PROJET_VARIABLE_ACTION) ;
        }
        if (isset ($GLOBALS['_GEN_commun']['info_application']->seulement_forum)) {
                $res = '' ;
        }
        return $res ;
    }
}

function afficherContenuMenu()
{
    $sortie  = '';
    // on fait de meme pour id_projet
    $id_projet = isset($_REQUEST[PROJET_VARIABLE_ID_PROJET]) ? $_REQUEST[PROJET_VARIABLE_ID_PROJET] :  '';
    
       // On recherche une action dans la variable $action, s'il n'y a pas, on envoie defaut
    $action = isset($_REQUEST[PROJET_VARIABLE_ACTION]) ? $_REQUEST[PROJET_VARIABLE_ACTION] : PROJET_DEFAUT;
    
    
    // et pour id_repertoire
    $id_repertoire = isset($_REQUEST['id_repertoire']) ? $_REQUEST['id_repertoire'] : '';

    $controleur = new projetControleur($GLOBALS['projet_db'], $GLOBALS['projet_auth'], $GLOBALS['url']) ;
    
    include_once PROJET_CHEMIN_CLASSES.'projet.class.php' ;
    if ($id_projet != '' && projet::projetExiste($GLOBALS['projet_db'], $id_projet)) {
        $controleur->setIdProjet($id_projet) ;
    }
    if ($id_repertoire != "") {
        $controleur->setIdRepertoire($id_repertoire) ;
    }
    if (isset ($GLOBALS['_GEN_commun']['info_application']->prive)) {
        $controleur->setPrive() ;
    }
    
    // Dans le cas de la presentation par arbre, on met les menus
    if (isset($GLOBALS['_GEN_commun']['info_application']->presentation)){

        $sortie .= $controleur->menuGeneral() ;
    }
    
        if (isset($GLOBALS['_GEN_commun']['info_application']->seulement)) {
                $controleur->setIdProjet($GLOBALS['_GEN_commun']['info_application']->seulement) ;      
        }
        if (isset($GLOBALS['_GEN_commun']['info_application']->telechargement)) {
                // L'action "Mettre un fichier en ligne"
        $controleur->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_FICHIER) ;
        $res = "<ul><li><a href=\"".$controleur->_url->getURL()."\">".PROJET_METTRE_FICHIER."</a></li>\n" ;

        // L'action creer un repertoire
        $controleur->_url->addQueryString(PROJET_VARIABLE_ACTION, PROJET_NOUVEAU_REPERTOIRE) ;
        $res .= "<li><a href=\"".$controleur->_url->getURL()."\">".PROJET_CREER_REP."</a></li>\n" ;
                $res .= '</ul></li>' ;
                $sortie .= $res ;
        }
    // Dans le cas d'un forum simple, on ne met pas les menus
    if (isset ($GLOBALS['_GEN_commun']['info_application']->seulement_forum)) {
                return ;
    }
    
    return $sortie;
}

function afficherContenuCorps() {

    // On recherche une action dans la variable $action, s'il n'y a pas, on envoie defaut
    $action = isset($_REQUEST[PROJET_VARIABLE_ACTION]) ? $_REQUEST[PROJET_VARIABLE_ACTION] : PROJET_DEFAUT;
    
    // on fait de meme pour id_projet
    $id_projet = isset($_REQUEST[PROJET_VARIABLE_ID_PROJET]) ? $_REQUEST[PROJET_VARIABLE_ID_PROJET] : '';

        $service = isset($_REQUEST[PROJET_VARIABLE_SERVICE]) ? $_REQUEST[PROJET_VARIABLE_SERVICE] : '';
        
        
    // et pour id_repertoire
    $id_repertoire = isset($_REQUEST['id_repertoire']) ? $_REQUEST['id_repertoire'] : '';

    // et pour id_document
    $id_document = isset($_REQUEST['id_document']) ? $_REQUEST['id_document'] : '';

    // On construit le controleur en lui passant en parametre l'identifiant de connexion a la BD
    // l'objet d'authentification et l'url de la page
    
    $controleur = new projetControleur(&$GLOBALS['projet_db'], &$GLOBALS['projet_auth'], &$GLOBALS['url']) ;
    $controleur->setAction ($action) ;
    $controleur->setService($service);
    
    // On indique au controleur sur quel projet on travaille
    
    if ($id_projet != "") {
        $controleur->setIdProjet($id_projet) ;

    }
    if ($id_repertoire != "") {
        $controleur->setIdRepertoire($id_repertoire) ;
    }
    if ($id_document != "") {
        $controleur->setIdDocument($id_document) ;
    }
    
    // recuperation des parametres de l'appli
    if (isset($GLOBALS['_GEN_commun']['info_application']->presentation)) {
        $controleur->setPresentation($GLOBALS['_GEN_commun']['info_application']->presentation) ;
    }
    if (isset($GLOBALS['_GEN_commun']['info_application']->projet_type)) {
        $controleur->setType($GLOBALS['_GEN_commun']['info_application']->projet_type) ;
    }
    if (isset ($GLOBALS['_GEN_commun']['info_application']->exclure)) {
        $a_exclure = explode (',', $GLOBALS['_GEN_commun']['info_application']->exclure) ;
        foreach ($a_exclure as $valeur) $controleur->exclure($valeur) ;
    }
    if (isset ($GLOBALS['_GEN_commun']['info_application']->seulement_forum)) {
        $controleur->setIdProjet($GLOBALS['_GEN_commun']['info_application']->seulement_forum) ;
        // S'il n'y a pas d'action en mode forum, on affiche l'onglet Forum
        if (!isset($_REQUEST[PROJET_VARIABLE_ACTION])) $controleur->setAction (PROJET_ACTION_VOIR_FORUM) ;
    }
    
    if (isset($GLOBALS['_GEN_commun']['info_application']->telechargement)) {
        if (!isset($_REQUEST[PROJET_VARIABLE_ACTION])) $controleur->setAction (PROJET_ACTION_VOIR_DOCUMENT) ;
    }
    
    if (isset ($GLOBALS['_GEN_commun']['info_application']->seulement)) {
        $controleur->setIdProjet($GLOBALS['_GEN_commun']['info_application']->seulement) ;
    }
    
    // Si le parametre prive est passe, les inscriptions sont moderes
    // TODO : permettre la demande d'inscription
    if (isset ($GLOBALS['_GEN_commun']['info_application']->prive)) {
        $controleur->setPrive() ;
    }
    $res = $controleur->run() ;
    
    return $res ;
}

/** cma() calcule menu actif
 *
 *
 * @return
 */

function cma ($var) {
    $class = $_REQUEST[PROJET_VARIABLE_ACTION] == $var ?  'menu_actif' :  'menu_inactif' ;
    return $class ;
}
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: projet.php,v $
* Revision 1.15  2007-06-25 12:15:06  alexandre_tb
* merge from narmer
*
* Revision 1.14  2007/04/19 15:34:35  neiluj
* preparration release (livraison) "Narmer" - v0.25
*
* Revision 1.13  2007/04/19 09:18:46  alexandre_tb
* ajout de la variable $service pour appeler les services (dans la cadre de liaisons asynchrones
*
* Revision 1.12  2006/07/04 09:35:04  alexandre_tb
* Simplification du code et ajout de controle
*
* Revision 1.11  2006/04/28 12:41:28  florian
* corrections erreurs chemin
*
* Revision 1.10  2005/12/01 16:38:32  alexandre_tb
* ajout de l'action telechargement
*
* Revision 1.9  2005/11/25 14:48:44  alexandre_tb
* ajout de la gestion de la pr�sentation tela
*
* Revision 1.8  2005/10/25 13:50:13  alexandre_tb
* Ajout de la gestion des projets priv�s
*
* Revision 1.7  2005/10/17 16:22:28  alexandre_tb
* rien
*
* Revision 1.6  2005/10/06 14:54:06  alexandre_tb
* ajout de la gestion du param�tre seulement_forum
*
* Revision 1.5  2005/10/04 10:06:32  alexandre_tb
* ajout du parametre seulement_forum
*
* Revision 1.4  2005/09/28 16:29:39  ddelon
* Merge modification projet
*
* Revision 1.3  2005/09/27 16:31:06  alexandre_tb
* ??
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/


?>