home
/
aioutajg
/
playpauseonline.com
/
admin
/
ckeditor
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] ckeditor
N/A
[DIR] composer_home
N/A
ckinstall.php
4.65 KB
Rename
Delete
composer-setup.php
57.07 KB
Rename
Delete
composer.phar
2.97 MB
Rename
Delete
<?php ini_set('display_errors', 1); error_reporting(E_ALL); // Define installation directory for CKEditor $installDir = __DIR__ . '/ckeditor'; // Composer binary path $composerBinary = __DIR__ . '/composer.phar'; // Function to check if Composer is installed function isComposerInstalled($composerBinary) { return file_exists($composerBinary); } // Function to download Composer function downloadComposer($composerBinary) { echo "Downloading Composer...\n"; $composerUrl = 'https://getcomposer.org/installer'; $installer = fopen($composerUrl, 'rb'); if ($installer === false) { die("Error: Could not download Composer.\n"); } $composerFile = fopen($composerBinary, 'wb'); if ($composerFile === false) { die("Error: Could not create Composer file.\n"); } while (!feof($installer)) { fwrite($composerFile, fread($installer, 8192)); } fclose($installer); fclose($composerFile); echo "Composer downloaded successfully.\n"; } // Make Composer executable (on Unix-based systems) function makeComposerExecutable($composerBinary) { // This will only work on Unix-based systems, not Windows if (stripos(PHP_OS, 'WIN') === false) { echo "Setting executable permissions...\n"; chmod($composerBinary, 0755); echo "Permissions set.\n"; } } // Set COMPOSER_HOME environment variable if needed function setComposerHome() { $composerHome = __DIR__ . '/composer_home'; if (!file_exists($composerHome)) { mkdir($composerHome, 0700); } putenv('COMPOSER_HOME=' . $composerHome); echo "Setting COMPOSER_HOME environment variable...\n"; } // Run Composer install function runComposerInstall($composerBinary, $installDir) { echo "Running Composer install...\n"; exec("php $composerBinary install --working-dir=" . escapeshellarg($installDir) . " 2>&1", $output, $returnVar); if ($returnVar !== 0) { echo "Error: Composer install failed.\n"; echo "Output:\n" . implode("\n", $output) . "\n"; } else { echo "Composer install completed successfully.\n"; } } // Check if Composer is installed, and if not, download it if (!isComposerInstalled($composerBinary)) { downloadComposer($composerBinary); makeComposerExecutable($composerBinary); setComposerHome(); } // Proceed with CKEditor installation if (is_dir($installDir)) { echo "CKEditor is already installed in '$installDir'. Please remove this directory if you want to reinstall.\n"; exit; } // Create the directory for CKEditor installation if (!mkdir($installDir, 0777, true)) { echo "Failed to create directory $installDir. Check your file permissions.\n"; exit; } // Set up Composer configuration for CKEditor $composerJson = [ 'name' => 'ckeditor5/ckeditor5-build-classic', 'description' => 'CKEditor 5 build for Classic editor with ImageUpload', 'require' => [ '@ckeditor/ckeditor5-build-classic' => '^39.0', '@ckeditor/ckeditor5-upload' => '^39.0' ] ]; // Write the composer.json file file_put_contents($installDir . '/composer.json', json_encode($composerJson, JSON_PRETTY_PRINT)); // Run Composer install command to download CKEditor and dependencies runComposerInstall($composerBinary, $installDir); // Configure CKEditor build to support Image Upload echo "Configuring CKEditor for Image Upload...\n"; // Create the custom build of CKEditor $ckeditorJs = <<<'JS' import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; import Image from '@ckeditor/ckeditor5-image/src/image'; import ImageUpload from '@ckeditor/ckeditor5-upload/src/imageupload'; ClassicEditor .create(document.querySelector('#editor'), { plugins: [Image, ImageUpload], toolbar: ['imageUpload', 'undo', 'redo', 'bold', 'italic', 'link'], simpleUpload: { uploadUrl: '/admin/upload_image.php', headers: { 'X-CSRF-TOKEN': '<?= $_SESSION['csrf_token'] ?>' } } }) .catch(error => { console.error('Error initializing CKEditor:', error); }); JS; file_put_contents($installDir . '/ckeditor-config.js', $ckeditorJs); echo "CKEditor configuration for image upload is complete.\n"; // Final instructions to the user echo "CKEditor has been installed successfully at '/admin/ckeditor'.\n"; echo "You can now use CKEditor with the Image Upload functionality.\n"; echo "Please configure the image upload handler (upload_image.php) as needed.\n"; echo "Make sure the directory permissions are set correctly for file uploads.\n"; ?>
Save