/** * Reorder Newsletter Story Task * * @return void */ public function reorderTask() { //get request vars $id = Request::getInt('id', 0); $sid = Request::getInt('sid', 0); $type = Request::getWord('type', 'primary'); $direction = Request::getWord('direction', 'down'); //what kind of story do we want if (strtolower($type) == 'primary') { $story = new PrimaryStory($this->database); } else { $story = new SecondaryStory($this->database); } //load the story $story->load($sid); //set vars $lowestOrder = 1; $highestOrder = $story->_getCurrentHighestOrder($id); $currentOrder = $story->order; //move page up or down if ($direction == 'down') { $newOrder = $currentOrder + 1; if ($newOrder > $highestOrder) { $newOrder = $highestOrder; } } else { $newOrder = $currentOrder - 1; if ($newOrder < $lowestOrder) { $newOrder = $lowestOrder; } } $database = \App::get('db'); //is there a nother story having the order we want? $sql = "SELECT * FROM {$story->getTableName()} WHERE `order`=" . $database->quote($newOrder) . " AND nid=" . $database->quote($id); $database->setQuery($sql); $moveTo = $database->loadResult(); //if there isnt just update story if (!$moveTo) { $sql = "UPDATE {$story->getTableName()} SET `order`=" . $database->quote($newOrder) . " WHERE id=" . $database->quote($sid); $database->setQuery($sql); $database->query(); } else { //swith orders $sql = "UPDATE {$story->getTableName()} SET `order`=" . $database->quote($newOrder) . " WHERE id=" . $database->quote($sid); $database->setQuery($sql); $database->query(); $sql = "UPDATE {$story->getTableName()} SET `order`=" . $database->quote($currentOrder) . " WHERE id=" . $database->quote($moveTo); $database->setQuery($sql); $database->query(); } //redirect back to campaigns list App::redirect(Route::url('index.php?option=com_newsletter&controller=newsletter&task=edit&id=' . $id . '#' . $type . '-stories', false), Lang::txt('COM_NEWSLETTER_STORY_REORDER_SUCCESS')); }
/** * Edit newsletter task * * @return void */ public function editTask($task = 'edit') { // instantiate newsletter object $this->view->newsletter = new stdClass(); $this->view->newsletter->id = null; $this->view->newsletter->alias = null; $this->view->newsletter->name = null; $this->view->newsletter->template = null; $this->view->newsletter->issue = null; $this->view->newsletter->date = null; $this->view->newsletter->sent = null; $this->view->newsletter->type = null; $this->view->newsletter->tracking = 1; $this->view->newsletter->published = null; $this->view->newsletter->created = null; $this->view->newsletter->created_by = null; $this->view->newsletter->modified = null; $this->view->newsletter->modified_by = null; $this->view->newsletter->params = null; /** This is used to determine frequency * 0 - regular/disabled * 1 - daily * 2 - weekly * 3 - monthly **/ $this->view->newsletter->autogen = 0; // default primary and secondary stories to null $this->view->newsletter_primary = null; $this->view->newsletter_secondary = null; // get any templates that exist $newsletterTemplate = new Template($this->database); $this->view->templates = $newsletterTemplate->getTemplates(); // get the request vars $id = Request::getVar('id', array(0)); if (is_array($id)) { $id = isset($id[0]) ? $id[0] : null; } if ($task == 'add') { $id = null; } // are we editing if ($id) { $newsletterNewsletter = new Letter($this->database); if ($letter = $newsletterNewsletter->getNewsletters($id)) { $this->view->newsletter = $letter; } // get primary stories $newsletterPrimaryStory = new PrimaryStory($this->database); $this->view->newsletter_primary = $newsletterPrimaryStory->getStories($id); $this->view->newsletter_primary_highest_order = $newsletterPrimaryStory->_getCurrentHighestOrder($id); // get secondary stories $newsletterSecondaryStory = new SecondaryStory($this->database); $this->view->newsletter_secondary = $newsletterSecondaryStory->getStories($id); $this->view->newsletter_secondary_highest_order = $newsletterSecondaryStory->_getCurrentHighestOrder($id); // get mailing lists $newsletterMailinglist = new Mailinglist($this->database); $this->view->mailingLists = $newsletterMailinglist->getLists(); } // are we passing newsletter object from saveTask()? if ($this->newsletter) { $this->view->newsletter = $this->newsletter; } // check if we have any errors if ($this->getError()) { $this->view->setError($this->getError()); } // set vars for view $this->view->config = $this->config; // Output the HTML $this->view->setLayout('edit')->display(); }