我已将TinyMCE安装到我的codeigniter构建中,并且我已经包含了图像管理器。
在图像管理器插件(保存在public / assets文件夹中)中有一个php配置文件,用于定义图像&文件路径常量。
define('DIR_IMAGES', 'images/path/here'); etc
我遇到的问题是我需要路径是动态的,这取决于数据库中的某些数据,例如template_name,但我不知道如何将正确的文件包含到配置文件中,以便我可以查看动态信息。 / p>
因此,如果用户保存了template_name,那么我需要路径为
define('DIR_IMAGES', $template_name.'images/path/here');
我还在core / MY_Controller.php中的常量中定义了template_name,所以如果我可以访问该变量比查询数据库更容易,但任何一种方法都可以。
有人可以帮我一把,非常感谢!
答案 0 :(得分:2)
我只是定制了tinymce图像,但没有使用TinyMCE图像管理器。
但我使用以下链接中的教程。
How-to implement a custom file browser
<!-- 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>
答案 1 :(得分:0)
在你的tinymce元素中添加一个“data-”属性,并从那里回显你想要的url。然后在tinymce activeEditor中,访问该数据属性值。
textarea的
<textarea name="description" class="tinymceDescription" data-uploadLink="<?php echo DIR_IMAGES; ?>" ></textarea>
TinyMCE的
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实例获得动态上传URL。您上传的方式是您的选择,我希望您知道如何处理。但以太方式,我提供了自动和自定义示例。