/** * Action de mise à jour des descriptions d'un dépot * * @return array * Liste identifiant du dépot, texte d'erreur éventuel **/ function action_editer_depot_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit; } // Le depot n'est jamais cree par une edition mais via le formulaire ajouter_depot // On est toujours en presence d'une mise a jour pour cette action, l'id_depot // doit donc etre renseigne sinon c'est une erreur if ($id_depot = intval($arg)) { // On teste si l'auteur est connecte. Si non on renvoie sur le formulaire login $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; if (!$id_auteur) { include_spip('inc/headers'); redirige_url_ecrire(); } // On met a jour le depot avec les saisies if (sql_updateq('spip_depots', array('titre' => _request('titre'), 'descriptif' => _request('descriptif'), 'type' => _request('type')), 'id_depot=' . sql_quote($id_depot))) { } // Enregistre l'envoi dans la BD // Dans le cas du depot rien n'est fait actuellement, on garde cette fonction // par souci de coherence avec les autres editions d'objet et pour usage futur $err = depots_set($id_depot); if (!$err) { spip_log("ACTION MODIFIER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } return array($id_depot, $err); }
function forum_envoi( $id, $id_parent, $script, $statut, $titre_message, $texte, $modif_forum, $nom_site, $url_site) { if ($modif_forum == 'fin') { include_spip('inc/headers'); $script = preg_replace('/\W/','', $script); // article etc $objet = preg_replace('/\W/','', $texte); // id_article etc redirige_url_ecrire('discuter', "script=$script&objet=$objet&$objet=$id&statut=$statut" . ($id_parent ? "&id_parent=$id_parent" : '')); } else { $statut = preg_replace('/\W/','', $statut); $forum_envoi = charger_fonction('forum_envoi', 'inc'); $forum_envoi = $forum_envoi($id, $id_parent, $script, $statut, $titre_message, $texte, $modif_forum, $nom_site, $url_site); if (_AJAX) { ajax_retour($forum_envoi); } else { $titre = $script == 'message' ? _T('onglet_messagerie') : _T('titre_cadre_forum_interne'); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('texte_nouveau_message'), "accueil", "accueil"); echo debut_gauche('', true); echo debut_droite('', true); echo gros_titre($titre,'', false); echo $forum_envoi, fin_gauche(), fin_page(); } } }
function action_editer_rubrique_dist($arg=null) { if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } if (!$id_rubrique = intval($arg)) { if ($arg != 'oui') { include_spip('inc/headers'); redirige_url_ecrire(); } $id_rubrique = insert_rubrique(_request('id_parent')); } revisions_rubriques($id_rubrique); if (_request('redirect')) { $redirect = parametre_url( urldecode(_request('redirect')), 'id_rubrique', $id_rubrique, '&'); include_spip('inc/headers'); redirige_par_entete($redirect); } else return array($id_rubrique,''); }
/** * Exec de la page de destruction des tables de SPIP **/ function exec_base_delete_all_dist() { include_spip('inc/autoriser'); if (!autoriser('detruire')) { include_spip('inc/minipres'); echo minipres(); } else { include_spip('base/dump'); $res = base_lister_toutes_tables('', array(), array(), true); if (!$res) { include_spip('inc/minipres'); spip_log("Erreur base de donnees"); echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique') . "<p><tt>" . sql_errno() . " " . sql_error() . "</tt></p>"); } else { $res = base_saisie_tables('delete', $res); include_spip('inc/headers'); $res = "\n<ol style='text-align:left'><li>\n" . join("</li>\n<li>", $res) . '</li></ol>'; $admin = charger_fonction('admin', 'inc'); $res = $admin('delete_all', _T('titre_page_delete_all'), $res); if (!$res) { redirige_url_ecrire('install', ''); } else { echo $res; } } } }
/** * Affiche l'étape 0 d'installation : écran d'accueil. * * @uses info_copyright() **/ function install_etape__dist() { utiliser_langue_visiteur(); $menu_langues = menu_langues('var_lang_ecrire'); if (!$menu_langues) { redirige_url_ecrire('install', "etape=chmod"); } else { include_spip('inc/presentation'); // pour info_copyright $res = "<div class='petit-centre'><img alt='SPIP' src='" . chemin_image('logo-spip2.gif') . "' />\n" . "<p class='small'>" . info_copyright() . "</p></div>\n" . "<p>" . _T('install_select_langue') . "</p>" . "<div>" . $menu_langues . "</div>\n" . generer_form_ecrire('install', "<input type='hidden' name='etape' value='chmod' />" . bouton_suivant()); echo minipres('AUTO', $res); } }
function exec_delete_statistiques_dist() { include_spip('inc/autoriser'); if (!autoriser('detruire','statistiques')) { include_spip('inc/minipres'); echo minipres(); } else { include_spip('inc/headers'); $admin = charger_fonction('admin', 'inc'); $res = $admin('delete_statistiques', _T('bouton_effacer_statistiques'), ''); if ($res) echo $res; else redirige_url_ecrire('statistiques_visites',''); } }
function exec_upgrade_dist() { global $spip_version_base; if (!_FILE_CONNECT) { redirige_url_ecrire("install"); } // Si reinstallation necessaire, message ad hoc if (_request('reinstall') == 'oui') { include_spip('inc/minipres'); $r = minipres(_T('titre_page_upgrade'), "<p><b>" . _T('texte_nouvelle_version_spip_1') . "</b><p> " . _T('texte_nouvelle_version_spip_2', array('connect' => '<tt>' . _FILE_CONNECT . '</tt>')) . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />", '', _T('bouton_relancer_installation'))); echo $r; } elseif (_request('fin')) { include_spip('inc/plugin'); actualise_plugins_actifs(); include_spip('inc/headers'); $res = generer_url_ecrire('admin_plugin', 'var_mode=recalcul'); echo redirige_formulaire($res); } else { if (!isset($GLOBALS['meta']['version_installee'])) { $GLOBALS['meta']['version_installee'] = 0.0; } else { $GLOBALS['meta']['version_installee'] = (double) str_replace(',', '.', $GLOBALS['meta']['version_installee']); } # NB: str_replace car, sur club-internet, il semble que version_installe soit # enregistree au format '1,812' et non '1.812' // Erreur downgrade // (cas de double installation de fichiers SPIP sur une meme base) if ($spip_version_base < $GLOBALS['meta']['version_installee']) { $commentaire = _T('info_mise_a_niveau_base_2'); } else { $commentaire = _T('texte_mise_a_niveau_base_1'); } $commentaire .= "<br />[" . $GLOBALS['meta']['version_installee'] . "/" . $spip_version_base . "]"; $_POST['reinstall'] = 'non'; // pour copy_request dans admin include_spip('inc/headers'); $admin = charger_fonction('admin', 'inc'); $res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire); if ($res) { echo $res; } else { // effacer les alea pour forcer leur relecture // si jamais ils ont change pendant l'upgrade unset($GLOBALS['meta']['alea_ephemere']); unset($GLOBALS['meta']['alea_ephemere_ancien']); $res = redirige_action_auteur('purger', 'cache', 'upgrade', 'fin=oui', true); echo redirige_formulaire($res); } } }
function exec_upgrade_dist() { global $spip_version_base; if (!_FILE_CONNECT) redirige_url_ecrire("install"); // Si reinstallation necessaire, message ad hoc if (_request('reinstall') == 'oui') { include_spip('inc/minipres'); $r = minipres(_T('titre_page_upgrade'), "<p><b>" . _T('texte_nouvelle_version_spip_1') . "</b><p> " . _T('texte_nouvelle_version_spip_2', array('connect' => '<tt>' . _FILE_CONNECT . '</tt>')) . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />",'', _T('bouton_relancer_installation'))); echo $r; } else { if (!isset($GLOBALS['meta']['version_installee'])) $GLOBALS['meta']['version_installee'] = 0.0; else $GLOBALS['meta']['version_installee'] = (double) str_replace(',','.',$GLOBALS['meta']['version_installee']); # NB: str_replace car, sur club-internet, il semble que version_installe soit # enregistree au format '1,812' et non '1.812' // Erreur downgrade // (cas de double installation de fichiers SPIP sur une meme base) if ($spip_version_base < $GLOBALS['meta']['version_installee']) $commentaire = _T('info_mise_a_niveau_base_2'); // Commentaire standard upgrade else $commentaire = _T('texte_mise_a_niveau_base_1'); $_POST['reinstall'] = 'non'; // pour copy_request dans admin include_spip('inc/headers'); $admin = charger_fonction('admin', 'inc'); $res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire); if ($res) echo $res; else { $res = redirige_action_auteur('purger', 'cache', 'accueil', '', true); redirige_par_entete($res); } } }
function action_editer_breve_dist($arg=null) { if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } // Envoi depuis les boutons "publier/supprimer cette breve" if (preg_match(',^(\d+)\Wstatut\W(\w+)$,', $arg, $r)) { $id_breve = $r[1]; set_request('statut', $r[2]); revisions_breves($id_breve); } // Envoi depuis le formulaire d'edition pour chgt de langue else if (preg_match(',^(\d+)\W(\w+)$,', $arg, $r)) { revisions_breves_langue($id_breve=$r[1], $r[2], _request('changer_lang')); } // Envoi depuis le formulaire d'edition d'une breve existante else if ($id_breve = intval($arg)) { revisions_breves($id_breve); } // Envoi depuis le formulaire de creation d'une breve else if ($arg == 'oui') { $id_breve = insert_breve(_request('id_parent')); if ($id_breve) revisions_breves($id_breve); } // Erreur else{ include_spip('inc/headers'); redirige_url_ecrire(); } if (_request('redirect')) { $redirect = parametre_url(urldecode(_request('redirect')), 'id_breve', $id_breve, '&'); include_spip('inc/headers'); redirige_par_entete($redirect); } else return array($id_breve,''); }
function action_instituer_rubrique_breves_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($id, $statut) = preg_split('/\W/', $arg); $id = intval($id); include_spip('action/editer_breve'); $table = 'articles'; $key = 'id_article'; $voss = sql_select("$key AS id", "spip_$table", "id_rubrique=$id AND (statut = 'publie' OR statut = 'prop')"); while($row = sql_fetch($voss)) { set_request('statut', $statut); revisions_breves($row['id']); } redirige_url_ecrire('meme_rubrique', "id=$id&type=breve&order=date_heure"); }
function action_editer_petition_dist($arg = null) { if (is_null($arg)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } // si id_petition n'est pas un nombre, c'est une creation // mais on verifie qu'on a toutes les donnees qu'il faut. if (!($id_petition = intval($arg))) { $id_article = _request('id_article'); if (!$id_article) { include_spip('inc/headers'); redirige_url_ecrire(); } $id_petition = petition_inserer($id_article); } // Enregistre l'envoi dans la BD if ($id_petition > 0) { $err = petition_modifier($id_petition); } return array($id_petition, $err); }
function install_etape_fin_dist() { ecrire_acces(); $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CHMOD_TMP); if (file_exists(_FILE_CHMOD_TMP)) { if (!@rename(_FILE_CHMOD_TMP, $f)) { if (@copy(_FILE_CHMOD_TMP, $f)) spip_unlink(_FILE_CHMOD_TMP); } } $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CONNECT_TMP); if (file_exists(_FILE_CONNECT_TMP)) { spip_log("renomme $f"); if (!@rename(_FILE_CONNECT_TMP, $f)) { if (@copy(_FILE_CONNECT_TMP, $f)) @spip_unlink(_FILE_CONNECT_TMP); } } // creer le repertoire cache, qui sert partout ! // deja fait en etape 4 en principe, on garde au cas ou if(!@file_exists(_DIR_CACHE)) { $rep = preg_replace(','._DIR_TMP.',', '', _DIR_CACHE); $rep = sous_repertoire(_DIR_TMP, $rep, true,true); } // Verifier la securite des htaccess // Si elle ne fonctionne pas, prevenir $msg = install_verifier_htaccess(); if ($msg) { $cible = _T('public:accueil_site'); $cible = generer_form_ecrire('accueil', '','', $cible); echo minipres('AUTO', $msg . $cible); // ok, deboucher dans l'espace prive } else redirige_url_ecrire('accueil'); }
function etape_ldap5_save() { if (!@file_exists(_FILE_CONNECT_TMP)) { redirige_url_ecrire('install'); } ecrire_meta('ldap_statut_import', _request('statut_ldap')); lire_fichier(_FILE_CONNECT_TMP, $conn); if ($p = strpos($conn, "'');")) { ecrire_fichier(_FILE_CONNECT_TMP, substr($conn, 0, $p + 1) . _FILE_LDAP . substr($conn, $p + 1)); } $adresse_ldap = addcslashes(_request('adresse_ldap'), "'\\"); $login_ldap = addcslashes(_request('login_ldap'), "'\\"); $pass_ldap = addcslashes(_request('pass_ldap'), "'\\"); $port_ldap = addcslashes(_request('port_ldap'), "'\\"); $tls_ldap = addcslashes(_request('tls_ldap'), "'\\"); $protocole_ldap = addcslashes(_request('protocole_ldap'), "'\\"); $base_ldap = addcslashes(_request('base_ldap'), "'\\"); $base_ldap_text = addcslashes(_request('base_ldap_text'), "'\\"); $conn = "\$GLOBALS['ldap_base'] = '{$base_ldap}';\n" . "\$GLOBALS['ldap_link'] = @ldap_connect('{$adresse_ldap}','{$port_ldap}');\n" . "@ldap_set_option(\$GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'{$protocole_ldap}');\n" . ($tls_ldap != 'oui' ? '' : "@ldap_start_tls(\$GLOBALS['ldap_link']);\n") . "@ldap_bind(\$GLOBALS['ldap_link'],'{$login_ldap}','{$pass_ldap}');\n"; $champs = is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array(); $res = ''; foreach ($champs as $champ => $v) { $nom = 'ldap_' . $champ; $val = trim(_request($nom)); if (preg_match('/^\\w*$/', $val)) { if ($val) { $val = _q($val); } } else { $val = "array(" . _q(preg_split('/\\W+/', $val)) . ')'; } if ($val) { $res .= "'{$champ}' => " . $val . ","; } } $conn .= "\$GLOBALS['ldap_champs'] = array({$res});\n"; install_fichier_connexion(_DIR_CONNECT . _FILE_LDAP, $conn); }
function action_editer_article_dist($arg=null) { if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } // si id_article n'est pas un nombre, c'est une creation // mais on verifie qu'on a toutes les donnees qu'il faut. if (!$id_article = intval($arg)) { $id_parent = _request('id_parent'); $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; if (!($id_parent AND $id_auteur)) { include_spip('inc/headers'); redirige_url_ecrire(); } if (($id_article = insert_article($id_parent)) > 0) # cf. GROS HACK ecrire/inc/getdocument # rattrapper les documents associes a cet article nouveau # ils ont un id = 0-id_auteur sql_updateq("spip_documents_liens", array("id_objet" => $id_article), array("id_objet = ".(0-$id_auteur),"objet='article'")); } // Enregistre l'envoi dans la BD if ($id_article > 0) $err = articles_set($id_article); if (_request('redirect')) { $redirect = parametre_url(urldecode(_request('redirect')), 'id_article', $id_article, '&') . $err; include_spip('inc/headers'); redirige_par_entete($redirect); } else return array($id_article,$err); }
function formulaires_ecatalogue_currency_traiter_dist($id_currency) { $result = array(); $mdl = new CurrencyModel(); if (_request('delete_currency')) { if ($mdl->delete_by_id($id_currency)) { pdk_set_message_ok(_T('ecatalogue:form_deleted')); //$result['message_ok'] = _T('sport:form_deleted'); } else { pdk_set_message_error(_T('ecatalogue:form_error')); //$result['message_erreur'] = _T('sport:form_error'); } include_spip('inc/headers'); redirige_url_ecrire('ecatalogue_currencies'); } else { $data = $mdl->form_data_from_array($_REQUEST); if ($mdl->update_by_id($id_currency, $data, true)) { $result['message_ok'] = _T('ecatalogue:form_saved'); } else { $result['message_erreur'] = _T('ecatalogue:form_error'); } } return $result; }
if (!defined('_OUTILS_DEVELOPPEURS')) { /** Activer des outils pour développeurs ? */ define('_OUTILS_DEVELOPPEURS', false); } // charger systematiquement inc/autoriser dans l'espace restreint if (test_espace_prive()) { include_spip('inc/autoriser'); } // // Installer Spip si pas installe... sauf si justement on est en train // if (!(_FILE_CONNECT or autoriser_sans_cookie(_request('exec')) or _request('action') == 'cookie' or _request('action') == 'converser' or _request('action') == 'test_dirs')) { // Si on peut installer, on lance illico if (test_espace_prive()) { include_spip('inc/headers'); redirige_url_ecrire("install"); } else { // Si on est dans le site public, dire que qq s'en occupe include_spip('inc/minipres'); utiliser_langue_visiteur(); echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . "</p>"); exit; } // autrement c'est une install ad hoc (spikini...), on sait pas faire } // memoriser un tri sessionne eventuel if (isset($_REQUEST['var_memotri']) and $t = $_REQUEST['var_memotri'] and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0)) { if (!function_exists('session_set')) { include_spip('inc/session'); } session_set($t, _request($t));
function action_charger_plugin_dist() { global $spip_lang_left; $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); include_spip('inc/minipres'); include_spip('inc/charger_plugin'); // droits : il faut avoir le droit de choisir les plugins, // mais aussi d'en ajouter -- a voir include_spip('inc/autoriser'); if (!autoriser('configurer', 'plugins')) { echo minipres(); exit; } if ($arg == 'update_flux') { if (is_array($syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']))) foreach ($syndic_plug as $url => $c) essaie_ajouter_liste_plugins($url); } elseif ($arg == 'supprimer_flux' AND $url = _request('supprimer_flux')) { $syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']); unset($syndic_plug[$url]); ecrire_meta('syndic_plug', serialize($syndic_plug)); } elseif (in_array($arg,array('charger_zip','lib','plugins'))) { // la verification que c'est bien un zip sera faite apres $zip = _request('url_zip_plugin'); } elseif (strlen($arg)) { // la verification que c'est bien un zip sera faite apres $zip = $arg; } else { // indetermine : c'est un zip ou une liste $arg = 'charger_liste_ou_zip'; $zip = _request('url_zip_plugin2'); } # si premiere lecture, destination temporaire des fichiers $tmp = sous_repertoire(_DIR_CACHE, 'chargeur'); # on ne se contenten pas du basename qui peut etre un simple v1 # exemple de l'url http://nodeload.github.com/kbjr/Git.php/zipball/v0.1.1-rc $fichier = (_request('fichier')? _request('fichier') :"h".substr(md5($zip),0,8)."-".basename($zip) ); # basename par securite notamment dans le cas ou $fichier viens de l'exterieur $fichier = $tmp.basename($fichier); $extension = ""; // a verifier # au second tour, le zip designe directement le fichier au lieu de l'url # initiale if (!file_exists($fichier)) { # si on ne dispose pas encore du fichier # verifier que le zip en est bien un (sans se fier a son extension) # en chargeant son entete car l'url initiale peut etre une simple # redirection et ne pas comporter d'extension .zip include_spip('inc/distant'); $head = recuperer_page($zip, false, true, 0); if (preg_match(",^Content-Type:\s*application/zip$,Uims",$head)) $extension = "zip"; elseif (preg_match(',^Content-Disposition:\s*attachment;\s*filename="?([^"]+)"?$,Uims',$head,$m)){ $f = $m[1]; if (pathinfo($f, PATHINFO_EXTENSION)=="zip"){ $fichier = (_request('fichier')? _request('fichier') :"h".substr(md5($zip),0,8)."-".basename($f) ); $fichier = $tmp.basename($fichier); $extension = "zip"; } } // au cas ou, si le content-type n'est pas la // mais que l'extension est explicite elseif(pathinfo($zip, PATHINFO_EXTENSION)=="zip") $extension = "zip"; # si ce n'est pas un zip dans un format connu, # c'est sans doute une liste de plugins # si on est dans le bon scenario if (!$extension) { if ($arg == 'charger_liste_ou_zip') { essaie_ajouter_liste_plugins($zip); } } } else { $extension = pathinfo($fichier, PATHINFO_EXTENSION); if (!$extension) $extension = pathinfo($zip, PATHINFO_EXTENSION); } # format de fichier inconnu if (!$extension) { spip_log("Extension inconnue pour le paquet $fichier venant de $zip"); include_spip('inc/headers'); redirige_url_ecrire('charger_plugin'); } # Si definie a '', le chargeur est interdit ; mais on n'aurait de toutes # facons jamais pu venir ici avec toutes les securisations faites :^) if (!_DIR_PLUGINS_AUTO) die('jamais'); # dispose-t-on du fichier ? $status = null; # forcer l'extension du fichier par securite $fichier = $tmp.basename($fichier,".$extension").".$extension"; if (!@file_exists($fichier)) { include_spip('inc/distant'); $contenu = recuperer_page($zip, $fichier, false,_COPIE_LOCALE_MAX_SIZE); if (!$contenu) { spip_log('charger_decompresser impossible de charger '.$zip); $status = -1; } } if ($status === null) { $status = chargeur_charger_zip( array( 'zip' => $zip, 'arg' => $arg, 'fichier' => $fichier, 'tmp' => $tmp, 'extract' => _request('extract') ) ); if (_request('extract')) { spip_unlink($fichier); } } // Vers quoi pointe le bouton "suite" $suite = ''; // le fichier .zip est la et bien forme if (is_array($status)) { // Reconnaitre un plugin par son fichier xml $get_infos = charger_fonction('get_infos','plugins'); $infos = $get_infos($status['tmpname'], true, ''); if ($infos) { $nom = $infos['nom']; $image = $infos['icon']; $description = $infos['description']; $type = 'plugin'; $dest = _DIR_PLUGINS_AUTO; } else { $type = 'lib'; $dest = _DIR_RACINE.'lib/'; } // Fixer son emplacement final $status['dirname'] = $dest . basename($status['tmpname']) . '/'; // repertoire parent accessible en ecriture ? if (!@is_dir($dest) OR !@is_writeable($dest)) { $retour = _T("erreur"); $texte = "<p>"._T('plugin_erreur_droit1',array('dest'=>$dest))."</p>" . "<p>"._T('plugin_erreur_droit2').aide('install0')."</p>"; } else // C'est un plugin ? if ($type == 'plugin') { $retour = typo($nom); // l'icone ne peut pas etre dans tmp/ (lecture http oblige) // on la copie donc dans local/chargeur/ if ($image) { $dir = sous_repertoire(_DIR_VAR,'chargeur'); @copy($status['tmpname'].'/'.$image, $image2 = $dir.basename($image)); $retour = "<img src='".$image2."' style='float:right;' />" . $retour; } else $retour = "<img src='".find_in_path('images/plugin-24.gif')."' style='float:right;' />" . $retour; if (_request('extract')) { $afficher = charger_fonction('afficher_plugin','plugins'); // pour plugin_propre $texte = plugin_propre($description) . '<p>'._T('plugin_zip_installe_finie',array('zip'=>$zip)).'</p>' . "<h2 style='text-align:center;'>"._T('plugin_zip_active')."</h2>"; } else { $texte = '<p>'._T('plugin_zip_telecharge',array('zip'=>$zip)).'</p>'; $texte .= liste_fichiers_pclzip($status); $texte .= "<h2 style='text-align:center;'>"._T('plugin_zip_installer')."</h2>"; $suite = 'plugins'; } } // C'est un paquet quelconque else { $retour = _T('plugin_charge_paquet',array('name' => basename($status['tmpname']))); if (_request('extract')) { $texte = '<p>'._T('plugin_zip_installe_rep_finie', array('zip'=>$zip, 'rep'=>$status['dirname'])).'</p>'; } else { $texte = "<p>"._T('plugin_zip_telecharge',array('zip'=>$zip))."</p>\n"; $texte .= liste_fichiers_pclzip($status); $suite = 'lib'; } } } // fichier absent else if ($status == -1) { $retour = _T('erreur'); $texte = _T('plugin_erreur_charger', array('zip'=>$zip)); } // fichier la mais pas bien dezippe else { $retour = _T('erreur'); $texte = _T('plugin_erreur_zip',array('status'=>$status)); } include_spip('inc/install'); // pour bouton_suivant() $texte = "<div style='text-align:$spip_lang_left;'>$texte</div>\n"; $redirect = rawurldecode(_request('redirect')); // par defaut on revient sur la page admin_plugin if($redirect == _DIR_RESTREINT OR $redirect == "./"){ $redirect_annul = generer_url_ecrire('admin_plugin'); $redirect_form = 'admin_plugin&voir=recents&'.$type.'='.preg_replace(',^[^/]+/|/$,', '', $status['dirname']); $redirect_action = ''; } else{ $redirect_annul = $redirect; $redirect_form = preg_replace(',^.*exec\=,', '', $redirect); if (!$suite) $texte .= form_hidden(parametre_url(generer_url_ecrire($redirect_form), $type,preg_replace(',^[^/]+/|/$,', '', $status['dirname']))); $redirect_action = $redirect_form; } echo minipres($retour." ", $suite ? redirige_action_post(_request('action'), $suite, $redirect_action, '', form_hidden('?url_zip_plugin='.urlencode($zip).'&extract=oui&fichier='.urlencode($fichier)) .$texte ."<a class='suivant' href='" .$redirect_annul ."'>"._T('bouton_annuler')."</a>" .bouton_suivant()) : generer_form_ecrire($redirect_form, $texte . bouton_suivant()) ); exit; // 0 = rien, pas charge // liste de fichiers = retour gagnant // < 0 = erreur pclzip // ----- Error codes // -1 : Unable to open file in binary write mode // -2 : Unable to open file in binary read mode // -3 : Invalid parameters // -4 : File does not exist // -5 : Filename is too long (max. 255) // -6 : Not a valid zip file // -7 : Invalid extracted file size // -8 : Unable to create directory // -9 : Invalid archive extension // -10 : Invalid archive format // -11 : Unable to delete file (unlink) // -12 : Unable to rename file (rename) // -13 : Invalid header checksum // -14 : Invalid archive size # redirige_par_entete($url_retour); }
function action_editer_message_post_nouveau($type, $dest='', $rv='') { $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; $mydate = date("YmdHis", time() - 2 * 24 * 3600); sql_delete("spip_messages", "(statut = 'redac') AND (date_heure < $mydate)"); if ($type == 'pb') $statut = 'publie'; else $statut = 'redac'; $titre = filtrer_entites(_T('texte_nouveau_message')); $vals = array('titre' => $titre, 'statut' => $statut, 'type' => $type, 'id_auteur' => $id_auteur); if (!$rv) $vals['date_heure'] = date('Y-m-d H:i:s'); else { $vals['date_heure'] = "$rv 12:00:00"; $vals['date_fin'] = "$rv 13:00:00"; $vals['rv'] = 'oui'; } $id_message = sql_insertq("spip_messages", $vals); if ($type != "affich"){ sql_insertq('spip_auteurs_messages', array('id_auteur' => $id_auteur, 'id_message' => $id_message, 'vu' =>'oui')); if ($dest) { sql_insertq('spip_auteurs_messages', array('id_auteur' => $dest, 'id_message' => $id_message, 'vu' =>'non')); } } redirige_url_ecrire('message_edit', "id_message=$id_message&new=oui&dest=$dest"); }
function install_etape_3_dist() { $ldap_present = _request('ldap_present'); if (!$ldap_present) { $adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : _request('adresse_db'); $login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : _request('login_db'); $pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : _request('pass_db'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); $chmod_db = defined('_SPIP_CHMOD') ? _SPIP_CHMOD : _request('chmod'); $choix_db = defined('_INSTALL_NAME_DB') ? _INSTALL_NAME_DB : _request('choix_db'); $sel_db = $choix_db == "new_spip" ? _request('table_new') : $choix_db; $res = install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db); if ($res) { $res = info_progression_etape(2, 'etape_', 'install/', true) . "<div class='error'><h3>" . _T('avis_operation_echec') . "</h3>" . $res . "<p>" . _T('texte_operation_echec') . "</p>" . "</div>"; } } else { $res = ''; list($adresse_db, $login_db, $pass_db, $sel_db, $server_db) = analyse_fichier_connection(_FILE_CONNECT_TMP); $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); } if (!$res) { if (file_exists(_FILE_CONNECT_TMP)) { include _FILE_CONNECT_TMP; } else { redirige_url_ecrire('install'); } if (file_exists(_FILE_CHMOD_TMP)) { include _FILE_CHMOD_TMP; } else { redirige_url_ecrire('install'); } $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) . (defined('_INSTALL_NAME_DB') ? '' : "\n<input type='hidden' name='sel_db' value='{$sel_db}' />"); $auteur_obligatoire = $ldap_present ? 0 : !sql_countsel('spip_auteurs', '', '', '', $server_db); $res = "<div class='success'><b>" . _T('info_base_installee') . "</b></div>" . install_premier_auteur(_request('email'), _request('login'), _request('nom'), _request('pass'), $hidden, $auteur_obligatoire) . (($ldap_present or !function_exists('ldap_connect')) ? '' : install_propose_ldap()); } echo install_debut_html(); echo $res; echo install_fin_html(); }
function spip_connect_main($connexion) { if ($GLOBALS['spip_connect_version']< 0.1 AND _DIR_RESTREINT){ include_spip('inc/headers'); redirige_url_ecrire('upgrade', 'reinstall=oui'); } if (!($f = $connexion['select'])) return false; if (!$r = $f('valeur','spip_meta', "nom='charset_sql_connexion'")) return false; if (!($f = $connexion['fetch'])) return false; $r = $f($r); return ($r['valeur'] ? $r['valeur'] : -1); }
function formulaires_configurer_ckeditor_p3_charger_dist() { include_spip('inc/headers') ; if (_request('_cfg_reinit')) { effacer_config('ckeditor') ; ckeditor_fix_default_values() ; redirige_url_ecrire('configurer_ckeditor','') ; return ; } ckeditor_ecrire_protectedtags() ; ($cfg = lire_config("ckeditor")) || ($cfg = array()) ; $valeurs = array( 'protectedtags' => $cfg['protectedtags'], 'conversion' => array_key_exists('conversion', $cfg)?$cfg['conversion']:_CKE_CONVERSION_DEF, 'html2spip_limite' => array_key_exists('html2spip_limite', $cfg)?$cfg['html2spip_limite']:_CKE_HTML2SPIP_LIMITE_DEF, 'html2spip_identite' => array_key_exists('html2spip_identite', $cfg)?$cfg['html2spip_identite']:_CKE_HTML2SPIP_IDENTITE, 'spiplinks' => array_key_exists('spiplinks', $cfg)?$cfg['spiplinks']:_CKE_SPIPLINKS_DEF, 'insertall' => array_key_exists('insertall', $cfg)?$cfg['insertall']:_CKE_INSERTALL_DEF, 'pastetext' => array_key_exists('pastetext', $cfg)?$cfg['pastetext']:_CKE_PASTETEXT_DEF, 'selecteurs_public' => array_key_exists('selecteurs_public', $cfg)?$cfg['selecteurs_public']:_CKE_PUBLIC_DEF, 'selecteurs_prive' => array_key_exists('selecteurs_prive', $cfg)?$cfg['selecteurs_prive']:_CKE_PRIVE_DEF, 'cktoolslenlarge' => array_key_exists('cktoolslenlarge', $cfg)?$cfg['cktoolslenlarge']:_CKE_LARGE_DEF, 'cktoolslenetroit' => array_key_exists('cktoolslenetroit', $cfg)?$cfg['cktoolslenetroit']:_CKE_ETROIT_DEF, 'cklanguage' => array_key_exists('cklanguage', $cfg)?$cfg['cklanguage']:_CKE_LANGAGE_DEF, 'entermode' => array_key_exists('entermode', $cfg)?$cfg['entermode']:_CKE_ENTERMODE_DEF, 'shiftentermode' => array_key_exists('shiftentermode', $cfg)?$cfg['shiftentermode']:_CKE_SHIFTENTERMODE_DEF, 'csssite' => array_key_exists('csssite', $cfg)?$cfg['csssite']:'', 'contextes' => array_key_exists('contextes', $cfg)?$cfg['contextes']:'', 'siteurl' => array_key_exists('siteurl', $cfg)?$cfg['siteurl']:'' ) ; $cvt_options = array( 'aucune' => _T('ckeditor:aucune_conversion'), 'partielle' => _T('ckeditor:conversion_partielle_vers_spip'), ) ; if (find_in_path('lib/'._CKE_HTML2SPIP_VERSION)) { $cvt_options['complete'] = _T('ckeditor:utiliser_html2spip') ; $cvt_explication = array( 'saisie' => 'explication_spip', 'options' => array( 'nom'=>'explication_conversion', 'texte' => _T('ckeditor:html2spip_detecte')) ) ; } else { $cvt_explication = array( 'saisie' => 'explication_spip', 'options' => array( 'nom'=>'explication_conversion', 'texte' => _T('ckeditor:aide_html2spip_non_trouvee')) ) ; } $valeurs['saisies_cke_page3'] = array( array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options_conversion', 'label' => _T('ckeditor:options_conversion'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'input', 'options' => array( 'nom' => 'protectedtags', 'label' => _T('ckeditor:balises_spip_autoriser') ) ), array( 'saisie' => 'explication', 'options' => array( 'nom' => 'html2spip_explication', 'texte' => _T('ckeditor:utiliser_html2spip_descriptif') ) ), $cvt_explication, array( 'saisie' => 'selection', 'options' => array( 'nom' => 'conversion', 'cacher_option_intro' => 'oui', 'label' => _T('ckeditor:options_html2spip'), 'datas' => $cvt_options ) ), array( 'saisie' => 'input', 'options' => array( 'nom' => 'html2spip_identite', 'label' => _T('ckeditor:html2spip_identite') ) ), array( 'saisie' => 'case', 'options' => array( 'nom' => 'html2spip_limite', 'label_case' => _T('ckeditor:html2spip_limite') ) ), array( 'saisie' => 'case', 'options' => array( 'nom' => 'pastetext', 'label_case' => _T('ckeditor:forcer_copie_comme_texte') ) ), array( 'saisie' => 'selection', 'options' => array( 'nom' => 'entermode', 'label' => _T('ckeditor:entermode'), 'datas' => array( 'ENTER_P' => _T('ckeditor:enter_p'), 'ENTER_BR' => _T('ckeditor:enter_br'), 'ENTER_DIV' => _T('ckeditor:enter_div') ) ) ), array( 'saisie' => 'selection', 'options' => array( 'nom' => 'shiftentermode', 'label' => _T('ckeditor:shiftentermode'), 'datas' => array( 'ENTER_P' => _T('ckeditor:enter_p'), 'ENTER_BR' => _T('ckeditor:enter_br'), 'ENTER_DIV' => _T('ckeditor:enter_div') ) ) ), array( 'saisie' => 'explication', 'options' => array( 'nom' => 'explication_entermode', 'texte' => "-* "._T('ckeditor:explique_p')."\n-* "._T('ckeditor:explique_div') ) ) ) ), array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options_activation', 'label' => _T('ckeditor:utiliser_ckeditor_avec'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'explication_spip', 'options' => array( 'nom' => 'explication_selecteurs', 'texte' => _T('ckeditor:aide_selecteurs') )), array( 'saisie' => 'textarea', 'options' => array( 'nom' => 'selecteurs_public', 'label' => _T('ckeditor:selecteurs_espace_public'), 'rows' => 6 )), array( 'saisie' => 'textarea', 'options' => array( 'nom' => 'selecteurs_prive', 'label' => _T('ckeditor:selecteurs_espace_prive'), 'rows' => 6 )), ) ), array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options_spip', 'label' => _T('ckeditor:options_spip'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'case', 'options' => array( 'nom' => 'spiplinks', 'label_case' => _T('ckeditor:autoriser_liens_spip') ) ), array( 'saisie' => 'case', 'options' => array( 'nom' => 'insertall', 'label_case' => _T('ckeditor:autoriser_insertion_documents') ) ), array( 'saisie' => 'input', 'options' => array( 'nom' => 'siteurl', 'label' => _T('ckeditor:url_site'), 'explication' => _T('ckeditor:normalement_detectee').lire_meta('adresse_site') ) ) ) ), array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options_gui', 'label' => _T('ckeditor:options_gui'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'input', 'options' => array( 'nom' => 'cktoolslenetroit', 'label' => _T('ckeditor:etroit') ) ), array( 'saisie' => 'input', 'options' => array( 'nom' => 'cktoolslenlarge', 'label' => _T('ckeditor:large') ) ), array( 'saisie' => 'selection', 'options' => array( 'nom' => 'cklanguage', 'label' => _T('ckeditor:langue_ckeditor'), 'cacher_option_intro' => 'oui', 'datas' => array( 'auto'=>'Auto détection', 'af'=>'Afrikaans', 'ar'=>'Arabic', 'bg'=>'Bulgarian', 'bn'=>'Bengali/Bangla', 'bs'=>'Bosnian', 'ca'=>'Catalan', 'cs'=>'Czech', 'da'=>'Danish', 'de'=>'German', 'el'=>'Greek', 'en'=>'English', 'en-au'=>'English (Australia)', 'en-ca'=>'English (Canadian)', 'en-uk'=>'English (United Kingdom)', 'eo'=>'Esperanto', 'es'=>'Spanish', 'et'=>'Estonian', 'eu'=>'Basque', 'fa'=>'Persian', 'fi'=>'Finnish', 'fo'=>'Faroese', 'fr'=>'French', 'fr-ca'=>'French (Canada)', 'gl'=>'Galician', 'gu'=>'Gujarati', 'he'=>'Hebrew', 'hi'=>'Hindi', 'hr'=>'Croatian', 'hu'=>'Hungarian', 'is'=>'Icelandic', 'it'=>'Italian', 'ja'=>'Japanese', 'km'=>'Khmer', 'ko'=>'Korean', 'lt'=>'Lithuanian', 'lv'=>'Latvian', 'mn'=>'Mongolian', 'ms'=>'Malay', 'nb'=>'Norwegian Bokmal', 'nl'=>'Dutch', 'no'=>'Norwegian', 'pl'=>'Polish', 'pt'=>'Portuguese (Portugal)', 'pt-br'=>'Portuguese (Brazil)', 'ro'=>'Romanian', 'ru'=>'Russian', 'sk'=>'Slovak', 'sl'=>'Slovenian', 'sr'=>'Serbian (Cyrillic)', 'sr-latn'=>'Serbian (Latin)', 'sv'=>'Swedish', 'th'=>'Thai', 'tr'=>'Turkish', 'uk'=>'Ukrainian', 'vi'=>'Vietnamese', 'zh'=>'Chinese Traditional', 'zh-cn'=>'Chinese Simplified' ) ) ) ) ), array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'options_css', 'label' => _T('ckeditor:options_css'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'input', 'options' => array( 'nom' => 'csssite', 'label' => _T('ckeditor:css_site') ) ), array( 'saisie' => 'explication', 'options' => array( 'nom' => 'explication_csssite', 'texte' => _T('ckeditor:aide_css_site') ) ), array( 'saisie' => 'input', 'options' => array( 'nom' => 'contextes', 'label' => _T('ckeditor:liste_de_contextes') ) ), array( 'saisie' => 'explication', 'options' => array( 'nom' => 'explication_contextes', 'texte' => _T('ckeditor:aide_contextes') ) ) ) ), array( 'saisie' => 'fieldset', 'options' => array( 'nom' => 'nettoyage_ckeditor', 'label' => _T('ckeditor:nettoyage_de_ckeditor'), 'pliable' => 'oui', 'plie' => 'oui' ), 'saisies' => array( array( 'saisie' => 'radio', 'options' => array( 'nom' => 'nettoyage', 'datas' => array( 'sources'=>_T('ckeditor:les_sources'), 'exemples'=>_T('ckeditor:les_exemples'), 'tout'=>_T('ckeditor:les_sources_et_les_exemples') ) ) ), array( 'saisie' => 'bouton', 'options' => array( 'nom' => 'nettoyer', 'type' => 'submit', 'texte' => _T('ckeditor:nettoyer') ) ) ) ) ) ; return $valeurs ; }
function spip_connect_main($connexion) { if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) { include_spip('inc/headers'); redirige_url_ecrire('upgrade', 'reinstall=oui'); } if (!($f = $connexion['select'])) { return false; } // en cas d'erreur select retourne la requette (is_string=true donc) if (!($r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'")) or is_string($r)) { return false; } if (!($f = $connexion['fetch'])) { return false; } $r = $f($r); return $r['valeur'] ? $r['valeur'] : -1; }
function action_editer_site_dist($arg=null) { if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } $resyndiquer = false; include_spip('inc/filtres'); // pour vider_url() if (preg_match(',options/(\d+),',$arg, $r)) { $id_syndic = $r[1]; $resyndiquer = editer_site_options($id_syndic); // Envoi depuis le formulaire d'edition d'un site existant } else if ($id_syndic = intval($arg)) { // reload si on change une des valeurs de syndication if ( (_request('url_syndic') OR _request('resume') OR _request('syndication')) AND $t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=".sql_quote($id_syndic)) AND ( (_request('url_syndic') AND _request('url_syndic') != $t['url_syndic']) OR (_request('syndication') AND _request('syndication') != $t['syndication']) OR (_request('resume') AND _request('resume') != $t['resume']) ) ) set_request('reload', 'oui'); revisions_sites($id_syndic); // Envoi normal depuis le formulaire de creation d'un site } elseif (strlen(vider_url(_request('url_site'))) AND strlen(_request('nom_site'))) { set_request('reload', 'oui'); $id_syndic = insert_syndic(_request('id_parent')); revisions_sites($id_syndic); if ($logo = _request('logo') AND $format_logo = _request('format_logo')){ include_spip('inc/distant'); @rename(copie_locale($logo), _DIR_IMG . 'siteon'.$id_syndic.'.'.$format_logo); } } // Erreur else { include_spip('inc/headers'); redirige_url_ecrire(); } // Re-syndiquer le site if (_request('reload') == 'oui') { // Effacer les messages si on supprime la syndication if (_request('syndication') == 'non') sql_delete("spip_syndic_articles", "id_syndic=".sql_quote($id_syndic)); $t = sql_getfetsel('descriptif', 'spip_syndic', "id_syndic=$id_syndic AND syndication IN ('oui', 'sus', 'off')", '','', 1); if ($t !== NULL) { // Si descriptif vide, chercher le logo si pas deja la $chercher_logo = charger_fonction('chercher_logo', 'inc'); if (!$logo = $chercher_logo($id_syndic, 'id_syndic', 'on') OR !$t) { if ($auto = vider_url(_request('url_auto'))) { $auto = analyser_site($auto); if (!strlen($t) AND strlen($auto['descriptif'])) revisions_sites($id_syndic, array('descriptif' => $auto['descriptif'])); } if (!$logo AND $auto['logo'] AND $auto['format_logo']) @rename($auto['logo'], _DIR_IMG . 'siteon'.$id_syndic.'.'.$auto['format_logo']); } $resyndiquer = true; } } if ($resyndiquer) { // ah si PHP connaisait les fermetures... // A la place, une constante utilisee exclusivement // dans la fct suivante. define('_GENIE_SYNDIC_NOW', $id_syndic); // forcer l'execution immediate de cette tache // (i.e. appeler la fct suivante avec gestion du verrou) cron(0, array('syndic' => -91)); } if (_request('redirect')) { $redirect = parametre_url(urldecode(_request('redirect')), 'id_syndic', $id_syndic, '&'); include_spip('inc/headers'); redirige_par_entete($redirect); } else return array($id_syndic,''); }
function maj_while($installee, $cible, $maj, $meta='', $table='meta') { $n = 0; $time = time(); while ($installee < $cible) { $installee++; if (isset($maj[$installee])) { $etape = serie_alter($installee, $maj[$installee], $meta, $table); if ($etape) return array($installee, $etape); $n = time() - $time; spip_log("$table $meta: $installee en $n secondes",'maj'); if ($meta) ecrire_meta($meta, $installee,'non', $table); } // rien pour SQL if ($n >= _UPGRADE_TIME_OUT) { redirige_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table"); } } // indispensable pour les chgt de versions qui n'ecrivent pas en base // tant pis pour la redondance eventuelle avec ci-dessus if ($meta) ecrire_meta($meta, $installee,'non'); spip_log("MAJ terminee. $meta: $installee",'maj'); return array(); }
function install_etape_3b_dist() { $login = _request('login'); $email = _request('email'); $nom = _request('nom'); $pass = _request('pass'); $pass_verif = _request('pass_verif'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); if (!defined('_PASS_LONGUEUR_MINI')) { define('_PASS_LONGUEUR_MINI', 6); } if (!defined('_LOGIN_TROP_COURT')) { define('_LOGIN_TROP_COURT', 4); } if ($login) { $echec = $pass != $pass_verif ? _T('info_passes_identiques') : (strlen($pass) < _PASS_LONGUEUR_MINI ? _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI)) : (strlen($login) < _LOGIN_TROP_COURT ? _T('info_login_trop_court') : '')); include_spip('inc/filtres'); if (!$echec and $email and !email_valide($email)) { $echec = _T('form_email_non_valide'); } if ($echec) { echo minipres('AUTO', info_progression_etape(3, 'etape_', 'install/', true) . "<div class='error'><h3>{$echec}</h3>\n" . "<p>" . _T('avis_connexion_echec_2') . "</p>" . "</div>"); exit; } } if (@file_exists(_FILE_CHMOD_TMP)) { include _FILE_CHMOD_TMP; } else { redirige_url_ecrire('install'); } if (!@file_exists(_FILE_CONNECT_TMP)) { redirige_url_ecrire('install'); } # maintenant on connait le vrai charset du site s'il est deja configure # sinon par defaut lire_meta reglera _DEFAULT_CHARSET # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET) lire_metas(); if ($login) { include_spip('inc/charsets'); $nom = importer_charset($nom, _DEFAULT_CHARSET); $login = importer_charset($login, _DEFAULT_CHARSET); $email = importer_charset($email, _DEFAULT_CHARSET); # pour le passwd, bizarrement il faut le convertir comme s'il avait # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1'); include_spip('auth/sha256.inc'); include_spip('inc/acces'); $htpass = generer_htpass($pass); $alea_actuel = creer_uniqid(); $alea_futur = creer_uniqid(); $shapass = _nano_sha256($alea_actuel . $pass); // prelablement, creer le champ webmestre si il n'existe pas (install neuve // sur une vieille base $t = sql_showtable("spip_auteurs", true); if (!isset($t['field']['webmestre'])) { @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3) DEFAULT 'non' NOT NULL"); } $id_auteur = sql_getfetsel("id_auteur", "spip_auteurs", "login="******"nom" => $nom, 'email' => $email, 'login' => $login, 'pass' => $shapass, 'alea_actuel' => $alea_actuel, 'alea_futur' => $alea_futur, 'htpass' => $htpass, 'statut' => '0minirezo'), "id_auteur={$id_auteur}"); } else { $id_auteur = sql_insertq('spip_auteurs', array('nom' => $nom, 'email' => $email, 'login' => $login, 'pass' => $shapass, 'htpass' => $htpass, 'alea_actuel' => $alea_actuel, 'alea_futur' => $alea_futur, 'statut' => '0minirezo')); } // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur={$id_auteur}"); // inserer email comme email webmaster principal // (sauf s'il est vide: cas de la re-installation) if ($email) { ecrire_meta('email_webmaster', $email); } // Connecter directement celui qui vient de (re)donner son login // mais sans cookie d'admin ni connexion longue include_spip('inc/auth'); if (!($auteur = auth_identifier_login($login, $pass)) or !auth_loger($auteur, true)) { spip_log("login automatique impossible {$auth_spip} {$session}" . count($row)); } } // installer les metas $config = charger_fonction('config', 'inc'); $config(); // activer les plugins // leur installation ne peut pas se faire sur le meme hit, il faudra donc // poursuivre au hit suivant include_spip('inc/plugin'); actualise_plugins_actifs(); include_spip('inc/distant'); redirige_par_entete(parametre_url(self(), 'etape', '4', '&')); }
function install_etape_3_dist() { $ldap_present = _request('ldap_present'); if (!$ldap_present) { $adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : _request('adresse_db'); $login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : _request('login_db'); $pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : _request('pass_db'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); $chmod_db = defined('_SPIP_CHMOD') ? _SPIP_CHMOD : _request('chmod'); $choix_db = defined('_INSTALL_NAME_DB') ? _INSTALL_NAME_DB : _request('choix_db'); $sel_db = ($choix_db == "new_spip") ? _request('table_new') : $choix_db; $res = install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db); if ($res) { $res .= info_progression_etape(2,'etape_','install/', true); $res .= "<p class='resultat echec'><b>"._T('avis_operation_echec')."</b></p>"._T('texte_operation_echec'); } } else { $res = ''; list($adresse_db, $login_db, $pass_db, $sel_db, $server_db) = analyse_fichier_connection(_FILE_CONNECT_TMP); } if (!$res) { if (file_exists(_FILE_CONNECT_TMP)) include(_FILE_CONNECT_TMP); else redirige_url_ecrire('install'); if (file_exists(_FILE_CHMOD_TMP)) include(_FILE_CHMOD_TMP); else redirige_url_ecrire('install'); $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) . (defined('_INSTALL_NAME_DB') ? '' : "\n<input type='hidden' name='sel_db' value='$sel_db' />"); $res = "<p class='resultat ok'><b>" . _T('info_base_installee') . "</b></p>" . install_premier_auteur(_request('email'), _request('login'), _request('nom'), _request('pass'), $hidden) . (($ldap_present OR !function_exists('ldap_connect')) ? '' : install_propose_ldap()); } echo install_debut_html(); echo $res; echo install_fin_html(); }
function install_etape_chmod_dist() { global $test_dirs; $test_dir = _request('test_dir'); $chmod = 0; if ($test_dir) { if (substr($test_dir,-1)!=='/') $test_dir .= '/'; if (!in_array($test_dir, $test_dirs)) $test_dirs[] = _DIR_RACINE . $test_dir; } else { if (!_FILE_CONNECT) { $test_dirs[] = _DIR_CONNECT; $test_dirs[] = _DIR_CHMOD; } } $bad_dirs = array(); $absent_dirs = array();; while (list(, $my_dir) = each($test_dirs)) { $test = test_ecrire($my_dir); if (!$test) { $m = preg_replace(',^' . _DIR_RACINE . ',', '',$my_dir); if (@file_exists($my_dir)) { $bad_dirs["<li>".$m."</li>"] = 1; } else $absent_dirs["<li>".$m."</li>"] = 1; } else $chmod = max($chmod, $test); } if ($bad_dirs OR $absent_dirs) { if (!_FILE_CONNECT) { $titre = _T('dirs_preliminaire'); $continuer = ' '._T('dirs_commencer') . '.'; } else $titre = _T('dirs_probleme_droits'); $res = "<div align='right'>". menu_langues('var_lang_ecrire')."</div>\n"; if ($bad_dirs) { $res .= _T('dirs_repertoires_suivants', array('bad_dirs' => join("\n", array_keys($bad_dirs)))) . "<b>". _T('login_recharger')."</b>."; } if ($absent_dirs) { $res .= _T('dirs_repertoires_absents', array('bad_dirs' => join("\n", array_keys($absent_dirs)))) . "<b>". _T('login_recharger')."</b>."; } $res = "<p>" . $continuer . $res . aide ("install0") . "</p>"; $t = _T('login_recharger'); $t = (!$test_dir ? "" : "<input type='hidden' name='test_dir' value='$test_dir' />") . "<input type='hidden' name='etape' value='chmod' />" . "<div style='text-align: right'><input type='submit' value='$t' /></div>"; echo minipres($titre, $res . generer_form_ecrire('install', $t)); } else { $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT)); if (!$deja) redirige_url_ecrire("install", "etape=1&chmod=".$chmod); else redirige_url_ecrire(); } }
function export_all_abort() { // evacuer la fausse erreur du cas du validateur en boucle. if (_request('exec') == 'valider_xml') return; include_spip('base/import_all'); import_all_fin(array()); include_spip('inc/import'); detruit_restaurateur(); effacer_meta('admin'); // et verifier la session include_spip('inc/auth'); $login = auth_retrouver_login($GLOBALS['visiteur_session']['login']); $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login='******'visiteur_session']['id_auteur'] != $id_auteur) auth_deloger(); else redirige_url_ecrire(); }