/** * Demander à mettre à jour la base de données */ function exec_demande_mise_a_jour_dist() { // on fait la verif du path avant tout, // et l'installation des qu'on est dans la colonne principale // si jamais la liste des plugins actifs change, il faut faire un refresh du hit // pour etre sur que les bons fichiers seront charges lors de l'install include_spip('inc/plugin'); if (actualise_plugins_actifs()) { include_spip('inc/headers'); redirige_par_entete(self()); } include_spip('inc/presentation'); include_spip('inc/filtres_boites'); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page('', '', '', '', true, false, false); echo debut_grand_cadre(true); echo boite_ouvrir(_T('info_message_technique'), 'notice'); echo "<p>" . _T('info_procedure_maj_version') . "</p>", "<p>" . _T('info_administrateur_site_01') . "</p>"; echo bouton_action(_T('bouton_mettre_a_jour_base'), generer_url_ecrire("upgrade", "reinstall=non")); echo boite_fermer(); // masquer les erreurs sql sur cette page car proviennent de la base pas a jour ! echo '<style type="text/css">#debug-nav {display: none;}</style>'; echo fin_grand_cadre(true); echo fin_page(); }
/** * Inserer les infos d'agenda sur les articles et rubriques * * @param array $flux * @return array */ function agenda_affiche_milieu($flux) { $e = trouver_objet_exec($flux['args']['exec']); $out = ""; if ($e['type'] == 'rubrique' and autoriser('configurer') and $e['edition'] == false and $id_rubrique = intval($flux['args']['id_rubrique']) and autoriser('modifier', 'rubrique', $id_rubrique)) { $activer = true; $res = ""; $actif = sql_getfetsel('agenda', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique)); $statut = "-32"; $alt = ""; $voir = ""; if (!sql_countsel('spip_rubriques', 'agenda=1')) { $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />"; } else { include_spip('inc/rubriques'); if (sql_countsel('spip_rubriques', sql_in('id_rubrique', calcul_hierarchie_in($id_rubrique)) . " AND agenda=1 AND id_rubrique<>" . intval($id_rubrique))) { $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda'); $activer = false; $statut = "-ok-32"; $voir = _T('agenda:voir_evenements_rubrique'); } elseif (!$actif) { $alt = _T('agenda:rubrique_sans_gestion_evenement') . '<br />'; $statut = "-non-32"; } if ($actif) { $alt = _T('agenda:rubrique_mode_agenda') . '<br />'; $statut = "-ok-32"; $voir = _T('agenda:voir_evenements_rubrique'); } } if (!$actif) { if ($activer) { $res .= bouton_action(_T('agenda:rubrique_activer_agenda'), generer_action_auteur('activer_agenda_rubrique', $id_rubrique, self()), 'ajax'); } } else { $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'), generer_action_auteur('activer_agenda_rubrique', "-{$id_rubrique}", self()), 'ajax'); } if ($voir) { $res .= " | <a href='" . generer_url_ecrire('evenements', "id_rubrique={$id_rubrique}") . "'>{$voir}</a>"; } if ($res) { $out .= boite_ouvrir(_T('agenda:agenda') . http_img_pack("agenda{$statut}.png", $alt, "class='statut'", $alt), 'simple agenda-statut') . $res . boite_fermer(); } } elseif ($e['type'] == 'article' and $e['edition'] == false) { $id_article = $flux['args']['id_article']; $out .= recuperer_fond('prive/objets/contenu/article-evenements', $flux['args']); } if ($out) { if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) { $flux['data'] = substr_replace($flux['data'], $out, $p, 0); } else { $flux['data'] .= $out; } } return $flux; }
function html_65c161fa3974dab7ff9b5b08fa07491e($Cache, $Pile, $doublons = array(), $Numrows = array(), $SP = 0) { if (isset($Pile[0]["doublons"]) and is_array($Pile[0]["doublons"])) { $doublons = nettoyer_env_doublons($Pile[0]["doublons"]); } $connect = ''; $page = ($t1 = strval(invalideur_session($Cache, (function_exists("autoriser") || include_spip("inc/autoriser")) && autoriser('configurer', '_admin_vider') ? " " : "" ? ' ' : ''))) !== '' ? $t1 . (' ' . boite_ouvrir(interdire_scripts(wrap(concat(filtre_balise_img_dist(chemin_image('image-24.png'), '', 'cadre-icone'), _T('info_images_auto')), '<h3>')), 'simple', 'titrem') . '<div id="placehoder_taille_cache_images"><p> <br /> <br /> <br /></p></div> <script type="text/javascript"> jQuery(function(){jQuery(\'#placehoder_taille_cache_images\').animateLoading().load(\'' . invalideur_session($Cache, replace(generer_action_auteur('calculer_taille_cache', 'images'), '&', '&')) . '\');}); </script> <noscript> <iframe src="' . invalideur_session($Cache, generer_action_auteur('calculer_taille_cache', 'images')) . '" style="width: 100%;height: 3em;overflow: hidden;"></iframe> </noscript> ' . boite_pied() . ' ' . bouton_action(_T('public|spip|ecrire:bouton_vider_cache'), invalideur_session($Cache, generer_action_auteur('purger', 'vignettes', invalideur_session($Cache, self()))), 'ajax') . ' ' . boite_fermer() . ' ') : ''; return analyse_resultat_skel('html_65c161fa3974dab7ff9b5b08fa07491e', $Cache, $page, '../prive/squelettes/inclure/admin_vider_images.html'); }
/** * Retourne un bilan, texte HTML, des actions qui ont été faites * * Si c'est un affichage du bilan de fin, et qu'il reste des actions * à faire, un lien est proposé pour faire supprimer ces actions restantes * et le verrou qui va avec. * * @param bool $fin * Est-ce un affichage intermédiaire (false) ou le tout dernier (true). * @return string * Bilan des actions au format HTML **/ public function presenter_actions($fin = false) { $affiche = ""; include_spip('inc/filtres_boites'); if (count($this->err)) { $erreurs = "<ul>"; foreach ($this->err as $i) { $erreurs .= "\t<li class='erreur'>" . $i . "</li>\n"; } $erreurs .= "</ul>"; $affiche .= boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreurs . boite_fermer(); } if (count($this->done)) { $oks = true; $done = "<ul>"; foreach ($this->done as $i) { $ok = $i['done'] ? true : false; $oks =& $ok; $ok_texte = $ok ? 'ok' : 'fail'; $cle_t = 'svp:message_action_finale_' . $i['todo'] . '_' . $ok_texte; $trads = array('plugin' => $i['n'], 'version' => denormaliser_version($i['v'])); if (isset($i['maj'])) { $trads['version_maj'] = denormaliser_version($i['maj']); } $texte = _T($cle_t, $trads); if (is_string($i['done'])) { $texte .= " <span class='{$ok_texte}'>{$i['done']}</span>"; } // si le plugin a ete active dans le meme lot, on remplace le message 'active' par le message 'installe' if ($i['todo'] == 'install' and $ok_texte == 'ok') { $cle_t = 'svp:message_action_finale_' . 'on' . '_' . $ok_texte; $texte_on = _T($cle_t, array('plugin' => $i['n'], 'version' => denormaliser_version($i['v']), 'version_maj' => denormaliser_version($i['maj']))); if (strpos($done, $texte_on) !== false) { $done = str_replace($texte_on, $texte, $done); $texte = ""; } } if ($texte) { $done .= "\t<li class='{$ok_texte}'>{$texte}</li>\n"; } } $done .= "</ul>"; $affiche .= boite_ouvrir(_T('svp:actions_realises'), $oks ? 'success' : 'notice') . $done . boite_fermer(); } if (count($this->end)) { $todo = "<ul>"; foreach ($this->end as $i) { $todo .= "\t<li>" . _T('svp:message_action_' . $i['todo'], array('plugin' => $i['n'], 'version' => denormaliser_version($i['v']), 'version_maj' => denormaliser_version($i['maj']))) . "</li>\n"; } $todo .= "</ul>\n"; $titre = $fin ? _T('svp:actions_non_traitees') : _T('svp:actions_a_faire'); // s'il reste des actions à faire alors que c'est la fin qui est affichée, // on met un lien pour vider. C'est un cas anormal qui peut surgir : // - en cas d'erreur sur une des actions bloquant l'espace privé // - en cas d'appel d'admin_plugins concurrent par le même admin ou 2 admins... if ($fin) { include_spip('inc/filtres'); if ($this->lock['time']) { $time = $this->lock['time']; } else { $time = time(); } $date = date('Y-m-d H:i:s', $time); $todo .= "<br />\n"; $todo .= "<p class='error'>" . _T('svp:erreur_actions_non_traitees', array('auteur' => sql_getfetsel('nom', 'spip_auteurs', 'id_auteur=' . sql_quote($this->lock['id_auteur'])), 'date' => affdate_heure($date))) . "</p>\n"; $todo .= "<a href='" . parametre_url(self(), 'nettoyer_actions', '1') . "'>" . _T('svp:nettoyer_actions') . "</a>\n"; } $affiche .= boite_ouvrir($titre, 'notice') . $todo . boite_fermer(); } if ($affiche) { include_spip('inc/filtres'); $affiche = wrap($affiche, "<div class='svp_retour'>"); } return $affiche; }
function bloc_des_raccourcis($bloc) { return creer_colonne_droite() . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer(); }
/** * Parcours les plugins activés et appelle leurs fonctions d'installation si elles existent. * * Elle ajoute ensuite les plugins qui ont été installés dans la valeur "plugin_installes" * de la table meta. Cette meta ne contient que les noms des plugins qui ont une version_base. * * @uses plugins_installer_dist() **/ function plugin_installes_meta() { $installer_plugins = charger_fonction('installer', 'plugins'); $meta_plug_installes = array(); foreach (unserialize($GLOBALS['meta']['plugin']) as $prefix => $resume) { if ($plug = $resume['dir']) { $infos = $installer_plugins($plug, 'install', $resume['dir_type']); if ($infos) { if (!is_array($infos) or $infos['install_test'][0]) { $meta_plug_installes[] = $plug; } if (is_array($infos)) { list($ok, $trace) = $infos['install_test']; include_spip('inc/filtres_boites'); echo "<div class='install-plugins svp_retour'>" . boite_ouvrir(_T('plugin_titre_installation', array('plugin' => typo($infos['nom']))), $ok ? 'success' : 'error') . $trace . "<div class='result'>" . ($ok ? isset($infos['upgrade']) && $infos['upgrade'] ? _T("plugin_info_upgrade_ok") : _T("plugin_info_install_ok") : _T("avis_operation_echec")) . "</div>" . boite_fermer() . "</div>"; } } } } ecrire_meta('plugin_installes', serialize($meta_plug_installes), 'non'); }
/** * Affichage de la page de gestion des plugins */ function exec_admin_plugin_dist() { if (!autoriser('configurer', 'plugins')) { include_spip('inc/minipres'); echo minipres(); } // on fait la verif du path avant tout, // et l'installation des qu'on est dans la colonne principale // si jamais la liste des plugins actifs change, il faut faire un refresh du hit // pour etre sur que les bons fichiers seront charges lors de l'install include_spip('inc/plugin'); $new = actualise_plugins_actifs(); if ($new and _request('actualise') < 2) { $url = parametre_url(self(), 'actualise', _request('actualise') + 1, '&'); include_spip('inc/headers'); echo redirige_formulaire($url); exit; } // reinstaller SVP si on le demande expressement. if (_request('var_mode') == 'reinstaller_svp') { include_spip('svp_administrations'); svp_vider_tables('svp_base_version'); include_spip('inc/headers'); echo redirige_formulaire(self()); exit; } // le code ci-dessous eut ete bien beau mais... // si l'on veut que les messages d'installation moches des plugins // soient au bon endroit, nous sommes obliges d'appeler la fonction // d'installation a la bonne place, et donc, en php... // car dans le html d'un squelette, encapsule dans un ob_start()/ob_flush(), // la redirection en cas de timeout sur une installation ne se fait pas. /* // on installe les plugins maintenant, // cela permet aux scripts d'install de faire des affichages (moches...) plugin_installes_meta(); // les squelettes ne peuvent pas s'appeler 'admin_plugin' // sinon Z les charge en priorite par rapport a ce fichier exec en PHP set_request('fond', 'svp_admin_plugin'); // on lance l'affichage standard Z include_spip('exec/fond'); */ // liste des erreurs mises en forme $erreur_activation = plugin_donne_erreurs(); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin"); echo debut_gauche('plugin', true); echo pipeline('affiche_gauche', array('args' => array('exec' => 'admin_plugin'), 'data' => recuperer_fond('prive/squelettes/navigation/svp_admin_plugin'))); echo debut_droite('plugin', true); // alerte si mode de compatibilité forcée $mode_compat = defined('_DEV_PLUGINS') ? '<span class="notice">' . _T('svp:alerte_compatibilite') . '</span>' : ''; echo gros_titre(_T('icone_admin_plugin') . $mode_compat, '', false); // message d'erreur au retour d'une operation if ($erreur_activation) { include_spip('inc/filtres_boites'); echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreur_activation . boite_fermer() . "</div>"; } // afficher les actions realisees s'il y en a eu // (activation/desactivation/telechargement...) echo svp_presenter_actions_realisees(); // on installe les plugins maintenant, // cela permet aux scripts d'install de faire des affichages (moches...) plugin_installes_meta(); echo recuperer_fond('prive/squelettes/contenu/svp_admin_plugin', $_REQUEST, array('ajax' => true)); echo pipeline('affiche_milieu', array('args' => array('exec' => 'admin_plugin'), 'data' => '')); echo fin_gauche(), fin_page(); }