Ejemplo n.º 1
0
function install_etape_4_dist()
{
    // creer le repertoire cache, qui sert partout !
    if (!@file_exists(_DIR_CACHE)) {
        $rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
        $rep = sous_repertoire(_DIR_TMP, $rep, true, true);
    }
    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
    echo info_progression_etape(4, 'etape_', 'install/');
    echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>";
    echo "<p>" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>" . joli_repertoire(_DIR_PLUGINS_DIST) . "</tt>")) . "</p>";
    // installer les extensions
    include_spip('inc/plugin');
    $afficher = charger_fonction("afficher_liste", 'plugins');
    echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST), array(), array(), _DIR_PLUGINS_DIST, 'afficher_nom_plugin');
    plugin_installes_meta();
    // mettre a jour si necessaire l'adresse du site
    // securite si on arrive plus a se loger
    include_spip('inc/config');
    appliquer_adresse_site('');
    // aller a la derniere etape qui clos l'install et redirige
    $suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive'));
    echo generer_form_ecrire('install', $suite);
    echo install_fin_html();
}
Ejemplo n.º 2
0
function etape_ldap5_suite()
{
    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
    echo info_etape(_T('info_ldap_ok'), info_progression_etape(5, 'etape_ldap', 'install/'), _T('info_terminer_installation'));
    echo generer_form_ecrire('install', "<input type='hidden' name='etape' value='3' />" . "<input type='hidden' name='ldap_present' value='true' />" . bouton_suivant());
    echo install_fin_html();
}
Ejemplo n.º 3
0
function install_etape_ldap4_dist()
{
    $adresse_ldap = _request('adresse_ldap');
    $login_ldap = _request('login_ldap');
    $pass_ldap = _request('pass_ldap');
    $port_ldap = _request('port_ldap');
    $base_ldap = _request('base_ldap');
    $base_ldap_text = _request('base_ldap_text');
    if (!$base_ldap) {
        $base_ldap = $base_ldap_text;
    }
    echo install_debut_html();
    $ldap_link = ldap_connect($adresse_ldap, $port_ldap);
    @ldap_bind($ldap_link, $login_ldap, $pass_ldap);
    // Essayer de verifier le chemin fourni
    $r = @ldap_compare($ldap_link, $base_ldap, "objectClass", "");
    $fail = ldap_errno($ldap_link) == 32;
    if ($fail) {
        echo info_etape(_T('info_chemin_acces_annuaire')), info_progression_etape(3, 'etape_ldap', 'install/', true), "<div class='error'><p><b>" . _T('avis_operation_echec') . "</b></p><p>" . _T('avis_chemin_invalide_1'), " (<tt>" . htmlspecialchars($base_ldap) . "</tt>) " . _T('avis_chemin_invalide_2') . "</p></div>";
    } else {
        info_etape(_T('info_reglage_ldap'));
        echo info_progression_etape(4, 'etape_ldap', 'install/');
        $statuts = liste_statuts_ldap();
        $statut_ldap = defined('_INSTALL_STATUT_LDAP') ? _INSTALL_STATUT_LDAP : $GLOBALS['liste_des_statuts']['info_redacteurs'];
        $res = install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap')) . "<input type='hidden' name='etape' value='ldap5' />" . "<input type='hidden' name='base_ldap' value='" . htmlentities($base_ldap) . "' />" . fieldset(_T('info_statut_utilisateurs_1'), array('statut_ldap' => array('label' => _T('info_statut_utilisateurs_2') . '<br />', 'valeur' => $statut_ldap, 'alternatives' => $statuts))) . install_ldap_correspondances() . bouton_suivant();
        echo generer_form_ecrire('install', $res);
    }
    echo install_fin_html();
}
Ejemplo n.º 4
0
function install_etape_4_dist()
{
    // creer le repertoire cache, qui sert partout !
    if (!@file_exists(_DIR_CACHE)) {
        $rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
        $rep = sous_repertoire(_DIR_TMP, $rep, true, true);
    }
    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
    echo info_progression_etape(4, 'etape_', 'install/');
    echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>";
    echo "<p>" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>" . joli_repertoire(_DIR_PLUGINS_DIST) . "</tt>")) . "</p>";
    // installer les extensions
    include_spip('inc/plugin');
    $afficher = charger_fonction("afficher_liste", 'plugins');
    echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST), array(), array(), _DIR_PLUGINS_DIST, 'afficher_nom_plugin');
    // si la base de SPIP est up, on peut installer les plugins, sinon on passe cette etape
    // car les plugins supposent que la base de SPIP est dans son etat normal (mise a jour)
    // au premier passage dans l'espace prive on aura une demande d'upgrade qui se poursuit sur la page plugin
    // et procede alors a l'installation
    if (!isset($GLOBALS['meta']['version_installee']) or $GLOBALS['spip_version_base'] == str_replace(',', '.', $GLOBALS['meta']['version_installee'])) {
        plugin_installes_meta();
    }
    // mettre a jour si necessaire l'adresse du site
    // securite si on arrive plus a se loger
    include_spip('inc/config');
    appliquer_adresse_site('');
    // aller a la derniere etape qui clos l'install et redirige
    $suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive'));
    echo generer_form_ecrire('install', $suite);
    echo install_fin_html();
}
Ejemplo n.º 5
0
/**
 * 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);
    }
}
Ejemplo n.º 6
0
function install_etape_ldap1_dist()
{
    $adresse_ldap = defined('_INSTALL_HOST_LDAP') ? _INSTALL_HOST_LDAP : 'localhost';
    $port_ldap = defined('_INSTALL_PORT_LDAP') ? _INSTALL_PORT_LDAP : 389;
    $tls_ldap = defined('_INSTALL_TLS_LDAP') ? _INSTALL_TLS_LDAP : 'non';
    $protocole_ldap = defined('_INSTALL_PROTOCOLE_LDAP') ? _INSTALL_PROTOCOLE_LDAP : 3;
    // on essaie 2 en cas d'echec
    $login_ldap = defined('_INSTALL_USER_LDAP') ? _INSTALL_USER_LDAP : '';
    $pass_ldap = defined('_INSTALL_PASS_LDAP') ? _INSTALL_PASS_LDAP : '';
    echo install_debut_html();
    echo info_etape(_T('titre_connexion_ldap'), info_progression_etape(1, 'etape_ldap', 'install/'), _T('entree_informations_connexion_ldap'));
    echo generer_form_ecrire('install', "\n<input type='hidden' name='etape' value='ldap2' />" . fieldset(_T('entree_adresse_annuaire'), array('adresse_ldap' => array('label' => _T('texte_adresse_annuaire_1'), 'valeur' => $adresse_ldap), 'port_ldap' => array('label' => _T('entree_port_annuaire') . '<br />' . _T('texte_port_annuaire'), 'valeur' => $port_ldap), 'tls_ldap' => array('label' => '<b>' . _T('tls_ldap') . '</b>', 'valeur' => $tls_ldap, 'alternatives' => array('non' => _T('item_non'), 'oui' => _T('item_oui'))), 'protocole_ldap' => array('label' => _T('protocole_ldap'), 'valeur' => $protocole_ldap, 'alternatives' => array('3' => '3', '2' => '2')))) . "\n<p>" . _T('texte_acces_ldap_anonyme_1') . '</p>' . fieldset(_T('connexion_ldap'), array('login_ldap' => array('label' => _T('texte_login_ldap_1'), 'valeur' => $login_ldap), 'pass_ldap' => array('label' => _T('entree_passe_ldap'), 'valeur' => $pass_ldap))) . bouton_suivant());
    echo install_fin_html();
}
Ejemplo n.º 7
0
function install_etape_ldap3_dist()
{
    $adresse_ldap = _request('adresse_ldap');
    $login_ldap = _request('login_ldap');
    $pass_ldap = _request('pass_ldap');
    $port_ldap = _request('port_ldap');
    $base_ldap_text = defined('_INSTALL_BASE_LDAP') ? _INSTALL_BASE_LDAP : "ou=users, dc=mon-domaine, dc=com";
    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
    echo info_etape(_T('info_chemin_acces_1'), info_progression_etape(3, 'etape_ldap', 'install/')), _T('info_chemin_acces_2');
    $ldap_link = @ldap_connect("{$adresse_ldap}", "{$port_ldap}");
    if ($ldap_link) {
        @ldap_bind($ldap_link, "{$login_ldap}", "{$pass_ldap}");
        $result = @ldap_read($ldap_link, "", "objectclass=*", array("namingContexts"));
        $info = @ldap_get_entries($ldap_link, $result);
        @ldap_close($ldap_link);
    }
    $checked = false;
    $res = '';
    if (is_array($info) and $info["count"] > 0) {
        $res .= "<p>" . _T('info_selection_chemin_acces') . "</p>";
        $res .= "<ul>";
        $n = 0;
        for ($i = 0; $i < $info["count"]; $i++) {
            $names = $info[$i]["namingcontexts"];
            if (is_array($names)) {
                for ($j = 0; $j < $names["count"]; $j++) {
                    $n++;
                    $res .= "<li><input name=\"base_ldap\" value=\"" . spip_htmlspecialchars($names[$j]) . "\" type='radio' id='tab{$n}'";
                    if (!$checked) {
                        $res .= " checked=\"checked\"";
                        $checked = true;
                    }
                    $res .= " />";
                    $res .= "<label for='tab{$n}'>" . spip_htmlspecialchars($names[$j]) . "</label></li>\n";
                }
            }
        }
        $res .= "</ul>";
        $res .= _T('info_ou') . " ";
    }
    $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'";
    if (!$checked) {
        $res .= " checked=\"checked\"";
        $checked = true;
    }
    $res .= " />" . "\n<label for='manuel'>" . _T('entree_chemin_acces') . "</label> " . "\n<fieldset>" . "<input type='text' name='base_ldap_text' class='text' value=\"{$base_ldap_text}\" size='40' />" . "\n</fieldset>" . "\n<input type='hidden' name='etape' value='ldap4' />" . install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap')) . bouton_suivant();
    echo generer_form_ecrire('install', $res);
    echo install_fin_html();
}
Ejemplo n.º 8
0
function install_etape_ldap2_dist()
{
    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
    $adresse_ldap = _request('adresse_ldap');
    $port_ldap = _request('port_ldap');
    $tls_ldap = _request('tls_ldap');
    $protocole_ldap = _request('protocole_ldap');
    $login_ldap = _request('login_ldap');
    $pass_ldap = _request('pass_ldap');
    $port_ldap = intval($port_ldap);
    $tls = false;
    if ($tls_ldap == 'oui') {
        if ($port_ldap == 636) {
            $adresse_ldap = "ldaps://{$adresse_ldap}";
        } else {
            $tls = true;
        }
    }
    $ldap_link = ldap_connect($adresse_ldap, $port_ldap);
    $erreur = "ldap_connect({$adresse_ldap}, {$port_ldap})";
    if ($ldap_link) {
        if (!ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap)) {
            $protocole_ldap = 2;
            ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap);
        }
        if ($tls === true) {
            if (!ldap_start_tls($ldap_link)) {
                $erreur = "ldap_start_tls({$ldap_link}) {$adresse_ldap}, {$port_ldap}";
                $ldap_link = false;
            }
        }
        if ($ldap_link) {
            $ldap_link = ldap_bind($ldap_link, $login_ldap, $pass_ldap);
            $erreur = "ldap_bind('{$ldap_link}', '{$login_ldap}', '{$pass_ldap}'): {$adresse_ldap}, {$port_ldap}";
        }
    }
    if ($ldap_link) {
        echo info_etape(_T('titre_connexion_ldap'), info_progression_etape(2, 'etape_ldap', 'install/')), _T('info_connexion_ldap_ok');
        echo generer_form_ecrire('install', "\n<input type='hidden' name='etape' value='ldap3' />" . "\n<input type='hidden' name='adresse_ldap' value=\"{$adresse_ldap}\" />" . "\n<input type='hidden' name='port_ldap' value=\"{$port_ldap}\" />" . "\n<input type='hidden' name='login_ldap' value=\"{$login_ldap}\" />" . "\n<input type='hidden' name='pass_ldap' value=\"{$pass_ldap}\" />" . "\n<input type='hidden' name='protocole_ldap' value=\"{$protocole_ldap}\" />" . "\n<input type='hidden' name='tls_ldap' value=\"{$tls_ldap}\" />" . bouton_suivant());
    } else {
        echo info_etape(_T('titre_connexion_ldap')), info_progression_etape(1, 'etape_ldap', 'install/', true), "<div class='error'><p>" . _T('avis_connexion_ldap_echec_1') . "</p>", "<p>" . _T('avis_connexion_ldap_echec_2') . "<br />\n" . _T('avis_connexion_ldap_echec_3') . '<br /><br />' . $erreur . '<b> ?</b></p></div>';
    }
    echo install_fin_html();
}
Ejemplo n.º 9
0
function install_etape_4_dist()
{

	// creer le repertoire cache, qui sert partout !
	if(!@file_exists(_DIR_CACHE)) {
		$rep = preg_replace(','._DIR_TMP.',', '', _DIR_CACHE);
		$rep = sous_repertoire(_DIR_TMP, $rep, true,true);
	}


	echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
	echo info_progression_etape(4,'etape_','install/');

	echo "<p>"
			._L('Les extensions ci-dessous sont charg&#233;es et activ&#233;es dans le r&#233;pertoire @extensions@.', array('extensions' => joli_repertoire(_DIR_EXTENSIONS)))
			."</p>";

	// installer les extensions
	include_spip('inc/plugin');
	$afficher = charger_fonction("afficher_liste",'plugins');
	echo $afficher(self(), liste_plugin_files(_DIR_EXTENSIONS),array(), _DIR_EXTENSIONS,'afficher_nom_plugin');

	installe_plugins();

	echo info_etape(_T('info_derniere_etape'),
			_T('info_utilisation_spip')
	);

	// mettre a jour si necessaire l'adresse du site
	// securite si on arrive plus a se loger
	include_spip('inc/config');
	$_POST['adresse_site'] = '';
	appliquer_modifs_config();

	// aller a la derniere etape qui clos l'install et redirige
	$suite =  "\n<input type='hidden' name='etape' value='fin' />"
	  . bouton_suivant(_T('login_espace_prive'));

	echo generer_form_ecrire('install', $suite);	echo install_fin_html();
}
Ejemplo n.º 10
0
function install_premier_auteur($email, $login, $nom, $pass, $hidden)
{
	return info_progression_etape(3,'etape_','install/') .
		info_etape(_T('info_informations_personnelles'),

		     "<b>"._T('texte_informations_personnelles_1')."</b>" .
			     aide ("install5") .
			     "<p>" .
			     _T('texte_informations_personnelles_2') . " " .
			     _T('info_laisser_champs_vides')
			     )
	. generer_form_ecrire('install', (
			  "\n<input type='hidden' name='etape' value='3b' />"
			  . $hidden
			  . fieldset(_T('info_identification_publique'),
				    array(
					  'nom' => array(
							 'label' => "<b>"._T('entree_signature')."</b><br />\n"._T('entree_nom_pseudo_1')."\n",
							 'valeur' => $nom
							 ),
					  'email' => array(
							   'label' => "<b>"._T('entree_adresse_email')."</b>\n",
							   'valeur' => $email
							   )
					  )
				    )

			  . fieldset(_T('entree_identifiants_connexion'),
				   array(
					 'login' => array(
							  'label' => "<b>"._T('entree_login')."</b><br />\n"._T('info_plus_trois_car')."\n",
							  'valeur' => $login
							  ),
					 'pass' => array(
							 'label' => "<b>"._T('entree_mot_passe')."</b><br />\n"._T('info_plus_cinq_car_2')."\n",
							 'valeur' => $pass
							 ),
					 'pass_verif' => array(
							       'label' => "<b>"._T('info_confirmer_passe')."</b><br />\n",
							       'valeur' => $pass
							       )
					 )
				     )
			  . bouton_suivant()));
}
Ejemplo n.º 11
0
function install_premier_auteur($email, $login, $nom, $pass, $hidden, $auteur_obligatoire)
{
    return info_progression_etape(3, 'etape_', 'install/') . info_etape(_T('info_informations_personnelles'), "<b>" . _T('texte_informations_personnelles_1') . "</b>" . aide("install5", true) . "<p>" . ($auteur_obligatoire ? '' : _T('texte_informations_personnelles_2') . " " . _T('info_laisser_champs_vides'))) . generer_form_ecrire('install', "\n<input type='hidden' name='etape' value='3b' />" . $hidden . fieldset(_T('info_identification_publique'), array('nom' => array('label' => "<b>" . _T('entree_signature') . "</b><br />\n" . _T('entree_nom_pseudo_1') . "\n", 'valeur' => $nom, 'required' => $auteur_obligatoire), 'email' => array('label' => "<b>" . _T('entree_adresse_email') . "</b>\n", 'valeur' => $email))) . fieldset(_T('entree_identifiants_connexion'), array('login' => array('label' => "<b>" . _T('entree_login') . "</b><br />\n" . _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT)) . "\n", 'valeur' => $login, 'required' => $auteur_obligatoire), 'pass' => array('label' => "<b>" . _T('entree_mot_passe') . "</b><br />\n" . _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI)) . "\n", 'valeur' => $pass, 'required' => $auteur_obligatoire), 'pass_verif' => array('label' => "<b>" . _T('info_confirmer_passe') . "</b><br />\n", 'valeur' => $pass, 'required' => $auteur_obligatoire))) . bouton_suivant());
}
Ejemplo n.º 12
0
function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
{
	$server_db = (is_string($predef[0])) ? $predef[0] : '';

	return generer_form_ecrire('install', (
	  "\n<input type='hidden' name='etape' value='$etape' />"
	. $hidden
	. (_request('echec')?
			("<p><b>"._T('avis_connexion_echec_1').
			"</b></p><p>"._T('avis_connexion_echec_2')."</p><p style='font-size: small;'>"._T('avis_connexion_echec_3')."</p>")
			:"")

	. http_script('',  'jquery.js')
	. http_script('
		$(document).ready(function() {
			$("input[type=hidden][name=server_db]").each(function(){
				if ($(this).attr("value").match("sqlite*")){
					$("#install_adresse_base_hebergeur").hide();
					$("#install_login_base_hebergeur").hide();
					$("#install_pass_base_hebergeur").hide();
				}
			});
			$("#sql_serveur_db").change(function(){
				if ($(this).find("option:selected").attr("value").match("sqlite*")){
					$("#install_adresse_base_hebergeur").hide();
					$("#install_login_base_hebergeur").hide();
					$("#install_pass_base_hebergeur").hide();
				} else {
					$("#install_adresse_base_hebergeur").show();
					$("#install_login_base_hebergeur").show();
					$("#install_pass_base_hebergeur").show();
				}
			});
		});')

	. ($server_db
		? '<input type="hidden" name="server_db" value="'.$server_db.'" />'
			. (($predef[0])
			   ?('<h3>'._T('install_serveur_hebergeur').'</h3>')
				:'')
		: ('<fieldset><legend>'
		   ._T('install_select_type_db')
		. "</legend>"
			.'<label for="sql_serveur_db">'
			. _T('install_types_db_connus')
			// Passer l'avertissement SQLIte en  commentaire, on pourra facilement le supprimer par la suite sans changer les traductions.
			. "<br /><small>(". _T('install_types_db_connus_avertissement') .')</small>'
			.'</label>'
		. "\n<div style='text-align: center;'><select name='server_db' id='sql_serveur_db' >\n"
		.   join("\n", install_select_serveur())
		. "\n</select></div></fieldset>")
	)
	. '<div id="install_adresse_base_hebergeur">'
	. ($predef[1]
	? '<h3>'._T('install_adresse_base_hebergeur').'</h3>'
	: fieldset(_T('entree_base_donnee_1'),
		array(
			'adresse_db' => array(
				'label' => $db[1],
				'valeur' => $db[0]
			),
		)
	)
	)
	. '</div>'

	. '<div id="install_login_base_hebergeur">'
	. ($predef[2]
	? '<h3>'._T('install_login_base_hebergeur').'</h3>'
	: fieldset(_T('entree_login_connexion_1'),
		array(
			'login_db' => array(
					'label' => $login[1],
					'valeur' => $login[0]
			),
		)
	)
	)
	. '</div>'

	. '<div id="install_pass_base_hebergeur">'
	. ($predef[3]
	? '<h3>'._T('install_pass_base_hebergeur').'</h3>'
	: fieldset(_T('entree_mot_passe_1'),
		array(
			'pass_db' => array(
				'label' => $pass[1],
				'valeur' => $pass[0]
			),
		)
	)
	)
	. '</div>'

	. bouton_suivant()));

}
Ejemplo n.º 13
0
function install_etape_2_form($hidden, $checked, $res, $etape)
 {
	return generer_form_ecrire('install', (
	  "\n<input type='hidden' name='etape' value='$etape' />"
	 . $hidden
	. (defined('_INSTALL_NAME_DB')
		? '<h3>'._T('install_nom_base_hebergeur'). ' <tt>'._INSTALL_NAME_DB.'</tt>'.'</h3>'
		: "\n<fieldset><legend>"._T('texte_choix_base_1')."</legend>\n"
		. $res
		. "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'"
		. ($checked  ? '' : " checked='checked'")
		. " />\n<label for='nou'>"._T('info_creer_base')."</label></p>\n<p>"
		. "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n"
	)

	. ((defined('_INSTALL_TABLE_PREFIX')
	OR $GLOBALS['table_prefix'] != 'spip')
		? '<h3>'._T('install_table_prefix_hebergeur').'  <tt>'.$GLOBALS['table_prefix'].'</tt>'.'</h3>'
		: "<fieldset><legend>"._T('texte_choix_table_prefix')."</legend>\n"
	. "<p><label for='table_prefix'>"._T('info_table_prefix')."</label></p><p>"
	. "\n<input type='text' id='tprefix' name='tprefix' class='text' value='"
		. 'spip' # valeur par defaut
		. "' size='20' /></p></fieldset>"
	)

	. bouton_suivant()));
}
Ejemplo n.º 14
0
function install_etape_sup1_form($hidden, $checked, $bases, $etape)
 {
	if ($bases) {
		$bases = "\n<fieldset><legend>"
		  . _T('config_titre_base_sup_choix')
		  . "</legend>\n"
		  . "<ul>\n<li>"
		  . join("</li>\n<li>",$bases)
		  . "</li>\n</ul><p>"
		  . _T('info_ou');
		$type = " type='radio'" . ($checked ? '' : " checked='checked'");

	} else {
		$bases = _T('config_erreur_base_sup') . '<br /><br >';
		$type = " type='hidden'";
	}

	return generer_form_ecrire('install', (
	  "\n<input type='hidden' name='etape' value='$etape' />"
	  . $hidden
	  . $bases
	  . "\n<input name=\"choix_db\" value='-1' id='nou'"
	  . $type
	  . " />\n"
	  . "<label for='nou'><b>"
	  ._T('config_choix_base_sup')
	  ."</b></label></p>\n"
	  . "\n<input type='text' name='table_new' class='text' size='20' /></p></fieldset>\n"
	  . bouton_suivant()));
}
Ejemplo n.º 15
0
function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape, $jquery = true)
{
    $server_db = is_string($predef[0]) ? $predef[0] : '';
    return generer_form_ecrire('install', "\n<input type='hidden' name='etape' value='{$etape}' />" . $hidden . (_request('echec') ? "<p><b>" . _T('avis_connexion_echec_1') . "</b></p><p>" . _T('avis_connexion_echec_2') . "</p><p style='font-size: small;'>" . _T('avis_connexion_echec_3') . "</p>" : "") . ($jquery ? http_script('', 'jquery.js') : '') . http_script('
		$(document).ready(function() {
			$("input[type=hidden][name=server_db]").each(function(){
				if ($(this).attr("value").match("sqlite*")){
					$("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur").hide();
				}
			});
			if ($("#sql_serveur_db").length) {
				if ($("#sql_serveur_db").attr("value").match("sqlite*"))
						$("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur").hide();
					else
						$("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur").show();
				$("#sql_serveur_db").change(function(){
					if ($(this).find("option:selected").attr("value").match("sqlite*"))
						$("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur").hide();
					else
						$("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur").show();
				});
			}
		});') . ($server_db ? '<input type="hidden" name="server_db" value="' . $server_db . '" />' . ($predef[0] ? '<h3>' . _T('install_serveur_hebergeur') . '</h3>' : '') : '<fieldset><legend>' . _T('install_select_type_db') . "</legend>" . '<label for="sql_serveur_db" class="p">' . _T('install_types_db_connus') . "<br /><small>(" . _T('install_types_db_connus_avertissement') . ')</small>' . '</label>' . "\n<div class='p center'><select name='server_db' id='sql_serveur_db' >\n" . join("\n", install_select_serveur()) . "\n</select></div></fieldset>") . '<div id="install_adresse_base_hebergeur">' . '<p>' . _T('texte_connexion_mysql') . '</p>' . ($predef[1] ? '<h3>' . _T('install_adresse_base_hebergeur') . '</h3>' : fieldset(_T('entree_base_donnee_1'), array('adresse_db' => array('label' => $db[1], 'valeur' => $db[0])))) . '</div>' . '<div id="install_login_base_hebergeur">' . ($predef[2] ? '<h3>' . _T('install_login_base_hebergeur') . '</h3>' : fieldset(_T('entree_login_connexion_1'), array('login_db' => array('label' => $login[1], 'valeur' => $login[0])))) . '</div>' . '<div id="install_pass_base_hebergeur">' . ($predef[3] ? '<h3>' . _T('install_pass_base_hebergeur') . '</h3>' : fieldset(_T('entree_mot_passe_1'), array('pass_db' => array('label' => $pass[1], 'valeur' => $pass[0])))) . '</div>' . bouton_suivant());
}
Ejemplo n.º 16
0
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);
}
Ejemplo n.º 17
0
function install_etape_sup2_dist()
{
	$adresse_db = _request('adresse_db');
	if (!$adresse_db AND defined('_INSTALL_HOST_DB'))
		$adresse_db =_INSTALL_HOST_DB;

	$login_db = _request('login_db');
	if (!$login_db AND defined('_INSTALL_USER_DB'))
		$login_db = _INSTALL_USER_DB;

	$pass_db = _request('pass_db');
	if (!$pass_db  AND defined('_INSTALL_PASS_DB'))
		$pass_db  = _INSTALL_PASS_DB;

	$server_db =_request('server_db');
	if (!$server_db AND  defined('_INSTALL_SERVER_DB'))
		$server_db = _INSTALL_SERVER_DB;

	// Ceci indique la base principale (passe en hidden)
	// pour qu'on la refuse comme choix de base secondaire a chaque tour.

	$sel_db =_request('sel_db');
	if (!$sel_db AND  defined('_INSTALL_NAME_DB'))
		$sel_db = _INSTALL_NAME_DB;

	// le choix
	$choix_db = _request('choix_db');
	if (is_numeric($choix_db))
		$choix_db = _request('table_new');

	if (!$choix_db)
		$res = "<!-- il ne sait pas ce qu'il veut -->";
	else {
		$res = install_bases_sup($adresse_db, $login_db, $pass_db,  $server_db, $choix_db);

		if ($res[1]=='!')
			$res .= "<p class='resultat'><b>"._T('avis_operation_echec')."</b></p>";

		else {
			$res =  "<p class='resultat'><b>"
			  . _T('install_base_ok', 
			       array('base' => $choix_db))
			  . "</b></p>"
			  . $res;
		}
	}

	$res .= generer_form_ecrire('admin_declarer',
			(defined('_INSTALL_NAME_DB') ? ''
			   :  ("\n<input type='hidden' name='sel_db' value='"
			       . $sel_db
			       . "' />"))
			. predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db)
			. bouton_suivant());

	echo install_debut_html(_T('config_titre_base_sup'));
	echo $res;
	echo install_fin_html();
}