Rev 1361 | Blame | 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 file is part of Papyrus. |// | |// | Foobar 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 of the License, or |// | (at your option) any later version. |// | |// | Foobar 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 Foobar; if not, write to the Free Software |// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |// +------------------------------------------------------------------------------------------------------+// CVS : $Id: adwi_wikini.fonct.php,v 1.14 2007-04-20 13:14:05 neiluj Exp $/*** Contient les fonctions de l'application gestion des Wikini*****@package Admin_Wikini*@subpackage Fonctions//Auteur original :*@author David Delon <david.delon@tela-botanica.org>//Autres auteurs :*@author Aucun*@copyright Tela-Botanica 2000-2004*@version $Revision: 1.14 $// +------------------------------------------------------------------------------------------------------+*/// +------------------------------------------------------------------------------------------------------+// | LISTE de FONCTIONS |// +------------------------------------------------------------------------------------------------------+/* CRUD *//**** D du CRUD* @return*/function adwi_supprimer_wikini($id_wikini, &$db) {// Suppression enregistrement$valeur = adwi_valeurs_par_defaut($id_wikini,$db );$requete = "delete from gen_wikini where gewi_id_wikini =$id_wikini" ;$resultat = $db->query ($requete) ;// Suppression tables Wikini ...include_once ADWI_CHEMIN_BIBLIOTHEQUE.'gestion_wikini.class.php' ;$g_wikini = new gestion_wikini($db);if ((!isset($valeur['table_prefix'])) || (empty($config_wikini['$valeur']))) {$valeur['table_prefix'] = $valeur['code_alpha_wikini'];}$g_wikini->suppression_tables ($valeur['table_prefix']);if (GEN_FTP_UTILISE) {/** Inclusion bibliothèque de PEAR gérant le FTP.*/require_once ADWI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';// création de l'objet pear ftp$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);// création de la connexion$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);// identification$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);// Gestion des erreurs ftpif ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.'Serveur : '. PAP_FTP_SERVEUR .'<br />'.'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.'Erreur login : '.$ftp_login_result->getMessage().'<br />'.'Ligne n° : '. __LINE__ .'<br />'.'Fichier n° : '. __FILE__ .'<br /><p>';print $message;}$chemin_wikini = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini'].GEN_SEP;if ($valeur['code_alpha_wikini']!='') {$resultat = $objet_pear_ftp->rm($chemin_wikini, true);if (PEAR::isError($resultat)) {$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le wikini de reference par ftp.<br />'.'Wikini : '. $chemin_wikini .'<br />'.'Erreur origine : '. $resultat->getMessage() .'<br />'.'Ligne n° : '. __LINE__ .'<br />'.'Fichier n° : '. __FILE__ .'<br /></p>';print $message;}}}// else {// Gestion sans FTP à faire//}}/***** @return*/function adwi_valeurs_par_code_alpha($code_alpha_wikini, &$db) {$requete = "select * from gen_wikini where gewi_code_alpha_wikini='". $code_alpha_wikini."'" ;$resultat = $db->query ($requete) ;if (DB::isError ($resultat)) {$GLOBALS['_GEN_commun']['debogage_erreur']->gererErreur(E_USER_WARNING, "Echec de la requete : $requete<br />".$resultat->getMessage(),__FILE__, __LINE__, 'admin_wikini') ;return ;}$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;$resultat->free();unset ($requete, $resultat);return adwi_valeurs_par_defaut($ligne->gewi_id_wikini,$db);}function adwi_valeurs_par_defaut($id_wikini, &$db) {// requete sur gen_wikin$requete = "select * from gen_wikini where gewi_id_wikini=$id_wikini" ;$resultat = $db->query ($requete) ;if (DB::isError ($resultat)) {trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(), E_USER_WARNING) ;return ;}$tableau_retour = array () ;$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;$tableau_retour['code_alpha_wikini'] = $ligne->gewi_code_alpha_wikini;$tableau_retour['bdd_hote'] = $ligne->gewi_bdd_hote ;$tableau_retour['bdd_nom'] = $ligne->gewi_bdd_nom;$tableau_retour['bdd_utilisateur'] = $ligne->gewi_bdd_utilisateur;$tableau_retour['bdd_mdp'] = $ligne->gewi_bdd_mdp;$tableau_retour['table_prefix'] = $ligne->gewi_table_prefix ;$tableau_retour['page'] = $ligne->gewi_page;$tableau_retour['chemin'] = $ligne->gewi_chemin ;unset ($requete, $resultat);return $tableau_retour ;}/**** C du CRUD* @return int id_wikini_bdd*/function insertion ($valeur, &$db) {// Calcul dernier identifiant$id_wikini_bdd = SQL_obtenirNouveauId ($db, 'gen_wikini', 'gewi_id_wikini') ;$requete = "insert into gen_wikini set gewi_id_wikini =".$id_wikini_bdd.",".requete_wikini($valeur) ;$resultat = $db->query ($requete) ;if (DB::isError ($resultat)) {trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(),E_USER_WARNING) ;}if (GEN_FTP_UTILISE) {/** Inclusion bibliothèque de PEAR gérant le FTP.*/require_once ADWI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';// création de l'objet pear ftp$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);// création de la connexion$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);// identification$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);// Gestion des erreurs ftpif ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) {$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.'Serveur : '. PAP_FTP_SERVEUR .'<br />'.'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.'Erreur login : '.$ftp_login_result->getMessage().'<br />'.'Ligne n° : '. __LINE__ .'<br />'.'Fichier n° : '. __FILE__ .'<br /><p>';print $message;}$objet_pear_ftp->mkdir(PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini']) ;$chemin_wikini_bibliotheque = ADWI_CHEMIN_BIBLIOTHEQUE_WIKINI;$chemin_wikini = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini'].GEN_SEP;// Overwrite = fale (3eme parametre)$resultat = $objet_pear_ftp->putRecursive($chemin_wikini_bibliotheque, $chemin_wikini, false, FTP_BINARY);if (PEAR::isError($resultat)) {$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le wikini de reference par ftp.<br />'.'Fichier origine : '. $chemin_wikini_bibliotheque .'<br />'.'Fichier copié : '. $chemin_wikini .'<br />'.'Erreur origine : '. $resultat->getMessage() .'<br />'.'Ligne n° : '. __LINE__ .'<br />'.'Fichier n° : '. __FILE__ .'<br /></p>';print $message;}}// else {// Gestion sans FTP à faire//}// Creation tables wikiniinclude_once ADWI_CHEMIN_BIBLIOTHEQUE.'gestion_wikini.class.php' ;$g_wikini = new gestion_wikini($db);if ((!isset($valeur['table_prefix'])) || (empty($config_wikini['$valeur']))) {$valeur['table_prefix'] = $valeur['code_alpha_wikini'];}$g_wikini->creation_tables($valeur['table_prefix']);// Creation Wakka.config.php$config_wikini = adwi_config_wikini($valeur['code_alpha_wikini'] ,$db );$base_url=parse_url(PAP_URL);$dirname_base_url=dirname($base_url['path']);$config_base_url=$dirname_base_url.GEN_SEP.ADWI_CHEMIN_WIKINI.GEN_SEP.$config_wikini['code_alpha_wikini'].GEN_SEP."wakka.php?wiki=";$config_base_url = str_replace("//", "/", $config_base_url);$config = array("wakka_version" => "0.1.1","wikini_version" => "0.4.3",'mysql_host' => $config_wikini['bdd_hote'],'mysql_database' => $config_wikini['bdd_nom'],'mysql_user' => $config_wikini['bdd_utilisateur'],'mysql_password' => $config_wikini['bdd_mdp'],'table_prefix' => $config_wikini['table_prefix'],'root_page' => $config_wikini['page'],'wakka_name' => $config_wikini['code_alpha_wikini'],'base_url' => $config_base_url,'rewrite_mode' => '0','meta_keywords' => '','meta_description' => '','action_path' => 'actions','handler_path' => 'handlers','header_action' => 'header','footer_action' => 'footer','navigation_links' => 'DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur','referrers_purge_time' => 24,'pages_purge_time' => 90,'default_write_acl' => '*','default_read_acl' => '*','default_comment_acl' => '*','preview_before_save' => '0');// convert config array into PHP code$configCode = "<?php\n// wakka.config.php créée ".strftime("%c")."\n// ne changez pas la wikini_version manuellement!\n\n\$wakkaConfig = array(\n";foreach ($config as $k => $v){$entries[] = "\t\"".$k."\" => \"".$v."\"";}$configCode .= implode(",\n", $entries).");\n?>";$tempfn = tempnam("","");$temp = fopen($tempfn, "w");fwrite($temp, $configCode);fclose($temp);$fichier_config_source = $tempfn;$fichier_config_cible = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini'].GEN_SEP."wakka.config.php";$resultat = $objet_pear_ftp->put($fichier_config_source, $fichier_config_cible, false, FTP_BINARY);if (PEAR::isError($resultat)) {$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier le wikini de reference par ftp.<br />'.'Fichier origine : '. $chemin_wikini_bibliotheque .'<br />'.'Fichier copié : '. $chemin_wikini .'<br />'.'Erreur origine : '. $resultat->getMessage() .'<br />'.'Ligne n° : '. __LINE__ .'<br />'.'Fichier n° : '. __FILE__ .'<br /></p>';print $message;}$objet_pear_ftp->disconnect();unlink($tempfn);}/**** U du CRUD* @return*/function mise_a_jour ($valeur, &$db) {$requete = "update gen_wikini set ".requete_wikini($valeur).' where gewi_id_wikini ='.$GLOBALS['id_wikini'] ;$resultat = $db->query ($requete) ;if (DB::isError ($resultat)) {trigger_error("Echec de la requete : $requete<br />".$resultat->getMessage(),E_USER_WARNING) ;}}/**** Formate code sql pour insertion à partir des valeurs entrees dans le formulaire** @return string un morceau de code SQL*/function requete_wikini (&$valeur) {return 'gewi_code_alpha_wikini ="'.$valeur['code_alpha_wikini'].'", '.'gewi_bdd_hote ="'.$valeur['bdd_hote'].'", '.'gewi_bdd_nom="'.$valeur['bdd_nom'].'", '.'gewi_bdd_utilisateur ="'.$valeur['bdd_utilisateur'].'", '.'gewi_bdd_mdp="'.$valeur['bdd_mdp'].'", '.'gewi_table_prefix="'.$valeur['table_prefix'].'", '.'gewi_chemin="'.$valeur['chemin'].'", '.'gewi_page="'.$valeur['page'].'"';}function adwi_config_wikini($code_alpha_wikini,&$db) {$config_wikini = adwi_valeurs_par_code_alpha($code_alpha_wikini,$db );// Parametres de base de donnée de Papyrus par défautif ((!isset($config_wikini['bdd_hote'])) || (empty($config_wikini['bdd_hote']))) {$config_wikini['bdd_hote'] = PAP_BDD_SERVEUR;}if ((!isset($config_wikini['bdd_nom'])) || (empty($config_wikini['bdd_nom']))) {$config_wikini['bdd_nom'] = PAP_BDD_NOM;}if ((!isset($config_wikini['bdd_utilisateur'])) || (empty($config_wikini['bdd_utilisateur']))) {$config_wikini['bdd_utilisateur'] = PAP_BDD_UTILISATEUR;}if ((!isset($config_wikini['bdd_mdp'])) || (empty($config_wikini['bdd_mdp']))) {$config_wikini['bdd_mdp'] = PAP_BDD_MOT_DE_PASSE;}if ((!isset($config_wikini['table_prefix'])) || (empty($config_wikini['table_prefix']))) {$config_wikini['table_prefix'] = $code_alpha_wikini.'_';}// Ordre de selection de la page de demarrage :// Page par defaut du Wiki enregistré// PagePrincipaleif ((!isset($config_wikini['page'])) || (empty($config_wikini['page']))) {$config_wikini['page'] = 'PagePrincipale';}/** Constante stockant le chemin du dossier contenant le site Wikini en cours */if ((!isset($config_wikini['chemin'])) || (empty($config_wikini['chemin']))) {$config_wikini['chemin'] = GEN_CHEMIN_WIKINI.$config_wikini['code_alpha_wikini'].GEN_SEP;}return $config_wikini;}// +------------------------------------------------------------------------------------------------------+// | PIED du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/* +--Fin du code ----------------------------------------------------------------------------------------+** $Log: not supported by cvs2svn $* Revision 1.10 2006/10/05 08:56:12 florian* maj table sql** Revision 1.9 2006/09/21 14:18:06 florian* changement du wiki de base (ajout du gestionnaire d'extension), amélioration de l'intégrateur wiki** Revision 1.8 2006/07/19 13:55:01 ddelon* Bug suppression de Wiki** Revision 1.7 2006/06/02 09:12:16 florian* ajout constante chemin** Revision 1.6 2006/04/28 12:41:26 florian* corrections erreurs chemin** Revision 1.5 2005/09/28 16:29:39 ddelon* Merge modification projet** Revision 1.4 2005/09/09 09:37:17 ddelon* Integrateur Wikini et administration des Wikini** Revision 1.3 2005/09/02 11:29:25 ddelon* Integrateur Wikini et administration des Wikini** Revision 1.2 2005/08/31 17:34:52 ddelon* Integrateur Wikini et administration des Wikini** Revision 1.1 2005/08/25 08:59:12 ddelon* Integrateur Wikini et administration des Wikini** Revision 1.1 2005/03/09 10:44:04 jpm* Mise au norme du nom du fichier.** Revision 1.2 2005/03/09 10:40:33 alex* version initiale** Revision 1.1 2004/12/13 18:07:28 alex* version initiale*** +-- Fin du code ----------------------------------------------------------------------------------------+*/?>