作業ディレクトリは定数であるため、変更することはできません。この問題を回避するには、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');