Esempio n. 1
0
     $sql = 'SELECT bl_label_liste, blv_valeur, blv_label  FROM ' . BAZ_PREFIXE . 'liste, ' . BAZ_PREFIXE . 'liste_valeurs WHERE blv_ce_liste=bl_id_liste AND blv_label!="Choisir..." ORDER BY blv_ce_liste, blv_valeur';
     $tab = $this->LoadAll($sql);
     $anciennomliste = '';
     $valeur = NULL;
     foreach ($tab as $ligne) {
         if ($ligne['bl_label_liste'] != $anciennomliste) {
             if (is_array($valeur)) {
                 $output .= $nomwikiliste . ' ' . json_encode($valeur) . '<hr />';
                 //on sauve les valeurs d'une liste dans une PageWiki, pour garder l'historique
                 $GLOBALS["wiki"]->SavePage($nomwikiliste, json_encode($valeur));
                 //on cree un triple pour spécifier que la page wiki créée est une liste
                 $GLOBALS["wiki"]->InsertTriple($nomwikiliste, 'http://outils-reseaux.org/_vocabulary/type', 'liste', '', '');
             }
             $valeur = NULL;
             $valeur = array();
             $nomwikiliste = genere_nom_wiki(html_entity_decode('Liste ' . $ligne['bl_label_liste']));
             //on supprime les valeurs vides et on encode en utf-8 pour réussir à encoder en json
             $valeur["titre_liste"] = utf8_encode(html_entity_decode($ligne['bl_label_liste']));
             $anciennomliste = $ligne['bl_label_liste'];
         }
         $valeur["label"][$ligne['blv_valeur']] = utf8_encode(html_entity_decode($ligne['blv_label']));
     }
     if ($output != '') {
         $output = '<div class="info_box">Ces pages suivantes ont étés rajoutées:</div><div style="overflow:auto;width:100%;height:200px;">' . $output . '</div>' . "\n";
     }
     //on efface les tables qui servent plus
     $this->Query('DROP TABLE ' . BAZ_PREFIXE . 'liste, ' . BAZ_PREFIXE . 'liste_valeurs');
 }
 $repertoire = 'tools/bazar/install/formulaire/';
 $dir = opendir($repertoire);
 $tab_formulaire = array();
/** titre() - Action qui camouffle le titre et le génére a  partir d'autres champs au formulaire
 *
 * @param    mixed   L'objet QuickForm du formulaire
 * @param    mixed   Le tableau des valeurs des différentes option pour le texte HTML
 * @param    string  Type d'action pour le formulaire : saisie, modification, vue,... saisie par défaut
 * @return   void
 */
