我正在构建一个自定义的Joomla 3.0管理员组件,并且它的一部分需要一些Ajax调用来插入各种类型的字段。Joomla通过ajax插入媒体表单元素
虽然我一直无法插入媒体字段。
对于我刚刚创建html的常规输入。 对于我用下面的代码编辑器(我刚刚粘贴的提取物):
$editor = JFactory::getEditor();
$html .= $editor->display($name, $value, '100%', '250px', 20, 20, true, $id);
echo $html;
我宁愿不重新对媒体领域的HTML代码HTML存在相当数量和JavaScript可能会在未来的Joomla版本中发生变化。有没有类似于JFactory的方法:我可以使用getEditor()?
我也试过创建媒体类的一个实例,但它需要一个表单对象,我不认为可以访问(或至少我不知道如何获取它)在做Ajax调用时。
$xml = '<field
name="test"
type="media"
/>';
$field = new SimpleXMLElement($xml);
$media = new JFormFieldMedia();
$media->setup($field,'');
echo $media->input;
在我看来,最大的问题是媒体领域通过'JFactory :: getDocument() - > addScriptDeclaration'和'modal'行为向文档添加脚本声明。这使得异步加载相当有问题。为什么不加载媒体字段并将其隐藏至需要?或者你是否需要按需加载其中几个,并且在页面生成时不知道所需字段的数量? – MasterAM
不幸的是,这是一个不知道所需字段数量的情况。基本上我有自定义字段,可以创建并应用到主模型,这些字段只在用户指定要加载哪个“组”的自定义字段时加载,因此我无法确定有多少个字段。我的后备将是在我自己的图像领域创建html,但这意味着它不会被更新版本的joomla自动更新。 – hyarion