Просмотр файла modules/forum/post_file.php

Размер файла: 5.47Kb
<?
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');

//Если вместо id num попытаются вставить текст то выводит ошибку
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
     $templates->template(Lang::__('Форум - Файлы - Ошибка')); //Название страницы
    engine::error(Lang::__('Ошибка при добавление файлов')); //При ошибке
    header('Refresh: 1; url=index.php');
    exit;
}
    //Из $_GET в обычную 
    $id = (int) $_GET['id'];
    switch($act):
	
	default:
	//Вытаскиваем из таблицы `forum_post` все данные
    $posts = $db->get_array($db->query('SELECT * FROM `forum_post` WHERE `id_top` = '.$id.' ORDER BY `id` DESC'));
	
	$templates->template('Прикрепить файл к вашему посту'); //Название страницы
	
$files = $db->query("SELECT * FROM `forum_file` WHERE `id_them` = '".intval($id)."' and `id_post` = '".intval($posts['id'])."'");
if($db->num_rows($files) < 0) {
    echo engine::error(Lang::__('Вы еще не добавили файлы:'));
}else {
    echo '<div class="mainname">'.Lang::__('Прикрепленные файлы:').'</div>';

echo '<div class="mainpost">';

	while($files_gl = $db->get_array($files)) {
	
	    echo'<div class="subpost"><img src="../../engine/template/down/'.$files_gl['type'].'.png"> '.$files_gl['text'].'<span class="time">'.engine::filesize($files_gl['size']).'</span></div>';
	}
echo '</div>';
}	

echo '<div class="mainname">'.Lang::__('Прикрепить файл').'</div>';
echo '<div class="mainpost">';
        	// установить переменные
	$dir_dest = (isset($_GET['dir']) ? $_GET['dir'] : H.'upload/forum/files/');
	$dir_pics = (isset($_GET['pics']) ? $_GET['pics'] : $dir_dest);
        
		if(isset($_POST['submit'])) {
    		// как это несколько добавления, мы будем анализировать массив $ _FILES реорганизовать его в $ files
    		$file = $_FILES['filename'];


        		// Мы создании экземпляра класса для каждого элемента $file
        		$handle = new Upload($file);

        		// То мы проверяем, если файл был загружен правильно 
       		    // в временного расположение в сервере (часто это / TMP)
        		if ($handle->uploaded) {

            		// Теперь, мы начинаем «процесс» загрузки. То есть, чтобы скопировать загруженный файл 
            		// Из временной папки в нужное место 
            		// It could be something like $handle->Process('/home/www/my_uploads/');
            		$handle->Process($dir_dest);

            			// мы проверяем, если все прошло ОК
            			if ($handle->processed) {
                			// все было хорошо!
							//Записываем новый данные файла в базуhandle->file_dst_name
							$file_text = "<a href='post.php?id=".intval($id)."&act=download&file=".$handle->file_dst_name."'>".$handle->file_dst_name."</a>";
							$dbfile = $db->get_array($db->query("SELECT * FROM `forum_post` ORDER BY `id` DESC"));
							$db->query("INSERT INTO `forum_file` (`id_post`,`id_them`,`text`,`type`,`size`,`time`,`name`) VALUES ('".intval($dbfile['id'])."','".intval($id)."','".$db->safesql($file_text)."','".engine::format($handle->file_dst_name)."','".filesize($handle->file_dst_pathname)."','".time()."','".$db->safesql($handle->file_dst_name)."')");
				                //Доп. описание
								$name = '<b>Файл:</b> <a href="'.$dir_pics.'/' . $handle->file_dst_name . '">' . $handle->file_dst_name . '</a>';
                				$name .=  '(' . round(filesize($handle->file_dst_pathname)/256)/4 . 'KB)';
                					//Успешно
									echo  engine::success(Lang::__('<b>Файл успешно загружен</b>'),$name);
									header('Refresh: 1; url=?id='.$id.'');
            			} else {
                			// Если файл загружен не в нужной месте
				    		echo  engine::error(Lang::__('<b>Файл не загружен на разыскиваемого месте</b>'),'<b>Ошибка:</b> '.$handle->error);
            			}

        		} else {
            		// если мы здесь, загрузка файлов на сервер не удалось по ряду причин
            		// т.е. сервер не получить файл
            		echo  engine::error(Lang::__('<b>Файл не загружен на сервер</b>'),'<b>Ошибка:</b> '.$handle->error);
        		}
    		
		}

			$form = new form('?id='.$id.'','','','enctype="multipart/form-data"');
			//Выводит форма добавление файлов 
				$form->text('<div class="subpost"><span class="time">'.($num + 1).'</span>');
				$form->input(Lang::__('Прикрепить файл:'),'filename','file');
				$form->text('</div></div><div class="submit">');		
		        $form->submit('Отправить','submit');
				$form->text('или <a class="cancel" href="post.php?id='.$id.'">'.Lang::__('Отменить').'</a></div>');
		        $form->display();
        echo '</div>';			
	break;
endswitch;	
	
?>