/** * Query * * @param string $host * @param string $name * @param string $pass * @param string $db * @param string $charset * @param string $data * @return string */ public function query($host = null, $name = null, $pass = null, $db = '', $charset = null, $data = '') { $connect = $this->_connect($host, $name, $pass, $db, $charset); if (is_object($connect)) { $this->_resource = $connect; } else { return $connect; } $i = $time = $rows = 0; $out = null; foreach (SQL::parser($data) as $q) { $result = array(); $str = ''; $q = rtrim($q, ';'); $start = microtime(true); $r = $this->_resource->query($q . ';'); $time += microtime(true) - $start; if (!$r) { return Helper_View::message(Language::get('sql_query_false'), Helper_View::MESSAGE_ERROR_EMAIL) . '<div><code>' . $this->_resource->error . '</code></div>'; } else { if (is_object($r) && ($row = $r->num_rows)) { $rows += $row; while ($row = $r->fetch_assoc()) { $result[] = $row; } } elseif ($r === true) { $rows += $this->_resource->affected_rows; } } $i++; if ($result) { $str .= '<tr><th> ' . implode(' </th><th> ', array_map('htmlspecialchars', array_keys($result[0]))) . ' </th></tr>'; foreach ($result as $v) { $str .= '<tr class="border">'; foreach ($v as $value) { $str .= $value === null ? '<td><pre style="margin:0;">NULL</pre></td>' : '<td><pre style="margin:0;"><a href="#sql" onclick="Gmanager.paste(\'' . rawurlencode($value) . '\');">' . htmlspecialchars($value, ENT_NOQUOTES) . '</a></pre></td>'; } $str .= '</tr>'; } $out .= '<table class="telo">' . $str . '</table>'; } } $this->_resource->close(); return Helper_View::message(Language::get('sql_true') . $i . '<br/>' . Language::get('sql_rows') . $rows . '<br/>' . str_replace('%time%', round($time, 6), Language::get('microtime')), Helper_View::MESSAGE_SUCCESS) . $out; }
} } elseif ($archive == Archive::FORMAT_GZ) { echo Gmanager::getInstance()->gz(Registry::get('current')) . '<div class="ch"><form action="?gmanager_action=change&c=' . Registry::get('rCurrent') . '&go=1" method="post"><div><input type="submit" name="gz_extract" value="' . Language::get('extract_archive') . '"/></div></form></div>'; $if = true; } else { echo Gmanager::getInstance()->look(Registry::get('current'), $itype, $idown); } if (Gmanager::getInstance()->file_exists(Registry::get('current')) || Registry::get('currentType') == 'link') { if ($archive) { $d = Helper_View::getRawurl(dirname(Registry::get('current'))); $found = '<div class="rb">' . Language::get('create') . ' <a href="?gmanager_action=change&go=create_file&c=' . $d . '">' . Language::get('file') . '</a> / <a href="?gmanager_action=change&go=create_dir&c=' . $d . '">' . Language::get('dir') . '</a><br/></div><div class="rb"><a href="?gmanager_action=change&go=upload&c=' . $d . '">' . Language::get('upload') . '</a><br/></div><div class="rb"><a href="?gmanager_action=change&go=mod&c=' . $d . '">' . Language::get('mod') . '</a><br/></div>'; } else { $found = '<form action="?' . htmlspecialchars($_SERVER['QUERY_STRING'], ENT_COMPAT, 'UTF-8') . '" method="post"><div><input name="limit" value="' . Registry::get('limit') . '" type="text" onkeypress="return Gmanager.number(event)" class="pinput"/><input type="submit" value="' . Language::get('limit') . '"/></div></form><div class="rb">' . Language::get('create') . ' <a href="?gmanager_action=change&go=create_file&c=' . Registry::get('rCurrent') . '">' . Language::get('file') . '</a> / <a href="?gmanager_action=change&go=create_dir&c=' . Registry::get('rCurrent') . '">' . Language::get('dir') . '</a><br/></div><div class="rb"><a href="?gmanager_action=change&go=upload&c=' . Registry::get('rCurrent') . '">' . Language::get('upload') . '</a><br/></div><div class="rb"><a href="?gmanager_action=change&go=mod&c=' . Registry::get('rCurrent') . '">' . Language::get('mod') . '</a><br/></div>'; } } else { $found = '<div class="red">' . Language::get('file_not_found') . '(' . Registry::get('hCurrent') . ')' . '<br/></div>'; } $tm = '<div class="rb">' . round(microtime(true) - GMANAGER_START, 4) . ' / ' . Helper_View::formatSize(memory_get_peak_usage()) . '<br/></div>'; if (!$if && !$f && !$ia) { echo '</table><div class="ch"><input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="full_chmod" value="' . Language::get('chmod') . '"/> <input onclick="return (Gmanager.checkForm(document.forms[1],\'check[]\') && Gmanager.delNotify());" type="submit" name="full_del" value="' . Language::get('del') . '"/> <input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="full_rename" value="' . Language::get('change') . '"/> <input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="fname" value="' . Language::get('rename') . '"/> <input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="create_archive" value="' . Language::get('create_archive') . '"/></div></div></form>' . $found . $tm . Registry::get('foot'); } elseif ($f) { echo '</table><div class="ch"><input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="full_extract" value="' . Language::get('extract_file') . '"/> <input type="submit" name="mega_full_extract" value="' . Language::get('extract_archive') . '"/>'; if ($archive != Archive::FORMAT_RAR) { echo ' <input type="submit" name="add_archive" value="' . Language::get('add_archive') . '"/> <input onclick="return (Gmanager.checkForm(document.forms[1],\'check[]\') && Gmanager.delNotify());" type="submit" name="del_archive" value="' . Language::get('del') . '"/>'; } echo '</div></div></form>' . $found . $tm . Registry::get('foot'); } elseif ($ia) { echo '</table><div class="ch"><input type="hidden" name="add_archive" value="' . rawurlencode($_GET['add_archive']) . '"/><input onclick="return Gmanager.checkForm(document.forms[1],\'check[]\');" type="submit" name="name" value="' . Language::get('add_archive') . '"/></div></div></form>' . $found . $tm . Registry::get('foot'); } else { echo $found . $tm . Registry::get('foot'); }
/** * renameFile * * @param string $name * @param string $arch_name * @param bool $del * @param bool $overwrite * @return string */ public function renameFile($name, $arch_name, $del = false, $overwrite = false) { $tmp = Config::getTemp() . '/GmanagerZip' . GMANAGER_REQUEST_TIME; $zip = $this->_open(); $folder = ''; $sysName = IOWrapper::set($name); foreach ($zip->extract(PCLZIP_OPT_PATH, $tmp) as $f) { if ($f['status'] != 'ok') { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } return Helper_View::message(Language::get('extract_false'), Helper_View::MESSAGE_ERROR); break; } if ($arch_name == $f['stored_filename']) { $folder = $f['folder']; } } if (file_exists($tmp . '/' . $sysName)) { if ($overwrite) { if ($folder) { Helper_System::clean($tmp . '/' . $sysName); } else { unlink($tmp . '/' . $sysName); } } else { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } return Helper_View::message(Language::get('overwrite_false'), Helper_View::MESSAGE_ERROR); } } if ($folder) { @mkdir($tmp . '/' . $sysName, 0755, true); } elseif (!is_dir($tmp . '/' . dirname($sysName))) { @mkdir($tmp . '/' . dirname($sysName), 0755, true); } if ($folder) { // переделать на ftp if ($del) { $result = Gmanager::getInstance()->moveFiles($tmp . '/' . $arch_name, $tmp . '/' . $name); } else { $result = Gmanager::getInstance()->copyFiles($tmp . '/' . $arch_name, $tmp . '/' . $name); } } else { if ($del) { $result = rename($tmp . '/' . $arch_name, $tmp . '/' . $sysName); } else { $result = copy($tmp . '/' . $arch_name, $tmp . '/' . $sysName); } } if (!$result) { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_false')), Helper_View::MESSAGE_ERROR); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_false')), Helper_View::MESSAGE_ERROR); } } } $result = $zip->create($tmp, PCLZIP_OPT_REMOVE_PATH, mb_substr($tmp, mb_strlen(dirname(dirname($tmp))))) != 0; Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd($this->_name); } if ($result) { if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_true')), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_true')), Helper_View::MESSAGE_SUCCESS); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_true')), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_true')), Helper_View::MESSAGE_SUCCESS); } } } else { if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_false')), Helper_View::MESSAGE_ERROR); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_false')), Helper_View::MESSAGE_ERROR); } } } }
/** * renameFile * * @param string $name * @param string $arch_name * @param bool $del * @param bool $overwrite * @return string */ public function renameFile($name, $arch_name, $del = false, $overwrite = false) { $tmp = Config::getTemp() . '/GmanagerTar' . GMANAGER_REQUEST_TIME; $tgz = $this->_open(); $sysName = IOWrapper::set($name); $folder = ''; foreach ($tgz->listContent() as $f) { if ($arch_name == $f['filename']) { $folder = $f['typeflag'] == 5 ? 1 : 0; break; } } if (!$tgz->extract($tmp)) { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } return Helper_View::message(Language::get('extract_false'), Helper_View::MESSAGE_ERROR); } if (file_exists($tmp . '/' . $sysName)) { if ($overwrite) { if ($folder) { Helper_System::clean($tmp . '/' . $sysName); } else { unlink($tmp . '/' . $sysName); } } else { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } return Helper_View::message(Language::get('overwrite_false'), Helper_View::MESSAGE_ERROR); } } if ($folder) { @mkdir($tmp . '/' . $sysName, 0755, true); } else { @mkdir($tmp . '/' . dirname($sysName), 0755, true); } if ($folder) { if ($del) { $result = Gmanager::getInstance()->moveFiles($tmp . '/' . $name, $tmp . '/' . $arch_name); } else { $result = Gmanager::getInstance()->copyFiles($tmp . '/' . $name, $tmp . '/' . $arch_name); } } else { if ($del) { $result = rename($tmp . '/' . $arch_name, $tmp . '/' . $sysName); } else { $result = copy($tmp . '/' . $arch_name, $tmp . '/' . $sysName); } } if (!$result) { Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd(); } if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_false')), Helper_View::MESSAGE_ERROR); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_false')), Helper_View::MESSAGE_ERROR); } } } $result = $tgz->createModify($tmp, '.', $tmp); Helper_System::clean($tmp); if (Config::get('Gmanager', 'mode') == 'FTP') { Gmanager::getInstance()->ftpArchiveEnd($this->_name); } if ($result) { if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_true')), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_true')), Helper_View::MESSAGE_SUCCESS); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_true')), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_true')), Helper_View::MESSAGE_SUCCESS); } } } else { if ($folder) { if ($del) { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_files_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%title%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_files_false')), Helper_View::MESSAGE_ERROR); } } else { if ($del) { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('move_file_false')), Helper_View::MESSAGE_ERROR); } else { return Helper_View::message(str_replace('%file%', htmlspecialchars($arch_name, ENT_NOQUOTES), Language::get('copy_file_false')), Helper_View::MESSAGE_ERROR); } } } }
<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="<?php echo Helper_Route::loadRoute(''); ?> "><?php echo Helper_View::getWebsiteName(); ?> </a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav navbar-right"> <?php if (isset($user['id'])) { echo '<li><a href="'; echo Helper_Route::loadRoute('login/logout'); echo '">Logout</a></li>'; } else { echo '<li><a href="'; echo Helper_Route::loadRoute('login'); echo '">Login</a></li>'; } ?> </ul> </div><!--/.nav-collapse --> </div> </nav>
/** * renameFile * * @param string $name * @param string $arch_name * @param bool $del * @param bool $overwrite * @return string */ public function renameFile($name, $arch_name, $del = false, $overwrite = false) { return Helper_View::message(Language::get('not_supported'), Helper_View::MESSAGE_ERROR); }
/** * getListSearchArray * * @param string $where where * @param string $pattern regexp pattern * @param bool $inText in text * @param int $limit max file size * @param bool $archive in gz archives * @param string $t target * @return array */ private static function _getListSearchArray($where = '', $pattern = '', $inText = false, $limit = 8388608, $archive = false, $t = '') { static $count = 0; static $page = array(); $where = str_replace('//', '/', $where . '/'); $obj = Gmanager::getInstance(); foreach ($obj->iterator($where) as $f) { if ($obj->is_dir($where . $f)) { self::_getListSearchArray($where . $f . '/', $pattern, $inText, $limit, $archive, $t); continue; } $type = htmlspecialchars(Helper_System::getType(Helper_System::basename($f)), ENT_NOQUOTES); $arch = Helper_Archive::isArchive($type); $stat = $obj->stat($where . $f); $pname = $pdown = $ptype = $psize = $pchange = $pdel = $pchmod = $pdate = $puid = $pgid = $pn = $in = null; if ($inText) { if ($stat['size'] > $limit || $arch && !$archive || $arch && $archive && $type != Archive::FORMAT_GZ) { continue; } $in = preg_match_all($pattern, $type == Archive::FORMAT_GZ ? $obj->getGzContent($where . $f) : $obj->file_get_contents($where . $f), $match); unset($match); if ($in) { $in = ' (' . $in . ')'; } else { continue; } } else { $in = preg_match_all($pattern, $f, $match); unset($match); if (!$in) { continue; } } $count++; //$h_file = htmlspecialchars($c . $f, ENT_COMPAT); $r_file = Helper_View::getRawurl($where . $f); if (Config::get('Display', 'name')) { $name = htmlspecialchars(Helper_View::strLink($where . $f, true), ENT_NOQUOTES); if ($arch) { $pname = '<a href="index.php?' . $r_file . '">' . $name . '</a>' . $in . ''; } else { $pname = '<a href="edit.php?' . $r_file . '"' . $t . '>' . $name . '</a>' . $in . ''; } } if (Config::get('Display', 'size')) { $psize = '' . Helper_View::formatSize($stat['size']) . ''; } if (Config::get('Display', 'chmod')) { $pchmod = '<a href="change.php?go=chmod&c=' . $r_file . '">' . $obj->lookChmod($where . $f) . '</a>'; } $page[$f] = '<input name="check[]" type="checkbox" value="' . $r_file . '"/>' . $pname . $psize . $pchmod . $pn; } //natcasesort($page); return $page; }
/** * fname * * @param string $f * @param string $name * @param int $register * @param int $i * @param bool $overwrite * @return string */ public function fname($f = '', $name = '', $register = 0, $i = 0, $overwrite = false) { // [replace=from,to] - replace // [n=0] - meter // [f] - type // [name] - name // [date] - date // [rand=8,16] - random // $f = rawurldecode($f); $info = pathinfo($f); $info['dirname'] = IOWrapper::get($info['dirname']); $info['basename'] = IOWrapper::get($info['basename']); $info['extension'] = IOWrapper::get($info['extension']); $info['filename'] = IOWrapper::get($info['filename']); if (preg_match_all('/\\[replace=([^,]),([^\\]])/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[1], $var[2], $info['filename'] . '.' . $info['extension']); } } if (preg_match_all('/\\[n=*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[0], $var[1] + $i, $name); } } if (preg_match_all('/\\[rand=*(\\d*),*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[0], mb_substr(str_shuffle(Config::get('Gmanager', 'rand')), 0, mt_rand(!empty($var[1]) ? $var[1] : 8, !empty($var[2]) ? $var[2] : 16)), $name); } } $name = str_replace('[f]', $info['extension'], $name); $name = str_replace('[name]', $info['filename'], $name); $name = str_replace('[date]', strftime('%d_%m_%Y'), $name); if ($register == 1) { $tmp = mb_strtolower($name); } elseif ($register == 2) { $tmp = mb_strtoupper($name); } else { $tmp = $name; } if (!$overwrite && self::$_instance->file_exists($info['dirname'] . '/' . $tmp)) { return Helper_View::message(Language::get('overwrite_false') . ' (' . htmlspecialchars($info['dirname'] . '/' . $tmp, ENT_NOQUOTES) . ')', Helper_View::MESSAGE_ERROR); } if (self::$_instance->rename($f, $info['dirname'] . '/' . $tmp)) { return Helper_View::message($info['basename'] . ' - ' . $tmp, Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(Errors::get() . ' ' . $info['basename'] . ' -> ' . $tmp, Helper_View::MESSAGE_ERROR_EMAIL); } }