View file modules/download/index.php

File size: 10.26Kb
<?
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');
$templates->template(Lang::__('Загрузки')); //Название страницы
     
	switch($act):
    
	//По умолчанию выводит функции внизу
    default:	
			   //Доступ у кого имеются права 15
		    if($groups->setAdmin($user_group) == 15) {
		    //Создание новых разделов
			echo '<div class="mainname">'.Lang::__('Администраторская').'</div><div class="mainpost">
				<img src="/engine/template/icons/add.png">
				<a href="index.php?act=new_dir">'.Lang::__('Создать папку').'</a> <br/> 
				<img src="/engine/template/icons/app.png">
				<a href="setting.in.php">'.Lang::__('Настройка папки').'</a> <br/> 
				</div>';
			}	
			
		//Выводим счетчик папок
    if ($result = $db->query("SELECT COUNT(*) FROM `files_dir` WHERE `dir` = '0'")) {
        /* Переход к строке №400 */
        $result->data_seek(399);
        /* Получение строки */
        $row = $result->fetch_row();
    }
	    if($row[0] == false) {
		    echo engine::error(Lang::__('Папок не найдено'));
			exit;
		}
		//Определяем навигацию и лимит постов
		$newlist = new Navigation($row[0],10, true); 
    //Загружаем в $upload данные из базы 
    $upload = $db->query("SELECT * FROM `files_dir` WHERE `dir` = '0' ORDER BY `id` DESC ". $newlist->limit()."");
	    
		echo '<div class="mainname">'.Lang::__('Дополнение').'</div>';
            echo '<div class="mainpost">';
		
	    echo '<div class="row"><img src="/engine/template/icons/search.png">&nbsp;<a href="?act=search_file">'.Lang::__('Поиск файлов').'</a></div>';

		echo '<div class="row"><img src="/engine/template/icons/topfiles.png">&nbsp;<a href="?act=topfiles">'.Lang::__('Топ скачиваемых файлов').'</a></div>';
			echo '</div>';
			
	    echo '<div class="mainname">'.Lang::__('Категории').'</div>';
        echo '<div class="mainpost">';
	        //Выводим все данные где `upload` = 1	
            while($file = $db->get_array($upload)) {
			
				//Выводим счетчик всех файлов
                if ($result1 = $db->query("SELECT COUNT(*) FROM `files` WHERE `id_dir` = '".$file['id']."'")) {
                    /* Переход к строке №400 */
                    $result1->data_seek(399);
                    /* Получение строки */
                    $row1 = $result1->fetch_row();
                }
				//Пусть в подпапкам
                    echo '<div class="subpost">';   
                    echo '<b><img src="/engine/template/icons/dir.png">&nbsp;
				        <a href="dir.php?id='.$file['id'].'">'.$file['name'].'</a></b><span class="time">'.Lang::__('Файлов:').'&nbsp;'.$row1[0].'</span>'; 
	                echo '</div>';  
            }		
        echo '</div>';
			    //Вывод навигации
                echo $newlist->pagination(); 		
	break;
	case 'search_file':
		    echo '<div class="mainname">'.Lang::__('Поиск файлов').'</div>';
            echo '<div class="mainpost">';
			    $form = new form('?act=search');
				$form->input2(false,'search','text',false,'placeholder="Поиск файлов..."',false,false);
				$form->submit('Искать','submit');
				$form->display();
			echo '</div>';
	break;
	
	case 'topfiles':
	$sum = $sum ? $sum : 10;
            function ok_type($n)
            {
                return ($n % 10 == 1 && $n % 100 != 11 ? 0 : ($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20) ? 1 : 2));
            }
		$dcount = $db->query( "SELECT * FROM `files` WHERE countd > 0 ORDER BY `countd` DESC LIMIT 0,$sum" );

			$i = 1;
			if($db->num_rows() < 1) {
			    $topfiles = engine::error(Lang::__('Скачанных файлов не найдено!'));
			}else {
    			while ( $row = $db->get_row() ) {
                //// Проверка количества скачиваний, и вывод правильного слова ////
                $alls_num = array(
                    'раз',
                    'раза',
                    'раз'
                );
                
                $counts_u = $alls_num[ok_type($row['countd'])];
				
				//// Правильный вывод титлов ////			
                $row['name'] = htmlspecialchars( strip_tags( stripslashes( $row['name'] ) ), ENT_QUOTES) ;
                $row['name'] = str_replace("{", "&#123;", $row['name']);
                $row['name'] = strip_tags($row['name']);
				
					$topfiles .= '<div class="row"> <font color="red">'.$i.'.</font>';
                    $topfiles .= '<a href="view.php?id='.$row['id'].'" rel="nofollow"><b>'.$row['name'].'</b></a> - скачано: '.$row['countd'].'&nbsp;';
					$topfiles .= $counts_u.'</div>';
 				$i++;

    			}
            }
    $db->free();
        echo '<div class="mainname">'.Lang::__('Топ скачиваний').'</div>';
		echo '<div class="mainpost">';
            echo $topfiles;
		echo '</div>';
	break;
	//Поиск
	case 'search':
	
		function search($query) { 
			global $db;
    			$query = trim($query); 
    			$query = $db->safesql($query);
    			$query = htmlspecialchars($query);
    				
					if (!empty($query)) { 
        				if (strlen($query) < 3) {
            				$text = '<p>Слишком короткий поисковый запрос.</p>';
        				} else if (strlen($query) > 128) {
            				$text = '<p>Слишком длинный поисковый запрос.</p>';
        				} else { 
            				$q = "SELECT `id`,`name` FROM `files` WHERE `name` LIKE '%$query%'";
            					$result = $db->query($q);

            		if ($db->num_rows($result) > 0) { 
                		$row = $db->get_array($result); 
                		$num = $db->num_rows($result);

                			$text = '<div class="mainname">По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</div>';
                            $text .= '<div class="mainpost">';
							//Открытие блока ul
							$text .= '<ul class="List_withminiphoto Pad_list">';	
                			do {
                    			// Делаем запрос, получающий ссылки на статьи
                    			$q1 = "SELECT * FROM `files` WHERE `id` = '$row[id]'";
                    			$result1 = $db->query($q1);

                    	if ($db->num_rows() > 0) {
                        	$row1 = $db->get_array($result1);
                   		}

					//Открытие li
					$text .= '<li class="clearfix">';
					    //Путь к картинке
					$text .= '<a href="" title="Просмотр профиля" class="UserPhotoLink left"><img src="/engine/template/down/'.engine::format($row1['files']).'.png" class="UserPhoto UserPhoto_mini"></a>';	
						//Файл выводит
					$text .= '<div class="list_content"><a href="view.php?id='.$row1['id'].'"><b>'.engine::search_text($query,$row1['name']).'</b><span class="time">Просмотров:'.engine::number($row1['count']).'</span></a>';
						//Описание
						if(!$row1['text2']) {
					$text .= '<br><span class="desc lighter">'.Lang::__('Не добавлено описание к файлу').'</span></div>';
						}else {
					$text .= '<br><span class="desc lighter">'.engine::input_text(engine::string($row1['text2'],500)).'</span></div>';
						}
					//Закрытие li					
					$text .= '</li><hr/>';	
					
                			} while ($row = $db->get_array($result));
                        $text .= '</ul></div>';							
            		} else {
                		$text = '<p>По вашему запросу ничего не найдено.</p>';
            		}
        				} 
    				} else {
        				$text = '<p>Задан пустой поисковый запрос.</p>';
    				}
    		return $text; 
		} 
			
			if (!empty($_POST['search'])) { 
    			$search_result = search ($_POST['search']); 
    			echo $search_result; 
			}else {
			    echo engine::error('Введите название файла в поиске');
			}

	break;
	//Если ?act=new_dir выводит функцию внизу
    case 'new_dir':	
	    if(isset($_POST['submit']) and isset($_POST['name'])) {
			//Фильтруем new_file
			$new_file = intval($_POST['new_file']);		
            //Обрабатываем название		
		    $name = engine::proc_name($_POST['name']);
		    //Проверяет введена ли название
            if(!$name) {
	            echo engine::error(Lang::__('Введите название папки'));
	        }else {		
					if($new_file != 2) {
						$new_file = 1;
					}			
                //Добавлям данные в базу
	            $db->query("INSERT INTO `files_dir` (`name`,`time`,`dir`,`load`) VALUES ('".$db->safesql($name)."','".time()."','0','".$new_file."')");
	            echo engine::success(Lang::__('Папка успешно создана')); // Успешно
		        echo engine::home(array(Lang::__('Создать еще'),'index.php?act=new_dir')); //Создать еще одну папку
				echo engine::home(array(Lang::__('Назад'),'index.php')); //На пред. страницу
	            exit;			
			}
		}
		//Форма
		echo '<div class="mainname">'.Lang::__('Создание новой папки').'</div>';
		echo '<div class="mainpost">';
	    $form = new form('?act=new_dir');
		$form->input('Название папки:','name','text');
		$form->textarea('Описание','text');
		$form->input2(false,'dir_open','checkbox','1','checked="checked"',Lang::__('Папка открыта?'));
		$form->input(false,'new_file','checkbox','2','','',true,'',Lang::__('Разрешение на добавление файлов'));

		$form->submit('Отправить','submit');
		$form->display();
		echo '</div>';
	break;
	
	
	endswitch;
	//Переадресация
    echo engine::home(array(Lang::__('Назад'),'/index.php'));	
?>