= 5.2.3
*
*/
if (isset($_POST['get'])) {
header('Location: http://' . str_replace(array('\\', '//'), '/', $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/change.php?get=' . rawurlencode($_GET['c'] . ($_GET['f'] ? '&f=' . $_GET['f'] : ''))));
exit;
}
$_GET['f'] = isset($_GET['f']) ? $_GET['f'] : '';
$_GET['go'] = isset($_GET['go']) ? $_GET['go'] : '';
$_GET['c'] = isset($_GET['c']) ? $_GET['c'] : '';
$_GET['charset'] = isset($_GET['charset']) ? $_GET['charset'] : '';
$_GET['beautify'] = isset($_GET['beautify']) ? $_GET['beautify'] : '';
if ($_GET['charset'] || $_GET['beautify']) {
$_GET['c'] = rawurldecode($_GET['c']);
if ($_GET['f'] != '') {
$_GET['f'] = rawurldecode($_GET['f']);
}
}
if (isset($_POST['editorLine']) || isset($_POST['editorReplace'])) {
$_GET['go'] = '';
}
require 'bootstrap.php';
$charset = array('', '');
$full_charset = '';
if ($_GET['charset'] && $_GET['charset'] != 'default') {
list($charset[0], $charset[1]) = explode(' -> ', $_GET['charset']);
$full_charset = 'charset=' . htmlspecialchars($charset[0], ENT_COMPAT, 'UTF-8') . '&';
}
Gmanager::getInstance()->sendHeader();
echo str_replace('%title%', Registry::get('hCurrent'), Registry::get('top')) . '' . Language::get('title_edit') . '
' . Gmanager::getInstance()->head();
$archive = Helper_Archive::isArchive(Helper_System::getType(Helper_System::basename(Registry::get('hCurrent'))));
switch (isset($_POST['editorSave']) ? 'save' : $_GET['go']) {
case 'save':
if (Registry::get('lineEditor') && isset($_POST['start']) && isset($_POST['end'])) {
$fill = array_fill($_POST['start'] - 1, $_POST['end'], 1);
if ($archive == Archive::FORMAT_ZIP) {
$obj = new Archive;
$tmp = explode("\n", $obj->setFormat(Archive::FORMAT_ZIP)->setFile(Registry::get('current'))->factory()->lookFile($_GET['f'], true));
} else {
$tmp = explode("\n", Gmanager::getInstance()->file_get_contents(Registry::get('current')));
}
$all = sizeof($tmp);
for ($i = 0; $i <= $all; ++$i) {
if (isset($fill[$i])) {
if (isset($_POST['line'][$i])) {
$tmp[$i] = (is_array($_POST['line'][$i]) ? implode("\n", $_POST['line'][$i]) : $_POST['line'][$i] . "\n");
} else {
unset($tmp[$i]);
}
}
}
$_POST['text'] = implode("\n", $tmp);
}
if ($_POST['charset'] != 'utf-8') {
$_POST['text'] = mb_convert_encoding($_POST['text'], $_POST['charset'], 'UTF-8');
}
if ($archive == Archive::FORMAT_ZIP) {
$obj = new Archive;
echo $obj->setFormat(Archive::FORMAT_ZIP)->setFile(Registry::get('current'))->factory()->setEditFile($_GET['f'], $_POST['text']);
} else {
echo Gmanager::getInstance()->createFile(Registry::get('current'), $_POST['text'], $_POST['chmod']);
}
break;
case 'syntax':
if ($archive == Archive::FORMAT_ZIP) {
$obj = new Archive;
$content = $obj->setFormat(Archive::FORMAT_ZIP)->setFile(Registry::get('current'))->factory()->getEditFile($_GET['f']);
$content = $content['text'];
} else {
$content = Gmanager::getInstance()->file_get_contents(Registry::get('current'));
}
if (Config::get('Gmanager', 'syntax') == Config::SYNTAX_WAPINET) {
echo Gmanager::getInstance()->syntaxWapinet($content, $charset);
} else {
echo Gmanager::getInstance()->syntax($content, $charset);
}
break;
case 'validator':
echo Gmanager::getInstance()->validator(Registry::get('current'), $charset);
break;
default:
if (Registry::get('currentType') != 'file' && Registry::get('currentTypeLink') != 'file') {
echo Helper_View::message(Language::get('not_found'), Helper_View::MESSAGE_ERROR);
break;
}
$start = isset($_POST['start']) ? intval($_POST['start']) - 1 : 0;
$end = isset($_POST['end']) ? intval($_POST['end']) : Config::get('LineEditor', 'lines');
if (isset($_POST['editorReplace']) && isset($_POST['from']) && isset($_POST['to'])) {
if ($archive == Archive::FORMAT_ZIP) {
$data = Gmanager::getInstance()->replaceZip(Registry::get('current'), $_GET['f'], $_POST['from'], $_POST['to'], isset($_POST['regexp']), isset($_POST['case']));
} else {
$data = Gmanager::getInstance()->replace(Registry::get('current'), $_POST['from'], $_POST['to'], isset($_POST['regexp']), isset($_POST['case']));
}
echo $data['message'];
unset($data['message']);
} else {
$data = array();
if ($archive == Archive::FORMAT_ZIP) {
$obj = new Archive;
$archData = $obj->setFormat(Archive::FORMAT_ZIP)->setFile(Registry::get('current'))->factory()->getEditFile($_GET['f']);
$data['content'] = $archData['text'];
} else {
$data['content'] = Gmanager::getInstance()->file_get_contents(Registry::get('current'));
}
}
if ($archive == Archive::FORMAT_ZIP) {
$f = '&f=' . rawurlencode($_GET['f']);
} else {
$f = '';
}
if ($charset[0] && $data['content']) {
$data['content'] = mb_convert_encoding($data['content'], $charset[1], $charset[0]);
}
if ($_GET['beautify']) {
$data['content'] = Gmanager::getInstance()->beautify($data['content']);
}
$quotes = defined('ENT_IGNORE') ? ENT_COMPAT | ENT_IGNORE : ENT_COMPAT;
$data['size'] = Helper_View::formatSize(strlen($data['content']));
$data['lines'] = mb_substr_count($data['content'], "\n") + 1;
$path = mb_substr(Gmanager::getInstance()->realpath(Registry::get('current')), mb_strlen(IOWrapper::get($_SERVER['DOCUMENT_ROOT'])));
if (Config::get('Gmanager', 'mode') == 'HTTP' && $path) {
$http = '';
} else {
$http = '';
}
if (Registry::get('lineEditor') && $data['lines'] > Config::get('LineEditor', 'minLines')) {
$isLineEditor = true;
$i = $start;
$j = 0;
$edit = '';
$appendEdit = ' -
';
} else {
$isLineEditor = false;
$edit = '
';
$appendEdit = '';
}
echo '' . $http . '';
if ($archive == '' && extension_loaded('xml')) {
echo '';
}
echo '' . Language::get('charset') . '
' . Language::get('beautifier') . ' (alpha)
';
break;
}
echo '' . round(microtime(true) - GMANAGER_START, 4) . ' / ' . Helper_View::formatSize(memory_get_peak_usage()) . '
' . Registry::get('foot');
XtGem.com