0

我有两个模型

  1. 画廊
  2. 图片

在删除图库时,我想删除目录中关联的图像记录和图像,然后删除图库对象和目录。

最好的选择似乎是 onBeforeContentDelete 触发器,我必须为此编写一个插件。但不想完成所有插件创建步骤。

这种方式可以删除吗?

class SomePrefixModelGallery extends JModelAdmin
{
    public function __construct($config=array())
    {
        parent::__construct($config);
    }

    public function onBeforeGalleryDelete($context,$table){
        if( $this->deleteAllImages()){
           $this->removeDir($this->folder);
          return true;
         }
        else
         return false;
    }

    public function deleteAllImages(){
       // get Image model and delete all images 
    }
}

通过 JModelAdmin 核心类,我可以看到可以在config数组中传递事件名称,例如

 `array('event_before_delete'=>'onXYZEventName')`

默认事件集是onBeforeContentDelete

4

1 回答 1

2

如果它是您自己的组件,您可以覆盖模型中的删除方法,您不需要插件。

JModelAdmin有一个delete()方法,所以在你的模型中:

class SomePrefixModelGallery extends JModelAdmin
{
      /* all the standard methods */

     /**
      * Method to delete one or more records.
      *
      * @param   array  &$pks  An array of record primary keys.
      *
      * @return  boolean  True if successful, false if an error occurs.
      *
      * @since   11.1
      */
     public function delete(&$pks)
     {
        // Code to delete your image records

        // Code to delete your image files

        // Call the parent delete to remove the Gallery entry
        parent::delete(&$pks);
     }
}
于 2013-08-21T02:57:57.150 回答