Example #1
0
 /**
  * 构造方法
  *
  * @access publid
  * @return boolean
  */
 public function __construct()
 {
     $this->_htmlPath = CACHE_PATH . 'htmls' . DIRECTORY_SEPARATOR;
     $this->_isWrite = false;
     File::makeDir($this->_htmlPath);
     return true;
 }
Example #2
0
 public static function makeDir($path = '')
 {
     $path = app()->cachePath() . $path;
     parent::makeDir($path);
     chmod($path, 0777);
 }
Example #3
0
 /**
  * Attach a file to a post
  *
  * @param int $post_id		Post's id
  * @param string $filepath	Path of the tmp file
  * @param string $thumbpath	Path of the thumb (optional)
  */
 public function attachFile($post_id, $filepath, $name, $thumbpath = null, $mobilepath = null)
 {
     $ext = strtolower(File::getExtension($filepath));
     // In the DB
     $file_id = DB::createQuery('attachments')->set(array('post_id' => $post_id, 'name' => $name, 'ext' => $ext))->insert();
     // File, and optionally thumb
     $newfilepath = self::getAttachedFilePath($file_id, $ext);
     if (!File::exists(File::getPath($newfilepath))) {
         File::makeDir(File::getPath($newfilepath), 0777, true);
     }
     File::rename($filepath, $newfilepath);
     if (isset($thumbpath)) {
         File::rename($thumbpath, self::getAttachedFilePath($file_id, 'jpg', 'thumb'));
     }
     if (isset($mobilepath)) {
         File::rename($mobilepath, self::getAttachedFilePath($file_id, 'jpg', 'mobile'));
     }
 }
Example #4
0
        throw new Exception($avatars_tmp_path . ' not found!');
    }
    $students = DB::createQuery('students')->fields('student_number', 'firstname', 'lastname')->select();
    foreach ($students as $student) {
        try {
            $avatar_path = Student_Model::getAvatarPath((int) $student['student_number']);
            $avatar_thumb_path = Student_Model::getAvatarPath((int) $student['student_number'], true);
            if (file_exists($avatar_path)) {
                continue;
            }
            $original_path = $avatars_tmp_path . '/' . $student['student_number'] . '.jpg';
            if (!file_exists($original_path)) {
                throw new Exception('Photo of the student n°' . $student['student_number'] . ' (' . $student['firstname'] . ' ' . $student['lastname'] . ') not found!');
            }
            $avatar_dir = File::getPath($avatar_path);
            if (!is_dir($avatar_dir)) {
                File::makeDir($avatar_dir, 0777, true);
            }
            File::copy($original_path, $avatar_path);
            // Thumb
            $img = new Image();
            $img->load($original_path);
            $img->thumb(Config::$AVATARS_THUMBS_SIZES[0], Config::$AVATARS_THUMBS_SIZES[1]);
            $img->save($avatar_thumb_path);
        } catch (Exception $e) {
            echo $e->getMessage() . "\n";
        }
    }
} catch (Exception $e) {
    echo $e->getMessage();
}
Example #5
0
 /**
  * Save the data of a student
  *
  * @param string $username	student's username
  * @param array $data	student's data
  */
 public function save($username, $data)
 {
     $student_data = array();
     $old_data = DB::createQuery('students')->fields('firstname', 'lastname', 'student_number')->where(array('username' => $username))->select();
     if (!$old_data[0]) {
         throw new Exception('Student not found');
     }
     $old_data = $old_data[0];
     $change_name = false;
     // Firstname
     if (isset($data['firstname']) && $old_data['firstname'] != trim($data['firstname'])) {
         if (trim($data['firstname']) == '') {
             throw new FormException('firstname');
         }
         $student_data['firstname'] = trim($data['firstname']);
         $change_name = true;
     }
     // Lastname
     if (isset($data['lastname']) && $old_data['lastname'] != trim($data['lastname'])) {
         if (trim($data['lastname']) == '') {
             throw new FormException('lastname');
         }
         $student_data['lastname'] = trim($data['lastname']);
         $change_name = true;
     }
     // Student number
     if (isset($data['student_number'])) {
         if (!ctype_digit(trim($data['student_number']))) {
             throw new FormException('student_number');
         }
         $student_data['student_number'] = (int) trim($data['student_number']);
         // Moving the avatar
         if ($student_data['student_number'] != $old_data['student_number']) {
             // Thumb
             $avatar_path = self::getAvatarPath($student_data['student_number'], true);
             $avatar_dir = File::getPath($avatar_path);
             if (!is_dir($avatar_dir)) {
                 File::makeDir($avatar_dir, 0777, true);
             }
             File::rename(self::getAvatarPath($old_data['student_number'], true), $avatar_path);
             // Big
             $avatar_path = self::getAvatarPath($student_data['student_number'], false);
             $avatar_dir = File::getPath($avatar_path);
             if (!is_dir($avatar_dir)) {
                 File::makeDir($avatar_dir, 0777, true);
             }
             File::rename(self::getAvatarPath($old_data['student_number'], false), $avatar_path);
         }
     }
     // Promo
     if (isset($data['promo'])) {
         if (!ctype_digit(trim($data['promo'])) || (int) $data['promo'] < 2000) {
             throw new FormException('promo');
         }
         $student_data['promo'] = (int) trim($data['promo']);
     }
     // Cesure
     if (isset($data['cesure'])) {
         $student_data['cesure'] = $data['cesure'] ? 1 : 0;
     }
     // Avatar
     if (isset($data['avatar_path']) && isset($data['student_number']) && File::exists($data['avatar_path'])) {
         $avatar_path = self::getAvatarPath((int) $data['student_number'], true);
         $avatar_dir = File::getPath($avatar_path);
         if (!is_dir($avatar_dir)) {
             File::makeDir($avatar_dir, 0777, true);
         }
         File::rename($data['avatar_path'], $avatar_path);
     }
     if (isset($data['avatar_big_path']) && isset($data['student_number']) && File::exists($data['avatar_big_path'])) {
         $avatar_path = self::getAvatarPath((int) $data['student_number'], false);
         $avatar_dir = File::getPath($avatar_path);
         if (!is_dir($avatar_dir)) {
             File::makeDir($avatar_dir, 0777, true);
         }
         File::rename($data['avatar_big_path'], $avatar_path);
     }
     // Update the DB
     $this->createQuery()->set($student_data)->where(array('username' => $username))->update();
     if ($change_name) {
         Post_Model::clearCache();
         // Update the search index
         $search_model = new Search_Model();
         $search_model->index(array('username' => $username, 'firstname' => Search_Model::sanitize(isset($student_data['firstname']) ? $student_data['firstname'] : $old_data['firstname']), 'lastname' => Search_Model::sanitize(isset($student_data['lastname']) ? $student_data['lastname'] : $old_data['lastname'])), 'student', $username);
     }
 }
