Example #1
0
 /**
  * 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'));
 }
Example #2
0
 /**
  * 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();
 }