X-Git-Url: https://git.cyclocoop.org/%28%28?a=blobdiff_plain;f=www%2Fplugins%2Fauto%2Fcouteau_suisse%2Fcouteau_suisse%2Foutils%2Fmaj_auto_action_rapide.php;fp=www%2Fplugins%2Fauto%2Fcouteau_suisse%2Fcouteau_suisse%2Foutils%2Fmaj_auto_action_rapide.php;h=33d1cdd78abff43ab4d9c87a87b2d46f1c4a7438;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hp=0000000000000000000000000000000000000000;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c;p=velocampus%2Fweb%2Fwww.git diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/maj_auto_action_rapide.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/maj_auto_action_rapide.php new file mode 100644 index 0000000..33d1cdd --- /dev/null +++ b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/maj_auto_action_rapide.php @@ -0,0 +1,296 @@ +=')) + 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]]