如何在editor-xtd插件模式窗口中使用JForm字段

时间:2017-04-13 09:24:04

标签: php plugins joomla joomla3.0

我成功地将我的joomla 3 gallery模块转换为joomla 3插件,并创建了一个editor-xtd插件,在模态窗口中打开文件settings.php。

在这个窗口的body标签中,我想使用与模块的manifest xml文件中相同的xml Form字段。

<form>
<fieldset name="catid" addfieldpath="/plugins/editors-xtd/gallery/fields/">
        <field
            name="gallery-category"
            type ="gallerycategory"
            label="Gallery cat id"
            description="Gallery cat id"
            default = "0"
        />
</fieldset>

有没有办法在这个php文件的正文中呈现xml表单字段?

1 个答案:

答案 0 :(得分:0)

在周末,我设法加载了我自己的settings.xml文件并在php模式中渲染一个选择框。

<?php

    define( '_JEXEC', 1 );
    define( 'DS', DIRECTORY_SEPARATOR );
    define( 'JPATH_BASE', realpath( '..'.DS.'..'.DS.'..'.DS ) );
    require_once ( JPATH_BASE.DS.'includes'.DS.'defines.php' );
    require_once ( JPATH_BASE.DS.'includes'.DS.'framework.php' );


    $xmlPath = dirname(__FILE__) .'/forms/settings.xml';

    jimport('joomla.form.form');
    $form = JForm::getInstance('idform', $xmlPath);

?>
<html>
    <head>
        <title>titel</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <link rel="stylesheet" href="../../../administrator/templates/isis/css/template.css" type="text/css" />
        <script type="text/javascript">
            function insertCatId() {
                var codeInsert = document.getElementById("settings_category").value;
                var tag = "{category:"+codeInsert+"}";
                window.parent.jInsertEditorText(tag, ' . json_encode($this->eName) . ');
                window.parent.jModalClose();
                return false;
            }
        </script>
    </head>
    <body>
    <div>
        <fieldset>
        <form name="idform">
            <div class="control-group">
                <div class="control-label">
                    <p>&nbsp;</p>
                    <label>Insert category id</label>
                </div>
                <div class="controls">
                    <?php echo $form->getInput('category', 'settings'); ?>
                </div>
            </div>
        </form>
        </fieldset>
        <button onclick="insertCatId();" class="btn btn-success"><?php echo JText::_('Insert'); ?></button>
    </div>
    </body>
</html>

这个

<?php echo $form->getInput('category', 'settings'); ?>

呈现标准选择框,但不是具有建议和自动完成功能的典型Joomla输入框。我如何实现这一目标?