function titre(&$formtemplate, $tableau_template, $mode, $valeurs_fiche)
{
    list($type, $template) = $tableau_template;
    if ($mode == 'saisie') {
        $formtemplate->addElement('hidden', 'bf_titre', $template, array('id' => 'bf_titre'));
    } elseif ($mode == 'requete') {
        if (isset($GLOBALS['_BAZAR_']['provenance']) && $GLOBALS['_BAZAR_']['provenance'] == 'import') {
            $valeurs_fiche['id_fiche'] = isset($valeurs_fiche['id_fiche']) ? $valeurs_fiche['id_fiche'] : genere_nom_wiki($valeurs_fiche['bf_titre']);
            return array('bf_titre' => $valeurs_fiche['bf_titre'], 'id_fiche' => $valeurs_fiche['id_fiche']);
        }
        preg_match_all('#{{(.*)}}#U', $valeurs_fiche['bf_titre'], $matches);
        $tab = array();
        foreach ($matches[1] as $var) {
            if (isset($valeurs_fiche[$var])) {
                //pour une listefiche ou une checkboxfiche on cherche le titre de la fiche
                if (preg_match('#^listefiche#', $var) != false || preg_match('#^checkboxfiche#', $var) != false) {
                    $tab_fiche = baz_valeurs_fiche($valeurs_fiche[$var]);
                    $valeurs_fiche['bf_titre'] = str_replace('{{' . $var . '}}', $tab_fiche['bf_titre'] != null ? $tab_fiche['bf_titre'] : '', $valeurs_fiche['bf_titre']);
                } elseif (preg_match('#^liste#', $var) != false || preg_match('#^checkbox#', $var) != false) {
                    //sinon on prend le label de la liste
                    //on récupere le premier chiffre (l'identifiant de la liste)
                    preg_match_all('/[0-9]{1,4}/', $var, $matches);
                    $req = 'SELECT blv_label FROM ' . BAZ_PREFIXE . 'liste_valeurs WHERE blv_ce_liste=' . $matches[0][0] . ' AND blv_valeur=' . $valeurs_fiche[$var] . ' AND blv_ce_i18n="fr-FR"';
                    $label = $GLOBALS['wiki']->LoadSingle($req);
                    $valeurs_fiche['bf_titre'] = str_replace('{{' . $var . '}}', $label[0] != null ? $label[0] : '', $valeurs_fiche['bf_titre']);
                } else {
                    $valeurs_fiche['bf_titre'] = str_replace('{{' . $var . '}}', $valeurs_fiche[$var], $valeurs_fiche['bf_titre']);
                }
            }
        }
        $valeurs_fiche['id_fiche'] = isset($valeurs_fiche['id_fiche']) ? $valeurs_fiche['id_fiche'] : genere_nom_wiki($valeurs_fiche['bf_titre']);
        return array('bf_titre' => $valeurs_fiche['bf_titre'], 'id_fiche' => $valeurs_fiche['id_fiche']);
    } elseif ($mode == 'html') {
        // Le titre
        return '<h1 class="BAZ_fiche_titre">' . htmlentities($valeurs_fiche['bf_titre'], ENT_QUOTES, TEMPLATES_DEFAULT_CHARSET) . '</h1>' . "\n";
    } elseif ($mode == 'formulaire_recherche') {
        return;
    }
}
Esempio n. 3
0
//IL MODIFIE LE MAIL ET LES MOTS DE PASSE DES NOMS WIKI EXISTANT DEJA
//UN MAIL EST ENVOYE A CHAQUE UTILISATEUR, POUR LUI RAPPELER SES IDENTIFIANTS, MOTS DE PASSE
// Vérification de sécurité
if (!defined("WIKINI_VERSION")) {
    die("acc&egrave;s direct interdit");
}
if ($this->UserIsInGroup('admins')) {
    $sql = 'SELECT bl_label_liste, blv_label  FROM ' . BAZ_PREFIXE . 'liste, ' . BAZ_PREFIXE . 'liste_valeurs WHERE blv_ce_liste=bl_id_liste ORDER BY blv_ce_liste, blv_valeur';
    $tab = $this->LoadAll($sql);
    $anciennomliste = '';
    foreach ($tab as $ligne) {
        if ($ligne['bl_label_liste'] != $anciennomliste) {
            if (is_array($valeur)) {
                echo $nomwikiliste . ' ' . json_encode($valeur) . '<br /><br />';
                //on sauve les valeurs d'une liste dans une PageWiki, pour garder l'historique
                $GLOBALS["wiki"]->SavePage($nomwikiliste, json_encode($valeur));
                //on cree un triple pour spécifier que la page wiki créée est une liste
                $GLOBALS["wiki"]->InsertTriple($nomwikiliste, 'http://outils-reseaux.org/_vocabulary/type', 'liste', '', '');
            }
            $valeur = NULL;
            $valeur = array();
            $nomwikiliste = genere_nom_wiki($ligne['bl_label_liste']);
            //on supprime les valeurs vides et on encode en utf-8 pour réussir à encoder en json
            $valeur["titre_liste"] = utf8_encode(htmlentities($ligne['bl_label_liste']));
            $anciennomliste = $ligne['bl_label_liste'];
            $i = 1;
        }
        $valeur["label"][$i] = utf8_encode($ligne['blv_label']);
        $i++;
    }
}
Esempio n. 4
0
/** genere_nom_wiki()
 *  Prends une chaine de caracteres, et la tranforme en NomWiki unique, en la limitant
 *  a 50 caracteres et en mettant 2 majuscules
 *  Si le NomWiki existe deja, on propose recursivement NomWiki2, NomWiki3, etc..
 *
 *   @param  string  chaine de caracteres avec de potentiels accents a enlever
 *   @param int nombre d'iteration pour la fonction recursive (1 par defaut)
 *
 *
 *   return  string chaine de caracteres, en NomWiki unique
 */
