示例#1
0
function profils_creer_auteur($set)
{
    include_spip("action/editer_auteur");
    include_spip('inc/acces');
    $id_auteur = auteur_inserer();
    spip_log($id_auteur, 'profils');
    spip_log($set, 'profils');
    if ($id_auteur) {
        $set['pass'] = creer_pass_aleatoire();
        $set['statut'] = '6forum';
        autoriser_exception('modifier', 'auteur', $id_auteur);
        autoriser_exception('instituer', 'auteur', $id_auteur);
        auteur_modifier($id_auteur, $set);
        autoriser_exception('modifier', 'auteur', $id_auteur, false);
        autoriser_exception('instituer', 'auteur', $id_auteur, false);
        // verifier
        $row = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
        if (!$row['login'] or !$row['email']) {
            spip_log("Erreur creation profil {$id_auteur} " . var_export($set, true), "profils" . _LOG_ERREUR);
            return false;
        }
        $row['pass'] = $set['pass'];
        return $row;
    }
    return false;
}
示例#2
0
function formulaires_configurer_preferences_traiter_dist()
{
    if ($couleur = _request('couleur')) {
        $GLOBALS['visiteur_session']['prefs']['couleur'] = $couleur;
    }
    if ($display = _request('display')) {
        $GLOBALS['visiteur_session']['prefs']['display'] = $display;
    }
    if ($display_navigation = _request('display_navigation')) {
        $GLOBALS['visiteur_session']['prefs']['display_navigation'] = $display_navigation;
    }
    if (!is_null($display_outils = _request('display_outils'))) {
        $GLOBALS['visiteur_session']['prefs']['display_outils'] = $display_outils;
    }
    if (intval($GLOBALS['visiteur_session']['id_auteur'])) {
        include_spip('action/editer_auteur');
        $c = array('prefs' => serialize($GLOBALS['visiteur_session']['prefs']));
        if (_request('imessage')) {
            $c['imessage'] = _request('imessage');
        }
        auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c);
    }
    if ($spip_ecran = _request('spip_ecran')) {
        // Poser un cookie,
        // car ce reglage depend plus du navigateur que de l'utilisateur
        $GLOBALS['spip_ecran'] = $spip_ecran;
        include_spip('inc/cookie');
        spip_setcookie('spip_ecran', $_COOKIE['spip_ecran'] = $spip_ecran, time() + 365 * 24 * 3600);
    }
    return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
}
示例#3
0
function action_confirmer_email_dist()
{
    $securiser_action = charger_fonction('securiser_action', 'inc');
    $arg = $securiser_action();
    include_spip('inc/filtres');
    if ($GLOBALS['visiteur_session']['id_auteur'] and email_valide($arg)) {
        include_spip('action/editer_auteur');
        auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], array('email' => $arg));
    }
    // verifier avant de rediriger pour invalider le message de confirmation
    // si ca n'a pas marche
    if ($redirect = _request('redirect') and !$arg == sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($GLOBALS['visiteur_session']))) {
        $GLOBALS['redirect'] = parametre_url($redirect, 'email_modif', '');
    }
}
示例#4
0
function revision_auteur($id_auteur, $c = false)
{
    return auteur_modifier($id_auteur, $c);
}
示例#5
0
/**
 * Un nouvel inscrit prend son statut definitif a la 1ere connexion.
 * Le statut a ete memorise dans prefs (cf test_inscription_dist).
 * On le verifie, car la config a peut-etre change depuis,
 * et pour compatibilite avec les anciennes versions qui n'utilisaient pas "prefs".
 *
 * http://doc.spip.org/@acces_statut
 *
 * @param array $auteur
 * @return array
 */
