Exemplo n.º 1
0
function formulaires_editer_site_verifier_dist($id_syndic='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='sites_edit_config', $row=array(), $hidden=''){
	include_spip('inc/filtres');
	include_spip('inc/site');
	$oblis = array('nom_site','url_site');
	// Envoi depuis le formulaire d'analyse automatique d'un site
	if (_request('ajoute_url_auto') AND strlen(vider_url($u = _request('url_auto')))) {
		if ($auto = analyser_site($u)) {
			// Si pas de logo, on va le chercher dans le ou les feeds
			if(isset($auto['url_syndic']) && !$auto['logo'] && ($auto['url_syndic'] != _request('ajouter_url_auto')) && preg_match(',^select: (.+),', $auto['url_syndic'], $regs)){
				$url_syndic = str_replace('select: ','',$auto['url_syndic']);
				$feeds = explode(' ',$regs[1]);
				foreach ($feeds as $feed) {
					if(($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])){
						$auto['format_logo'] = $auto_syndic['format_logo'];
						$auto['logo'] = $auto_syndic['logo'];
						break;
					}
				}
			}
			foreach($auto as $k=>$v){
				set_request($k,$v);
			}
			$erreurs['message_ok'] =
			_T('texte_referencement_automatique_verifier', array('url' => $u));
		}
		else{
			$erreurs['url_auto'] = _T('avis_site_introuvable');
		}
	}
	else
		$erreurs = formulaires_editer_objet_verifier('site',$id_syndic,$oblis);
	return $erreurs;
}
Exemplo n.º 2
0
function formulaires_editer_site_verifier_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = '')
{
    include_spip('inc/filtres');
    include_spip('inc/site');
    $oblis = array('nom_site', 'url_site', 'id_parent');
    // Envoi depuis le formulaire d'analyse automatique d'un site
    if (_request('ajoute_url_auto') and strlen(vider_url($u = _request('url_auto')))) {
        if ($auto = analyser_site($u)) {
            // Si pas de logo, on va le chercher dans le ou les feeds
            if (isset($auto['url_syndic']) && !$auto['logo'] && $auto['url_syndic'] != _request('ajouter_url_auto') && preg_match(',^select: (.+),', $auto['url_syndic'], $regs)) {
                $url_syndic = str_replace('select: ', '', $auto['url_syndic']);
                $feeds = explode(' ', $regs[1]);
                foreach ($feeds as $feed) {
                    if (($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])) {
                        $auto['format_logo'] = $auto_syndic['format_logo'];
                        $auto['logo'] = $auto_syndic['logo'];
                        break;
                    }
                }
            }
            foreach ($auto as $k => $v) {
                set_request($k, $v);
            }
            $erreurs['verif_url_auto'] = _T('sites:texte_referencement_automatique_verifier', array('url' => $u));
        } else {
            $erreurs['url_auto'] = _T('sites:avis_site_introuvable');
        }
    } else {
        // auto-renseigner le titre si il n'existe pas
        // d'abord a partir du descriptif en coupant
        titre_automatique('nom_site', array('descriptif'));
        // et sinon l'url du site, sans couper
        titre_automatique('nom_site', array('url_site'), 255);
        $erreurs = formulaires_editer_objet_verifier('site', $id_syndic, $oblis);
    }
    return $erreurs;
}
Exemplo n.º 3
0
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,'');
}