Changeset 10 for branches

Show
Ignore:
Timestamp:
02/08/09 15:10:33 (3 years ago)
Author:
daris
Message:

lots of changes

Location:
branches/download
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branches/download/download.php

    r7 r10  
    2121        // Fetch list of downloads 
    2222        $query = array( 
    23                 'SELECT'        => 'd.file', 
     23                'SELECT'        => 'd.name, d.file, d.version', 
    2424                'FROM'          => 'downloads AS d', 
    25                 'WHERE'         => 'd.id=\''.$id.'\'', 
    26         ); 
    27  
    28         ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
    29         $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
    30  
    31  
    32         // If there are news in selected forums 
    33         if ($forum_db->num_rows($result)) 
    34         { 
    35                 $cur_file = $forum_db->fetch_assoc($result); 
    36  
    37                 $file = DOWNLOAD.'files/'.$cur_file['file']; 
    38  
    39                 if (file_exists($file) && !$file) 
     25                'WHERE'         => 'd.id=\''.$id.'\' AND d.approved=1', 
     26        ); 
     27 
     28        ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
     29        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
     30 
     31        if (!$forum_db->num_rows($result)) 
     32                message('Download not found'); 
     33 
     34        $cur_file = $forum_db->fetch_assoc($result); 
     35 
     36        $file = DOWNLOAD.'files/'.$cur_file['file']; 
     37 
     38        if (!file_exists($file) || trim($cur_file['file']) == '') 
     39                message('File not found'); 
     40         
     41        // Fetch list of downloads 
     42        $query = array( 
     43                'UPDATE'        => 'downloads', 
     44                'SET'           => 'downloads=downloads+1', 
     45                'WHERE'         => 'id=\''.$id.'\'', 
     46        ); 
     47 
     48        ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
     49        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
     50         
     51        $version = ($cur_file['version'] != '' ? '_'.$cur_file['version'] : ''); 
     52        $url = strtolower($cur_file['name'].$version.'.zip'); 
     53        $url = str_replace(' ', '_', $url); 
     54        $url = preg_replace('/[^0-9a-z\._]/', '', $url); 
     55         
     56        //@ob_end_clean(); //turn off output buffering to decrease cpu usage 
     57         
     58        header('Content-Type: application/zip'); 
     59        header('Content-Disposition: attachment; filename="'.rawurldecode($url).'"'); 
     60        header("Content-Transfer-Encoding: binary"); 
     61        header('Accept-Ranges: bytes'); 
     62        header("Content-Length: ".filesize($file)); 
     63         
     64        // The three lines below basically make the download non-cacheable  
     65        header("Cache-control: private"); 
     66        header('Pragma: private'); 
     67        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
     68         
     69        $chunksize = 1*(1024*1024); //you may want to change this 
     70        if ($file = fopen($file, 'r')) 
     71        { 
     72                if(isset($_SERVER['HTTP_RANGE'])) 
     73                        fseek($file, $range); 
     74                  
     75                while(!feof($file)) 
    4076                { 
    41                         // Fetch list of downloads 
    42                         $query = array( 
    43                                 'UPDATE'        => 'downloads', 
    44                                 'SET'           => 'downloads=downloads+1', 
    45                                 'WHERE'         => 'id=\''.$id.'\'', 
    46                         ); 
    47  
    48                         ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
    49                         $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
    50                          
    51                         //@ob_end_clean(); //turn off output buffering to decrease cpu usage 
    52                          
    53                         header('Content-Type: application/zip'); 
    54                         header('Content-Disposition: attachment; filename="'.rawurldecode($cur_file['file']).'"'); 
    55                         header("Content-Transfer-Encoding: binary"); 
    56                         header('Accept-Ranges: bytes'); 
    57                         header("Content-Length: ".filesize($file)); 
    58                          
    59                         // The three lines below basically make the download non-cacheable  
    60                         header("Cache-control: private"); 
    61                         header('Pragma: private'); 
    62                         header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    63                          
    64                         $chunksize = 1*(1024*1024); //you may want to change this 
    65                         if ($file = fopen($file, 'r')) 
    66                         { 
    67                                 if(isset($_SERVER['HTTP_RANGE'])) 
    68                                         fseek($file, $range); 
    69                                   
    70                                 while(!feof($file)) 
    71                                 { 
    72                                         $buffer = fread($file, $chunksize); 
    73                                         print($buffer); //echo($buffer); // is also possible 
    74                                         flush(); 
    75                                         $bytes_send += strlen($buffer); 
    76                                 } 
    77                                 fclose($file); 
    78                         }  
    79                         else die('Error - can not open file.'); 
     77                        $buffer = fread($file, $chunksize); 
     78                        print($buffer); //echo($buffer); // is also possible 
     79                        flush(); 
     80                        $bytes_send += strlen($buffer); 
    8081                } 
    81                 else 
    82                         message('File not found'); 
    83         } 
     82                fclose($file); 
     83        }  
    8484        else 
    85                 message('Download not found'); 
    86                  
     85                message('Error - can not open file.'); 
     86 
    8787        exit; 
    8888} 
     
    9393                'SELECT'        => 'count(d.id)', 
    9494                'FROM'          => 'downloads AS d', 
    95                 'WHERE'         => 'd.cat='.$cat 
    96         ); 
    97  
    98         ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
    99         $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
    100  
    101         $forum_page['disp_extensions'] = 7; 
    102         $forum_page['num_extensions'] = $forum_db->result($result); 
    103          
    104         // Fetch list of downloads 
     95                'WHERE'         => 'd.cat='.$cat.' AND d.approved=1' 
     96        ); 
     97 
     98        ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
     99        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
     100 
     101        $forum_page['disp_downloads'] = 10; 
     102        $forum_page['num_downloads'] = $forum_db->result($result); 
     103         
     104        // Fetch current category 
    105105        $query = array( 
    106106                'SELECT'        => 'c.name, c.description', 
     
    114114 
    115115        // Determine the topic offset (based on $_GET['p']) 
    116         $forum_page['num_pages'] = ceil($forum_page['num_extensions'] / $forum_page['disp_extensions']); 
     116        $forum_page['num_pages'] = ceil($forum_page['num_downloads'] / $forum_page['disp_downloads']); 
    117117        $forum_page['page'] = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages']) ? 1 : $_GET['p']; 
    118         $forum_page['start_from'] = $forum_page['disp_extensions'] * ($forum_page['page'] - 1); 
    119         $forum_page['finish_at'] = min(($forum_page['start_from'] + $forum_page['disp_extensions']), ($forum_page['num_extensions'])); 
    120         $forum_page['items_info'] = generate_items_info($cur_cat['name'], ($forum_page['start_from'] + 1), $forum_page['num_extensions']); 
     118        $forum_page['start_from'] = $forum_page['disp_downloads'] * ($forum_page['page'] - 1); 
     119        $forum_page['finish_at'] = min(($forum_page['start_from'] + $forum_page['disp_downloads']), ($forum_page['num_downloads'])); 
     120        $forum_page['items_info'] = generate_items_info($cur_cat['name'], ($forum_page['start_from'] + 1), $forum_page['num_downloads']); 
    121121 
    122122        // Fetch list of downloads 
     
    124124                'SELECT'        => 'd.id, d.name, d.description, d.version, d.downloads', 
    125125                'FROM'          => 'downloads AS d', 
    126                 'WHERE'         => 'd.cat='.$cat, 
    127                 'LIMIT'         => $forum_page['start_from'].', '.$forum_page['disp_extensions'] 
     126                'WHERE'         => 'd.cat='.$cat.' AND d.approved=1', 
     127                'LIMIT'         => $forum_page['start_from'].', '.$forum_page['disp_downloads'], 
     128                'ORDER BY'      => 'd.name' 
    128129        ); 
    129130 
     
    153154?> 
    154155        <div class="main-head"> 
    155 <?php 
    156  
    157         if (!empty($forum_page['main_head_options'])) 
    158                 echo "\n\t\t".'<p class="options">'.implode(' ', $forum_page['main_head_options']).'</p>'; 
    159  
    160 ?> 
     156                <p class="options"><span class="first-item"><a href="<?php echo forum_link($forum_url['submit_download_cat'], array($cat, sef_friendly($cur_cat['name']))) ?>"><?php echo $lang_download['Submit download'] ?></a></span></p> 
    161157                <h2 class="hn"><span><?php echo $forum_page['items_info'] ?></span></h2> 
    162158        </div> 
    163159 
     160<?php if (isset($cur_cat['description'])) : ?> 
     161        <div class="main-subhead"> 
     162                <h2 class="hn"><span><?php echo forum_htmlencode($cur_cat['description']) ?></span></h2> 
     163        </div> 
     164<?php endif; ?> 
    164165 
    165166        <div class="main-content main-frm"> 
    166          
    167                         <div class="ct-box info-box"> 
    168                                 <h2 class="hn"><strong><?php echo forum_htmlencode($cur_cat['name']) ?></strong></h2> 
    169 <?php if ($cur_cat['description']) : ?>                 <p><?php echo forum_htmlencode($cur_cat['description']) ?></p><?php endif; ?> 
    170                         </div> 
     167 
    171168<?php 
    172169 
     
    176173                while ($cur_download = $forum_db->fetch_assoc($result)) 
    177174                { 
    178          
     175                        $version_string = (trim($cur_download['version']) == '') ? '' : ' v'.forum_htmlencode($cur_download['version']); 
    179176?>               
    180                         <div class="ct-box data-box"> 
    181                                 <h2 class="hn"><strong><?php echo forum_htmlencode($cur_download['name']) ?></strong> v<?php echo forum_htmlencode($cur_download['version']) ?></h2> 
     177                        <div class="ct-box data-box download"> 
     178                                <h2 class="hn"><strong><?php echo forum_htmlencode($cur_download['name']) ?></strong><?php echo $version_string ?></h2> 
    182179<?php if ($cur_download['description']) : ?>                    <p><?php echo forum_htmlencode($cur_download['description']) ?></p><?php endif; ?> 
    183                                 <p><?php printf($lang_download['Download count'], $cur_download['downloads']) ?></p> 
    184                                 <p><a href="<?php echo forum_link($forum_url['download_id'], array($cat, sef_friendly($cur_cat['name']), $cur_download['id'], sef_friendly($cur_download['name']))) ?>"><?php echo $lang_download['Download'] ?></a></p> 
     180                                <p><a href="<?php echo forum_link($forum_url['download_id'], array($cat, sef_friendly($cur_cat['name']), $cur_download['id'], sef_friendly($cur_download['name']))) ?>"><?php echo $lang_download['Download'] ?></a> (<?php printf($lang_download['Download count'], $cur_download['downloads']) ?>)</p> 
    185181                        </div> 
    186182<?php 
     
    198194        </div> 
    199195        <div class="main-foot"> 
    200 <?php 
    201  
    202         if (!empty($forum_page['main_foot_options'])) 
    203                 echo "\n\t\t\t".'<p class="options">'.implode(' ', $forum_page['main_foot_options']).'</p>'; 
    204  
    205 ?> 
    206196                <p><?php echo $forum_page['items_info'] ?></p> 
    207197        </div> 
     
    225215        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 
    226216 
    227         $forum_page['disp_extensions'] = 7; 
    228         $forum_page['num_extensions'] = $forum_db->result($result); 
     217        $forum_page['disp_downloads'] = 10; 
     218        $forum_page['num_downloads'] = $forum_db->result($result); 
    229219 
    230220        // Determine the topic offset (based on $_GET['p']) 
    231         $forum_page['num_pages'] = ceil($forum_page['num_extensions'] / $forum_page['disp_extensions']); 
     221        $forum_page['num_pages'] = ceil($forum_page['num_downloads'] / $forum_page['disp_downloads']); 
    232222        $forum_page['page'] = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $forum_page['num_pages']) ? 1 : $_GET['p']; 
    233         $forum_page['start_from'] = $forum_page['disp_extensions'] * ($forum_page['page'] - 1); 
    234         $forum_page['finish_at'] = min(($forum_page['start_from'] + $forum_page['disp_extensions']), ($forum_page['num_extensions'])); 
    235         $forum_page['items_info'] = generate_items_info($lang_download['Downloads'], ($forum_page['start_from'] + 1), $forum_page['num_extensions']); 
     223        $forum_page['start_from'] = $forum_page['disp_downloads'] * ($forum_page['page'] - 1); 
     224        $forum_page['finish_at'] = min(($forum_page['start_from'] + $forum_page['disp_downloads']), ($forum_page['num_downloads'])); 
     225        $forum_page['items_info'] = generate_items_info($lang_download['Downloads'], ($forum_page['start_from'] + 1), $forum_page['num_downloads']); 
    236226 
    237227        // Fetch list of cats 
     
    239229                'SELECT'        => 'c.id, c.name, c.description', 
    240230                'FROM'          => 'downloads_cats AS c', 
    241                 'LIMIT'         => $forum_page['start_from'].', '.$forum_page['disp_extensions'] 
     231                'LIMIT'         => $forum_page['start_from'].', '.$forum_page['disp_downloads'], 
     232                'ORDER BY'      => 'c.name' 
    242233        ); 
    243234 
     
    264255?> 
    265256        <div class="main-head"> 
    266 <?php 
    267  
    268         if (!empty($forum_page['main_head_options'])) 
    269                 echo "\n\t\t".'<p class="options">'.implode(' ', $forum_page['main_head_options']).'</p>'; 
    270  
    271 ?> 
     257                <p class="options"><span class="first-item"><a href="<?php echo forum_link($forum_url['submit_download']) ?>"><?php echo $lang_download['Submit download'] ?></a></span></p> 
    272258                <h2 class="hn"><span><?php echo $forum_page['items_info'] ?></span></h2> 
     259        </div> 
     260         
     261        <div class="main-subhead"> 
     262                <h2 class="hn"><span><?php echo $lang_download['Category list'] ?></span></h2> 
    273263        </div> 
    274264 
     
    282272                while ($cur_cat = $forum_db->fetch_assoc($result)) 
    283273                { 
    284          
     274                         
     275                        // Fetch list of downloads 
     276                        $query_downloads = array( 
     277                                'SELECT'        => 'count(d.id)', 
     278                                'FROM'          => 'downloads AS d', 
     279                                'WHERE'         => 'd.cat='.$cur_cat['id'].' AND d.approved=1' 
     280                        ); 
     281 
     282                        ($hook = get_hook('xn_portal_by_daris_nw_qr_get_news')) ? eval($hook) : null; 
     283                        $result_downloads = $forum_db->query_build($query_downloads) or error(__FILE__, __LINE__); 
     284                         
     285                        $files_count = $forum_db->result($result_downloads); 
    285286?>               
    286                         <div class="ct-box data-box"> 
    287                                 <h2 class="hn"><a href="<?php echo forum_link($forum_url['download_cat'], array($cur_cat['id'], sef_friendly($cur_cat['name']))) ?>"><strong><?php echo forum_htmlencode($cur_cat['name']) ?></strong></a></h2> 
     287                        <div class="ct-box data-box download"> 
     288                                <h2 class="hn"><a href="<?php echo forum_link($forum_url['download_cat'], array($cur_cat['id'], sef_friendly($cur_cat['name']))) ?>"><strong><?php echo forum_htmlencode($cur_cat['name']) ?></strong></a> (<?php printf($lang_download['Files count'], $files_count) ?>)</h2> 
    288289<?php if ($cur_cat['description']) : ?>                 <p><?php echo forum_htmlencode($cur_cat['description']) ?></p><?php endif; ?> 
    289290                        </div> 
     
    302303        </div> 
    303304        <div class="main-foot"> 
    304 <?php 
    305  
    306         if (!empty($forum_page['main_foot_options'])) 
    307                 echo "\n\t\t\t".'<p class="options">'.implode(' ', $forum_page['main_foot_options']).'</p>'; 
    308  
    309 ?> 
    310305                <p><?php echo $forum_page['items_info'] ?></p> 
    311306        </div> 
  • branches/download/include/url/Folder_based_(fancy)/forum_urls.php

    r7 r10  
    1919        'download_cat'          => 'download/$1/$2/', 
    2020        'download_id'           => 'download/$1/$2/$3/$4/', 
     21        'submit_download'       => 'download/submit/', 
     22        'submit_download_cat'=> 'download/submit/$1/$2/', 
     23        'admin_download'        => $portal_dir.'admin/download.php', 
    2124 
    2225); 
  • branches/download/include/url/Folder_based_(fancy)/rewrite_rules.php

    r7 r10  
    1515 
    1616$forum_rewrite_rules_portal = array( 
     17        '/^download\/submit\/([0-9]+)?\/.*?(\.html?|\/)?$/i'            =>      $ext_info['path'].'/submit_download.php?cat=$1', 
     18        '/^download\/submit(\.html?|\/)?$/i'                                            =>      $ext_info['path'].'/submit_download.php', 
    1719        '/^download\/([0-9]+)?\/.*?\/p(age)?\/?([0-9]+)\/$/i'           =>      'index.php?download&cat=$1&p=$3', 
    1820        '/^download\/([0-9]+)\/.*?\/([0-9]+)\/.*?\/$/i'                         =>      'index.php?download&id=$2',