示例#1
0
 public function delete(&$pks)
 {
     $dispatcher = JEventDispatcher::getInstance();
     $pks = (array) $pks;
     $table = $this->getTable();
     // Include the content plugins for the on delete events.
     JPluginHelper::importPlugin('content');
     // Iterate the items to delete each one.
     foreach ($pks as $i => $pk) {
         if ($table->load($pk)) {
             if ($this->canDelete($table)) {
                 $context = $this->option . '.' . $this->name;
                 // Trigger the onContentBeforeDelete event.
                 $result = $dispatcher->trigger($this->event_before_delete, array($context, $table));
                 if (in_array(false, $result, true)) {
                     $this->setError($table->getError());
                     return false;
                 }
                 //PHOCAEDIT
                 $filePath = PhocaGalleryFile::getCSSFile($pk, true);
                 //END PHOCAEDIT
                 if (!$table->delete($pk)) {
                     $this->setError($table->getError());
                     return false;
                 }
                 //PHOCAEDIT
                 if (file_exists($filePath)) {
                     JFile::delete($filePath);
                 }
                 //END PHOCAEDIT
                 // Trigger the onContentAfterDelete event.
                 $dispatcher->trigger($this->event_after_delete, array($context, $table));
             } else {
                 // Prune items that you can't change.
                 unset($pks[$i]);
                 $error = $this->getError();
                 if ($error) {
                     JLog::add($error, JLog::WARNING, 'jerror');
                     return false;
                 } else {
                     JLog::add(JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'), JLog::WARNING, 'jerror');
                     return false;
                 }
             }
         } else {
             $this->setError($table->getError());
             return false;
         }
     }
     // Clear the component's cache
     $this->cleanCache();
     return true;
 }