Имате няколко проблема във вашия код:
$uploadedfile
никога не се декларира, но се използва за намиране на пътя на файла. Предполагам, че това е същото като$getdeleted
.- Имате foreach цикъл около елементите във вашия масив, който ще вземе всеки елемент на свой ред. Въпреки това моделирате функцията
deleteGreetings
поема целия масив. Трябва да премахнете това извикване на функция от вашия цикъл, иначе ще бъде извикано всеки за всеки елемент в масива. Искате да се обадите само веднъж. - Само в края на вашия контролер проверявате дали вашият cid параметър е нула ... какъв е смисълът? Трябва първо да проверите това, преди да опитате да стартирате някой от другите кодове.
Бих направил нещо подобно:
$arrayIDs = JRequest::getVar ( 'cid', null, 'default', 'array' );
if ($arrayIDs === null) { //Make sure the cid parameter was in the request
JError::raiseError ( 500, 'cid parameter missing from the request' );
}
$model = & $this->getModel ( 'greetings' );
jimport ( 'joomla.filesystem.file' );
if (is_array ( $arrayIDs ) && count ( $arrayIDs ) > 0) {
$del = $model->deleteGreetings ( $arrayIDs );
// check this outside the loop, if it is inside you are checking it for
// each element in the array. Here we check once and then go forward.
if ($del) {
foreach ( $arrayIDs as $k => $id ) {
$uploadedfile = $model->getUploadpic ( $id );
$deletefile = JPATH_COMPONENT . DS . "uploads" . DS . $uploadedfile;
JFile::delete($deletefile);
//unlink ( $deletefile );
}
}
}