Example #6
0
 public function index()
 {
     $this->setView('index.php');
     $is_logged = isset(User_Model::$auth_data);
     $is_student = $is_logged && isset(User_Model::$auth_data['student_number']);
     $is_admin = $is_logged && User_Model::$auth_data['admin'] == '1';
     $this->set(array('username' => User_Model::$auth_data['username'], 'is_logged' => $is_logged, 'is_student' => $is_student, 'is_admin' => $is_admin));
     //Fonction qui met à jour l'annuaire dans mysql et ajoute les avatars
     //$uploaded_files=array();
     if (isset($_FILES['uploadzip'])) {
         if ($_FILES['uploadzip']['size'] > Config::UPLOAD_MAX_SIZE_FILE) {
             throw new Exception(__('POST_ADD_ERROR_FILE_SIZE', array('size' => File::humanReadableSize(Config::UPLOAD_MAX_SIZE_FILE))));
         }
         //On déplace le fichier zipper vers le serveur
         if ($filepaths = File::upload('uploadzip')) {
             // foreach($filepaths as $filepath)
             // $uploaded_files[] = $filepath;
             //foreach($filepaths as $i => $filepath){
             if (!preg_match('#\\.zip$#', $filepaths)) {
                 throw new Exception(__('POST_ADD_ERROR_FILE_FORMAT'));
             }
             $name = $filepaths;
             //}
         }
         $path = DATA_DIR . Config::DIR_DATA_TMP . 'annuaire/';
         // On dézip celui-ci
         if (FILE::exists($path)) {
             FILE::delete($path);
         }
         File::makeDir($path);
         $zip = new ZipArchive();
         $res = $zip->open($name);
         if ($res === TRUE) {
             $zip->extractTo($path);
             $zip->close();
             unlink($name);
         } else {
             throw new Exception(__('ADMIN_POST_ZIPERROR'));
         }
         if (File::delete(DATA_DIR . Config::DIR_DATA_TMP . $name)) {
             // On aplique le chmod a tous les dossiers et fichiers du zip
             FILE::chmodDirectory($path, 0);
             // on traite les fichiers students.csv et users.csv
             if (file_exists($path . 'users.csv')) {
                 $fp = fopen($path . 'users.csv', "r");
             } else {
                 throw new Exception(__('ADMIN_POST_CSVERROR1'));
             }
             $i = 0;
             while (!feof($fp)) {
                 $i = $i + 1;
                 // Tant qu'on n'atteint pas la fin du fichier
                 $ligne = fgets($fp, 4096);
                 /* On lit une ligne */
                 // On récupère les champs séparés par ; dans liste
                 $liste = explode(";", $ligne);
                 // On assigne les variables
                 if (strlen($liste[0]) > 1) {
                     if (isset($liste[0])) {
                         $username = $liste[0];
                     }
                     if (isset($liste[1])) {
                         $admin = $liste[1];
                     }
                     if (isset($liste[2])) {
                         $mail = $liste[2];
                     }
                     if (isset($liste[3])) {
                         $msn = $liste[3];
                     }
                     if (isset($liste[4])) {
                         $jabber = $liste[4];
                     }
                     if (isset($liste[5])) {
                         $address = $liste[5];
                     }
                     if (isset($liste[6])) {
                         $zipcode = $liste[6];
                     }
                     if (isset($liste[7])) {
                         $city = $liste[7];
                     }
                     if (isset($liste[8])) {
                         $cellphone = $liste[8];
                     }
                     if (isset($liste[9])) {
                         $phone = $liste[9];
                     }
                     if (isset($liste[10])) {
                         $birthday = $liste[10];
                     }
                     if (!$this->model->checkuser($username, 1)) {
                         $this->model->insertUsers(trim($username), trim($admin), trim($mail), trim($msn), trim($jabber), trim($address), trim($zipcode), trim($city), trim($cellphone), trim($phone), trim($birthday));
                     }
                 }
             }
             fclose($fp);
             if (file_exists($path . 'students.csv')) {
                 $fp = fopen($path . 'students.csv', "r");
             } else {
                 throw new Exception(__('ADMIN_POST_CSVERROR2'));
             }
             $i = 0;
             while (!feof($fp)) {
                 $i = $i + 1;
                 // Tant qu'on n'atteint pas la fin du fichier
                 $ligne = fgets($fp, 4096);
                 /* On lit une ligne */
                 // On récupère les champs séparés par ; dans liste
                 $liste = explode(";", $ligne);
                 // On assigne les variables
                 if (strlen($liste[0]) > 1) {
                     if (isset($liste[0])) {
                         $username = $liste[0];
                     }
                     if (isset($liste[1])) {
                         $lastname = $liste[1];
                     }
                     if (isset($liste[2])) {
                         $firstname = $liste[2];
                     }
                     if (isset($liste[3])) {
                         $student_number = $liste[3];
                     }
                     if (isset($liste[4])) {
                         $promo = $liste[4];
                     }
                     if (isset($liste[5])) {
                         $cesure = $liste[5];
                     }
                     if (!$this->model->checkuser($username, 2)) {
                         $this->model->insertStudents(trim($username), trim($lastname), trim($firstname), trim($student_number), trim($promo), trim($cesure));
                     }
                     // On déplace et formate les photos dans le dossier avatars
                     $avatarpath = $path . 'photos_students/' . $student_number . '.jpg';
                     $img = new Image();
                     $img->load($avatarpath);
                     $type = $img->getType();
                     if ($type == IMAGETYPE_JPEG) {
                         $ext = 'jpg';
                     } else {
                         if ($type == IMAGETYPE_GIF) {
                             $ext = 'gif';
                         } else {
                             if ($type == IMAGETYPE_PNG) {
                                 $ext = 'png';
                             } else {
                                 throw new Exception();
                             }
                         }
                     }
                     if ($img->getWidth() > 800) {
                         $img->setWidth(800, true);
                     }
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarpath);
                     // Thumb
                     $avatarthumbpath = $path . 'photos_students/' . $student_number . '_thumb.jpg';
                     $img->thumb(Config::$AVATARS_THUMBS_SIZES[0], Config::$AVATARS_THUMBS_SIZES[1]);
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarthumbpath);
                     if (FILE::exists(DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/')) {
                         FILE::move($avatarthumbpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                     } else {
                         FILE::makeDir(DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarthumbpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                         FILE::move($avatarpath, DATA_DIR . Config::DIR_DATA_STORAGE . 'avatars/' . substr($student_number, 0, -2) . '/');
                     }
                     unset($img);
                 }
             }
             fclose($fp);
             // On supprime le tout du dossier temp
             FILE::delete($path);
         }
     }
 }
Example #7
0
 public function usersPage($param)
 {
     $this->setView('users.php');
     /*
      * Enregistrement du post dans la table users	
      */
     if (isset($_FILES['uploadxml1']) && $_FILES['uploadxml1']['name'] != null) {
         if ($_FILES['uploadxml1']['size'] > Config::UPLOAD_MAX_SIZE_FILE) {
             throw new Exception(__('POST_ADD_ERROR_FILE_SIZE', array('size' => File::humanReadableSize(Config::UPLOAD_MAX_SIZE_FILE))));
         }
         //On déplace le fichier vers le serveur
         if ($filepaths = File::upload('uploadxml1')) {
             if (!preg_match('#\\.xml$#', $filepaths)) {
                 throw new Exception(__('POST_ADD_ERROR_FILE_FORMAT'));
             }
             $name = $filepaths;
         }
         $student = array();
         $path = DATA_DIR . Config::DIR_DATA_TMP . $_FILES['uploadxml1']['name'];
         if (file_exists($path)) {
             $data = simplexml_load_file($path);
             foreach ($data->data as $data) {
                 if (isset($data->username) && isset($data->admin) && isset($data->mail) && isset($data->msn) && isset($data->jabber) && isset($data->address) && isset($data->address) && isset($data->zipcode) && isset($data->city) && isset($data->cellphone) && isset($data->phone) && isset($data->birthday)) {
                     $username = $data->username;
                     $admin = $data->admin;
                     $mail = $data->mail;
                     $msn = $data->msn;
                     $jabber = $data->jabber;
                     $address = $data->address;
                     $zipcode = $data->zipcode;
                     $city = $data->city;
                     $cellphone = $data->cellphone;
                     $phone = $data->phone;
                     $birthday = $data->birthday;
                     if (!$this->model->checkuser($username, 1)) {
                         $this->model->insertUsers($username, $admin, utf8_decode($mail), utf8_decode($msn), utf8_decode($jabber), utf8_decode($address), $zipcode, $city, $cellphone, $phone, $birthday);
                     } else {
                         array_push($student, $username);
                     }
                 } else {
                     throw new Exception(__('ADMIN_UPLOAD_ERROR2'));
                 }
             }
         } else {
             throw new Exception(__('ADMIN_UPLOAD_ERROR'));
         }
         FILE::delete($path);
         $this->set('fail', $student);
     }
     /*
      * Enregistrement du post dans la table students
      */
     if (isset($_FILES['uploadxml2']) && $_FILES['uploadxml2']['name'] != null) {
         if ($_FILES['uploadxml2']['size'] > Config::UPLOAD_MAX_SIZE_FILE) {
             throw new Exception(__('POST_ADD_ERROR_FILE_SIZE', array('size' => File::humanReadableSize(Config::UPLOAD_MAX_SIZE_FILE))));
         }
         if ($filepaths = File::upload('uploadxml2')) {
             if (!preg_match('#\\.xml$#', $filepaths)) {
                 throw new Exception(__('POST_ADD_ERROR_FILE_FORMAT'));
             }
             $name = $filepaths;
         }
         $student = array();
         $path = DATA_DIR . Config::DIR_DATA_TMP . $_FILES['uploadxml2']['name'];
         if (file_exists($path)) {
             $data = simplexml_load_file($path);
             foreach ($data->data as $data) {
                 if (isset($data->username) && isset($data->lastname) && isset($data->firstname) && isset($data->student_number) && isset($data->promo) && isset($data->cesure)) {
                     $username = $data->username;
                     $lastname = $data->lastname;
                     $firstname = $data->firstname;
                     $student_number = $data->student_number;
                     $promo = $data->promo;
                     $cesure = $data->cesure;
                     if (!$this->model->checkuser($username, 2)) {
                         $this->model->insertStudents($username, utf8_decode($lastname), utf8_decode($firstname), $student_number, $promo, $cesure);
                     } else {
                         array_push($student, $username);
                     }
                 } else {
                     throw new Exception(__('ADMIN_UPLOAD_ERROR2'));
                 }
             }
         } else {
             throw new Exception(__('ADMIN_UPLOAD_ERROR'));
         }
         FILE::delete($path);
         $this->set('fail', $student);
     }
     /*
      * Enregistrement des avatars
      */
     if (isset($_FILES['avatar_photo']) && is_array($_FILES['avatar_photo']['name'])) {
         foreach ($_FILES['avatar_photo']['size'] as $size) {
             if ($size > Config::UPLOAD_MAX_SIZE_PHOTO) {
                 throw new Exception(__('POST_ADD_ERROR_PHOTO_SIZE', array('size' => File::humanReadableSize(Config::UPLOAD_MAX_SIZE_PHOTO))));
             }
         }
         $student = array();
         if ($avatarpaths = File::upload('avatar_photo')) {
             foreach ($avatarpaths as $avatarpath) {
                 $uploaded_files[] = $avatarpath;
             }
             foreach ($avatarpaths as $i => $avatarpath) {
                 $name = $_FILES['avatar_photo']['name'][$i];
                 try {
                     $img = new Image();
                     $img->load($avatarpath);
                     $type = $img->getType();
                     if ($type == IMAGETYPE_JPEG) {
                         $ext = 'jpg';
                     } else {
                         if ($type == IMAGETYPE_GIF) {
                             $ext = 'gif';
                         } else {
                             if ($type == IMAGETYPE_PNG) {
                                 $ext = 'png';
                             } else {
                                 throw new Exception();
                             }
                         }
                     }
                     if ($img->getWidth() > 800) {
                         $img->setWidth(800, true);
                     }
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarpath);
                     // Thumb
                     $avatarthumbpath = $avatarpath . '.thumb';
                     $img->thumb(Config::$AVATARS_THUMBS_SIZES[0], Config::$AVATARS_THUMBS_SIZES[1]);
                     $img->setType(IMAGETYPE_JPEG);
                     $img->save($avatarthumbpath);
                     unset($img);
                     $uploaded_files[] = $avatarthumbpath;
                     $student_data['avatar_path'] = $avatarthumbpath;
                     $student_data['avatar_big_path'] = $avatarpath;
                     $student_data['student_number'] = preg_replace('/\\.[a-z0-9]+$/i', '', $name);
                     if (isset($student_data['avatar_path']) && isset($student_data['student_number']) && File::exists($student_data['avatar_path'])) {
                         $avatar_path = Student_Model::getAvatarPath((int) $student_data['student_number'], true);
                         $avatar_dir = File::getPath($avatar_path);
                         if (!is_dir($avatar_dir)) {
                             File::makeDir($avatar_dir, 0777, true);
                         }
                         File::rename($student_data['avatar_path'], $avatar_path);
                     }
                     if (isset($student_data['avatar_big_path']) && isset($student_data['student_number']) && File::exists($student_data['avatar_big_path'])) {
                         $avatar_path = Student_Model::getAvatarPath((int) $student_data['student_number'], false);
                         $avatar_dir = File::getPath($avatar_path);
                         if (!is_dir($avatar_dir)) {
                             File::makeDir($avatar_dir, 0777, true);
                         }
                         File::rename($student_data['avatar_big_path'], $avatar_path);
                     }
                 } catch (Exception $e) {
                     array_push($student, $name);
                 }
             }
             $this->set('fail2', $student);
             foreach ($uploaded_files as $uploaded_file) {
                 File::delete($uploaded_file);
             }
         }
     }
 }
