Esempio n. 1
0
 /**
  * Displays the view.
  *
  * @param  string $tpl the template name
  *
  * @return void
  * @since  1.0
  */
 public function display($tpl = null)
 {
     // Set the document
     $this->setDocument();
     $this->addToolbar();
     // Set main ID first
     $aid = JRequest::getInt('automailing_id');
     $this->assignRef('automailingId', $aid);
     // Get automailing form
     $model = $this->getModel();
     $automailing = $model->getItem();
     $this->assignRef('automailing', $automailing);
     JavascriptHelper::addObject('automailing', $automailing);
     $this->assignRef('form', $this->get('form', 'automailing'));
     // Get item list (series)
     $itemsModel = JModel::getInstance('AutomailingItems', 'NewsletterModel');
     $itemsModel->automailingId = $aid;
     $amList = (object) array('items' => $itemsModel->getNormalizedItems($aid), 'state' => $itemsModel->getState(), 'listOrder' => $itemsModel->getState('list.ordering'), 'listDirn' => $itemsModel->getState('list.direction'), 'pagination' => $itemsModel->getPagination());
     $this->assignRef('automailingItems', $amList);
     // Get targets list
     $targetsModel = JModel::getInstance('AutomailingTargets', 'NewsletterModel');
     $targetsModel->automailingId = $aid;
     if ($tpl != 'details') {
         // Get ids for all available lists
         $listsModel = JModel::getInstance('Lists', 'NewsletterModel');
         $allLists = $listsModel->getAllActive();
         // Find all used lists
         $usedLists = $targetsModel->getRelatedLists($aid);
         // Diff the records
         $usedListIds = DataHelper::getColumnData($usedLists, 'list_id');
         foreach ($allLists as $idx => $item) {
             if (in_array($item->list_id, $usedListIds)) {
                 unset($allLists[$idx]);
             }
         }
         $amTargets = (object) array('items' => $targetsModel->getRelatedLists($aid, 'usePagination'), 'state' => $targetsModel->getState(), 'listOrder' => $targetsModel->getState('list.ordering'), 'listDirn' => $targetsModel->getState('list.direction'), 'pagination' => $targetsModel->getPagination());
         $this->assignRef('automailingTargets', $amTargets);
         $this->assignRef('unusedLists', $allLists);
     }
     if ($tpl == 'details') {
         $this->assignRef('automailingTargets', $targetsModel->getNames($aid));
     }
     parent::display($tpl);
 }