WP File Manager
Current Path:
/
home
/
argothem
/
www
/
organecyberpresse
/
plugins
/
auto
/
inserer_modeles
/
v2.3.2
/
formulaires
/
Name
Action
..
configurer_inserer_modeles.html
Edit
configurer_inserer_modeles.php
Edit
inserer_modeles.html
Edit
inserer_modeles.php
Edit
Editing: inserer_modeles.php
<?php function formulaires_inserer_modeles_charger_dist($formulaire_modele, $modalbox, $env) { include_spip('inc/inserer_modeles'); $env = unserialize($env); $contexte = []; // Toujours transmettre les id_(article/rubrique/breve...), et les garder en _request pour pouvoir s'en servir après dans l'interprétation du .yaml foreach ($env as $var => $val) { if (substr($var, 0, 3) == 'id_' && is_numeric($val)) { $contexte[$var] = $val; set_request($var, $val); } } if ((!_request('formulaire_modele') && $formulaire_modele == '') || _request('annuler')) { $modeles_dispo = inserer_modeles_lister_formulaires_modeles(true); $contexte['_liste_formulaires_modeles'] = [inserer_modeles_generer_saisie_formulaire_modele($modeles_dispo, boolval($modalbox))]; } else { if ($formulaire_modele != '') { $contexte['ne_pas_afficher_bouton_annuler'] = 'on'; } if ($formulaire_modele == '') { $formulaire_modele = _request('formulaire_modele'); } $infos_modele = charger_infos_formulaire_modele($formulaire_modele); include_spip('inc/saisies'); $champs_saisies = saisies_charger_champs($infos_modele['parametres']); // On charge les valeurs éventuellement passées par l'url foreach ($champs_saisies as $champ => $val) { if (_request($champ)) { $champs_saisies[$champ] = _request($champ); } } $contexte = array_merge($contexte, $champs_saisies); $contexte['formulaire_modele'] = $formulaire_modele; $contexte['_nom'] = _T_ou_typo($infos_modele['nom']); if (isset($infos_modele['icone_barre'])) { $contexte['icone_barre'] = inserer_modeles_find_icone_barre_path($infos_modele['icone_barre']); } $contexte['_saisies'] = $infos_modele['parametres']; // Reinjection de différentes choses "postées" foreach (['_code_modele', '_js_inserer_code', '_markItUpfocused'] as $request) { if (_request($request)) { $contexte[$request] = _request($request); } } } if ($modalbox != '') { $contexte['modalbox'] = 'oui'; } return $contexte; } function formulaires_inserer_modeles_verifier_dist($formulaire_modele, $modalbox, $env) { $erreurs = []; if (_request('choisir') && !_request('formulaire_modele')) { $erreurs['message_erreur'] = _T('inserer_modeles:erreur_choix_modele'); } if (_request('inserer')) { $env = unserialize($env); include_spip('inc/saisies'); include_spip('inc/inserer_modeles'); $infos = charger_infos_formulaire_modele(_request('formulaire_modele')); $erreurs = saisies_verifier($infos['parametres']); } return $erreurs; } function formulaires_inserer_modeles_traiter_dist($formulaire_modele, $modalbox, $env) { if (_request('inserer')) { $env = unserialize($env); include_spip('inc/saisies'); include_spip('inc/inserer_modeles'); $infos = charger_infos_formulaire_modele(_request('formulaire_modele')); $champs = saisies_lister_champs($infos['parametres'], false); if (isset($infos['traiter'])) { $f = charger_fonction($infos['traiter'], 'formulaires', true); } else { $f = false; } if ($f) { $code = $f($champs); } else { $code = '<' . _request('modele'); $has_id = false; if (_request('id_modele') && _request('id_modele') != '') { $code .= _request('id_modele'); $has_id = true; } if (_request('variante') && _request('variante') != '') { $code .= '|' . _request('variante'); } if (_request('classe') && _request('classe') != '') { $code .= '|' . _request('classe'); } if (_request('align') && _request('align') != '') { $code .= '|' . _request('align'); } foreach ($champs as $champ) { if ($champ != 'modele' && $champ != 'variante' && $champ != 'classe' && $champ != 'id_modele' && $champ != 'align' && _request($champ) && _request($champ) != '') { if ($champ == _request($champ)) { $code .= "|$champ"; } elseif (is_array(_request($champ))) { // On transforme les tableaux en une liste $code .= "|$champ=" . implode(',', _request($champ)); } else { $code .= "|$champ=" . _request($champ); } } } // si aucun numéro ou paramètre, il faut un | pour que le modèle soit pris en compte if (!$has_id and strpos($code, '|') === false) { $code .= '|'; } $code .= '>'; } set_request('_code_modele', $code); // Dans la colonne de gauche, on ne peut pas presupposer du champ dans lequel on veut inserer // le modele (chapeau, texte, ps). // On ne fait donc pas d'insertion automatique. if ($modalbox != '') { return ['message_ok' => _T('inserer_modeles:message_code_insere')]; } else { // js pour inserer la balise dans le texte $codejs = "barre_inserer('" . texte_script($code) . "', $('textarea[name=texte]')[0]);"; set_request('_js_inserer_code', $codejs); return ['message_ok' => _T('inserer_modeles:message_inserer_code')]; } } } /** * Génère une saisie depuis la liste des modèles * @param array $modeles liste des modèles deja parsé * @param bool $modalbox * @return array saisie individuelle **/ function inserer_modeles_generer_saisie_formulaire_modele(array $modeles, bool $modalbox): array { include_spip('inc/filtres'); include_spip('inc/saisies'); $balise_img = charger_filtre('balise_img'); if (lire_config('inserer_modeles/activer_categories')) { $modeles = inserer_modeles_regrouper_par_categorie($modeles); foreach ($modeles as $cate => &$modele_de_cate) { foreach ($modele_de_cate as $modele => &$desc) { $desc = liens_absolus($balise_img($desc['icone_barre'])) . ' ' . $desc['nom']; } } } else { foreach ($modeles as $modele => $desc) { $modeles[$modele] = liens_absolus($balise_img($desc['icone_barre'])) . ' ' .$desc['nom']; } } $saisie = [ 'saisie' => 'radio', 'options' => [ 'nom' => 'formulaire_modele', 'data' => $modeles, 'conteneur_class' => 'pleine_largeur', ] ]; if ($modalbox) { $saisie['options']['id'] = 'formulaire_modele_modalbox'; } return $saisie; }