Пример #1
0
/**
 * 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();
}
Пример #2
0
/**
 * 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>&nbsp;<br />&nbsp;<br />&nbsp;<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'), '&amp;', '&')) . '\');});
	</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');
}
Пример #4
0
 /**
  * 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;
 }
Пример #5
0
function bloc_des_raccourcis($bloc)
{
    return creer_colonne_droite() . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer();
}
Пример #6
0
/**
 * 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');
}
Пример #7
0
/**
 * 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();
}