Changeset 3585


Ignore:
Timestamp:
07/15/09 14:54:09 (11 years ago)
Author:
flop25
Message:

check version only once by session [work in progress]

Location:
extensions/floPure
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/floPure/header.tpl

    r3580 r3585  
    7474<div id="the_page"> 
    7575{php} 
    76 if (is_admin()) 
     76if (is_admin() and !(pwg_get_session_var('flopure_checked_version')) ) 
     77//if (is_admin()) 
    7778{ 
    7879        global $template, $page; 
    7980        $header_msgs = array(); 
     81        $name_is_nutd = array(); 
    8082        include_once(PHPWG_ROOT_PATH.'template/floPure/tools/version.conf.php'); 
    8183        include_once(PHPWG_ROOT_PATH.'template/floPure/tools/floPure.class.php'); 
     
    8587        { 
    8688                $template->append('header_msgs', l10n('floPure_update_needed')); 
     89                $name_is_nutd[]='floPure'; 
    8790        } 
    8891        $floPure->theme_version_search(PHPWG_ROOT_PATH.'template/floPure/theme'); 
     92        $name_is_nutd=array_merge($name_is_nutd,$floPure->is_nutd); 
     93        pwg_set_session_var('flopure_checked_version',$name_is_nutd); 
     94        foreach($name_is_nutd as $i) 
     95        { 
     96        $template->append('test_a', array( 'A'=> $i) ); 
     97        } 
     98         
     99         
     100        //pwg_set_session_var('flopure_checked_version'); 
    89101 
    90102         
    91103} 
     104else if ( pwg_get_session_var('flopure_checked_version') ) 
     105{ 
    92106 
     107        global $template; 
     108        $header_msgs = array(); 
     109        include_once(PHPWG_ROOT_PATH.'template/floPure/tools/floPure.class.php'); 
     110        load_language('template.lang', PHPWG_ROOT_PATH.'template/floPure/tools/'); 
     111        $floPure = new floPure(); 
     112        $floPure->display(pwg_get_session_var('flopure_checked_version')); 
     113        foreach(pwg_get_session_var('flopure_checked_version') as $i) 
     114        { 
     115        $template->append('test_a', array( 'A'=> $i) ); 
     116        } 
     117} 
     118        //pwg_unset_session_var('flopure_checked_version'); 
    93119{/php} 
    94120{$erreur} 
  • extensions/floPure/tools/floPure.class.php

    r3580 r3585  
    22class floPure 
    33{ 
    4   function floPure_version_compare($a, $b) 
    5   { 
    6     $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./'); 
    7     $replacement = array( "'.'.intval('\\1', 36).'.'", '.', ''); 
    8  
    9     $array = preg_replace($pattern, $replacement, array($a, $b)); 
    10  
    11     return version_compare($array[0], $array[1], '>='); 
    12   } 
    13   function theme_version_search($dir) 
    14   { 
     4        var $is_nutd = array(); 
     5        function floPure_version_compare($a, $b) 
     6        { 
     7        $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./'); 
     8        $replacement = array( "'.'.intval('\\1', 36).'.'", '.', ''); 
     9         
     10        $array = preg_replace($pattern, $replacement, array($a, $b)); 
     11         
     12        return version_compare($array[0], $array[1], '>='); 
     13        } 
     14        function theme_version_search($dir) 
     15        { 
    1516        global $template, $page; 
    1617        load_language('template.lang', PHPWG_ROOT_PATH.'template/floPure/tools/'); 
     
    4647                                                  $msg=l10n('theme_update_needed_1').$themeconf['theme'].l10n('theme_update_needed_2').$themeconf['eid'].l10n('theme_update_needed_3').$themeconf['theme'].l10n('theme_update_needed_4'); 
    4748                                                  $template->append('header_msgs', $msg); 
     49                                                  $this->is_nutd[]=$themeconf['theme']; 
    4850                                          } 
    4951                                  } 
     
    5456        } 
    5557        closedir ($dh); // on ferme le repertoire courant 
    56   } 
    57   function is_not_up_to_date($v_local, $eid) 
    58   { 
    59    
     58        } 
     59        function is_not_up_to_date($v_local, $eid) 
     60        { 
     61         
    6062        global $template, $user, $page; 
    6163        include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    6264        load_language('template.lang', PHPWG_ROOT_PATH.'template/floPure/tools/'); 
    63  
    64     // Retrieve PEM versions 
    65     $version = PHPWG_VERSION; 
    66     $versions_to_check = array(); 
    67     $url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php'; 
    68     if (fetchRemote($url, $result) and $pem_versions = @unserialize($result)) 
    69     { 
    70       if (!preg_match('/^\d+\.\d+\.\d+/', $version)) 
    71       { 
    72         $version = $pem_versions[0]['name']; 
    73       } 
    74       $branch = substr($version, 0, strrpos($version, '.')); 
    75       foreach ($pem_versions as $pem_version) 
    76       { 
    77         if (strpos($pem_version['name'], $branch) === 0) 
    78         { 
    79           $versions_to_check[] = $pem_version['id']; 
    80         } 
    81       } 
    82     } 
     65         
     66        // Retrieve PEM versions 
     67        $version = PHPWG_VERSION; 
     68        $versions_to_check = array(); 
     69        $url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php'; 
     70        if (fetchRemote($url, $result) and $pem_versions = @unserialize($result)) 
     71        { 
     72          if (!preg_match('/^\d+\.\d+\.\d+/', $version)) 
     73          { 
     74                $version = $pem_versions[0]['name']; 
     75          } 
     76          $branch = substr($version, 0, strrpos($version, '.')); 
     77          foreach ($pem_versions as $pem_version) 
     78          { 
     79                if (strpos($pem_version['name'], $branch) === 0) 
     80                { 
     81                  $versions_to_check[] = $pem_version['id']; 
     82                } 
     83          } 
     84        } 
    8385         
    8486        // Retrieve PEM template infos 
    85     $url = PEM_URL . '/api/get_revision_list.php?format=php&last_revision_only=true'; 
    86     $url .= '&version=' . implode(',', $versions_to_check); 
    87     //$url .= '&lang=' . substr($user['language'], 0, 2); 
     87        $url = PEM_URL . '/api/get_revision_list.php?format=php&last_revision_only=true'; 
     88        $url .= '&version=' . implode(',', $versions_to_check); 
     89        //$url .= '&lang=' . substr($user['language'], 0, 2); 
    8890        $url .= '&extension_include='.$eid; 
    89     fetchRemote($url, $result); 
    90       $pem_res = @unserialize($result); 
     91        fetchRemote($url, $result); 
     92          $pem_res = @unserialize($result); 
    9193          foreach($pem_res as $pem_floPure) 
    9294          { 
    93       if (!is_array($pem_floPure)) 
    94       { 
    95                 $template->assign( 
    96                         array( 
    97                           'erreur' => 'erreur url : '.$url, 
    98                         ) 
    99                   ); 
    100       } 
     95                  if (!is_array($pem_floPure)) 
     96                  { 
     97                        $template->assign( 
     98                                array( 
     99                                  'erreur' => 'erreur url : '.$url, 
     100                                ) 
     101                          ); 
     102                  } 
    101103                if (!$this->floPure_version_compare($v_local, $pem_floPure['revision_name'])) 
    102104                { 
     
    108110                } 
    109111          } 
    110   } 
    111  
     112        } 
     113        function display($names) 
     114        { 
     115                if (!is_array($names)) 
     116                { 
     117                        $template->assign( 
     118                                array( 
     119                                        'erreur' => 'erreur get session var not array', 
     120                                ) 
     121                        ); 
     122                } 
     123                else 
     124                { 
     125                        global $template, $user; 
     126                        load_language('template.lang', PHPWG_ROOT_PATH.'template/floPure/tools/'); 
     127                        foreach($names as $name) 
     128                        { 
     129                                if ($name=='floPure') 
     130                                { 
     131                                        $template->append('header_msgs', l10n('floPure_update_needed')); 
     132                                } 
     133                                else 
     134                                { 
     135                                        if ( is_dir(PHPWG_ROOT_PATH.'template/floPure/theme/'.$name) and is_file(PHPWG_ROOT_PATH.'template/floPure/theme/'.$name.'/themeconf.inc.php') ) 
     136                                        { 
     137                                                include(PHPWG_ROOT_PATH.'template/floPure/theme/'.$name.'/themeconf.inc.php'); 
     138                                                $msg=l10n('theme_update_needed_1').$themeconf['theme'].l10n('theme_update_needed_2').$themeconf['eid'].l10n('theme_update_needed_3').$themeconf['theme'].l10n('theme_update_needed_4'); 
     139                                                $template->append('header_msgs', $msg); 
     140                                        } 
     141                                } 
     142                        } 
     143                }//else 
     144                return true; 
     145                                                 
     146        } 
    112147} 
    113148?> 
Note: See TracChangeset for help on using the changeset viewer.