CLIで「ゴミ箱」の状態のアイテムをいくつか削除したいと思います。 CLIからJTableの削除メソッドを呼び出すことは可能ですか?
ご協力いただきありがとうございます :-)
私がこれをやったのは久しぶりですが、私が覚えているように、これをdoExecute内に置くとあなたが望むことをするはずです。
$basePath = JPATH_ADMINISTRATOR.'/components/com_content';
require_once $basePath.'/models/article.php';
$artmodel = new ContentModelArticle(array('table_path' => $basePath.'/tables'));
$db = JFactory::getDbo();
$q = "SELECT * FROM #__content WHERE `state` = '-2'";
$db->setQuery($q);
if( $rows = $db->loadObjectList() ) {
foreach($rows as $row){
$this->out('Removing '.$row->title);
$result = $artmodel->delete($row->id);
}
}
あなたのケースでは、すでにゴミ箱にあるアイテム(state = -2)を削除していますが、実際には、そうでない限り、このコードは機能しません。ゴミ箱に入れられていないレコードを削除するには、->save
メソッドの前に->delete
メソッドを使用して、まずそれをゴミ箱に入れる必要があります。
$data = array('id' => $row->id,'state'=>'-2');
$result = $artmodel->save($data);
$result = $artmodel->delete($row->id);