function confirmer_statut_inscription($auteur)
{
    // securite
    if ($auteur['statut'] != 'nouveau') {
        return $auteur;
    }
    include_spip('inc/autoriser');
    if (!autoriser('inscrireauteur', $auteur['prefs'])) {
        return $auteur;
    }
    $s = $auteur['prefs'];
    include_spip('inc/autoriser');
    // accorder l'autorisation de modif du statut auteur
    autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
    include_spip('action/editer_auteur');
    // changer le statut
    auteur_modifier($auteur['id_auteur'], array('statut' => $s));
    unset($_COOKIE['spip_session']);
    // forcer la maj de la session
    // lever l'autorisation de modif du statut auteur
    autoriser_exception('modifier', 'auteur', $auteur['id_auteur'], false);
    // mettre a jour le statut
    $auteur['statut'] = $s;
    return $auteur;
}
示例#6
0
function spip_importer_articles($spip_data)
{
    global $tables_conversion;
    foreach ($spip_data as $entry) {
        $id_rubrique = null;
        $type = $entry['metadata']['type'];
        journaliser(sprintf("Traitement d'un nouvel item : %s - %s", $entry['metadata']['nid'], $type), 2);
        if (binlog_contient($entry['metadata']['nid'])) {
            journaliser("L'élément %s a déjà été converti", $entry['metadata']['nid']);
            continue;
        }
        journaliser("Recherche de la catégorie cible pour l'article");
        /* FIXME: doit être déplacé hors de cette fonction (spécifique site cible). */
        /* CATEGORIE CIBLE */
        /* Remarque : les articles de type 'story' sont dispatchés par la
         * fonction dispatch_story_type() */
        $cat_cible = array('video' => 14, 'photos' => 23, 'audio' => 24, 'commission' => 36, 'livre' => 15, 'evenement' => 11);
        $fct = "dispatch_{$type}_type";
        if (function_exists($fct)) {
            $id_rubrique = call_user_func($fct, $entry);
        } elseif ($cat_cible[$type]) {
            $id_rubrique = $cat_cible[$type];
        }
        if ($id_rubrique == null) {
            journaliser("Catégorie cible introuvable pour le type de contenu " . $type, 4);
            die;
        }
        journaliser("Envoi de l'article dans la rubrique %s", $id_rubrique, 1);
        /* --- VIDEO --- */
        if ($type == "video") {
            if ($entry['documents']['video']) {
                /* Si une vidéo est présente dans ce champ, il faut modifier le
                 * texte de l'article et ajouter le lien vers la video à la
                 * fin. */
                $entry['article']['texte'] .= sprintf("\n\n%s", $entry['documents']['video']);
            }
        }
        /* --- AUDIO --- */
        if ($type == "audio") {
            journaliser("Gestion des documents audio");
            $audio_path = $entry['documents']['audio'];
            $audio_name = $entry['documents']['audio_name'];
            $id_document = importer_document($audio_path, $audio_name);
            journaliser("Import du document : " . $id_document, 1);
            $entry['article']['texte'] = sprintf("<emb%s>\nRéalisation : %s\n\n%s", $id_document, $entry['documents']['audio_desc'], $entry['article']['texte']);
            document_modifier($id_document, array('credits' => $entry['documents']['audio_desc']));
        }
        /* --- PIECES JOINTES --- */
        if ($entry['documents']['pdf']) {
            journaliser("Ajout des pièces jointes au format PDF");
            foreach ($entry['documents']['pdf'] as $document) {
                $id_document = importer_document($document['filepath'], $document['filename']);
                journaliser(sprintf("Document PDF %s importé", $id_document), 1);
                $entry['article']['texte'] = sprintf("%s\n\n<lecteurpdf%s>", $entry['article']['texte'], $id_document);
            }
        }
        /* --- ARTICLE --- */
        journaliser("Création du nouvel article");
        $id_article = article_inserer($id_rubrique);
        journaliser("Nouvel article créee : {$id_article}", 1);
        //print_r($entry['article']);
        article_modifier($id_article, $entry['article']);
        journaliser("Ajout des données dans l'article n° {$id_article}", 1);
        /* --- AUTEUR => ARTICLE --- */
        journaliser("Création ou récupération des auteurs qui doivent être associées à l'article");
        $id_auteurs = array();
        if ($entry['auteur']['nom']) {
            foreach ($entry['auteur']['nom'] as $nom_auteur) {
                journaliser("Recherche de l'auteur « {$nom_auteur} »", 1);
                if ($id = sql_getfetsel("id_auteur", "spip_auteurs", 'nom LIKE ' . sql_quote("% - {$nom_auteur}"))) {
                    journaliser("« {$nom_auteur} » trouvé : {$id} (REGEXP)", 1);
                    $id_auteurs[] = $id;
                } elseif ($id = sql_getfetsel("id_auteur", "spip_auteurs", 'nom=' . sql_quote($nom_auteur))) {
                    journaliser("« {$nom_auteur} » trouvé : {$id}", 1);
                    $id_auteurs[] = $id;
                } else {
                    $id = auteur_inserer();
                    auteur_modifier($id, array('nom' => $nom_auteur, 'statut' => '1comite'));
                    $id_auteurs[] = $id;
                    journaliser("« {$nom_auteur} » créé : {$id}", 1);
                }
            }
            foreach ($id_auteurs as $id) {
                journaliser("Association de l'auteur %s à l'article", $id, 1);
                auteur_associer($id, array('article' => $id_article));
            }
        }
        if (!in_array(1, $id_auteurs)) {
            journaliser("Retrait de l'auteur 1", 1);
            auteur_dissocier(1, array('article' => $id_article));
        }
        /* --- CAMPAGNE --- */
        if ($entry['metadata']['campagne']) {
            journaliser("Ajout des mots-clés de campagne");
            foreach ($entry['metadata']['campagne'] as $campagne) {
                journaliser("Association du mot clé %s à l'article %s", $campagne, $id_article, 1);
                mot_associer($campagne, array('article' => $id_article));
            }
        }
        /* --- ATTACPÉDIA --- */
        if ($entry['metadata']['attacpedia']) {
            journaliser("Ajout des mots-clés Attacpédia");
            foreach ($entry['metadata']['attacpedia'] as $attacpedia) {
                journaliser("Association du mot clé %s à l'article %s", $attacpedia, $id_article, 1);
                mot_associer($attacpedia, array('article' => $id_article));
            }
        }
        /* EVENEMENT */
        if ($type == "evenement") {
            journaliser("Création de l'évènement");
            foreach ($entry['evenement']['dates'] as $dates_evt) {
                $id_evenement = evenement_inserer($id_article);
                journaliser("Numéro de l'évènement : %s", $id_evenement, 1);
                evenement_modifier($id_evenement, array('titre' => $entry['article']['titre'], 'lieu' => $entry['evenement']['lieu'], 'date_debut' => $dates_evt['date_debut'], 'date_fin' => $dates_evt['date_fin'], 'statut' => $entry['article']['statut']));
                journaliser("Géolocation GIS", 1);
                $id_gis = gis_inserer();
                journaliser("Création du lieu GIS : %s", $id_gis, 1);
                gis_modifier($id_gis, $entry['gis']);
                lier_gis($id_gis, "evenement", $id_evenement);
                journaliser("Lien de l'évènement %s au lieu %s", $id_evenement, $id_gis, 1);
            }
        }
        /* --- TYPE D'EVENEMENT --- */
        if ($type == "evenement") {
            $id_mot_drupal = $entry['metadata']['type_evenement'];
            $mod_evt = $tables_conversion['type_evenement'][$id_mot_drupal];
            mot_associer($mod_evt, array('article' => $id_article));
            journaliser("Association du mot clé %s/%s à l'article %s", $id_mot_drupal, $mod_evt, $id_article, 1);
        }
        /* --- PIECES JOINTES --- */
        if ($entry['documents']['pj']) {
            journaliser("Ajout des pièces jointes");
            foreach ($entry['documents']['pj'] as $document) {
                $id_document = importer_document($document['filepath'], $document['filename'], $id_article);
                journaliser(sprintf("Document %s importé", $id_document), 1);
            }
        }
        /* --- GALERIES PHOTO --- */
        if ($entry['documents']['photos']) {
            journaliser("Ajout des pĥotos jointes");
            foreach ($entry['documents']['photos'] as $document) {
                $id_document = importer_document($document['filepath'], $document['filename'], $id_article, "document");
                journaliser(sprintf("Document %s importé", $id_document), 1);
            }
        }
        /* --- URL --- */
        journaliser("Gestion des URL");
        $urls = array();
        $urls[] = "node/" . $entry['metadata']['nid'];
        $urls[] = $entry['url']['url'];
        foreach ($urls as $url) {
            if ($url) {
                if ($url_existante = sql_fetsel(array('id_objet', 'type'), 'spip_urls', 'url=' . sql_quote($url))) {
                    journaliser(sprintf("URL ({$url}) déjà existante (%s / %s)", $url_existante['type'], $url_existante['id_objet']), 4);
                } else {
                    $sql_url = array('url' => $url, 'type' => 'article', 'id_objet' => $id_article, 'perma' => 1, 'id_parent' => $id_rubrique);
                    url_insert($sql_url, false, '-');
                    journaliser(sprintf("URL ajoutée : %s/%s", $GLOBALS['meta']['adresse_site'], $url), 1);
                }
            }
        }
        /* --- LOGO --- */
        if ($entry['logo']['chemin']) {
            journaliser("Import du logo");
            $remote = sprintf("http://www.france.attac.org/%s", $entry['logo']['chemin']);
            $filename = $entry['logo']['fichier'];
            $fic = copie_locale($remote, 'auto', determine_upload() . $filename);
            journaliser("Logo ({$remote}) => {$fic}", 1);
            $spip_image_ajouter = charger_fonction('spip_image_ajouter', 'action');
            $spip_image_ajouter('arton' . $id_article, true, $filename);
            spip_unlink($fic);
        }
        $dest_url = sprintf("%s/%s", $GLOBALS['meta']['adresse_site'], $id_article);
        journaliser(sprintf("Article publié : <%s>", $dest_url), 2);
        binlog($entry['metadata']['nid'], $entry['metadata']['type'], $id_article, $entry['article']['titre'], $dest_url);
    }
}
示例#7
0
文件: spip.php 项目: nursit/SPIP
/**
 * Modifier le mot de passe de l'auteur sur le serveur concerne
 * en s'occupant du hash et companie
 * @param string $login
 * @param string $new_pass
 * @param int $id_auteur
 * @param string $serveur
 * @return bool
 */
