gpt4 book ai didi

php - 创建一个 Joomla!文章程序化

转载 作者:行者123 更新时间:2023-12-01 23:21:01 24 4
gpt4 key购买 nike

我已经创建了自己的组件。当我向我的组件添加一条新记录时,我还希望它在 joomla 中创建一篇新文章(即使用 com_content)。

我在堆栈溢出时发现了这个 Programmatically adding an article to Joomla这解释了如何去做。代码很有意义,看起来它会起作用。问题是,一旦开始调用包含在 com_content 中的方法,com_content 中的所有相对 URL 就会崩溃,joomla 会抛出错误。

有谁知道解决这个问题的方法吗?上面链接的评论表明,在包含它之前将当前工作目录更改为 com_content 目录是可行的,但我不是 100% 确定如何执行此操作。

最佳答案

无法更改工作目录,因为它是一个常量。要解决此问题,您可以选择根本不使用 ContentModelArticle,而是仅使用表类:

$table = JTable::getInstance('Content', 'JTable', array());

$data = array(
'catid' => 1,
'title' => 'SOME TITLE',
'introtext' => 'SOME TEXT',
'fulltext' => 'SOME TEXT',
'state' => 1,
);

// Bind data
if (!$table->bind($data))
{
$this->setError($table->getError());
return false;
}

// Check the data.
if (!$table->check())
{
$this->setError($table->getError());
return false;
}

// Store the data.
if (!$table->store())
{
$this->setError($table->getError());
return false;
}

请注意,上面的代码不会触发保存前/保存后事件。但是,如果需要,触发这些事件应该不是问题。另外值得注意的是,published_up 字段不会自动设置,类别中的文章也不会重新排序。

重新排序类别:

 $table->reorder('catid = '.(int) $table->catid.' AND state >= 0');

关于php - 创建一个 Joomla!文章程序化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com