如果作者从前端稍作修改,则Joomla中的k2文章将不发表

时间:2012-11-10 12:06:30

标签: joomla joomla-k2

“作者”群组没有任何发布权。还行吧。所以编辑/管理员会对任何文章做出初步批准。

如果作者决定编辑已发布的文章,则会出现问题。当他从前端点击“保存”时,该项目立即变为未发布。(因为作者组无权发布项目)。所以,这至少对我来说是一个巨大的问题。

即使作者做出调整,我希望在管理员初次批准后仍然可以发布文章。知道怎么做这样的事吗?

这种逻辑是Joomla Core中默认的处理方式。

4 个答案:

答案 0 :(得分:2)

您可能需要考虑从K2切换到像EasyBlog那样的其他东西......或者只是不要使用K2。 K2的默认设置似乎是遵循与您冲突的工作流程。

否则你可以修改K2以满足你的需要...我真的不建议修改扩展名,因为你不能再对它们进行更新,除非你打算每次更新时做出修改(这很痛苦) 。

您的问题在于administrator / components / com_k2 / models / item.php以下行是表单版本2.6.1第785行。

        if ($front)
        {
            if (!K2HelperPermissions::canPublishItem($row->catid) && $row->published)
            {
                $row->published = 0;
                $mainframe->enqueueMessage(JText::_('K2_YOU_DONT_HAVE_THE_PERMISSION_TO_PUBLISH_ITEMS'), 'notice');
            }
        }

如果我理解正确你想要更像的东西:

    if ($front)
    {
        $row->published = 1;
        if (!K2HelperPermissions::canPublishItem($row->catid) && $row->published && $isNew)
        {
            $row->published = 0;
            $mainframe->enqueueMessage(JText::_('K2_YOU_DONT_HAVE_THE_PERMISSION_TO_PUBLISH_ITEMS'), 'notice');
        }
    }

如果我通过在if语句中添加$ isNew的检查来理解他们的模型,那么它只会将published = 0应用于新条目。如果我了解你,那是你唯一想要影响的人。这样,如果文章已经存在并且已经发布,那么除非管理员将其更改为未发布,否则它将始终保持发布状态。

我不确定这是否会按照我的预期运作,所以请告诉我。

答案 1 :(得分:1)

您应该允许作者编辑任何项目或禁用编辑作者文章的选项。

答案 2 :(得分:1)

转到您的joomla管理,转到k2菜单,然后在User Groups标签中创建一个名为editors的组,并授予其Publish item访问权限,然后返回Users标签并将其放入要在编辑器组中进行编辑的用户。

确保您的编辑组用户有权访问Front-end item editingEdit any item

您的问题是因为您的编辑拥有Edit any item访问权限,但他们无法访问Publish item

答案 3 :(得分:0)

您要设置的权限实际上是在k2用户组设置中。查找允许编辑已发布的项目并将其设置为

至少对于k2 v.2.6.7也是如此,尽管我认为自v.2.6.0或更早版本以来,任何权限设置都没有改变。