View file ViPTurbo 3.0/files/mancont.php

File size: 6.96Kb
<?
require('../include/path.php');

if(isset($user) && ($rank&2)==2){   // если админ

$dir = (isset($_GET['dir']) && !preg_match('/[^a-z0-9_\/-]/iu',$_GET['dir']))?$_GET['dir']:dirname(dirname($_SERVER['SCRIPT_FILENAME'])); 

if($result=sql_query("SELECT cat_id,cat_parent_id,cat_name FROM `".PRE."dc_categories`")){
 while($row=mysql_fetch_assoc($result)){
  $cats[$row['cat_parent_id']][$row['cat_id']]=$row['cat_name'];
 }
}

// получение каталогов для загрузки
function echoSelect($c=1,$hierr=array()) {

foreach($GLOBALS['cats'][$c] as $key=>$value) {
 if(isset($GLOBALS['cats'][$key])) {
   $Nhierr=array_merge($hierr,(array)$value);
   if($GLOBALS['grpOpn']) {echo '</optgroup>';} else {$GLOBALS['grpOpn']=true;}
     echo '<optgroup label="'.implode('/',$Nhierr).'">';
     echoSelect($key,$Nhierr);
     if($GLOBALS['grpOpn']) {
       echo '</optgroup>';
       $GLOBALS['grpOpn']=false;
     }
 }else{
   echo '<option value="'.$key.'">'.$value.'</option>';
 }
}
}


// функция вывода содежимого папок
function browser($path,$dir){
   
require($path.'/manage/ctype.php');
   
   $array_file = array(); 
   $array_dir = array();
   
   $opendir = opendir($dir); 

   while ($list_file = readdir($opendir)) {
	
	   $isdir = @is_dir($dir."/".$list_file);
	
	   if ($isdir == true) {
		   
		   if (($list_file != ".") && ($list_file != "..")) { 
			
			array_push($array_dir, $list_file); 
		   }
	   }
	
	   if ($isdir == false) {

		  
		      array_push($array_file, $list_file); 

	   }
    }

    array_multisort ($array_dir, SORT_ASC, SORT_STRING ); 
    array_multisort ($array_file, SORT_ASC, SORT_STRING );
    reset ($array_dir);
    reset ($array_file);

    $temp=array();
    
    foreach($array_dir as $value){
        
        $temp[]= '<a href="mancont.php?dir='.rawurlencode(($dir.'/'.$value)).'&amp;'.SID.'">'.$value.'</a>'; 

     }
     
     foreach($array_file as $value){
        
       $part=explode('.',$value);
	   if(count($part)==2) {
        
           if(array_key_exists($part[1],$ctype)){
              
              $temp[]='<input name="chbox['.$part[0].']" type="checkbox">'.$value.'<input type="hidden" name="fexp['.$part[0].']" value="'.$part[1].'">';
              
           }else{
             
              $temp[]=$value;
           
           }
       }
     }
     
     return $temp;
 
  }
  
  
// обработка POST данных и добавление в базу
if(isset($_POST['add']) && isset($_POST['fexp']) && isset($_POST['chbox'])){
     
require($path.'/manage/ctype.php');

if(isset($_POST['fcat']) && !preg_match('/[^0-9]/',$_POST['fcat'])){
         
if($result=sql_query("SELECT COUNT(cat_id) FROM `".PRE."dc_categories` WHERE cat_parent_id=".$_POST['fcat'])){
      
if($row=mysql_fetch_row($result)){
             
if(!$row[0]){ // является ли каталог допустимым к загрузке

 foreach ($_POST['chbox'] as $key=>$value){
      
  if(isset($ctype) && array_key_exists(StrToLow($_POST['fexp'][$key]),$ctype)){

  if(!is_dir($path.'/files/'.StrToLow($_POST['fexp'][$key]))){ mkdir($path.'/files/'.StrToLow($_POST['fexp'][$key]),0770); }
       
  if(!preg_match('/[^a-z0-9_-]/i',$key)){

  if($result=sql_query("SELECT file_id FROM `".PRE."dc_files` WHERE file_name='".$key."' AND file_exp='".StrToLow($_POST['fexp'][$key]."' LIMIT 1"))){
  if(!$row=mysql_fetch_assoc($result)){
  
  $flag1=true;$flag2=true;
  if(file_exists($path.'/files/'.StrToLow($_POST['fexp'][$key]).'/'.StrToLow($key).'.'.StrToLow($_POST['fexp'][$key]))){
    $flag2=false;
  }elseif(!copy($dir.'/'.$key.'.'.$_POST['fexp'][$key], $path.'/files/'.StrToLow($_POST['fexp'][$key]).'/'.StrToLow($key).'.'.StrToLow($_POST['fexp'][$key]))){
     $error[]='- Ошибка при копировании файла '.$key.'.'.$_POST['fexp'][$key].'<br>';
     $flag1=false; 
  }
  if($flag1){      
  if(StrToLow($_POST['fexp'][$key])=='jar'){ getJAD($path.'/files/jar/',StrToLow($key)); } // если ява, генерируем jad
  // добавляем в базу
  if(sql_query("INSERT INTO `".PRE."dc_files` (cat_id,user,file_name,file_exp,file_title,file_size,file_date,com_perpage) VALUES (".$_POST['fcat'].",'".$user['login']."','".StrToLow($key)."','".StrToLow($_POST['fexp'][$key])."','".StrToLow($key)."',".filesize($path.'/files/'.StrToLow($_POST['fexp'][$key]).'/'.StrToLow($key).'.'.StrToLow($_POST['fexp'][$key])).",NOW(),10)")){
             
 // удаляем из общей папки
   if($flag2){ unlink($dir.'/'.$key.'.'.$_POST['fexp'][$key]); }
            
   $error[]='- Файл '.$key.'.'.$_POST['fexp'][$key].' успешно добавлен<br>'; 
        
  }else $error[]=mysql_error().'<br>';
  }//}else $error[]='- Ошибка при копировании файла '.$key.'.'.$_POST['fexp'][$key].'<br>';        
  }else $error[]='- Файл '.$key.'.'.$_POST['fexp'][$key].' уже существует в базе<br>';
  }else $error[]=mysql_error().'<br>';
  }else $error[]='- Имя файла ('.$key.'.'.$_POST['fexp'][$key].') недопустимо<br>'; 
  }else $error[]='- Файл '.$key.'.'.$_POST['fexp'][$key].' не может быть загружен. Не прописан Content-type для '.$_POST['fexp'][$key].'<br>'; }
}else $error[]='- В указанный каталог загрузка файлов невозможна<br>';    
}else $error[]='- Указанный каталог несуществует в базе<br>';    
}else $error[]=mysql_error().'<br>';
}else $error[]='- Не выбран каталог<br>';
}

function put_content(){

 global $path,$dir,$error;
  
  echo '<div class="title">Распределение контента</div>';

  if(isset($error)) { echo implode($error); }

   if(@is_dir(dirname($dir))){ echo '<a href="mancont.php?dir='.rawurlencode(dirname($dir)).'&amp;'.SID.'">..</a><br>'; } 
    
    echo'<form action="mancont.php?dir='.$dir.'&amp;'.SID.'"  method="post" accept-charset="utf-8">';
    
    $temp=array();
    $temp=browser($path,$dir);
  
    foreach($temp as $value){
        
        echo $value.'<br>'; 

    }
    echo '<div class="header" align="center">Добавление файлов</div>';
    echo'Категория:<br><select name="fcat">';
    echo'<option value="no"></option>';
    $GLOBALS['grpOpn']=false;
    echoSelect();
    echo'</select><br>'; 
    echo'<input type="submit" name="add" class="button" value="Добавить">';
    echo'</form>';

echo '<div class="nav"><a href="index.php?'.SID.'">к загрузкам</a><br>';
echo '<a href="../?'.SID.'">на главную</a></div>';

}


} else {
         $link = '1; URL=../'.SID;
         function put_content() {
                  echo '<a href="../?'.SID.'">далее...</a>';
                  }
       }    
    
// подключение дизайна
design();?>