function auth_spip_modifier_pass($login, $new_pass, $id_auteur, $serveur = '')
{
    if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
        return false;
    }
    if (!($id_auteur = intval($id_auteur)) or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)) {
        return false;
    }
    $c = array();
    include_spip('inc/acces');
    include_spip('auth/sha256.inc');
    $htpass = generer_htpass($new_pass);
    $alea_actuel = creer_uniqid();
    $alea_futur = creer_uniqid();
    $pass = _nano_sha256($alea_actuel . $new_pass);
    $c['pass'] = $pass;
    $c['htpass'] = $htpass;
    $c['alea_actuel'] = $alea_actuel;
    $c['alea_futur'] = $alea_futur;
    $c['low_sec'] = '';
    include_spip('action/editer_auteur');
    auteur_modifier($id_auteur, $c, true);
    // manque la gestion de $serveur
    return true;
    // on a bien modifie le pass
}
示例#8
0
function formulaires_constructor_traiter_dist($id_auteur = 'new', $retour = '', $ajaxload = 'oui')
{
    include_spip('base/abstract_sql');
    include_spip('inc/texte');
    include_spip('inc/auth');
    include_spip('action/editer_auteur');
    include_spip('action/editer_article');
    include_spip('action/editer_document');
    include_spip('inc/autoriser');
    $nom = _request('nom');
    $email = _request('email');
    $login = _request('login');
    $pass = _request('pass');
    $base_url = _request('base_url');
    $qr_url = _request('qr_url');
    $image = _request('image');
    $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    $id_editeur = $GLOBALS['visiteur_session']['id_auteur'];
    if (autoriser('webmestre')) {
        $id_auteur = auteur_inserer('spip');
        if ($id_auteur) {
            auteur_modifier($id_auteur, array('nom' => $nom, 'email' => $email, 'statut' => '1comite'));
            auth_modifier_login('spip', $login, $id_auteur);
            auth_modifier_pass('spip', $login, $pass, $id_auteur);
            // primera entrada
            $rubrique = 1;
            // 1 creamos un articulo vacio
            $id_article = insert_article($rubrique);
            if ($id_article) {
                auteur_associer($id_auteur, array('article' => intval($id_article)));
                auteur_dissocier($id_editeur, array('article' => intval($id_article)));
                // 2 actualizampos los campos del articulo
                sql_updateq('spip_articles', array('titre' => 'Bienvenida', 'soustitre' => 'Tu primer artículo', 'id_rubrique' => $rubrique, 'statut' => 'publie', 'date' => date('Y-m-d H:i:s')), 'id_article=' . intval($id_article));
                // 3 insertamos las coordenadas del articulo
                $latitude = rand(-90000, 90000) / 1000;
                $longitude = rand(-180000, 180000) / 1000;
                $zoom = 8;
                $id_vhplab_gis = sql_insertq("spip_vhplab_gis", array('latitude' => $latitude, 'longitude' => $longitude, 'zoom' => $zoom, 'address' => ''));
                sql_insertq('spip_vhplab_gis_liens', array('id_vhplab_gis' => intval($id_vhplab_gis), 'id_objet' => intval($id_article), 'objet' => 'article'));
                // 5 asociamos las palabras clave al articulo
                sql_insertq('spip_mots_liens', array('id_mot' => 1, 'id_objet' => intval($id_article), 'objet' => 'article'));
                sql_insertq('spip_mots_liens', array('id_mot' => 5, 'id_objet' => intval($id_article), 'objet' => 'article'));
                // 6 hacemos una copia de la imagen inicial
                $file = array('name' => 'cgeomap_explorer_banner_1100x591.jpg', 'tmp_name' => $image);
                $id_document = $ajouter_documents('new', array(0 => $file), 'article', intval($id_article), 'image');
                sql_updateq('spip_documents', array('statut' => 'publie', 'date_publication' => date('Y-m-d H:i:s')), 'id_document=' . intval($id_document[0]));
                sql_insertq('spip_documents_liens', array('id_document' => intval($id_document[0]), 'id_objet' => intval($id), 'objet' => 'article', 'vu' => 'oui'));
                // 7 procesamos los módulos y actualizamos el texto del artículo
                $texte = '<block class="audiovisuel">
<module class="text" name="Bienvenid@ a CGeomap!">Con tu cuenta Explorer podrás empezar a construir rutas audiovisuales locativas y cartografiar tu entorno.</module>
<module class="media" name="Explorer"><image' . $id_document[0] . '></module>
<module class="text" name="Edita y publica contenidos">Este editor online te permitirá posicionar contenidos audiovisuales, accessibles desde tu smartphone (web app) y/o con la app CGeomap para Android y IOS. 
Para aprender a crear entradas locativas en pocos minutos, accede a la página de tutoriales (icono de información en la esquina superior derecha del editor).</module>
<module class="text" name="Contacta con nosotr@s">Estamos a tu disposición para ayudarte a crear con CGeomap, ¡la tierra, el mar y las nubes esperan tus contenidos!.</module>
</block>';
                sql_updateq('spip_articles', array('texte' => $texte), 'id_article=' . intval($id_article));
                // 8 creamos el qr y lo adjuntamos como documento
                $file = array('name' => 'article_' . $id_article . '_qr.png', 'tmp_name' => $qr_url . urlencode($base_url . 'author=' . $id_auteur . '&nodo=' . $id_article));
                $descriptif = "qr";
                $id_document = $ajouter_documents('new', array(0 => $file), 'article', intval($id_article), 'image');
                sql_updateq('spip_documents', array('descriptif' => $descriptif, 'statut' => 'publie', 'date_publication' => date('Y-m-d H:i:s')), 'id_document=' . intval($id_document[0]));
                sql_insertq('spip_documents_liens', array('id_document' => intval($id_document[0]), 'id_objet' => intval($id_article), 'objet' => 'article', 'vu' => 'oui'));
            }
        }
    }
}
function csv2auteurs_ajout_utilisateur($login, $Tauteur_csv, $Tnom_champs_bdd, $Tcorrespondances, $tableau_bdd_rubriques_admins, $tableau_bdd_zones_admins, $id_auteur = 0)
{
    $set = $Tzones = $Trubadmin = array();
    foreach ($Tauteur_csv as $champ => $valeur) {
        if ($champ == "ss_groupe") {
            $T = explode('|', $valeur);
            foreach ($T as $rub) {
                $Trubadmin[] = array_search(strtolower($rub), $tableau_bdd_rubriques_admins);
            }
        }
        if ($champ == "zone") {
            $T = explode('|', $valeur);
            foreach ($T as $zone) {
                $Tzones[] = array_search(trim(rtrim(strtolower($zone))), $tableau_bdd_zones_admins);
            }
            //spip_log("tzone de id_auteur $id_auteur","csvspip");
            //spip_log($Tzones,"csvspip");
        }
        if (in_array($champ, $Tnom_champs_bdd)) {
            $set[$champ] = ($champ == "statut" and array_key_exists($valeur, $Tcorrespondances)) ? $Tcorrespondances[$valeur] : $valeur;
        }
    }
    //inserer l'auteur si il n'y a pas d'id_auteur transmis
    if (!$id_auteur) {
        $id_auteur = auteur_inserer();
    }
    // remplir les champs ou les maj
    auteur_modifier($id_auteur, $set);
    //liaison des rubriques
    if (count($Trubadmin) and $set["statut"] == "0minirezo") {
        objet_associer(array("auteur" => $id_auteur), array("rubrique" => $Trubadmin));
    }
    //liaison des zones
    if (count($Tzones) and test_plugin_actif("accesrestreint") and test_plugin_actif("accesrestreint")) {
        zone_lier($Tzones, 'auteur', $id_auteur, 'add');
    }
}
示例#10
0
/**
 * Modification du mot de passe d'un auteur.
 * Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
 *
 * @param int $id_auteur
 */
