/** * Override delete method to add the image processing */ public function delete(&$pks) { // standard joomla delete $delete = parent::delete($pks); if (!$delete) { return false; } // delete images $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); foreach ($pks as $pk) { // delete item image file $imageHelper->deleteImage($pk, 'items'); // delete item gallery images $query_images = $this->_db->getQuery(true)->select('id')->from('#__jkit_images')->where("`item_id` = " . (int) $pk); $images_ids = $this->_db->setQuery($query_images)->loadColumn(); if (count($images_ids)) { // delete images files foreach ($images_ids as $image_id) { $imageHelper->deleteImage($image_id, 'images'); } // db delete images $query_delete_images = $this->_db->getQuery(true)->delete('#__jkit_images')->where("`item_id` = " . (int) $pk); $this->_db->setQuery($query_delete_images)->query(); } } // delete item translations $this->_db->setQuery("DELETE FROM `#__jkit_translations` WHERE `ref_table` = 'items' AND `ref_id` IN(" . implode(',', $pks) . ")")->query(); // delete item tags $this->_db->setQuery('DELETE FROM `#__jkit_tags_item` WHERE `item_id` IN(' . implode(',', $pks) . ')')->query(); return true; }
/** * Override delete method to add the image processing */ public function delete(&$pks) { // standard joomla delete $delete = parent::delete($pks); if (!$delete) { return false; } // delete images $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); foreach ($pks as $pk) { $imageHelper->deleteImage($pk, 'users'); } return true; }
/** * Extend save method to add J! User actions */ public function save($data) { // get the table $table = $this->getTable(); // check isNew $key = $table->getKeyName(); $pk = !empty($data[$key]) ? $data[$key] : (int) $this->getState($this->getName() . '.id'); $isNew = true; if ($pk > 0) { $table->load($pk); $isNew = false; } // bind if (!$table->bind($data)) { $this->setError($table->getError()); return false; } // check if (!$table->check()) { $this->setError($table->getError()); return false; } // check if the user exists $jid = $table->jid ? $table->jid : 0; // check, save or update joomla user before store $juser = $this->saveJoomlaUser($jid, $data); if (!$juser) { return false; } // save jkit user $table->jid = $juser->id; if (!$table->store()) { $this->setError($table->getError()); // TODO delete prev created joomla user return false; } // set state $pkName = $table->getKeyName(); if (isset($table->{$pkName})) { $this->setState($this->getName() . '.id', $table->{$pkName}); } $this->setState($this->getName() . '.new', $isNew); // save or delete image $imageHelper = new JKitHelperImage(JComponentHelper::getParams('com_jkit')); $file = $_FILES['image']; if ($file['size']) { $imageHelper->uploadImage($file, $this->getState('user.id'), 'users'); } else { if (JRequest::getInt('image_delete')) { $imageHelper->deleteImage($this->getState('user.id'), 'users'); } } return true; }