2

我正在构建一个自定义 Joomla 3.0 管理员组件,其中一部分需要一些 ajax 调用来插入各种类型的字段。

我一直无法插入媒体字段。

对于常规输入,我刚刚直接创建了 html。对于编辑器,我使用了以下代码(我刚刚粘贴了一个摘录):

$editor = JFactory::getEditor();
$html .= $editor->display($name, $value, '100%', '250px', 20, 20, true, $id);
echo $html;

我不希望重新创建 Media 字段的 html 代码,因为有相当多的 html 和 javascript 可能会在 Joomla 的未来版本中发生变化。有没有类似于我可以使用的 JFactory:getEditor() 的方法?

我也尝试过创建 Media 类的实例,但它需要一个我认为在执行 ajax 调用时无法访问的表单对象(或者至少我不知道如何获取它)。

$xml = '<field
    name="test"
    type="media"                        
/>';
$field = new SimpleXMLElement($xml);

$media = new JFormFieldMedia();
$media->setup($field,'');

echo $media->input;
4

2 回答 2

1

K2 有一个扩展名为 JW ALL VIDEOS 的视频。它是免费的,我建议您下载它并看看它是如何在那里完成的以供学习:

http://www.joomlaworks.net/extensions/free-premium/allvideos

于 2013-08-10T15:14:41.913 回答
0

我设法弄清楚如何添加媒体元素。这不是完全相同的输入选择,所以我构建了自己的输入选择,为了调用图像选择器,我可以通过使用这个函数的 javascript 调用它来做到这一点:

SqueezeBox.open('index.php?option=com_media&view=images&tmpl=component&asset=com_mycomponent&author=&fieldid=gallery_result' + field_id + '&folder=gallery',
            {
                size:
                        {
                            x: 800,
                            y: 500
                        },
                handler: 'iframe'
            }
    )

仍然不是我想要的完美,但足够接近。

于 2013-08-16T10:45:36.883 回答