function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null)
{
    $res = array('message_ok' => '');
    refuser_traiter_formulaire_ajax();
    // puisqu'on va loger l'auteur a la volee (c'est bonus)
    // compatibilite anciens appels du formulaire
    if (is_null($jeton)) {
        $jeton = _request('p');
    }
    $row = retrouve_auteur($id_auteur, $jeton);
    if ($row && ($id_auteur = $row['id_auteur']) && ($oubli = _request('oubli'))) {
        include_spip('action/editer_auteur');
        include_spip('action/inscrire_auteur');
        if ($err = auteur_modifier($id_auteur, array('pass' => $oubli))) {
            $res = array('message_erreur' => $err);
        } else {
            auteur_effacer_jeton($id_auteur);
            $login = $row['login'];
            $res['message_ok'] = "<b>" . _T('pass_nouveau_enregistre') . "</b>" . "<br />" . _T('pass_rappel_login', array('login' => $login));
            include_spip('inc/auth');
            $row = sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($id_auteur));
            auth_loger($row);
        }
    }
    return $res;
}
示例#11
0
function formulaires_inscription_traiter_dist($mode = '', $id = 0)
{
    include_spip('inc/filtres');
    include_spip('inc/autoriser');
    if (!autoriser('inscrireauteur', $mode, $id)) {
        $desc = "rien a faire ici";
    } else {
        if ($id_auteur = _request('_upgrade_auteur')) {
            include_spip("action/editer_auteur");
            autoriser_exception("modifier", "auteur", $id_auteur);
            autoriser_exception("instituer", "auteur", $id_auteur);
            auteur_modifier($id_auteur, array('statut' => $mode));
            autoriser_exception("modifier", "auteur", $id_auteur, false);
            autoriser_exception("instituer", "auteur", $id_auteur, false);
            return array('message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur);
        }
        $nom = _request('nom_inscription');
        $mail_complet = _request('mail_inscription');
        $inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
        $desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id' => $id));
    }
    // erreur ?
    if (is_string($desc)) {
        return array('message_erreur' => $desc);
    } else {
        return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
    }
}