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: afficheur.admin.php,v 1.11 2006-03-13 22:27:23 ddelon Exp $ |
// CVS : $Id: afficheur.admin.php,v 1.12 2006-03-24 13:03:24 ddelon Exp $ |
/** |
* Gestion de la rédaction du contenu pour Papyrus. |
* |
32,7 → 32,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.11 $ $Date: 2006-03-13 22:27:23 $ |
*@version $Revision: 1.12 $ $Date: 2006-03-24 13:03:24 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
104,6 → 104,16 |
$url->addQueryString('adme_menu_id', $adme_menu_id); |
$url->addQueryString('adme_action', $adme_action); |
|
|
$id_langue = $GLOBALS['_GEN_commun']['i18n']; |
|
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
} |
|
|
//------------------------------------------------------------------------------------------------------------------- |
// Récupération des informations du contenu concerné. |
$ligne_menu = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC); |
115,47 → 125,124 |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
|
|
$id_langue = $GLOBALS['_GEN_commun']['i18n']; |
|
|
// Comment ca marche ? |
// Historiquement, le code menu est associé au contenu |
// Depuis le passage au multilinguisme : ce comportement est conservé mais : |
// Tout nouveau contenu, contient également l'information code gm_id_menu, enfoui dans le |
// type contenu. |
|
if (isset($id_langue) && ($id_langue!='')) { |
$langue_test=$id_langue; |
} else { |
$langue_test=GEN_I18N_ID_DEFAUT; |
// Récupération identifiant du menu en cours |
|
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '. |
'AND gm_ce_i18n = "'.$ligne_menu['gm_ce_i18n'].'" '; |
|
|
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
|
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
if ( $resultat->numRows() > 0 ) { |
|
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
} |
else { |
|
// Pas d'identifiant pour le menu en cours ? Il n'a pas encore été traduit, on recupere l'identifiant |
// de la langue en cours |
|
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '. |
'AND gm_ce_i18n = "'.$langue_test.'" '; |
|
|
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
|
// Récupération du dernier contenu : cas d'un traduction |
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu,gmc_ce_menu '. |
'FROM gen_menu_contenu '. |
'WHERE truncate((gmc_ce_type_contenu/10),0) = '. $adme_menu_id . ' '. |
'AND gmc_bool_dernier = 1'; |
|
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
} |
|
// Ici, on a un identifiant pour le menu, soit : |
// - l'identifiant du menu selectionné, s'il a été traduit |
// - l'identifiant du menu par defaut, s'il n'a pas été traduit |
|
|
// On recherche maintenant le contenu : |
|
|
// Cas historique, recherche sur le code menu uniquement. |
|
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne->gm_code_num.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
|
//'WHERE gmc_ce_menu = '.$ligne->gm_id_menu.' '. |
|
|
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
|
// Rien trouvé ? : Migration multilinguisme ou pas encore de contenu |
|
if ( $resultat->numRows() == 0 ) { |
|
|
// Multilinguisme : |
|
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne_menu['gm_code_num'].' '. |
'AND truncate((gmc_ce_type_contenu/10),0) = '. $ligne->gm_id_menu . ' '. |
'AND gmc_bool_dernier = 1'; |
|
|
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
// Pas de contenu, tentative de recuperation contenu initial |
|
if ( $resultat->numRows() == 0 ) { |
|
if ( $resultat->numRows() == 0 ) { |
|
$requete = 'SELECT gm_id_menu, gm_code_num '. |
'FROM gen_menu '. |
'WHERE gm_code_num = '.$ligne_menu['gm_code_num'].' '. |
'AND gm_ce_i18n = "'.$langue_test.'" '; |
|
$resultat_defaut = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
|
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu,gmc_ce_menu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$adme_menu_id.' '. |
'AND gmc_ce_type_contenu in (1,2) '. |
'AND gmc_bool_dernier = 1'; |
|
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
} |
(DB::isError($resultat_defaut)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_defaut->getMessage(), $requete)) : ''; |
|
$ligne = $resultat_defaut->fetchRow(DB_FETCHMODE_OBJECT); |
|
|
$requete = 'SELECT gmc_contenu , gmc_ce_type_contenu '. |
'FROM gen_menu_contenu '. |
'WHERE gmc_ce_menu = '.$ligne_menu['gm_code_num'].' '. |
'AND truncate((gmc_ce_type_contenu/10),0) = '. $ligne->gm_id_menu . ' '. |
'AND gmc_bool_dernier = 1'; |
|
$resultat = $GLOBALS['_AFFICHEUR']['objet_pear_db']->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
|
} |
|
} |
|
|
|
$ligne_dernier_contenu = $resultat->fetchRow(DB_FETCHMODE_ASSOC); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
// Hack : |
|
|
|
$retour = '<h1>'.'Rédaction'.'</h1>'."\n"; |
//------------------------------------------------------------------------------------------------------------------- |
// Création du formulaire |
311,6 → 398,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.11 2006/03/13 22:27:23 ddelon |
* bug afficheur multilinguisme |
* |
* Revision 1.10 2006/03/13 22:12:20 ddelon |
* bug afficheur multilinguisme |
* |