/** * Method to remove one or more templates * --> is called by the archive-controller * * @access public * * @param array $pks template IDs * * @return boolean * * @since 1.1.0 */ public function delete(&$pks) { $app = JFactory::getApplication(); // Access check. foreach ($pks as $i) { if (!BwPostmanHelper::allowDelete($i, 0, 'template')) { return false; } } if (count($pks)) { JArrayHelper::toInteger($pks); $lists_table = JTable::getInstance('templates', 'BwPostmanTable'); // Delete all entries from the templates-table foreach ($pks as $id) { if (!$lists_table->delete($id)) { $app->enqueueMessage(JText::_('COM_BWPOSTMAN_ARC_ERROR_REMOVING_TPLS_NO_TPL_DELETED'), 'error'); return false; } } } return true; }
/** * Method to remove one or more campaigns and if the user want also the assigned newsletters * --> is called by the archive-controller * * @access public * * @param array &$pks Campaign IDs * * @return boolean */ public function delete(&$pks) { $jinput = JFactory::getApplication()->input; $remove_nl = $jinput->get('remove_nl', false); // Access check. foreach ($pks as $i) { if (!BwPostmanHelper::allowDelete($i, 0, 'campaign')) { return false; } } if (count($pks)) { JArrayHelper::toInteger($pks); // Delete campaigns from campaigns-table $cams_table = JTable::getInstance('campaigns', 'BwPostmanTable'); foreach ($pks as $id) { if (!$cams_table->delete($id)) { return false; } } // Remove_nl = 1 if the user want to delete the assigned newsletters if ($remove_nl) { // Delete newsletter from newsletters-table $nl_table = JTable::getInstance('newsletters', 'BwPostmanTable'); $_db = $this->getDbo(); $query = $_db->getQuery(true); $query->select($_db->quoteName('id')); $query->from($_db->quoteName('#__bwpostman_newsletters')); $query->where($_db->quoteName('campaign_id') . ' IN (' . implode(',', $pks) . ')'); $_db->setQuery($query); $nl_ids = $_db->loadColumn(); foreach ($nl_ids as $id) { if (!$nl_table->delete($id)) { return false; } } } } return true; }
/** * Method to remove one or more mailinglists * --> is called by the archive-controller * * @access public * * @param array &$pks Mailinglist IDs * * @return boolean */ public function delete(&$pks) { $app = JFactory::getApplication(); // Access check. foreach ($pks as $i) { if (!BwPostmanHelper::allowDelete($i, 0, 'mailinglist')) { return false; } } if (count($pks)) { JArrayHelper::toInteger($pks); $_db = $this->getDbo(); $lists_table = JTable::getInstance('mailinglists', 'BwPostmanTable'); // Delete all entries from the mailinglists-table foreach ($pks as $id) { if (!$lists_table->delete($id)) { $app->enqueueMessage(JText::_('COM_BWPOSTMAN_ARC_ERROR_REMOVING_MLS_NO_ML_DELETED'), 'error'); return false; } } // Delete all entries from the subscribers_mailinglists-table $query = $_db->getQuery(true); $query->delete(); $query->from($_db->quoteName('#__bwpostman_subscribers_mailinglists')); $query->where('mailinglist_id IN (' . implode(',', $pks) . ')'); $_db->setQuery($query); if (!$_db->query()) { $app->enqueueMessage(JText::_('COM_BWPOSTMAN_ARC_ERROR_REMOVING_MLS_NO_SUBS_DELETED'), 'warning'); } // Delete all entries from the newsletters_mailinglists-table $query = $_db->getQuery(true); $query->delete(); $query->from($_db->quoteName('#__bwpostman_newsletters_mailinglists')); $query->where('mailinglist_id IN (' . implode(',', $pks) . ')'); $_db->setQuery($query); if (!$_db->query()) { $app->enqueueMessage(JText::_('COM_BWPOSTMAN_ARC_ERROR_REMOVING_MLS_NO_MLS_DELETED'), 'warning'); } } return true; }
/** * Method to remove one or more subscribers/test-recipients * --> is called by the archive-controller * * @access public * * @param array $pks Subscriber/Test-recipient IDs * * @return boolean */ public function delete(&$pks) { // Access check. foreach ($pks as $i) { if (!BwPostmanHelper::allowDelete($i, 0, 'subscriber')) { return false; } } if (count($pks)) { JArrayHelper::toInteger($pks); $_db = $this->getDbo(); // Delete subscriber from subscribers-table if (!parent::delete($pks)) { $this->setError($_db->getErrorMsg()); return false; } // Delete subscribed mailinglists from subscribers_mailinglists-table $query = $_db->getQuery(true); $query->delete(); $query->from($_db->quoteName('#__bwpostman_subscribers_mailinglists')); $query->where('subscriber_id IN (' . implode(',', $pks) . ')'); $_db->setQuery($query); if (!$_db->query()) { $this->setError($_db->getErrorMsg()); return false; } } return true; }
/** * Method to remove one or more newsletters from the newsletters-table * --> is called by the archive-controller * * @access public * * @param array $pks Newsletter IDs * * @return boolean */ public function delete(&$pks) { // Access check. foreach ($pks as $i) { $data = self::getItem($i); if (!BwPostmanHelper::allowDelete($i, $data->created_by, 'newsletter')) { return false; } } if (count($pks)) { JArrayHelper::toInteger($pks); // Delete newsletter from newsletters-table $nl_table = JTable::getInstance('newsletters', 'BwPostmanTable'); foreach ($pks as $id) { if (!$nl_table->delete($id)) { return false; } } // Delete assigned mailinglists from newsletters_mailinglists-table $lists_table = JTable::getInstance('newsletters_mailinglists', 'BwPostmanTable'); foreach ($pks as $id) { if (!$lists_table->delete($id)) { return false; } } } return true; }