Example #8
0
 /**
  * Create a group
  *
  * @param array $data	Group's data
  * @return string	URL name
  */
 public function create($data)
 {
     $group_data = array();
     // Name
     $change_name = false;
     if (!isset($data['name'])) {
         throw new FormException('invalid_name');
     }
     $name = trim($data['name']);
     $group_data['name'] = $name;
     // URL name
     $url_name = Text::forURL($name);
     if ($url_name == '') {
         throw new FormException('invalid_name');
     }
     $i = '';
     while (self::urlExists($url_name . $i)) {
         $i = $i == '' ? 1 : $i + 1;
     }
     $url_name .= $i;
     $group_data['url_name'] = $url_name;
     // Creation date
     if (!isset($data['creation_date']) || !($creation_date = strptime($data['creation_date'], __('GROUP_EDIT_FORM_CREATION_DATE_FORMAT_PARSE')))) {
         throw new FormException('invalid_creation_date');
     }
     $group_data['creation_date'] = $creation_date['tm_year'] + 1900 . '-' . ($creation_date['tm_mon'] + 1) . '-' . $creation_date['tm_mday'];
     // Email
     if (isset($data['mail'])) {
         if ($data['mail'] != '' && !Validation::isEmail($data['mail'])) {
             throw new FormException('invalid_mail');
         }
         $group_data['mail'] = $data['mail'];
     }
     // Description
     if (isset($data['description'])) {
         $group_data['description'] = $data['description'];
     }
     // Avatar
     if (!isset($data['avatar_path']) || !File::exists($data['avatar_path']) || !isset($data['avatar_big_path']) && !File::exists($data['avatar_big_path'])) {
         throw new FormException('avatar');
     }
     // Insertion in the DB
     $id = $this->createQuery()->set($group_data)->insert();
     // Avatar
     $avatar_path = self::getAvatarPath($id, true);
     $avatar_dir = File::getPath($avatar_path);
     if (!is_dir($avatar_dir)) {
         File::makeDir($avatar_dir, 0777, true);
     }
     File::rename($data['avatar_path'], $avatar_path);
     $avatar_path = self::getAvatarPath($id, false);
     $avatar_dir = File::getPath($avatar_path);
     if (!is_dir($avatar_dir)) {
         File::makeDir($avatar_dir, 0777, true);
     }
     File::rename($data['avatar_big_path'], $avatar_path);
     // Members
     if (isset($data['members']) && is_array($data['members'])) {
         $i = 0;
         foreach ($data['members'] as &$member) {
             $member['order'] = $i++;
         }
         if (count($data['members']) != 0) {
             $users = DB::createQuery('users')->fields('id')->where('id IN (' . implode(',', array_keys($data['members'])) . ')')->select();
             foreach ($users as $user) {
                 DB::createQuery('groups_users')->set(array('group_id' => $id, 'user_id' => $user['id'], 'title' => $data['members'][(int) $user['id']]['title'], 'admin' => $data['members'][(int) $user['id']]['admin'] ? '1' : '0', 'order' => $data['members'][(int) $user['id']]['order']))->insert();
             }
         }
     }
     // Add to the search index
     $search_model = new Search_Model();
     $search_model->index(array('name' => Search_Model::sanitize($group_data['name']), 'url_name' => $group_data['url_name'], 'description' => Search_Model::sanitize($group_data['description'])), 'group', $id);
     self::clearCache();
     return $url_name;
 }
    static function CompleteStructure()
    {
        define("PAGE_ID", isset($_GET['PageID']) ? $_GET['PageID'] : "");
        switch (PAGE_ID) {
            case 'FileEditor':
                define("DIRECTORY", !is_file($_GET['directory']) ? Others::redirect("?") : realpath(urldecode($_GET['directory'])));
                define("EDIRECTORY", urlencode(DIRECTORY));
                define("ODIRECTORY", dirname(DIRECTORY));
                unset($dirName);
                define("FILEINODE", fileinode(DIRECTORY));
                define("FILENAME", basename(DIRECTORY));
                define("FILEBYTE", filesize(DIRECTORY));
                define("FILECTIME", filectime(DIRECTORY));
                define("FILEATIME", fileatime(DIRECTORY));
                define("FILEOWNER", fileowner(DIRECTORY));
                define("FILETYPE", strtolower(substr(strrchr(FILENAME, "."), 1)));
                if (FILEBYTE / 1024 > 1024) {
                    die('Dosya çok büyük <button onClick="javascript:window.close();">Kapat</button>');
                }
                if (isset($_POST['fileContents']) && is_string($_POST['fileContents'])) {
                    file_put_contents(DIRECTORY, urldecode($_POST['fileContents']));
                    Others::redirect(URLm::url("fileEditor", array("file" => DIRECTORY)));
                }
                Page::write("editor", array("Title" => "Dosya.Düzenle \"" . FILENAME . "\"", "CSSFile" => Settings::get("CSSFilePath"), "File" => DIRECTORY));
                break;
            default:
                if (isset($_GET['directory']) && !is_dir($_GET['directory'])) {
                    Others::redirect("?");
                }
                if (isset($_GET['directory']) && is_dir($_GET['directory'])) {
                    $directoryPath = (string) $_GET['directory'];
                } elseif (isset($_SERVER['DOCUMENT_ROOT']) && is_dir($_SERVER['DOCUMENT_ROOT'])) {
                    $directoryPath = $_SERVER['DOCUMENT_ROOT'];
                } else {
                    $directory = ".";
                }
                define("DIRECTORY", realpath($directoryPath));
                define("EDIRECTORY", urlencode(DIRECTORY));
                if (isset($_REQUEST['procName']) && isset($_REQUEST['filesArray'])) {
                    $filesExp = explode("{}", $_REQUEST['filesArray']);
                    $var = (string) $_REQUEST['variable'];
                    switch ($_REQUEST['procName']) {
                        case 'Move':
                            foreach ($filesExp as $dd) {
                                if (is_dir(DIRECTORY . "/" . $dd) || is_file(DIRECTORY . "/" . $dd)) {
                                    rename(DIRECTORY . "/" . $dd, $var . "/" . $dd);
                                }
                            }
                            break;
                        case 'Copy':
                            foreach ($filesExp as $dd) {
                                if (is_dir(DIRECTORY . "/" . $dd)) {
                                    File::copyDirectory(DIRECTORY . "/" . $dd, $var . "/" . $dd);
                                } elseif (is_file(DIRECTORY . "/" . $dd)) {
                                    copy(DIRECTORY . "/" . $dd, $var . "/" . $dd);
                                }
                            }
                            break;
                        case 'CHMOD':
                            foreach ($filesExp as $dd) {
                                if ($var >= 0 && $var <= 777) {
                                    chmod(DIRECTORY . "/" . $dd, $var);
                                }
                            }
                            break;
                        case 'Delete':
                            foreach ($filesExp as $dd) {
                                if (is_dir(DIRECTORY . "/" . $dd)) {
                                    File::deleteDirectory(DIRECTORY . "/" . $dd);
                                } elseif (is_file(DIRECTORY . "/" . $dd)) {
                                    unlink(DIRECTORY . "/" . $dd);
                                }
                            }
                    }
                    Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                }
                if (isset($_GET['proc'])) {
                    switch ($_GET['proc']) {
                        case 'move':
                            if ($_GET['var'] != "") {
                                rename(DIRECTORY, $_GET['var']);
                                Others::redirect(URLm::url("folderView", array("dir" => $_GET['var'])));
                            }
                            break;
                        case 'copy':
                            if ($_GET['var'] != "") {
                                File::copyDirectory(DIRECTORY, $_GET['var']);
                                Others::redirect(URLm::url("folderView", array("dir" => $_GET['var'])));
                            }
                            break;
                        case 'create':
                            if ($_GET['var'] != "") {
                                $exp = explode(":", $_GET['var']);
                                switch ($exp['0']) {
                                    case 'f':
                                        File::makeFile(DIRECTORY . "/" . $exp[1]);
                                        break;
                                    case 'd':
                                        if ($exp[1] != 0 && $exp[1] != null) {
                                            File::makeDir(DIRECTORY . "/" . $exp[1], intval($exp[2]));
                                        } else {
                                            File::forceDirectory(DIRECTORY . "/" . $exp[1]);
                                        }
                                }
                                Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                            }
                            break;
                        case 'jump':
                            if ((string) $_GET['var'] != "") {
                                $var = $_GET['var'];
                                if (is_file($var)) {
                                    Others::redirect(URLm::url("fileView", array("filePath" => realpath($var))));
                                } elseif (is_dir($var)) {
                                    Others::redirect(URLm::url("folderView", array("dir" => realpath($var))));
                                }
                            }
                            break;
                        case 'delete':
                            if (DIRECTORY != realpath($_SERVER['DOCUMENT_ROOT'])) {
                                File::deleteDirectory(DIRECTORY);
                            }
                            $dirName = explode("/", DIRECTORY);
                            array_pop($dirName);
                            $dirName = implode("/", $dirName);
                            Others::redirect(URLm::url("folderView", array("dir" => $dirName)));
                            break;
                        case 'addFav':
                            if ((string) $_GET['var'] != "") {
                                DBLite::addFavorite($_GET['var'], DIRECTORY);
                            }
                            Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                            break;
                        case 'deleteFav':
                            DBLite::deleteFavorite(DIRECTORY);
                            Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                            break;
                        case 'compress':
                            if ((string) $_GET['var'] != "") {
                                $zip = new ZipArchive();
                                if (!$zip->open($_GET['var'], ZipArchive::OVERWRITE)) {
                                    Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                                    exit;
                                }
                                foreach (File::getFileList(DIRECTORY, array("method" => "explode")) as $File) {
                                    $FullPath = str_replace(dirname(DIRECTORY) . "/", "", $File);
                                    $zip->addFile($File, $FullPath);
                                }
                                $zip->addFromString("CreatedBy", "This zip file created by OOP File Manager\n\n\t- vtWebApp ®\n\t- veli.tasali@gmail.com");
                                $zip->close();
                                Others::redirect(URLm::url("fileView", array("filePath" => $_GET['var'])));
                            }
                            break;
                        case 'iFile':
                            $var = (string) $_REQUEST['var'];
                            if ($var != "") {
                                set_time_limit(5000);
                                $url = parse_url($var);
                                $fName = $url['path'] == "" ? $url['host'] . "_file_" . time() : $url['path'];
                                $fName = preg_replace("/([^a-zA-Z0-9._-])/si", "", $fName);
                                touch(DIRECTORY . "/" . $fName);
                                // $write = fopen(DIRECTORY."/".$fName);
                                $dt = fopen(urldecode($var), "rb");
                                if (is_file(DIRECTORY . "/" . $fName)) {
                                    fseek($dt, filesize(DIRECTORY . "/" . $fName));
                                }
                                if ($dt) {
                                    while (!feof($dt)) {
                                        file_put_contents(DIRECTORY . "/" . $fName, fread($dt, 8192), FILE_APPEND);
                                    }
                                    fclose($dt);
                                }
                                // $source = Others::quickCurl(urldecode($var));
                                Others::redirect(URLm::url("fileView", array("filePath" => DIRECTORY . "/" . $fName)));
                            }
                            unset($var);
                    }
                }
                if (DBLite::isFavorite(DIRECTORY)) {
                    $Shortcuts = '<a href="' . URLm::url("proc", array("dir" => DIRECTORY, "procName" => "deleteFav")) . '">Fav. Çıkart</a>';
                } else {
                    $Shortcuts = '<a href="javascript:sendPrompt(\'Favori Adı Belirleyin\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "addFav")) . '\', {value: \'' . basename(DIRECTORY) . '\'});">Fav. Ekle</a>';
                }
                $Shortcuts .= '
<a href="' . URLm::url("upload", array("dir" => DIRECTORY)) . '">Yükle</a>
<a href="javascript:sendPrompt(\'Bir dosya belirtin.\\n* Kısır döngüleri önlemek için aynı klasörler ile çakıştırmayın\\n\\nDosya: /sdcard/Dosya.zip\\nSıkıştır: /sdcard \\nYukarıdaki gibi bir durum kısır döngüye yol açabilir\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "compress")) . '\', {value: \'' . DIRECTORY . '.zip' . '\'});">Sıkıştır</a>
<a href="javascript:sendPrompt(\'Başka sunuculardan dosya indirin\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "iFile")) . '\', {value:\'http://\', urlEncode: true});">i-Dosya</a>
<a href="javascript:sendPrompt(\'Şu Dosya Yoluna Atla\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "jump")) . '\', {value: \'' . DIRECTORY . '\', urlEncode: true});">Atla</a>
<a href="javascript:checkConfirm(\'Bu klasörü silmek üzeresiniz\\n' . DIRECTORY . '\', \'' . URLm::url("proc", array("dir" => DIRECTORY, "procName" => "delete")) . '\');">Sil</a>
<a href="javascript:sendPrompt(\'Kopyala\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "copy")) . '\', {value: \'' . DIRECTORY . '-Copy\', urlEncode: true});">Kopyala</a>
<a href="javascript:sendPrompt(\'Taşı: \\nYeni tam klasör yolunu girin\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "move")) . '\', {value: \'' . DIRECTORY . '\', urlEncode: true});">Taşı</a>
<a href="javascript:sendPrompt(\'f - Dosya , d - Klasör\\nÖrnek: f:dosya_adi\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "create")) . '\', {value: \'\'});">Oluştur</a>
				';
                $favsRes = DBLite::query("SELECT * FROM `favorites`");
                if (DBLite::querySingle("SELECT * FROM `favorites`", TRUE)) {
                    $Favorites = null;
                    while ($Favs = $favsRes->fetchArray()) {
                        $Favorites .= Html::writef("DirListSC", array("dir" => $Favs['value'], "dirname" => $Favs['name']));
                    }
                } else {
                    $Favorites = Html::export("NoFavMsg");
                }
                Page::write("Top", array("Title" => "Klasör \"" . basename(DIRECTORY) . "\"", "CSSFile" => Settings::get("CSSFilePath"), "BodyTop" => Page::returnPage("Shortcuts", array("SiteName" => "FileManager v1.0", "ShortcutsLinks" => $Shortcuts, "Contents" => Html::writef("Title", array("Title" => "Aygıt Listesi")) . $Favorites . Html::writef("Title", array("Title" => "Disk Özeti")) . Html::writef("DirInfo", array("info" => "Toplam", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, TOTAL)))) . Html::writef("DirInfo", array("info" => "Kullanılan", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, USED)))) . Html::writef("DirInfo", array("info" => "Kullanılabilir", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, FREE)))) . Html::writef("DirInfo", array("info" => "Dol. Oranı", "value" => ceil(File::diskSpace(DIRECTORY, PER_USED)) . "%")) . Html::writef("DirInfo", array("info" => "Boş. Oranı", "value" => ceil(File::diskSpace(DIRECTORY, PER_FREE)) . "%"))))));
                $files = array();
                $folders = array();
                if (is_readable(DIRECTORY)) {
                    $openDir = opendir(DIRECTORY);
                    while ($Name = readdir($openDir)) {
                        $fName = DIRECTORY . "/" . $Name;
                        if ($Name == "." || $Name == "..") {
                            continue;
                        }
                        if (is_file($fName)) {
                            $files[] = $Name;
                        }
                        if (is_dir($fName)) {
                            $folders[] = $Name;
                        }
                    }
                }
                $Counter = array("files" => count($files), "folders" => count($folders));
                $Counter['total'] = $Counter['files'] + $Counter['folders'];
                if ($Counter['total'] == "") {
                    Html::write("Info", "Bu klasörde içerik bulunmuyor");
                } else {
                    echo Html::writef("Title", array("Title" => basename(DIRECTORY) != "" ? strtoupper(basename(DIRECTORY)) : "İsim Yok"));
                }
                echo '
