=')) include_spip('outils/maj_auto_php5'); else { function cs_svn17($dir) { return false; } } define('_MAJ_SVN_FILE', 'file:///home/svn/repository/spip-zone/'); define('_MAJ_SVN_DEBUT', 'svn://zone.spip.org/spip-zone/'); define('_MAJ_SVN_TRAC', 'svn://trac.rezo.net/spip-zone/'); // ancienne URL define('_MAJ_ZONE', 'http://zone.spip.org/trac/spip-zone/'); define('_MAJ_LOG_DEBUT', _MAJ_ZONE.'log/'); define('_MAJ_LOG_FIN', '?format=changelog'); define('_MAJ_ZIP', 'http://files.spip.org/spip-zone/'); define('_MAJ_ECRAN_SECU', _MAJ_ZONE.'browser/_core_/securite/ecran_securite.php?format=txt'); // Pour SPIP = 2.0.X if(!function_exists('info_maj_spip')) { include_spip('inc/plugin'); if(!function_exists('spip_version_compare')) { function spip_version_compare($v1,$v2,$op) { return version_compare($v1,$v2,$op); } } function info_maj_spip(){ if (!autoriser('webmestre')) return ""; // derniere version de SPIP $maj = $GLOBALS['meta']['info_maj_spip']; if (!$maj) return ""; $maj = explode('|',$maj); // c'est une ancienne notif, on a fait la maj depuis ! if ($GLOBALS['spip_version_branche']!==array_shift($maj)) { // compat_maj_spip(true); return ""; } // derniere version de SPIP 2.?.? $maj = implode('|',$maj); if (strncmp($maj,"$maj, 'url'=>$lien, 'zip'=>'')); // derniere version de SPIP 2.0.? include_spip('lib/maj_auto/distant_mise_a_jour'); if(function_exists('info_maj_cache')) { list(,,$rev) = preg_split('/\D+/', $GLOBALS['spip_version_branche']); $nom = _DIR_CACHE_XML . _VERSIONS_LISTE; $page = info_maj_cache($nom, 'spip', !file_exists($nom) ? '' : file_get_contents($nom)); preg_match_all(',/SPIP\D+2\D+0(\D+(\d+))?.*?[.]zip",i', $page, $m, PREG_SET_ORDER); $page=0; foreach ($m as $v) if ($v[2]>$rev && $v[2]>$page) $page = $v[2]; if($page) { $lien = "http://files.spip.org/spip/archives/SPIP-v2-0-$page.zip"; // 'http://files.spip.org/spip/archives/#SPIP-v2-0-'.$page; $maj = _T('couteau:maj_rev_ok',array('revision'=>'2.0.'.$page, 'url'=>$lien, 'zip'=>'')) . '
' . $maj; } } // liens morts return preg_replace(',\[([^[]+)->\],', '$1', $maj); } function compat_maj_spip($forcer=false) { include_spip('lib/maj_auto/distant_mise_a_jour'); if(function_exists('genie_mise_a_jour_dist') && $forcer) return genie_mise_a_jour_dist(0); } } function maj_auto_action_rapide() { global $spip_version_affichee, $spip_version_base; $arg_chargeur = $spip_version_base>=15828?'url_zip_plugin2':'url_zip_plugin'; // eq. SPIP >= 2.1.2 $time = time(); $timeout = ini_get('max_execution_time'); $timeout = $timeout?min(30,floor($timeout/2)):10; $style = 'style="padding:0.4em;"'; // verification des mises a jour de SPIP>=2.1 include_spip('inc/presentation'); list($m1,$m2) = preg_split('/\D+/', $GLOBALS['spip_version_branche']); $html1 = (function_exists('info_maj_spip') && ($html1=info_maj_spip())) ?"
"._T('couteauprive:help2', array('version'=>'SPIP '.$spip_version_affichee)).''.propre("\n|{{{$html1}}}|") .(preg_match(",$m1\.$m2\.\d+,",$html1)?'

'._T('couteau:maj_spip').'

':'').'
' :''; // verification de l'ecran de securite if(defined('_ECRAN_SECURITE')) { $maj = maj_auto_rev_distante(_MAJ_ECRAN_SECU,false,",(\d+\.\d+(\.\d+)?),",0,true); if($maj{0}!="-" && _ECRAN_SECURITE!=$maj) { include_spip('inc/description_outil'); $html1 .= "\n
"._T('couteauprive:help2', array('version'=>_T('couteauprive:ecran_securite:nom').' '._ECRAN_SECURITE)).'' . description_outil_liens(_T("couteauprive:ecran_maj_ko2", array("n"=>"$maj"))).'
'; } } // verification des plugins include_spip('inc/plugin'); $plugins_actifs = array_values(liste_chemin_plugin_actifs()); // liste des extensions dispo sous SPIP 2.1 $plugins_extensions = defined('_SPIP20100')?array_values(liste_chemin_plugin_actifs(_DIR_EXTENSIONS)):array(); // tous, mais les actifs d'abord... $plugins = array_unique(array_merge($plugins_actifs, $plugins_extensions, liste_plugin_files())); $html_actifs = $html_inactifs = $html_extensions = array(); foreach ($plugins as $p) /*if(preg_match(',^auto/,', $p))*/ { $actif = in_array($p, $plugins_actifs, true); $extension = in_array($p, $plugins_extensions, true); $auto = preg_match(',^auto/,', $p); $infos = plugin_get_infos_maj($p, $stop=time()-$time>$timeout, $extension?_DIR_EXTENSIONS:_DIR_PLUGINS); $maj_lib = $checked = ''; if($stop) $maj_lib = ''.'Temps serveur écoulé : [poursuivre->#].'.''; elseif($infos['maj_dispo']) { $maj_lib = _T('couteau:maj_rev_ok', array('revision' => $infos['rev_rss'], 'url'=>$infos['url_origine'], 'zip'=>$infos['zip_trac'])); $checked = " class='maj_checked'"; } elseif($infos['rev_rss']>0 && $infos['rev_local']) $maj_lib = _T('couteau:maj'.($infos['svn']?'_svn':'_ok'), array('zip'=>$infos['zip_trac'], 'url'=>$infos['url_origine'])); elseif($auto) { $maj_lib = _T('couteau:maj_rev_ko', array('url'=>$infos['url_origine'])); $checked = " class='maj_checked'"; } elseif($infos['rev_local'] && $infos['rev_rss']<=0) $maj_lib = _T('couteau:maj_rev_ko', array('url'=>$infos['url_origine'])); // eventuels liens morts $maj_lib = preg_replace(',\[([^[]+)->\],', '$1', $maj_lib); $nom = preg_replace(",[\n\r]+,",' ',$infos['nom']). ' (v' .$infos['version'] . ')' . ($maj_lib?"\n_ {{".$maj_lib.'}}':''); $rev = $infos['rev_local']?_T('couteau:maj_rev', array('revision' => $infos['rev_local'])):''; if(strlen($infos['commit'])) $rev .= (strlen($rev)?'
':'') . cs_date_court($infos['commit']); if($infos['svn']) $rev .= '
SVN'; if(!strlen($rev)) $rev = ' '; $zip_log = (strlen($infos['zip_log']) && $infos['zip_log']!=$infos['zip_trac']) ?"":''; $bouton = ' '; if($auto && !$stop) $bouton = strlen($infos['zip_trac']) ?"" :'
?
'; if(strlen($zip_log)) { if (!$stop) $nom .= "\n_ "._T('couteau:maj_verif') . "\n_ $zip_log\n_ {$bouton}[->$infos[zip_trac]]