Переглянути джерело

Edit extra content in admin panels - refs BT#9325

Angel Fernando Quiroz Campos 10 роки тому
батько
коміт
50c9b18219

+ 27 - 0
main/inc/ajax/admin.ajax.php

@@ -76,6 +76,33 @@ switch ($action) {
         file_put_contents($fullFilePath, $content);
 
         break;
+
+    case 'get_extra_content':
+        $blockId = isset($_POST['block']) ? Security::remove_XSS($_POST['block']) : null;
+
+        if (empty($blockId)) {
+            die;
+        }
+
+        if (api_is_multiple_url_enabled()) {
+            $accessUrlId = api_get_current_access_url_id();
+
+            if ($accessUrlId == -1) {
+                die;
+            }
+
+            $urlInfo = api_get_access_url($accessUrlId);
+            $url = api_remove_trailing_slash(preg_replace('/https?:\/\//i', '', $urlInfo['url']));
+            $cleanUrl = replace_dangerous_char($url);
+            $cleanUrl = str_replace('/', '-', $cleanUrl);
+
+            $newUrlDir = api_get_path(SYS_PATH) . "home/$cleanUrl/admin/";
+        } else {
+            $newUrlDir = api_get_path(SYS_PATH) . "home/admin/";
+        }
+
+        echo file_get_contents("{$newUrlDir}{$blockId}_extra.html");
+        break;
 }
 
 

+ 14 - 3
main/template/default/admin/settings_index.tpl

@@ -12,10 +12,21 @@ $(document).ready(function() {
 
         var $self = $(this);
 
-        $('#extra-block').val($self.data('id'));
-        $('#modal-extra-title').text($self.data('label'));
+        var extraContent = $.ajax('{{ _p.web_ajax }}admin.ajax.php', {
+            type: 'post',
+            data: {
+                a: 'get_extra_content',
+                block: $self.data('id')
+            }
+        });
 
-        $('#modal-extra').modal('show');
+        $.when(extraContent).done(function(content) {
+            $('#extra-content').val(content);
+            $('#extra-block').val($self.data('id'));
+            $('#modal-extra-title').text($self.data('label'));
+
+            $('#modal-extra').modal('show');
+        });
     });
 
     $('#btn-block-editor-save').on('click', function(e) {