2013-10-15 1 views
1

나는 현재과 같이 줌라 3의 deleteList을 무시하고 : 그들과 관련된 이미지가의 항목이나 항목에줌라 3 deleteList는 이미지를 제거

public function delete(){ 
    if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR); 
    $path = JPATH_ROOT; 
    $path = JPath::clean($path. DS ."images". DS ."menu_slider". DS); 

    foreach(glob($path.'*/penguins.*') as $image){ 
     unlink($image); 
    } 
    return parent::delete(); 
} 

때문에 데이터베이스는 다음과 같습니다

id title image 

그래서 내 질문은 정말 어떻게 이미지 이름을 항목이나 항목을 삭제할 때 할당받을 수 있습니까?

답변

2

아마도 컨트롤러가 모델 메소드 삭제를 트리거한다는 것을 알고있을 것입니다. 그러면 항목을 삭제하는 JTable을로드합니다. 나의 제안 /administrator/components/com_YourExtension/tables/YourTableFile.php의 방법을 다음과 같이 JTable의 클래스를 확장하는 것입니다 :

public function delete($pk = null) 
{ 
    jimport('joomla.filesystem.file'); 
    $path = JPath::clean(JPATH_ROOT . "/images/menu_slider/"); 
    if (JFile::exists($path . $this->image) 
     JFile::delete($path . $this->image); 

    return parent::delete($pk); 
} 
+0

아니, 내가 일부러 ... 임 여전히 오히려 새로운 모든합니다. 고맙습니다. 하지만 joomla에서 오류가 계속 lighthouse.jpg을 삭제하지 못했습니다, 또한 내 원래 삭제 무시를 제거, 내가 그렇게 올바른 일 이었습니까? –

+0

오류가 계속 발생하면 JFile :: delete ($ path. $ this-> image)를 대체하십시오. unlink ($ 경로. $ this-> 이미지); 또한 컨트롤러에서 삭제 방법을 제거하고 자신의 고유 한 동작을 수행해야합니다. – di3sel

+0

이번에 오류가 없지만 이미지도 삭제되지 않았습니다. –