function genere_nom_wiki($nom, $occurence = 1)
{
    // si la fonction est appelee pour la premiere fois, on nettoie le nom passe en parametre
    if ($occurence <= 1) {
        // les noms wiki ne doivent pas depasser les 50 caracteres, on coupe a 48
        // histoire de pouvoir ajouter un chiffre derriere si nom wiki deja existant
        // plus traitement des accents et ponctuation
        // plus on met des majuscules au debut de chaque mot et on fait sauter les espaces
        $temp = remove_accents(mb_substr(preg_replace('/[[:punct:]]/', ' ', $nom), 0, 47, TEMPLATES_DEFAULT_CHARSET));
        $temp = explode(' ', ucwords(strtolower($temp)));
        $nom = '';
        foreach ($temp as $mot) {
            // on vire d'eventuels autres caracteres speciaux
            $nom .= preg_replace('/[^a-zA-Z0-9]/', '', trim($mot));
        }
        // on verifie qu'il y a au moins 2 majuscules, sinon on en rajoute une a la fin
        $var = preg_replace('/[^A-Z]/', '', $nom);
        if (strlen($var) < 2) {
            $last = ucfirst(substr($nom, strlen($nom) - 1));
            $nom = substr($nom, 0, -1) . $last;
        }
        $nom = '';
        foreach ($temp as $mot) {
            // on vire d'eventuels autres caracteres speciaux
            $nom .= preg_replace('/[^a-zA-Z0-9]/', '', trim($mot));
        }
        // on verifie qu'il y a au moins 2 majuscules, sinon on en rajoute une a la fin
        $var = preg_replace('/[^A-Z]/', '', $nom);
        if (strlen($var) < 2) {
            $last = ucfirst(substr($nom, strlen($nom) - 1));
            $nom = substr($nom, 0, -1) . $last;
        }
    } elseif ($occurence > 2) {
        // si on en est a plus de 2 occurences, on supprime le chiffre precedent et on ajoute la nouvelle occurence
        $nb = -1 * strlen(strval($occurence - 1));
        $nom = substr($nom, 0, $nb) . $occurence;
    } else {
        // cas ou l'occurence est la deuxieme : on reprend le NomWiki en y ajoutant le chiffre 2
        $nom = $nom . $occurence;
    }
    if ($occurence == 0) {
        // pour occurence = 0 on ne teste pas l'existance de la page
        return $nom;
    } elseif (!is_array($GLOBALS['wiki']->LoadPage($nom))) {
        // on verifie que la page n'existe pas deja : si c'est le cas on le retourne
        return $nom;
    } else {
        // sinon, on rappele recursivement la fonction jusqu'a ce que le nom aille bien
        $occurence++;
        return genere_nom_wiki($nom, $occurence);
    }
}
Esempio n. 5
0
/** genere_nom_wiki() Prends une chaine de caracteres, et la tranforme en NomWiki unique, en la limitant a 50 caracteres et en mettant 2 majuscules
*	Si le NomWiki existe deja , on propose recursivement NomWiki2, NomWiki3, etc..
*
*   @param  string  chaine de caracteres avec de potentiels accents a enlever
*   @param	integer	nombre d'iteration pour la fonction recursive (1 par defaut)
*
*
*   return  string	chaine de caracteres, en NomWiki unique
*/
function genere_nom_wiki($nom, $occurence = 1)
{
    // si la fonction est appelee pour la premiere fois, on nettoie le nom passe en parametre
    if ($occurence == 1) {
        // les noms wiki ne doivent pas depasser les 50 caracteres, on coupe a 48, histoire de pouvoir ajouter un chiffre derriere si nom wiki déja existant
        // plus traitement des accents
        // plus on met des majuscules au debut de chaque mot et on fait sauter les espaces
        $temp = explode(" ", ucwords(strtolower(remove_accents(substr($nom, 0, 47)))));
        $nom = '';
        foreach ($temp as $mot) {
            // on vire d'eventuels autres caracteres speciaux
            $nom .= ereg_replace("[^a-zA-Z0-9]", "", trim($mot));
        }
        // on verifie qu'il y a au moins 2 majuscules, sinon on en rajoute une a la fin
        $var = ereg_replace('[^A-Z]', '', $nom);
        if (strlen($var) < 2) {
            $last = ucfirst(substr($nom, strlen($nom) - 1));
            $nom = substr($nom, 0, -1) . $last;
        }
    } elseif ($occurence > 2) {
        $nb = -1 * strlen(strval($occurence - 1));
        $nom = substr($nom, 0, $nb) . $occurence;
    } else {
        $nom = $nom . $occurence;
    }
    // on verifie que la page n'existe pas deja : si c'est le cas on le retourne
    if (!is_array($GLOBALS['wiki']->LoadPage($nom))) {
        return $nom;
    } else {
        $occurence++;
        return genere_nom_wiki($nom, $occurence);
    }
}
/** utilisateur_wikini() - Ajoute un élément de type texte pour créer un utilisateur wikini au formulaire
*
* @param    mixed   L'objet QuickForm du formulaire
* @param    mixed   Le tableau des valeurs des différentes option pour l'élément texte
* @param    string  Type d'action pour le formulaire : saisie, modification, vue,... saisie par défaut
* @return   void
*/
function utilisateur_wikini(&$formtemplate, $tableau_template, $mode, $valeurs_fiche)
{
    if ($mode == 'saisie') {
        $option = array('size' => $tableau_template[3], 'maxlength' => $tableau_template[4], 'id' => 'nomwiki');
        if (isset($tableau_template[5]) && $tableau_template[5] != '') {
            $option['readonly'] = 'readonly';
            //on entre le NomWiki
            $formtemplate->addElement('text', 'nomwiki', "NomWiki", $option);
            $defs = array('nomwiki' => stripslashes($tableau_template[5]));
            $formtemplate->setDefaults($defs);
            //$formtemplate->applyFilter('nomwiki', 'addslashes') ;
            $formtemplate->addRule('nomwiki', 'NomWiki obligatoire', 'required', '', 'client');
            //test nomWiki du connecte, pour savoir s'il peut changer son mot de passe
            if ($GLOBALS['_BAZAR_']['nomwiki']['name'] == $tableau_template[5]) {
                require_once 'HTML/QuickForm/html.php';
                $formhtml = new HTML_QuickForm_html('<tr>' . "\n" . '<td>&nbsp;</td>' . "\n" . '<td style="text-align:left;"><a href="' . $GLOBALS['wiki']->href('', 'ChangePassword', '') . '" target="_blank">Changer son mot de passe</a></td>' . "\n" . '</tr>' . "\n");
                $formtemplate->addElement($formhtml);
            }
        } elseif (!isset($tableau_template[5]) || $tableau_template[5] == '') {
            //mot de passe
            $bulledaide = '';
            if (isset($tableau_template[10]) && $tableau_template[10] != '') {
                $bulledaide = ' <img class="tooltip_aide" title="' . htmlentities($tableau_template[10]) . '" src="tools/bazar/presentation/images/aide.png" width="16" height="16" alt="image aide" />';
            }
            $option = array('size' => $tableau_template[3], 'class' => 'input_texte');
            $formtemplate->addElement('password', 'mot_de_passe_wikini', BAZ_MOT_DE_PASSE . $bulledaide, $option);
            $formtemplate->addElement('password', 'mot_de_passe_repete_wikini', BAZ_MOT_DE_PASSE . ' (' . BAZ_VERIFICATION . ')', $option);
            $formtemplate->addRule('mot_de_passe_wikini', 'mot de passe obligatoire', 'required', '', 'client');
            $formtemplate->addRule('mot_de_passe_repete_wikini', 'mot de passe r&eacute;p&eacute;t&eacute; obligatoire', 'required', '', 'client');
            $formtemplate->addRule(array('mot_de_passe_wikini', 'mot_de_passe_repete_wikini'), 'Les mots de passe doivent être identiques', 'compare', '', 'client');
        }
    } elseif ($mode == 'requete') {
        if (!isset($valeurs_fiche['nomwiki'])) {
            $nomwiki = genere_nom_wiki($valeurs_fiche[$tableau_template[1]]);
            $requeteinsertionuserwikini = 'INSERT INTO ' . $GLOBALS['wiki']->config["table_prefix"] . "users SET " . "signuptime = now(), " . "name = '" . mysql_escape_string($nomwiki) . "', " . "email = '" . mysql_escape_string($valeurs_fiche[$tableau_template[2]]) . "', " . "password = md5('" . mysql_escape_string($valeurs_fiche['mot_de_passe_wikini']) . "')";
            $resultat = $GLOBALS['_BAZAR_']['db']->query($requeteinsertionuserwikini);
            if (DB::isError($resultat)) {
                echo $resultat->getMessage() . $resultat->getDebugInfo();
            }
            return array('nomwiki' => $nomwiki);
            //envoi mail nouveau mot de passe
            $lien = str_replace("/wakka.php?wiki=", "", $GLOBALS['wiki']->config["base_url"]);
            $objetmail = '[' . str_replace("http://", "", $lien) . '] Vos nouveaux identifiants sur le site ' . $GLOBALS['wiki']->config["wakka_name"];
            $messagemail = "Bonjour!\n\nVotre inscription sur le site a été finalisée, dorénavant vous pouvez vous identifier avec les informations suivantes :\n\nVotre identifiant NomWiki : " . $nomwiki . "\nVotre mot de passe : " . $valeurs_fiche['mot_de_passe_wikini'] . "\n\nA très bientôt !\n\nSylvie Vernet, webmestre";
            $headers = 'From: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'Reply-To: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'X-Mailer: PHP/' . phpversion();
            mail($valeurs_fiche['bf_mail'], remove_accents($objetmail), $messagemail, $headers);
        } elseif (isset($valeurs_fiche['mot_de_passe_wikini'])) {
            $requetemodificationuserwikini = 'UPDATE ' . $GLOBALS['wiki']->config["table_prefix"] . "users SET " . "email = '" . mysql_escape_string($valeurs_fiche['bf_mail']) . "', " . "password = md5('" . mysql_escape_string($valeurs_fiche['mot_de_passe_wikini']) . "') WHERE name=\"" . $valeurs_fiche['bf_nom_wikini'] . "\"";
            $resultat = $GLOBALS['_BAZAR_']['db']->query($requetemodificationuserwikini);
            if (DB::isError($resultat)) {
                echo $resultat->getMessage() . $resultat->getDebugInfo();
            }
            //envoi mail nouveau mot de passe
            $lien = str_replace("/wakka.php?wiki=", "", $GLOBALS['wiki']->config["base_url"]);
            $objetmail = '[' . str_replace("http://", "", $lien) . '] Vos nouveaux identifiants sur le site ' . $GLOBALS['wiki']->config["wakka_name"];
            $messagemail = "Bonjour!\n\nVotre inscription sur le site a été modifiée, dorénavant vous pouvez vous identifier avec les informations suivantes :\n\nVotre identifiant NomWiki : " . $nomwiki . "\nVotre mot de passe : " . $valeurs_fiche['mot_de_passe_wikini'] . "\n\nA très bientôt !\n\nSylvie Vernet, webmestre";
            $headers = 'From: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'Reply-To: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'X-Mailer: PHP/' . phpversion();
            mail($valeurs_fiche['bf_mail'], remove_accents($objetmail), $messagemail, $headers);
        }
    } elseif ($mode == 'recherche') {
    } elseif ($mode == 'html') {
    }
}
Esempio n. 7
0
if (!defined("WIKINI_VERSION")) {
    die("acc&egrave;s direct interdit");
}
if ($this->UserIsInGroup('admins')) {
    //PARAMETRES A CHANGER EN FONCTION DU SITE
    //numéros d'identifiants des types de fiches correspondant à un annuaire dans bazar
    $idtemplatebazar = '9,15';
    //mot de passe générique associé à tous les comptes
    $motdepasse = 'reema';
    //message envoyé par mail pour le changement de mot de passe
    $lien = str_replace("/wakka.php?wiki=", "", $this->config["base_url"]);
    $objetmail = '[' . str_replace("http://", "", $lien) . '] Vos nouveaux identifiants sur le site ' . $this->config["wakka_name"];
    $sql = 'SELECT bf_titre, bf_mail FROM ' . BAZ_PREFIXE . 'fiche WHERE bf_ce_nature IN (' . $idtemplatebazar . ') AND (bf_id_fiche=793 OR bf_id_fiche=804)';
    $tab = $this->LoadAll($sql);
    foreach ($tab as $ligne) {
        $nomwiki = genere_nom_wiki($ligne['bf_titre']);
        echo 'BAZAR : ' . $ligne['bf_titre'] . ' - ' . $ligne['bf_mail'] . '<br />';
        if ($existingUser = $this->LoadUser($nomwiki)) {
            $requete = "update " . $this->config["table_prefix"] . "users set " . "email = '" . mysql_escape_string($ligne['bf_mail']) . "', " . "password = md5('" . mysql_escape_string($motdepasse) . "') " . "where name = '" . $nomwiki . "' limit 1";
        } else {
            $requete = "insert into " . $this->config["table_prefix"] . "users set " . "signuptime = now(), " . "name = '" . mysql_escape_string($nomwiki) . "', " . "email = '" . mysql_escape_string($ligne['bf_mail']) . "', " . "password = md5('" . mysql_escape_string($motdepasse) . "')";
        }
        $this->Query($requete);
        //on ajoute le nom wiki comme createur de sa fiche
        $requtilisateur = "UPDATE '.BAZ_PREFIXE.'fiche SET bf_ce_utilisateur=\"" . mysql_escape_string($nomwiki) . "\" WHERE bf_mail=\"" . $ligne['bf_mail'] . "\"";
        $this->Query($requtilisateur);
        //envoi du mail
        $messagemail = "Bonjour à tous,\nToute l'équipe est heureuse de vous faire part de la mise en ligne du nouveau site internet coopératif du REEMA. Ce site arbore de nouvelles couleurs et de nouvelles fonctionnalités pour donner encore plus de vie à l'éducation à la montagne sur le massif alpin !\nVoir le site à cette adresse : " . str_replace("/wakka.php?wiki=", "", $this->config["base_url"]) . "\n1- Un site coopératif pour l'éducation à la montagne\nComme précédemment un grand nombre des fonctions du site peuvent être utilisées par les acteurs du massif alpin. Toute personne, une fois inscrite, peut facilement et directement :\n- annoncer ses activités grand public, : conférence, sortie, visite, etc ...,\n- publier une actualité et l'enregistrer sur la carte des évènements : formation, séjour, annonce, etc ...,\n- présenter une ressource pédagogique : animation, vidéo, exposition, etc ...,\n- et s'enregistrer sur la carte des acteurs du massif alpin.\nCet outil a toujours pour objectif de rendre les acteurs autonomes pour la publication de leurs propre informations, en temps réel ...(juste après validation par le modérateur !)\n2- Petite visite guidée, quelques pages à retenir\nPour avoir un aperçu du site, nous vous invitons à découvrir en particulier les pages suivantes :\n- Espace Actualités :\nvoir http://www.reema.fr/wakka.php?wiki=AnnonceS\n- Espace Ressources :\nvoir http://www.reema.fr/wakka.php?wiki=EspaceRessources\n- Espace Emploi, stage et formation :\nvoir http://www.reema.fr/wakka.php?wiki=EmploisStages\n- Pour découvrir les nouvelles fonctionnalités très intéressantes dans l'espace Actualités :\n  - l'agenda : http://www.reema.fr/wakka.php?wiki=Calendrier\n  - la cartographie des évènements :  http://www.reema.fr/wakka.php?wiki=CartoEvenements\n3- A vous de jouer !\nVotre inscription a été migrée de l'ancien au nouveau système, identifiez vous en haut à droite avec les informations suivantes :\nVotre identifiant NomWiki : " . $nomwiki . "\nVotre mot de passe : " . $motdepasse . "\n\nVotre fiche apparait alors, il ne vous reste plus qu'à descendre en bas de votre fiche et cliquer sur \"modifier la fiche\" pour actualiser vos informations.\nVeillez surtout à changer votre mot de passe pour des raisons de sécurité !\n4- Des wikinis Acteurs\nDes espaces projets peuvent être mis à disposition. Ceux sont des espaces internet (virtuel) ou wikini dans lesquels des acteurs du REEMA peuvent se regrouper pour échanger des informations ou mener un projet en commun (nous contacter pour en savoir plus).\nDéfinition : le wikini est un logiciel de navigation sur internet collaboratif. Il suffit de double-cliquer sur chaque page. Le navigateur fonctionnera alors comme un logiciel de traitement de texte classique.\n5 - En conclusion\nCe site est bien sûr évolutif ! N'hésitez pas à nous faire remonter vos remarques et à proposer du contenu pour l'alimenter.\nNous restons à votre disposition pour vous accompagner dans la découverte et l'utilisation de cette nouvelle version.\n\nA très bientôt !\n\nSylvie Vernet, webmestre\n\nCe site a été réalisé par l'équipe d'Outils-Réseaux :\n- Florian Schmitt, David Delon, informaticien développeur de logiciel libre, concepteur d'outils et de sites collaboratifs, soutien technique en informatique oour les acteurs de l'économie sociale et solidaire\n- Jessica Deschamps, graphiste\n- Laurent Marseault : animateur, formateur, consultant\nMerci à eux pour leur travail !";
        echo 'WIKINI : ' . $requete . '<br />' . '<strong>' . $objetmail . '</strong><br />' . nl2br($messagemail) . '<hr />';
        $headers = 'From: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'Reply-To: ' . BAZ_ADRESSE_MAIL_ADMIN . "\r\n" . 'X-Mailer: PHP/' . phpversion();
        mail($ligne['bf_mail'], remove_accents($objetmail), $messagemail, $headers);
Esempio n. 8
0
     //on efface les tables qui ne servent plus
     $this->Query('DROP TABLE ' . BAZ_PREFIXE . 'liste, ' . BAZ_PREFIXE . 'liste_valeurs');
 }
 // on verifie l'existance de la table nature pour migrer les donnees en PageWiki
 $req = 'SHOW TABLES FROM ' . $this->config['mysql_database'] . ' LIKE "' . BAZ_PREFIXE . 'nature"';
 $tabnature = $this->LoadAll($req);
 if (isset($tabnature[0])) {
     //requete pour obtenir les infos des formulaires
     $requete = 'SELECT * ' . 'FROM ' . BAZ_PREFIXE . 'nature WHERE 1 ORDER BY bn_type_fiche';
     $resultat = $GLOBALS['_BAZAR_']['db']->query($requete);
     if (DB::isError($resultat)) {
         return $resultat->getMessage() . $resultat->getDebugInfo();
     }
     $outputformulaire = '';
     while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
         $nomwikiformulaire = genere_nom_wiki(html_entity_decode('Formulaire ' . $ligne['bn_label_nature']));
         //ancien identifiant plus necessaire
         unset($ligne['bn_id_nature']);
         //on encode en utf8
         $ligne = array_map('utf8_encode', $ligne);
         //on sauve les valeurs d'une liste dans une PageWiki, pour garder l'historique
         $GLOBALS["wiki"]->SavePage($nomwikiformulaire, json_encode($ligne));
         //on cree un triple pour spécifier que la page wiki créée est une liste
         $GLOBALS["wiki"]->InsertTriple($nomwikiformulaire, 'http://outils-reseaux.org/_vocabulary/type', 'formulaire', '', '');
         $outputformulaire .= $nomwikiformulaire . ' ' . json_encode($ligne) . '<hr />';
     }
     if ($outputformulaire != '') {
         $output .= '<div class="info_box">Ces pages suivantes sur les formulaires ont &eacute;t&eacute;s rajout&eacute;es :</div><div style="overflow:auto;width:100%;height:200px;">' . $outputformulaire . '</div>' . "\n";
     }
     //on efface les tables qui ne servent plus
     $this->Query('DROP TABLE ' . BAZ_PREFIXE . 'nature');
/** generatePageName() Prends une chaine de caracteres, et la tranforme en NomWiki unique, en la limitant a 50 caracteres et en mettant 2 majuscules
*	Si le NomWiki existe deja, on propose recursivement NomWiki2, NomWiki3, etc..
*
*   @param  string  chaine de caracteres avec de potentiels accents a enlever
*   @param	integer	nombre d'iteration pour la fonction recursive (1 par defaut)
*
*
*   return  string	chaine de caracteres, en NomWiki unique
*/
function generatePageName($nom, $occurence = 1)
{
    // si la fonction est appelee pour la premiere fois, on nettoie le nom passe en parametre
    if ($occurence == 1) {
        // les noms wiki ne doivent pas depasser les 50 caracteres, on coupe a 48, histoire de pouvoir ajouter un chiffre derriere si nom wiki deja existant
        // plus traitement des accents
        // plus on met des majuscules au debut de chaque mot et on fait sauter les espaces
        $str = htmlentities(mb_substr($nom, 0, 47, TEMPLATES_DEFAULT_CHARSET), ENT_QUOTES, TEMPLATES_DEFAULT_CHARSET);
        $str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\\1', $str);
        $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\\1', $str);
        // pour les ligatures e.g. '&oelig;'
        $str = preg_replace('#&[^;]+;#', '', $str);
        // supprime les autres caractères
        $temp = explode(" ", ucwords(strtolower($str)));
        $nom = '';
        foreach ($temp as $mot) {
            // on vire d'eventuels autres caracteres speciaux
            $nom .= preg_replace("/[^a-zA-Z0-9]/", "", trim($mot));
        }
        // on verifie qu'il y a au moins 2 majuscules, sinon on en rajoute une a la fin
        $var = preg_replace('/[^A-Z]/', '', $nom);
        if (strlen($var) < 2) {
            $last = ucfirst(substr($nom, strlen($nom) - 1));
            $nom = substr($nom, 0, -1) . $last;
        }
    } elseif ($occurence > 2) {
        $nb = -1 * strlen(strval($occurence - 1));
        $nom = substr($nom, 0, $nb) . $occurence;
    } else {
        $nom = $nom . $occurence;
    }
    // on verifie que la page n'existe pas deja : si c'est le cas on le retourne
    if (!is_array($GLOBALS['wiki']->LoadPage($nom))) {
        return $nom;
    } else {
        $occurence++;
        return genere_nom_wiki($nom, $occurence);
    }
}