<?php
/* Ulyxex version 1.6.7.8 ***************/
/* code http://ulyxex.logz.org **********/
/* Andre Lozano http://andre-lozano.org */
class ViewFiles extends Admin {
public string $dir;
public int $pagePos;
public array $sortMethods;
public string $OrderSort;
public string $Select;
public string $SelectCount;
function __construct($dir=null){
$this->dir = $dir;
$this->h = New Htmlz();
$this->t = New Translate();
if (isset($_GET['pg'])) {
$this->pagePos = $this->h->num($_GET['pg']);
$_SESSION['pgf'] = $_GET['pg'];
} elseif (isset($_SESSION['pgf']) && !empty($_SESSION['pgf'])) {
$this->pagePos = $this->h->num($_SESSION['pgf']);
$_GET['pg'] = $_SESSION['pgf'];
} else {
$this->pagePos = 0;
}
$this->sortMethods = array("",FILES.".DATEFILE DESC",FILES.".FILENAME",FILES.".USERID","");
if (!isset($_SESSION['admin_files_sort'])) $_SESSION['admin_files_sort'] = $this->sortMethods[1];
if (isset($_POST['sort'])) $_SESSION['admin_files_sort'] = $this->sortMethods[$_POST['sort']];
if (isset($_GET['ownerFilter'])) $_SESSION['ownerFilter'] = FILES.".USERID = ".$this->h->num($_GET['ownerFilter']);
if (isset($_POST['reset'])){
if (isset($_SESSION['admin_files_sort'])) $_SESSION['admin_files_sort'] = $this->sortMethods[1];
if (isset($_SESSION['ownerFilter'])){$_SESSION['ownerFilter'] = "";}
}
$pgPos =($this->pagePos)?($this->pagePos - 1) * ITEMS:0;
$this->OrderSort = ORDERBY.$_SESSION['admin_files_sort']." LIMIT ".$pgPos.",".ITEMS;
if ($_SESSION['userid'] == 1) {
if (isset($_SESSION['ownerFilter']) && $_SESSION['ownerFilter'] != "") {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID".WHERE.$_SESSION['ownerFilter'];
$this->SelectCount = SELECT."COUNT(ID) AS NUM FROM ".FILES.WHERE.$_SESSION['ownerFilter'];
} else {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID";
$this->SelectCount = SELECT."COUNT(ID) AS NUM FROM ".FILES;
}
} else if ($_SESSION['level'] < 2) {
if (isset($_SESSION['ownerFilter']) && $_SESSION['ownerFilter'] != "") {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID".WHERE.$_SESSION['ownerFilter'];
$this->SelectCount = SELECT."COUNT(ID) AS NUM FROM ".FILES.WHERE.$_SESSION['ownerFilter'];
} else {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID".WHERE.FILES.".USERID != 1";
$this->SelectCount = SELECT."COUNT(ID) AS NUM FROM ".FILES.WHERE.FILES.".USERID != 1";
}
} else {
$_[] = "USERID='".$_SESSION['userid']."'";
$query = $this->q(SELECT."ID,USERNAME".FROM.USERS.WHERE." USEROWNER='".$_SESSION['userid']."'");
while ( $line = $this->fetch($query) ){
$_[] = "USERID='".$line['ID']."'";
}
if (isset($_SESSION['ownerFilter']) && $_SESSION['ownerFilter'] != "") {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID".WHERE.$_SESSION['ownerFilter'];
$this->SelectCount = SELECT."COUNT(ID) AS NUM".FROM.FILES.WHERE.$_SESSION['ownerFilter'];
} else {
$this->Select = SELECT.FILES.".ID,".FILES.".FILENAME,".FILES.".DATEFILE,".USERS.".USERNAME".FROM.FILES.INNERJOIN.USERS._ON_.FILES.".USERID = ".USERS.".ID".$this->where($_);
$this->SelectCount = SELECT."COUNT(ID) AS NUM".FROM.FILES.$this->whereOr($_);
}
}
}
public function getFilesUrlInput($user=null) {
$h = $this->h;$t = $this->t;
$tree = New Tree();
$sort = array($t->w("date")=>1,$t->w("file name")=>2,$t->w("user")=>3);
if (isset($_SESSION['admin_files_sort'])) {
$type = array_search($_SESSION['admin_files_sort'],$this->sortMethods);
} else {
$type = 1;
}
$inputs = $h->p($h->select($sort,"sort",$type,$h->v("title",$t->w("sort/filter by")))." ".$h->input("submit",null,$t->w("sort/filter by")));
$result = $h->form($inputs,"sort","post","admin.php?action=files");
$result .= $h->p($tree->getListUsersMenu($via="files"),$h->v("class","sortbyusers"));
$result .= $this->reset_form("files");
$_[] = $h->p($h->input("submit",null,$t->w("update")));
$_[] = $h->p(
$h->h3(
$t->wr("add file to").
$t->wz("user").
$h->span($user,$h->v("style","color:black"))
).
$h->lbl($t->wr("add file"),"addfile",$h->v("style","font-weight:bold;")).
$h->input("file","addfile","",$h->v("size","30")).
$t->wlr("or").
$h->ahref("admin.php?action=ftp_files",$t->w("assign files FTP files"),$h->v("target","blank").$h->v("class","linkbtn"))
);
$query = $this->Select.$this->OrderSort;
$query = $this->q($query);
while ( $line = $this->fetch($query) ) {
if (file_exists($line["FILENAME"])) {
$size = $h->octets(filesize($line["FILENAME"]));
$params = stat($line["FILENAME"]);
$_[] = $h->p(
implode(
"",
array(
$this->dashframe(substr($line['DATEFILE'],0,10)),
$this->dashframe(" ".$h->strWidth($line["USERNAME"],20),$h->alt($t->wz("user").$line["USERNAME"])),
$this->dashframe(
$h->lbl(" ".$t->wr("untie"),"delete|".$line["ID"]."|".getcwd()."/".$line["FILENAME"]).
$h->input("checkbox","delete|".$line["ID"]."|".getcwd()."/".$line["FILENAME"],"on")
,$h->alt($t->wz("untie").substr($line["FILENAME"],6))
),
" ",
$h->ahref(
$line["FILENAME"],
substr($line["FILENAME"],6),
$h->v("target","blank").$h->alt($t->wz("show").substr($line["FILENAME"],6))
),
" ~".$size
)
)
,$h->v("class","linebtns"));
} else {
$_[] = $h->p(
implode(
"",array(
$this->dashframe(substr($line['DATEFILE'],0,10)),
$this->dashframe(" ".$h->strWidth($line["USERNAME"],20),$h->alt($line["USERNAME"])),
$this->dashframe(
$h->lbl(" ".$t->wr("untie"),"delete|".$line["ID"]."|".getcwd()."/".$line["FILENAME"]).
$h->input("checkbox","delete|".$line["ID"]."|".getcwd()."/".$line["FILENAME"],"on")
,$h->alt($t->wz("untie").substr($line["FILENAME"],6))
),
" ",
$h->ahref(
$h->root_url($line["FILENAME"]),
substr($line["FILENAME"],6),
$h->alt($t->wz("show").substr($line["FILENAME"],6))
),
" ",
$h->b($h->color("<< ".$t->w("file not found"),"red")),
)
),
$h->v("class","linebtns"));
}
}
$_[] = $h->input("hidden","update",1);
$_[] = $h->p($h->input("submit",null,$t->w("update")));
$inputs = implode("",$_);
$result .= $h->form($inputs,"files","post","admin.php?action=files","multipart/form-data");
$query = $this->SelectCount;
$query = $this->q($query);
$dat = $this->fetch($query);
$pagesNumbers = new NextPages($dat["NUM"],"action=files");
//~ $result .= $h->p($pagesNumbers->numbers()." (".$dat["NUM"]." fics)",$h->v("class","pagenumbers"));
$result .= $h->p($pagesNumbers->numbers(),$h->v("class","pagenumbers"));
$result .= $h->p("(".$t->wr("total files")."= ".$dat["NUM"].")",$h->v("style","text-align:center"));
return $result;
}
public function getLinkUrl() {
$h = $this->h;$t = $this->t;
$sort = array($t->w("date")=>1,$t->w("file name")=>2,$t->w("user")=>3);
if (isset($_SESSION['admin_files_sort'])) {
$type = array_search($_SESSION['admin_files_sort'],$this->sortMethods);
} else {
$type = 1;
}
$result = "";
$pgPos =($this->pagePos)?($this->pagePos - 1) * ITEMS:0;
$orderSort = ORDERBY." DATEFILE DESC LIMIT ".$pgPos.",".ITEMS;
$query = $this->Select.$orderSort;
$query = $this->q($query);
$files = array();
while ( $line = $this->fetch($query) ) {
if (file_exists($line["FILENAME"])) {
$files[] = $line["FILENAME"];
}
}
$data = implode(" ",array_map('add_link',$files));
$data = $h->ul($data);
$query = $this->q($this->SelectCount);
$dat = $this->fetch($query);
$pagesNumbers = new NextPages($dat["NUM"],"action=list_files");
$data .= $h->p($pagesNumbers->numbers()." (".$dat["NUM"]." fics)",$h->v("class","pagenumbers"));
$result .= $data;
return $result;
}
public function update_files(){
$h = $this->h;$t = $this->t;
$now = time();
$date = date("Y-m-d H:i:s",$now);
$values = $_POST;
foreach($values as $k=>$v){
if ( preg_match("/delete\*\|/",$k) ){
list($del,$id,$file) = explode("|",$k);
@unlink($file);
} elseif ( preg_match("/delete\|/",$k) ){
list($del,$id,$file) = explode("|",$k);
@unlink($file);
$query = DELETE.FROM.FILES.WHERE." ID = ".$id;
$query = $this->q($query);
}
}
if (!empty($_FILES['addfile']["name"])) {
$fileName = $_FILES['addfile']["name"];
$ext = $h->get_ext($fileName);
if ( !in_array($ext, $h->extUploadAllowed()) && $_SESSION['level'] > 1) exit("file extension not allowed ! ".$ext);// accept all file in level 1
$sendFile = move_uploaded_file($_FILES['addfile']["tmp_name"],"files/".$fileName);
if ($sendFile) {
$query = INSERTINTO.FILES." (FILENAME,USERID,DATEFILE) VALUES ('files/".$fileName."',".$h->num($_SESSION['userid']).",'".$date."')";
//~ echo $query;
$query = $this->q($query);
}
}
return $h->h3($t->w("some vals been modified !"),$h->v("class","warning"));
}
}
?>