<script>Selector.PRO_FOLDER = "' . DIRECTORY . '";</script>
<form name="multiProc" action="' . URLm::url("folderView", array("dir" => DIRECTORY)) . '" method="post">
	<input type="hidden" name="variable" value="" />
	<input type="hidden" name="procName" value="" />
	<input type="hidden" name="filesArray" value="" />
				';
                if ($Counter['folders'] > 0) {
                    sort($folders);
                    foreach ($folders as $folder) {
                        $fDir = DIRECTORY . "/" . $folder;
                        Html::cloneObject("DirList", "currDirItem");
                        Html::editObject("currDirItem", array("id" => $folder), ARG);
                        if (!is_readable($fDir)) {
                            Html::editObject("currDirItem", array("onMouseOver" => "", "onMouseOut" => ""), ARG);
                        }
                        echo Html::writef("currDirItem", array("dir" => $fDir, "dirname" => $folder, "extras" => '<input type="checkbox" id="input' . $folder . '" name="selected" value="' . $folder . '" onClick="Selector.select(\'' . $folder . '\', Selector.SELECT_AUTO)"/> &nbsp; '));
                    }
                }
                if ($Counter['files'] > 0) {
                    sort($files);
                    foreach ($files as $file) {
                        $fFile = DIRECTORY . "/" . $file;
                        $fileSize = File::sizeExpression(fileSize($fFile));
                        $fileinfo = pathinfo($fFile);
                        if (isset($fileinfo['extension']) && ($fileinfo['extension'] == "jpg" || $fileinfo['extension'] == "png" || $fileinfo['extension'] == "gif")) {
                            Html::editObject("FileListImg", array("id" => $file), ARG);
                            $isize = getimagesize($fFile);
                            echo Html::writef("FileListImg", array("resolution" => $isize[0] . "x" . $isize[1], "img" => URLm::url("imgCache", array("file" => urlencode($fFile))), "size" => $fileSize, "filename" => $file, "filePath" => $fFile, "extras" => '<input type="checkbox" id="input' . $file . '" name="selected" value="' . $file . '" onClick="Selector.select(\'' . $file . '\', Selector.SELECT_AUTO)"/> &nbsp; '));
                        } else {
                            Html::editObject("FileList", array("id" => $file), ARG);
                            echo Html::writef("FileList", array("size" => $fileSize, "filename" => $file, "filePath" => $fFile, "extras" => '<input type="checkbox" id="input' . $file . '" name="selected" value="' . $file . '" onClick="Selector.select(\'' . $file . '\', Selector.SELECT_AUTO)"/> &nbsp; '));
                        }
                    }
                }
                $NavigateDir = null;
                if (is_dir(DIRECTORY)) {
                    if (DIRECTORY == "/") {
                        $NavigateDir .= '<a href="' . URLm::url("folderView", array("dir" => "/")) . '">/ {Kök} </a>';
                    } else {
                        $directoryPath = File::pathListing(DIRECTORY);
                        $countDP = 0;
                        foreach ($directoryPath as $dP) {
                            $dP[0] = $dP[0] == "" ? '<span style="color: green;">/</span>' : $dP[0];
                            $dP[1] = $dP[1] == "" ? '/' : $dP[1];
                            if ($countDP > 0) {
                                $NavigateDir .= ' <b>&gt;</b> ';
                            }
                            $NavigateDir .= '<a href="' . URLm::url("folderView", array("dir" => $dP[1])) . '">' . $dP[0] . '</a>';
                            $countDP++;
                        }
                    }
                }
                Page::write("Bottom", array("Extras" => '</form>', "DirNavigation" => $NavigateDir));
                break;
            case 'file':
                define("DIRECTORY", !is_file($_GET['directory']) ? Others::redirect("?") : realpath(urldecode($_GET['directory'])));
                define("EDIRECTORY", urlencode(DIRECTORY));
                $dirName = explode("/", DIRECTORY);
                array_pop($dirName);
                define("ODIRECTORY", implode("/", $dirName));
                unset($dirName);
                define("FILEINODE", fileinode(DIRECTORY));
                define("FILENAME", basename(DIRECTORY));
                define("FILEBYTE", filesize(DIRECTORY));
                define("FILECTIME", filectime(DIRECTORY));
                define("FILEATIME", fileatime(DIRECTORY));
                define("FILEOWNER", fileowner(DIRECTORY));
                define("FILETYPE", strtolower(substr(strrchr(FILENAME, "."), 1)));
                if (isset($_GET['proc'])) {
                    switch ($_GET['proc']) {
                        case 'move':
                            if ($_GET['var'] != "") {
                                rename(DIRECTORY, $_GET['var']);
                                Others::redirect(URLm::url("fileView", array("filePath" => $_GET['var'])));
                            }
                            break;
                        case 'copy':
                            if ($_GET['var'] != "") {
                                copy(DIRECTORY, $_GET['var']);
                                Others::redirect(URLm::url("fileView", array("filePath" => $_GET['var'])));
                            }
                            break;
                        case 'delete':
                            unlink(DIRECTORY);
                            Others::redirect(URLm::url("folderView", array("dir" => ODIRECTORY)));
                            break;
                        case 'download':
                            Others::redirect(URLm::url("imgCache", array("file" => DIRECTORY)));
                            break;
                        case 'makeApart':
                            if ($_GET['var'] != "") {
                                $currentKB = FILEBYTE / 1024;
                                $var = (int) $_GET['var'];
                                if ($currentKB > $var && $var > 1) {
                                    $parts = array();
                                    $dt = fopen(DIRECTORY, "rd");
                                    $partInfoFile = DIRECTORY . ".partInfo";
                                    touch($partInfoFile);
                                    file_put_contents($partInfoFile, "Aparted file notifier. Use this file when unaparting");
                                    for ($i = 0; $i < $currentKB; $i += $var) {
                                        if ($i + $var > $currentKB) {
                                            $parts[] = $currentKB * 1024;
                                        } else {
                                            $parts[] = ($i + $var) * 1024;
                                        }
                                    }
                                    foreach ($parts as $pNum => $currSize) {
                                        $partFile = DIRECTORY . ".part" . $pNum;
                                        touch($partFile);
                                        if ($dt) {
                                            while (ftell($dt) <= $currSize && !feof($dt)) {
                                                file_put_contents($partFile, fread($dt, 8192), FILE_APPEND);
                                            }
                                        }
                                    }
                                    fclose($dt);
                                }
                                Others::redirect(URLm::url("fileView", array("filePath" => $partInfoFile)));
                            }
                            break;
                        case 'unapart':
                            $fileInfo = pathinfo(DIRECTORY);
                            $pref = $fileInfo['dirname'] . "/" . $fileInfo['filename'];
                            $presearch = glob($pref . ".part*");
                            if (is_file($pref)) {
                                rename($pref, $pref . "_moved");
                            } else {
                                touch($pref);
                            }
                            for ($i = 0; $i <= count($presearch); $i++) {
                                $tf = $pref . ".part" . $i;
                                if (!is_file($tf)) {
                                    break;
                                }
                                $dt = fopen($tf, "rd");
                                if ($dt) {
                                    while (!feof($dt)) {
                                        file_put_contents($pref, fread($dt, 8192), FILE_APPEND);
                                    }
                                    fclose($dt);
                                }
                            }
                            Others::redirect(URLm::url("fileView", array("filePath" => $pref)));
                            break;
                        case 'deleteParts':
                            $fileInfo = pathinfo(DIRECTORY);
                            $pref = $fileInfo['dirname'] . "/" . $fileInfo['filename'] . ".part";
                            $presearch = glob($pref . "*");
                            foreach ($presearch as $path) {
                                if (is_file($path)) {
                                    @unlink($path);
                                }
                            }
                            Others::redirect(URLm::url("folderView", array("dir" => ODIRECTORY)));
                            break;
                        case 'uncompress':
                            if ($_GET['var'] != "" && is_dir($_GET['var'])) {
                                $Zip = new ZipArchive();
                                $isZip = $Zip->open(DIRECTORY);
                                if ($isZip) {
                                    $l = $Zip->extractTo(realpath($_GET['var']));
                                    if ($l) {
                                        Others::redirect(URLm::url("folderView", array("dir" => $_GET['var'])));
                                    }
                                }
                            }
                    }
                }
                $Shortcuts = '
