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; }
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; }
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,''); }