首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Joomla3.0前端添加文章管理器中的新字段

在Joomla3.0前端添加文章管理器中的新字段
EN

Stack Overflow用户
提问于 2013-09-09 13:09:07
回答 2查看 1.4K关注 0票数 1

我试图在joomla前端的新文章中添加新字段,如下所述:component

但是这些字段没有显示在表单上。有人能解释一下原因吗?

下面是我用插件文件编写的代码:

代码语言:javascript
复制
function onContentPrepareForm($form, $data)
{
    if (!($form instanceof JForm))
    {
        $this->_subject->setError('JERROR_NOT_A_FORM');
        return false;
    }

    // Add the extra fields to the form.
    // need a seperate directory for the installer not to consider the XML a package when "discovering"
    JForm::addFormPath(dirname(__FILE__) . '/rating');
    $form->loadFile('rating', false);
    return true;
}

我观察到的一件事是,在组件中的com_content文件夹中,编写了固定的代码,这就是为什么我的字段不可见的原因。如果我更改文件:\components\com_content\views\form\tmpl可以吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 11:43:03

我发现教程中还有另一个bug,至少我的Joomla版本是2.5.14。

在您/Rateing.xml(表单描述,而不是清单)中,您需要更改“

<fields name="rating">

<fields name="attribs">

为了让插件工作,使用"attribs“名称有一些特殊之处。

票数 2
EN

Stack Overflow用户

发布于 2013-09-11 06:52:04

基于以上评论中的对话,我认为您的教程构建得很差。好的,文档从来没有说明过这一点,实际上您必须将这个函数包装在一个类中,这样CMS才能正确地调用该函数。

即使没有类包装器,文件也将被加载到CMS中,因此,如果将dieexit语句放在函数之外,则应该看到它工作正常。如果将其放入函数中,则不会调用它,因为您的函数将永远不会被调用。

您可以从教程中下载完整的插件,您可以在教程的底部引用该插件,或者在这里下载:rating-2.5.0.zip。如果你看这个,你会看到额外的部分,这是需要的,以实际发挥作用。我把它也包括在下面。

任何其他函数也必须在类中运行。此外,如果您已经更改了插件的名称,类名也需要更新。这可能非常棘手,因为命名约定非常严格,并且要求插件名(rating)和插件组(content)都是正确的。

代码:

代码语言:javascript
复制
class plgContentRating extends JPlugin
{
    function onContentPrepareForm($form, $data)
    {
        if (!($form instanceof JForm))
        {
            $this->_subject->setError('JERROR_NOT_A_FORM');
            return false;
        }

        // Add the extra fields to the form.
        // need a seperate directory for the installer not to consider the XML a package     when "discovering"
        JForm::addFormPath(dirname(__FILE__) . '/rating');
        if (!$form->loadFile('rating', false)) {
            die('No Form');
        }
        return true;
    }
}

更新:好的,这不仅仅是因为缺了一堂课,但我要离开这个,以防它对别人有帮助。

我更新了上面的代码,以检查loadFile是否正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18698985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档