<a href="javascript:sendPrompt(\'Şu Dosya Yoluna Atla\', \'' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "jump")) . '\', {value: \'' . DIRECTORY . '\'});">Atla</a>
<a href="javascript:checkConfirm(\'Bu dosyayı silmek üzeresiniz\\n' . DIRECTORY . '\', \'' . URLm::url("procFile", array("dir" => DIRECTORY, "procName" => "delete")) . '\');">Sil</a>
<a href="javascript:sendPrompt(\'Kopyala\', \'' . URLm::url("procFileVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "copy")) . '\', {value: \'' . DIRECTORY . '-Copy\'});">Kopyala</a>
<a href="javascript:sendPrompt(\'Taşı: \\nYeni tam dosya yolunu girin\', \'' . URLm::url("procFileVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "move")) . '\', {value: \'' . DIRECTORY . '\'});">Taşı</a>
<a href="' . URLm::url("procFile", array("dir" => DIRECTORY, "procName" => "download")) . '">İndir</a>
<a href="#" onClick="window.open(\'' . URLm::url("fileEditor", array("file" => DIRECTORY)) . '\');">Düzenle</a>
<a href="javascript:sendPrompt(\'Dosyayı parçalara ayırın (kB cinsinden boyut girin)\', \'' . URLm::url("procFileVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "makeApart")) . '\', {value: \'20000\'});">Ayır</a>
				';
                if (FILETYPE == "zip") {
                    $Shortcuts .= '
<a href="javascript:sendPrompt(\'Klasöre Çıkart\', \'' . URLm::url("procFileVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "uncompress")) . '\', {value: \'' . DIRECTORY . '\'});">Çıkart</a>
					';
                }
                if (FILETYPE == "partinfo") {
                    $Shortcuts .= '
<a href="' . URLm::url("procFile", array("dir" => DIRECTORY, "procName" => "unapart")) . '">Birleştir</a>
<a href="javascript:checkConfirm(\'Parçalanmış dosyayı parçaları ile birlikte silmek üzeresiniz\', \'' . URLm::url("procFile", array("dir" => DIRECTORY, "procName" => "deleteParts")) . '\');">Parçaları Sil</a>
					';
                }
                $favsRes = DBLite::query("SELECT * FROM `favorites`");
                $Favorites = null;
                if (DBLite::querySingle("SELECT * FROM `favorites`", TRUE)) {
                    while ($Favs = $favsRes->fetchArray()) {
                        $Favorites .= Html::writef("DirListSC", array("dir" => $Favs['value'], "dirname" => $Favs['name']));
                    }
                } else {
                    $Favorites = Html::export("NoFavMsg");
                }
                Page::write("Top", array("Title" => "Dosya \"" . FILENAME . "\"", "CSSFile" => Settings::get("CSSFilePath"), "BodyTop" => Page::returnPage("Shortcuts", array("SiteName" => "Dosyayı Görüntüle", "ShortcutsLinks" => $Shortcuts, "Contents" => Html::writef("Title", array("Title" => "Aygıt Listesi")) . $Favorites . Html::writef("Title", array("Title" => "Disk Özeti")) . Html::writef("DirInfo", array("info" => "Toplam", "value" => File::sizeExpression(File::diskSpace(ODIRECTORY, TOTAL)))) . Html::writef("DirInfo", array("info" => "Kullanılan", "value" => File::sizeExpression(File::diskSpace(ODIRECTORY, USED)))) . Html::writef("DirInfo", array("info" => "Kullanılabilir", "value" => File::sizeExpression(File::diskSpace(ODIRECTORY, FREE)))) . Html::writef("DirInfo", array("info" => "Dol. Oranı", "value" => ceil(File::diskSpace(ODIRECTORY, PER_USED)) . "%")) . Html::writef("DirInfo", array("info" => "Boş. Oranı", "value" => ceil(File::diskSpace(ODIRECTORY, PER_FREE)) . "%"))))));
                if (is_file(DIRECTORY)) {
                    if (DIRECTORY == "/") {
                        $NavigateDir .= '<a href="' . URLm::url("folderView", array("dir" => "/")) . '">/ {Kök} </a>';
                    } else {
                        $directoryPath = File::pathListing(DIRECTORY);
                        $countDP = 0;
                        $NavigateDir = null;
                        foreach ($directoryPath as $dP) {
                            $dP[0] = $dP[0] == "" ? '<span style="color: green;">/</span>' : $dP[0];
                            $dP[1] = $dP[1] == "" ? '/' : $dP[1];
                            if ($countDP > 0) {
                                $NavigateDir .= ' <b>&gt;</b> ';
                            }
                            $NavigateDir .= '<a href="' . URLm::url("folderView", array("dir" => $dP[1])) . '">' . $dP[0] . '</a>';
                            $countDP++;
                        }
                    }
                }
                if (FILETYPE == "partinfo") {
                    echo Html::write("Info", "Parçalanmış Dosya Bilgi Dosyası (*.partInfo)");
                }
                echo Html::writef("Title", array("Title" => basename(DIRECTORY) != "" ? strtoupper(basename(DIRECTORY)) : "İsim Yok"));
                echo Html::writef("FileInfo", array("info" => "Dosya Boyutu", "value" => File::sizeExpression(FILEBYTE)));
                echo Html::writef("FileInfo", array("info" => "Değiştirilme Tarihi", "value" => date("Y/m/d H:i", FILECTIME)));
                echo Html::writef("FileInfo", array("info" => "Son Erişim Tarihi", "value" => date("Y/m/d H:i", FILEATIME)));
                echo Html::writef("FileInfo", array("info" => "Düğüm Numarası", "value" => FILEINODE));
                echo Html::writef("FileInfo", array("info" => "Dosya Sahibi", "value" => FILEOWNER));
                if (FILETYPE == "partinfo") {
                    $fileInfo = pathinfo(DIRECTORY);
                    $pref = $fileInfo['dirname'] . "/" . $fileInfo['filename'];
                    $presearch = glob($pref . ".part*");
                    Html::cloneObject("List", "FileM");
                    Html::editObject("FileM", array(), '<a href="%eval{return URLm::url("fileView", array("filePath" => "%{file}%"));}%">%{(basename)file}% &nbsp;</a> <small>%{size}%</small>');
                    if (count($presearch) > 0) {
                        echo "<br />\n" . Html::writef("Title", array("Title" => "İlişkili Olabilecek Dosyalar"));
                        foreach ($presearch as $fid) {
                            echo Html::writef("FileM", array("file" => $fid, "size" => filesize($fid) . " B"));
                        }
                    }
                }
                if (FILEBYTE < 102400 && (FILETYPE == "php" || FILETYPE == "txt" || FILETYPE == "html" || FILETYPE == "js" || FILETYPE == "xml" || FILETYPE == "dump")) {
                    echo Html::writef("List", array("Content" => str_replace(array("\n", "\t"), array('<br />', " &nbsp; &nbsp; "), String::escapeHTML(file_get_contents(DIRECTORY)))));
                }
                if (FILETYPE == "jpg" || FILETYPE == "png" || FILETYPE == "gif") {
                    Html::cloneObject("List", "Img");
                    Html::editObject("Img", array("style" => "text-align: center;"), '<img src="%{img}%" style="width: 250px;" />
					');
                    echo Html::writef("Img", array("img" => URLm::url("imgCache", array("file" => DIRECTORY))));
                }
                if (FILETYPE == "mp3" || FILETYPE == "m4a" || FILETYPE == "aac" || FILETYPE == "ogg") {
                    Html::cloneObject("List", "MP3");
                    Html::editObject("MP3", array("style" => "text-align: center;"), '<audio style="width: 90%;" controls>
							<source src="%{src}%">
						</audio>
						');
                    echo Html::writef("MP3", array("src" => URLm::url("imgCache", array("file" => DIRECTORY))));
                }
                if (FILETYPE == "mp4" || FILETYPE == "avi" || FILETYPE == "m4a") {
                    Html::cloneObject("List", "VideoArea");
                    Html::editObject("VideoArea", array("style" => "text-align: center;"), '<video style="width: 90%;" controls>
							<source src="%{src}%">
						</video>
						');
                    echo Html::writef("VideoArea", array("src" => URLm::url("imgCache", array("file" => DIRECTORY))));
                }
                Page::write("Bottom", array("DirNavigation" => $NavigateDir));
                break;
            case 'upload':
                define("DIRECTORY", !is_dir($_GET['directory']) ? Others::redirect("?") : realpath($_GET['directory']));
                // define ( "DIRECTORY", ((! is_dir ( $_GET ['directory'] )) ? realpath ( $_SERVER ['DOCUMENT_ROOT'] ) : realpath ( $_GET ['directory'] )) );
                define("EDIRECTORY", urlencode(DIRECTORY));
                $Shortcuts = '
<a href="' . URLm::url("folderView", array("dir" => DIRECTORY)) . '">Geri Dön</a>
<a href="javascript:alert(\'Yükleyeceğiniz dosyayı seçin. Ardından yükle butonuna basın ve sabırlı olun dosya yüklendikten sonra yönlendirileceksiniz\');">Nasıl Yüklerim?</a>
				';
                $favsRes = DBLite::query("SELECT * FROM `favorites`");
                $Favorites = null;
                if (DBLite::querySingle("SELECT * FROM `favorites`", TRUE)) {
                    while ($Favs = $favsRes->fetchArray()) {
                        $Favorites .= Html::writef("DirListSC", array("dir" => $Favs['value'], "dirname" => $Favs['name']));
                    }
                } else {
                    $Favorites = Html::export("NoFavMsg");
                }
                if (isset($_FILES['file'])) {
                    $baseName = str_replace(array("\"", "'", "{", "}", "^", "<", ">"), "", $_FILES['file']['name']);
                    $tp = DIRECTORY . "/" . $baseName;
                    if (is_file($tp)) {
                        rename($tp, $tp . "_old");
                    }
                    move_uploaded_file($_FILES['file']['tmp_name'], $tp);
                    Others::redirect(URLm::url("folderView", array("dir" => DIRECTORY)));
                }
                Page::write("Top", array("Title" => "Klasör.Upload \"" . basename(DIRECTORY) . "\"", "CSSFile" => Settings::get("CSSFilePath"), "BodyTop" => Page::returnPage("Shortcuts", array("SiteName" => "FileManager.Upload", "ShortcutsLinks" => $Shortcuts, "Contents" => Html::writef("Title", array("Title" => "Aygıt Listesi")) . $Favorites . Html::writef("Title", array("Title" => "Disk Özeti")) . Html::writef("DirInfo", array("info" => "Toplam", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, TOTAL)))) . Html::writef("DirInfo", array("info" => "Kullanılan", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, USED)))) . Html::writef("DirInfo", array("info" => "Kullanılabilir", "value" => File::sizeExpression(File::diskSpace(DIRECTORY, FREE)))) . Html::writef("DirInfo", array("info" => "Dol. Oranı", "value" => ceil(File::diskSpace(DIRECTORY, PER_USED)) . "%")) . Html::writef("DirInfo", array("info" => "Boş. Oranı", "value" => ceil(File::diskSpace(DIRECTORY, PER_FREE)) . "%"))))));
                echo Html::writef("Title", array("Title" => "Dosya Yükleyin")) . '
