Changeset 3677


Ignore:
Timestamp:
Jul 25, 2009, 6:08:26 PM (15 years ago)
Author:
flop25
Message:

_test new type of theme
_change version_checker

Location:
extensions/floPure
Files:
21 added
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/floPure/index.tpl

    r3579 r3677  
    1212      <td id="section_left">&nbsp;</td>
    1313      <td id="section_in">
    14   <div class="titrePage">
    15     <ul class="categoryActions">
    16       {if !empty($image_orders) }
    17       <li>
    18       {'Sort order'|@translate}:
    19       <select onchange="document.location = this.options[this.selectedIndex].value;">
    20         {foreach from=$image_orders item=image_order }
    21         <option value="{$image_order.URL}"{if $image_order.SELECTED} selected="selected"{/if}>{$image_order.DISPLAY}</option>
    22         {/foreach}
    23       </select>
    24       </li>
    25       {/if}
    26 
    27       {if isset($U_CADDIE) }
    28       <li><a href="{$U_CADDIE}" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"/></a></li>
    29       {/if}
    30 
    31       {if isset($U_EDIT) }
    32       <li><a href="{$U_EDIT}" title="{'edit category informations'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li>
    33       {/if}
    34 
    35       {if isset($U_SEARCH_RULES) }
    36       <li><a href="{$U_SEARCH_RULES}" onclick="popuphelp(this.href); return false;" title="{'Search rules'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/search_rules.png" class="button" alt="(?)" /></a></li>
    37       {/if}
    38 
    39       {if isset($U_SLIDESHOW) }
    40       <li><a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_slideshow.png" class="button" alt="{'slideshow'|@translate}"/></a></li>
    41       {/if}
    42 
    43       {if isset($U_MODE_FLAT) }
    44       <li><a href="{$U_MODE_FLAT}" title="{'mode_flat_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/flat.png" class="button" alt="{'mode_flat_hint'|@translate}" /></a></li>
    45       {/if}
    46 
    47       {if isset($U_MODE_NORMAL) }
    48       <li><a href="{$U_MODE_NORMAL}" title="{'mode_normal_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/normal_mode.png" class="button" alt="{'mode_normal_hint'|@translate}" /></a></li>
    49       {/if}
    50 
    51       {if isset($U_MODE_POSTED) }
    52       <li><a href="{$U_MODE_POSTED}" title="{'mode_posted_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar.png" class="button" alt="{'mode_posted_hint'|@translate}" /></a></li>
    53       {/if}
    54      
    55       {if isset($U_MODE_CREATED) }
    56       <li><a href="{$U_MODE_CREATED}" title="{'mode_created_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar_created.png" class="button" alt="{'mode_created_hint'|@translate}" /></a></li>
    57       {/if}
    58      
    59       {if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
    60     </ul>
    61 
    62   <h2>{$TITLE}</h2>
    63 
    64   {if isset($chronology_views) }
    65   <div class="calendarViews">{'calendar_view'|@translate}:
    66     <select onchange="document.location = this.options[this.selectedIndex].value;">
    67       {foreach from=$chronology_views item=view}
    68       <option value="{$view.VALUE}"{if $view.SELECTED} selected="selected"{/if}>{$view.CONTENT}</option>
    69       {/foreach}
    70     </select>
    71   </div>
    72   {/if}
    73 
    74   {if isset($chronology.TITLE) }
    75   <h2>{$chronology.TITLE}</h2>
    76   {/if}
    77 
    78   </div> <!-- titrePage -->
     14          <div class="titrePage">
     15                <ul class="categoryActions">
     16                  {if !empty($image_orders) }
     17                  <li>
     18                  {'Sort order'|@translate}:
     19                  <select onchange="document.location = this.options[this.selectedIndex].value;">
     20                        {foreach from=$image_orders item=image_order }
     21                        <option value="{$image_order.URL}"{if $image_order.SELECTED} selected="selected"{/if}>{$image_order.DISPLAY}</option>
     22                        {/foreach}
     23                  </select>
     24                  </li>
     25                  {/if}
     26       
     27                  {if isset($U_CADDIE) }
     28                  <li><a href="{$U_CADDIE}" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"/></a></li>
     29                  {/if}
     30       
     31                  {if isset($U_EDIT) }
     32                  <li><a href="{$U_EDIT}" title="{'edit category informations'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li>
     33                  {/if}
     34       
     35                  {if isset($U_SEARCH_RULES) }
     36                  <li><a href="{$U_SEARCH_RULES}" onclick="popuphelp(this.href); return false;" title="{'Search rules'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/search_rules.png" class="button" alt="(?)" /></a></li>
     37                  {/if}
     38       
     39                  {if isset($U_SLIDESHOW) }
     40                  <li><a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_slideshow.png" class="button" alt="{'slideshow'|@translate}"/></a></li>
     41                  {/if}
     42       
     43                  {if isset($U_MODE_FLAT) }
     44                  <li><a href="{$U_MODE_FLAT}" title="{'mode_flat_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/flat.png" class="button" alt="{'mode_flat_hint'|@translate}" /></a></li>
     45                  {/if}
     46       
     47                  {if isset($U_MODE_NORMAL) }
     48                  <li><a href="{$U_MODE_NORMAL}" title="{'mode_normal_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/normal_mode.png" class="button" alt="{'mode_normal_hint'|@translate}" /></a></li>
     49                  {/if}
     50       
     51                  {if isset($U_MODE_POSTED) }
     52                  <li><a href="{$U_MODE_POSTED}" title="{'mode_posted_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar.png" class="button" alt="{'mode_posted_hint'|@translate}" /></a></li>
     53                  {/if}
     54                 
     55                  {if isset($U_MODE_CREATED) }
     56                  <li><a href="{$U_MODE_CREATED}" title="{'mode_created_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar_created.png" class="button" alt="{'mode_created_hint'|@translate}" /></a></li>
     57                  {/if}
     58                 
     59                  {if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
     60                </ul>
     61       
     62          <h2>{$TITLE}</h2>
     63       
     64          {if isset($chronology_views) }
     65          <div class="calendarViews">{'calendar_view'|@translate}:
     66                <select onchange="document.location = this.options[this.selectedIndex].value;">
     67                  {foreach from=$chronology_views item=view}
     68                  <option value="{$view.VALUE}"{if $view.SELECTED} selected="selected"{/if}>{$view.CONTENT}</option>
     69                  {/foreach}
     70                </select>
     71          </div>
     72          {/if}
     73       
     74          {if isset($chronology.TITLE) }
     75          <h2>{$chronology.TITLE}</h2>
     76          {/if}
     77       
     78          </div> <!-- titrePage -->
    7979
    8080{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
  • extensions/floPure/tools/floPure.class.php

    r3586 r3677  
    5757        closedir ($dh); // on ferme le repertoire courant
    5858        }
     59        function url_is_remote($url)
     60        {
     61          if ( strncmp($url, 'http://', 7)==0
     62                or strncmp($url, 'https://', 8)==0 )
     63          {
     64                return true;
     65          }
     66          return false;
     67        }
     68       
     69        function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
     70        {
     71          // Try to retrieve data from local file?
     72          if (!$this->url_is_remote($src))
     73          {
     74                $content = @file_get_contents($src);
     75                if ($content !== false)
     76                {
     77                  is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
     78                  return true;
     79                }
     80                else
     81                {
     82                  return false;
     83                }
     84          }
     85       
     86          // After 3 redirections, return false
     87          if ($step > 3) return false;
     88       
     89          // Initialize $dest
     90          is_resource($dest) or $dest = '';
     91       
     92          // Try curl to read remote file
     93          if (function_exists('curl_init'))
     94          {
     95                $ch = @curl_init();
     96                @curl_setopt($ch, CURLOPT_URL, $src);
     97                @curl_setopt($ch, CURLOPT_HEADER, 1);
     98                @curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
     99                @curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     100                $content = @curl_exec($ch);
     101                $header_length = @curl_getinfo($ch, CURLINFO_HEADER_SIZE);
     102                $status = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
     103                @curl_close($ch);
     104                if ($content !== false and $status >= 200 and $status < 400)
     105                {
     106                  if (preg_match('/Location:\s+?(.+)/', substr($content, 0, $header_length), $m))
     107                  {
     108                        return $this->fetchRemote($m[1], $dest, $user_agent, $step+1);
     109                  }
     110                  $content = substr($content, $header_length);
     111                  is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
     112                  return true;
     113                }
     114          }
     115       
     116          // Try file_get_contents to read remote file
     117          if (ini_get('allow_url_fopen'))
     118          {
     119                $content = @file_get_contents($src);
     120                if ($content !== false)
     121                {
     122                  is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
     123                  return true;
     124                }
     125          }
     126       
     127          // Try fsockopen to read remote file
     128          $src = parse_url($src);
     129          $host = $src['host'];
     130          $path = isset($src['path']) ? $src['path'] : '/';
     131          $path .= isset($src['query']) ? '?'.$src['query'] : '';
     132       
     133          if (($s = @fsockopen($host,80,$errno,$errstr,5)) === false)
     134          {
     135                return false;
     136          }
     137       
     138          fwrite($s,
     139                "GET ".$path." HTTP/1.0\r\n"
     140                ."Host: ".$host."\r\n"
     141                ."User-Agent: ".$user_agent."\r\n"
     142                ."Accept: */*\r\n"
     143                ."\r\n"
     144          );
     145       
     146          $i = 0;
     147          $in_content = false;
     148          while (!feof($s))
     149          {
     150                $line = fgets($s);
     151       
     152                if (rtrim($line,"\r\n") == '' && !$in_content)
     153                {
     154                  $in_content = true;
     155                  $i++;
     156                  continue;
     157                }
     158                if ($i == 0)
     159                {
     160                  if (!preg_match('/HTTP\/(\\d\\.\\d)\\s*(\\d+)\\s*(.*)/',rtrim($line,"\r\n"), $m))
     161                  {
     162                        fclose($s);
     163                        return false;
     164                  }
     165                  $status = (integer) $m[2];
     166                  if ($status < 200 || $status >= 400)
     167                  {
     168                        fclose($s);
     169                        return false;
     170                  }
     171                }
     172                if (!$in_content)
     173                {
     174                  if (preg_match('/Location:\s+?(.+)$/',rtrim($line,"\r\n"),$m))
     175                  {
     176                        fclose($s);
     177                        return $this->fetchRemote(trim($m[1]),$dest,$user_agent,$step+1);
     178                  }
     179                  $i++;
     180                  continue;
     181                }
     182                is_resource($dest) ? @fwrite($dest, $line) : $dest .= $line;
     183                $i++;
     184          }
     185          fclose($s);
     186          return true;
     187        }
     188
     189
    59190        function is_not_up_to_date($v_local, $eid)
    60191        {
Note: See TracChangeset for help on using the changeset viewer.