Changeset 3585


Ignore:
Timestamp:
Jul 15, 2009, 2:54:09 PM (12 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.