5

我已经将 TinyMCE 安装到我的 codeigniter 构建中,并且我已经包含了图像管理器。

在图像管理器插件(保存在 public/assets 文件夹中)中有一个 php 配置文件,它定义了图像和文件路径常量。

define('DIR_IMAGES', 'images/path/here'); etc

我遇到的问题是我需要根据数据库中的某些数据(例如template_name)动态路径,但我不知道如何将正确的文件包含到配置文件中,以便查看动态信息。

因此,如果用户保存了 template_name,那么我需要将路径设为

define('DIR_IMAGES', $template_name.'images/path/here');

我还在 core/MY_Controller.php 中的常量中定义了 template_name,因此如果我可以访问该变量,这将比查询数据库更容易,但任何一种方式都可以。

谁能帮帮我,非常感谢!

4

2 回答 2

2

我刚刚自定义了 tinymce 图像,但没有使用 TinyMCE 图像管理器。

但我使用下面链接中的教程。

如何实现自定义文件浏览器

<!-- Start tinymce custom -->
<script type="text/javascript">
 tinyMCE.init({

  <!-- 
      your tiny mce init here 
   --->


   <!-- custom file browser callback -->
   file_browser_callback : 'myFileBrowser',
 });

function myFileBrowser (field_name, url, type, win) {
  // this is your dynamic image path
  var cmsURL = "<?php echo base_url() ?>admin/media/select_image";  <== you can set as you wish
if (cmsURL.indexOf("?") < 0) {
  //add the type as the only query parameter
  cmsURL = cmsURL + "?type=" + type;
   }
else {
  //add the type as an additional query parameter
   // (PHP session ID is now included if there is one at all)
cmsURL = cmsURL + "&type=" + type;
}

   tinyMCE.activeEditor.windowManager.open({
file : cmsURL
,width : 600
,height : 600
,resizable : "yes"
,inline : "yes"
,close_previous : "yes"
,popup_css : true // Disable TinyMCE's default popup CSS
}, {
window : win,
input : field_name
});
return false;
}
</script>
于 2012-12-13T02:40:29.763 回答
0

将“data-”属性添加到您的 tinymce 元素并从那里回显您想要的 url。然后在 tinymce activeEditor 中,访问该 data- 属性值。

文本区域

<textarea name="description" class="tinymceDescription" data-uploadLink="<?php echo DIR_IMAGES; ?>" ></textarea>

小麦

tinymce.init({
    // other settings here


    //either use this if you are uploading automatically.
    images_upload_url: $(tinymce.activeEditor.targetElm).attr("data-uploadLink"),


    //or use this if you want to override tinymce auto upload.
    images_upload_handler: function (blobInfo, success, failure) {
        var xhr, formData;

        var uploadLink = $(tinymce.activeEditor.targetElm).attr("data-uploadLink");

        xhr = new XMLHttpRequest();
        xhr.withCredentials = false;
        xhr.open('POST', uploadLink);

        xhr.onload = function () {
            var json;

            if (xhr.status != 200) {
                failure('HTTP Error: ' + xhr.status);
                return;
            }

            json = JSON.parse(xhr.responseText);

            if (!json || typeof json.location != 'string') {
                failure(xhr.responseText);
                return;
            }

            success(json.location);
        };

        formData = new FormData();
        formData.append('file', blobInfo.blob(), blobInfo.filename());

        xhr.send(formData);
    }
});

这里的重点是向您展示我如何从当前选择的 tinymce 实例中获取到 tinymce 的动态上传 url。您上传的方式是您的选择,我希望您知道如何处理。但是以太方式,我提供了自动和自定义示例。

于 2018-06-02T05:41:35.273 回答