Prechádzať zdrojové kódy

Add maintenance html ckeditor + add htaccess template see BT#12478

jmontoyaa 8 rokov pred
rodič
commit
1d19142825
1 zmenil súbory, kde vykonal 43 pridanie a 2 odobranie
  1. 43 2
      plugin/edit_htaccess/plugin.php

+ 43 - 2
plugin/edit_htaccess/plugin.php

@@ -13,6 +13,8 @@ $plugin_info['author'] = 'Julio Montoya';
 $editFile = false;
 
 $file = api_get_path(SYS_PATH).'.htaccess';
+$maintenanceHtml = api_get_path(SYS_PATH).'maintenance.html';
+
 if (!file_exists($file)) {
     Display::addFlash(
         Display::return_message(
@@ -73,12 +75,50 @@ if ($editFile && api_is_platform_admin()) {
 
     $form = new FormValidator('htaccess');
     $form->addHtml('The following text will be added in the /.htaccess');
-    $form->addTextarea('text', get_lang('Text'), ['rows' => '15']);
+    $form->addText('ip', 'IP');
+    $form->addTextarea('text', 'htaccess', ['rows' => '15']);
+
+    $config = [
+        'ToolbarSet' => 'Documents',
+        'Width' => '100%',
+        'Height' => '400',
+        //'fullPage' => true,
+        'allowedContent' => true
+    ];
+
+    $form->addHtmlEditor(
+        'maintenance',
+        'Maintenance',
+        true,
+        true,
+        $config
+    );
+
     $form->addButtonSave(get_lang('Save'));
-    $form->setDefaults(['text' => $block]);
+    $content = file_get_contents($maintenanceHtml);
+    if (empty($content)) {
+        $content = '<html><head><title></title></head><body></body></html>';
+    }
+    $ip = api_get_plugin_setting('edit_htaccess', 'ip');
+    $ip = api_get_real_ip();
+    $ipSubList = explode('.', $ip);
+    $implode = implode('\.', $ipSubList);
+    $append = api_get_configuration_value('url_append');
+    $default = '
+RewriteCond %{REQUEST_URI} !/'.$append.'/maintenance.html$ 
+RewriteCond %{REMOTE_HOST} !^'.$implode.'
+RewriteRule $ /'.$append.'/maintenance.html [R=302,L]
+';
+    if (empty($block)) {
+        $block = $default;
+    }
+
+    $form->setDefaults(['text' => $block, 'maintenance' => $content, 'ip' => $ip]);
+
     if ($form->validate()) {
         $values = $form->getSubmitValues();
         $text = $values['text'];
+        $content = $values['maintenance'];
 
         // Restore htaccess with out the block
         $newFileContent = $contentNoBlock;
@@ -103,6 +143,7 @@ if ($editFile && api_is_platform_admin()) {
             );
             file_put_contents($file, $originalContent);
         } else {
+            file_put_contents($maintenanceHtml, $content);
             Display::addFlash(Display::return_message('Saved'));
         }
     }