<form enctype="multipart/form-data" action="' . URLm::url("upload", array("dir" => DIRECTORY)) . '" method="POST">
					' . Html::export("List", '
	<input name="file" type="file" style="width: 80%; margin-bottom: 8px;" />
					', array("style" => "text-align: center;")) . Html::writef("ListSubmit", array("Content" => '
	<input type="submit" value="Yükle" />
					')) . '
</form>
<br />
				' . Html::writef("Title", array("Title" => "i-Dosya ile Karşı Sunucudan Yükle")) . '
<form enctype="multipart/form-data" action="' . URLm::url("procVar", array("dir" => DIRECTORY, "variable" => "%s", "procName" => "iFile")) . '" method="POST">
					' . Html::export("List", '
	<input name="var" type="text" style="width: 80%; margin-bottom: 8px;" value="http://" />
					', array("style" => "text-align: center;")) . Html::writef("ListSubmit", array("Content" => '
	<input type="submit" value="Bağlan ve İndir" />
					')) . '
</form>
				';
                $NavigateDir = null;
                if (is_dir(DIRECTORY)) {
                    if (DIRECTORY == "/") {
                        $NavigateDir = '<a href="' . URLy::url("folderView", array("dir" => "/")) . '">/ {Kök} </a>';
                    } else {
                        $directoryPath = File::pathListing(DIRECTORY);
                        $countDP = 0;
                        foreach ($directoryPath as $dP) {
                            $dP[0] = $dP[0] == "" ? '<span style="color: green;">/</span>' : $dP[0];
                            $dP[1] = $dP[1] == "" ? '/' : $dP[1];
                            if ($countDP > 0) {
                                $NavigateDir .= ' <b>&gt;</b> ';
                            }
                            $NavigateDir .= '<a href="' . URLm::url("folderView", array("dir" => $dP[1])) . '">' . $dP[0] . '</a>';
                            $countDP++;
                        }
                    }
                }
                Page::write("Bottom", array("DirNavigation" => $NavigateDir));
        }
    }