无法更改工作目录,因为它是一个常量。要解决此问题,您可以选择根本不使用 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');