- Timestamp:
- 02/08/09 15:10:33 (3 years ago)
- Location:
- branches/download
- Files:
-
- 3 modified
-
download.php (modified) (12 diffs)
-
include/url/Folder_based_(fancy)/forum_urls.php (modified) (1 diff)
-
include/url/Folder_based_(fancy)/rewrite_rules.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/download/download.php
r7 r10 21 21 // Fetch list of downloads 22 22 $query = array( 23 'SELECT' => 'd. file',23 'SELECT' => 'd.name, d.file, d.version', 24 24 '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)) 40 76 { 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); 80 81 } 81 else 82 message('File not found'); 83 } 82 fclose($file); 83 } 84 84 else 85 message(' Download not found');86 85 message('Error - can not open file.'); 86 87 87 exit; 88 88 } … … 93 93 'SELECT' => 'count(d.id)', 94 94 '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 downloads95 '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 105 105 $query = array( 106 106 'SELECT' => 'c.name, c.description', … … 114 114 115 115 // 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']); 117 117 $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']); 121 121 122 122 // Fetch list of downloads … … 124 124 'SELECT' => 'd.id, d.name, d.description, d.version, d.downloads', 125 125 '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' 128 129 ); 129 130 … … 153 154 ?> 154 155 <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> 161 157 <h2 class="hn"><span><?php echo $forum_page['items_info'] ?></span></h2> 162 158 </div> 163 159 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; ?> 164 165 165 166 <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 171 168 <?php 172 169 … … 176 173 while ($cur_download = $forum_db->fetch_assoc($result)) 177 174 { 178 175 $version_string = (trim($cur_download['version']) == '') ? '' : ' v'.forum_htmlencode($cur_download['version']); 179 176 ?> 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> 182 179 <?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> 185 181 </div> 186 182 <?php … … 198 194 </div> 199 195 <div class="main-foot"> 200 <?php201 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 ?>206 196 <p><?php echo $forum_page['items_info'] ?></p> 207 197 </div> … … 225 215 $result = $forum_db->query_build($query) or error(__FILE__, __LINE__); 226 216 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); 229 219 230 220 // 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']); 232 222 $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']); 236 226 237 227 // Fetch list of cats … … 239 229 'SELECT' => 'c.id, c.name, c.description', 240 230 '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' 242 233 ); 243 234 … … 264 255 ?> 265 256 <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> 272 258 <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> 273 263 </div> 274 264 … … 282 272 while ($cur_cat = $forum_db->fetch_assoc($result)) 283 273 { 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); 285 286 ?> 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> 288 289 <?php if ($cur_cat['description']) : ?> <p><?php echo forum_htmlencode($cur_cat['description']) ?></p><?php endif; ?> 289 290 </div> … … 302 303 </div> 303 304 <div class="main-foot"> 304 <?php305 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 ?>310 305 <p><?php echo $forum_page['items_info'] ?></p> 311 306 </div> -
branches/download/include/url/Folder_based_(fancy)/forum_urls.php
r7 r10 19 19 'download_cat' => 'download/$1/$2/', 20 20 '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', 21 24 22 25 ); -
branches/download/include/url/Folder_based_(fancy)/rewrite_rules.php
r7 r10 15 15 16 16 $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', 17 19 '/^download\/([0-9]+)?\/.*?\/p(age)?\/?([0-9]+)\/$/i' => 'index.php?download&cat=$1&p=$3', 18 20 '/^download\/([0-9]+)\/.*?\/([0-9]+)\/.*?\/$/i' => 'index.php?download&id=$2',