2013-10-15 5 views
1

Сейчас я переопределение Joomla 3 в deleteList так:Joomla 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

Возможно, вам известно, что контроллер запускает метод метода delete, а затем загружает JTable, который удаляет запись. Мое предложение было бы расширить класс JTable со следующим методом в /administrator/components/com_YourExtension/tables/YourTableFile.php:

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); с отключением ($ path. $ this-> image); Также вам нужно удалить метод удаления с вашего контроллера и позволить ему выполнять свое поведение. – di3sel

+0

на этот раз ошибка, но изображение также не удалено .. –

Смежные вопросы