Joomla 若姆拉的k2篇文章如果作者在前端做了一点小改动,就不会发表

Joomla 若姆拉的k2篇文章如果作者在前端做了一点小改动,就不会发表,joomla,joomla-k2,Joomla,Joomla K2,“作者”组没有任何发布权限。这没关系。因此,编辑/管理员会对任何文章进行初步批准 如果作者决定编辑已经发表的文章,问题就来了。当他从前端点击“保存”时,该项目立即被取消发布(因为作者组无权发布项目)。所以,至少对我来说,这是一个巨大的问题 我希望文章在管理员最初批准后仍能发表,即使作者做出了调整。你知道怎么做吗 这个逻辑是JoOMLA核心中默认的做事方式。 你应该允许作者编辑任何项目或禁用编辑文章的选项。 < P>你可能想考虑从K2切换到像EasyByb之类的东西,然后…或者干脆不要用K2。K2

“作者”组没有任何发布权限。这没关系。因此,编辑/管理员会对任何文章进行初步批准

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

我希望文章在管理员最初批准后仍能发表,即使作者做出了调整。你知道怎么做吗


这个逻辑是JoOMLA核心中默认的做事方式。

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

< P>你可能想考虑从K2切换到像EasyByb之类的东西,然后…或者干脆不要用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。如果我理解你的话,这是你唯一想影响的。这样,如果文章已经存在并且已经发布,它将始终保持发布状态,除非管理员将其更改为未发布


我不确定这是否会按我预期的方式工作,请告诉我。

转到joomla管理,转到k2菜单,在
用户组选项卡中创建一个名为“编辑器”的组,并授予其访问
发布项的权限,然后返回到
Users
选项卡,并将您希望使其成为编辑器的用户放在编辑器组中

确保编辑器组用户有权编辑前端项目
和编辑任何项目


您的问题是因为您的编辑器具有
编辑任何项目的访问权限,但无法访问
发布项目

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


至少对k2 v来说是这样。2.6.7,尽管我认为自v.2.6.0或更早版本以来,权限设置没有任何更改。

在管理后端,转到K2组件,然后是参数,然后单击权限选项卡,然后在作者下,尝试将“编辑状态”设置为“允许”。不是100%确定这是否有效,但值得尝试一下。不,我已经尝试了所有这些设置。“我的作者”设置的所有内容都设置为“是”,但最后两个选项“编辑任何项目”、“发布项目”除外。我相信这是一个逻辑问题,还有一个选择是任务在这里,类似于“编辑项目并保持发布”嗯。。。。看起来你的工作流程是违反直觉的。。。如果一个作者写了一篇文章,那么它会得到发布的管理员的批准。但是,如果作者回来了,他们可以改变任何他们想要的,做一些事情来打破模板,添加不适当的信息或其他什么,但你不想重新批准他们的更改?我相信这个系统的设计是有充分理由的。您可能想考虑管理员必须批准更改是一个好主意。如果您不想重新批准变更,为什么要批准?你也可以给他们一些作者特权……这很简单。我的网站是一家非营利组织的杂志,所以作者都是普通人,普通人会犯很多语法错误/词汇错误/打字错误。我同意你的观点,不允许作者在任何时候发表文章是合乎逻辑的。因此,最专业的方法是允许他们进行更改,但在管理员批准之前,绝不发布(更改)。但是,这篇文章必须一直留在这里。这是我的问题。由于小的调整,发布/未发布项目并不酷。我有30位作者,这里真正重要的是最初的批准和发布。我重申,这是Joomla core处理文章的默认方式。如果发布了某个内容,并且作者对其进行了编辑,则该内容将保持发布状态。我想要的正是这个,但很可能我必须自定义代码。你告诉我的事情我已经知道,并希望避免。我不想让我的作者=>成为编辑器,我希望他们能够随时编辑自己的项目。如果是这样,为什么要创建一个新的用户组而不更改“作者”组权限?这似乎不合逻辑,但我还是要试试。我这里也在谈论作者。作者不应编辑或发表其他作者的文章。只是他们自己的。作者不是编辑或管理员。@geoged。转到K2用户组,根据需要创建多个组,您可以将其限制为特定类别并管理其访问级别(仅添加、编辑自己、编辑任何项目、发布等)。尝试添加$row->published=1;上面是第二个if语句。实际上他们是在我的通知之后在这个版本中添加的。