0

我正在 joomla 3 中创建一个组件,我需要一个用于该组件的图像上传器,例如模板徽标上传器(显示灯箱弹出窗口和图像选择)。如果有人知道,我不知道该怎么做,请回复

4

1 回答 1

0

以下地址将呈现从媒体管理器中选择图像的视图

http://yourdomain/administrator/index.php?option=com_media&view=images&tmpl=component&e_name=jform_articletext&asset=com_content&author=

所以你可以在任何灯箱弹出实现中打开它

打开它的页面必须包含一个

function jInsertEditorText( text, editor ){....}

一旦选择了“插入”按钮,就会调用这个函数。

我将使用 joomla3 中默认可用的所有功能提供此实现的一个简单示例。

在您的组件页面上,您可以使用以下代码包含一个显示 bootstarp 模式窗口的按钮 ( http://getbootstrap.com/2.3.2/javascript.html#modals )

<a href="#myModal" role="button" style="position:fixed;top:50px"class="btn" data-toggle="modal">show popup</a>

(请不要太注意 style 属性,因为它是用于测试目的)

如果您只是想从控制台或 js 执行此操作,您可以执行

jQuery("body").append('<a href="#myModal" role="button" style="position:fixed;top:50px"class="btn" data-toggle="modal">show popup</a>');

然后您可以添加一个带有我上面提到的 url 的 iframe(当您在文章编辑器中推送“图像”时,joomla 遵循相同的方法)

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><iframe id="choose-image" src="http://joomla31.cloudaccess.net/administrator/index.php?option=com_media&view=images&tmpl=component&e_name=jform_articletext&asset=com_content&author="></iframe></div>

从控制台或js动态执行,

jQuery("body").append('<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><iframe id="choose-image" src=""></iframe></div>');
jQuery('#choose-image').attr("src","http://joomla31.cloudaccess.net/administrator/index.php?option=com_media&view=images&tmpl=component&e_name=jform_articletext&asset=com_content&author=");

然后,您可以在页面中提供一个 js 函数 jInsertEditorText( text, editor ){....} 并在弹出窗口中选择图像后处理插入。或者只是为插入按钮提供自定义处理尝试从控制台或脚本中调用以下代码

Query("iframe#choose-image").load(function(){jQuery("#choose-image").contents().find(".btn.btn-primary:contains('Insert')").attr("onclick","").click(function(){alert(jQuery("#choose-image").contents().find("#f_url").val());});});

它基本上删除了默认的 onclick 脚本,并通过在警报对话框上显示选定的图像路径来添加自定义的点击处理。

于 2013-10-04T12:55:23.633 回答