Example #1
0
 /**
  * Get the data
  * If a revision-id was specified in the URL we load the revision and not the actual data.
  */
 private function getData()
 {
     // get the record
     $this->record = (array) BackendCatalogModel::getOrder($this->id);
     // dataGrid for the products within an order
     $this->dgProducts = new BackendDataGridDB(BackendCatalogModel::QRY_DATAGRID_BROWSE_PRODUCTS_ORDER, array($this->id));
     // hide columns
     $this->dgProducts->setColumnsHidden('order_id', 'product_id', 'url', 'date');
     // set column URLs
     $this->dgProducts->setColumnURL('title', BackendModel::createURLForAction('edit') . '&id=[product_id]');
     // no item found, throw an exceptions, because somebody is f*****g with our URL
     if (empty($this->record)) {
         $this->redirect(BackendModel::createURLForAction('index') . '&error=non-existing');
     }
 }
 /**
  * Load the datagrids
  *
  * @return  void
  */
 private function loadDataGrids()
 {
     // load all categories that are in use
     $categories = BackendSlideshowModel::getActiveCategories(true);
     // run over categories and create datagrid for each one
     foreach ($categories as $categoryId => $categoryTitle) {
         // create datagrid
         $dataGrid = new BackendDataGridDB(BackendSlideshowModel::QRY_DATAGRID_BROWSE, array(BL::getWorkingLanguage(), $categoryId));
         // disable paging
         $dataGrid->setPaging(false);
         // set colum URLs
         $dataGrid->setColumnURL('title', BackendModel::createURLForAction('Edit') . '&id=[id]');
         // set column functions
         $dataGrid->setColumnFunction(array(new BackendDataGridFunctions(), 'getLongDate'), array('[publish_on]'), 'publish_on', true);
         $dataGrid->setColumnFunction(array(new BackendDataGridFunctions(), 'getUser'), array('[user_id]'), 'user_id', true);
         // set headers
         $dataGrid->setHeaderLabels(array('user_id' => \SpoonFilter::ucfirst(BL::lbl('Author')), 'publish_on' => \SpoonFilter::ucfirst(BL::lbl('PublishedOn'))));
         // enable drag and drop
         $dataGrid->enableSequenceByDragAndDrop();
         // our JS needs to know an id, so we can send the new order
         $dataGrid->setRowAttributes(array('id' => '[id]'));
         $dataGrid->setAttributes(array('data-action' => "GallerySequence"));
         // create a column #images
         $dataGrid->addColumn('images', ucfirst(BL::lbl('Images')));
         $dataGrid->setColumnFunction(array('Backend\\Modules\\Slideshow\\Engine\\Model', 'getImagesByGallery'), array('[id]', true), 'images', true);
         // hide columns
         $dataGrid->setColumnsHidden(array('category_id', 'sequence', 'filename'));
         // add edit column
         $dataGrid->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&id=[id]', BL::lbl('Edit'));
         // set column order
         $dataGrid->setColumnsSequence('dragAndDropHandle', 'title', 'images', 'user_id', 'publish_on', 'edit');
         // add dataGrid to list
         $this->dataGrids[] = array('id' => $categoryId, 'title' => $categoryTitle, 'content' => $dataGrid->getContent());
     }
 }
Example #3
0
 /**
  * Loads the datagrid with all the drafts
  */
 private function loadDataGridDrafts()
 {
     // filter on category?
     if ($this->categoryId != null) {
         // create datagrid
         $this->dgDrafts = new BackendDataGridDB(BackendBlogModel::QRY_DATAGRID_BROWSE_DRAFTS_FOR_CATEGORY, array($this->categoryId, 'draft', BackendAuthentication::getUser()->getUserId(), BL::getWorkingLanguage()));
         // set the URL
         $this->dgDrafts->setURL('&category=' . $this->categoryId, true);
     } else {
         // create datagrid
         $this->dgDrafts = new BackendDataGridDB(BackendBlogModel::QRY_DATAGRID_BROWSE_DRAFTS, array('draft', BackendAuthentication::getUser()->getUserId(), BL::getWorkingLanguage()));
     }
     // set headers
     $this->dgDrafts->setHeaderLabels(array('user_id' => \SpoonFilter::ucfirst(BL::lbl('Author'))));
     // hide columns
     $this->dgDrafts->setColumnsHidden(array('revision_id'));
     // sorting columns
     $this->dgDrafts->setSortingColumns(array('edited_on', 'title', 'user_id', 'comments'), 'edited_on');
     $this->dgDrafts->setSortParameter('desc');
     // set column functions
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getLongDate'), array('[edited_on]'), 'edited_on', true);
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getUser'), array('[user_id]'), 'user_id', true);
     // our JS needs to know an id, so we can highlight it
     $this->dgDrafts->setRowAttributes(array('id' => 'row-[revision_id]'));
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('Edit')) {
         // set column URLs
         $this->dgDrafts->setColumnURL('title', BackendModel::createURLForAction('Edit') . '&id=[id]&draft=[revision_id]&category=' . $this->categoryId);
         // add edit column
         $this->dgDrafts->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&id=[id]&draft=[revision_id]&category=' . $this->categoryId, BL::lbl('Edit'));
     }
 }
Example #4
0
 /**
  * Loads the dataGrids
  */
 private function loadDatagrids()
 {
     // load all categories
     $categories = BackendFaqModel::getCategories(true);
     // loop categories and create a dataGrid for each one
     foreach ($categories as $categoryId => $categoryTitle) {
         $dataGrid = new BackendDataGridDB(BackendFaqModel::QRY_DATAGRID_BROWSE, array(BL::getWorkingLanguage(), $categoryId));
         $dataGrid->setAttributes(array('class' => 'dataGrid sequenceByDragAndDrop'));
         $dataGrid->setColumnsHidden(array('category_id', 'sequence'));
         $dataGrid->addColumn('dragAndDropHandle', null, '<span>' . BL::lbl('Move') . '</span>');
         $dataGrid->setColumnsSequence('dragAndDropHandle');
         $dataGrid->setColumnAttributes('question', array('class' => 'title'));
         $dataGrid->setColumnAttributes('dragAndDropHandle', array('class' => 'dragAndDropHandle'));
         $dataGrid->setRowAttributes(array('id' => '[id]'));
         // check if this action is allowed
         if (BackendAuthentication::isAllowedAction('Edit')) {
             $dataGrid->setColumnURL('question', BackendModel::createURLForAction('Edit') . '&amp;id=[id]');
             $dataGrid->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&amp;id=[id]', BL::lbl('Edit'));
         }
         // add dataGrid to list
         $this->dataGrids[] = array('id' => $categoryId, 'title' => $categoryTitle, 'content' => $dataGrid->getContent());
     }
     // set empty datagrid
     $this->emptyDatagrid = new BackendDataGridArray(array(array('dragAndDropHandle' => '', 'question' => BL::msg('NoQuestionInCategory'), 'edit' => '')));
     $this->emptyDatagrid->setAttributes(array('class' => 'dataGrid sequenceByDragAndDrop emptyGrid'));
     $this->emptyDatagrid->setHeaderLabels(array('edit' => null, 'dragAndDropHandle' => null));
 }
Example #5
0
 /**
  * Load the datagrid with the drafts
  */
 private function loadDataGridDrafts()
 {
     // create datagrid
     $this->dgDrafts = new BackendDataGridDB(BackendPagesModel::QRY_DATAGRID_BROWSE_DRAFTS, array('draft', BackendAuthentication::getUser()->getUserId(), BL::getWorkingLanguage()));
     // hide columns
     $this->dgDrafts->setColumnsHidden(array('revision_id'));
     // disable paging
     $this->dgDrafts->setPaging(false);
     // set column functions
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getUser'), array('[user_id]'), 'user_id', true);
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getLongDate'), array('[edited_on]'), 'edited_on');
     // set headers
     $this->dgDrafts->setHeaderLabels(array('user_id' => \SpoonFilter::ucfirst(BL::lbl('By')), 'edited_on' => \SpoonFilter::ucfirst(BL::lbl('LastEdited'))));
     // check if allowed to edit
     if (BackendAuthentication::isAllowedAction('Edit', $this->getModule())) {
         // set column URLs
         $this->dgDrafts->setColumnURL('title', BackendModel::createURLForAction('Edit') . '&amp;id=[id]&amp;draft=[revision_id]');
         // add edit column
         $this->dgDrafts->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&amp;id=[id]&amp;draft=[revision_id]', BL::lbl('Edit'));
     }
 }
Example #6
0
 /**
  * Loads the datagrid with the unsent mailings
  */
 private function loadDataGridUnsentMailings()
 {
     // set query & parameters
     $query = BackendMailmotorModel::QRY_DATAGRID_BROWSE_UNSENT;
     $parameters = array('concept');
     // campaign is set
     if (!empty($this->campaign)) {
         // reset query, add to parameters
         $query = BackendMailmotorModel::QRY_DATAGRID_BROWSE_UNSENT_FOR_CAMPAIGN;
         $parameters[] = $this->campaign['id'];
     }
     // create datagrid
     $this->dgUnsentMailings = new BackendDataGridDB($query, $parameters);
     $this->dgUnsentMailings->setColumnsHidden(array('campaign_id', 'status'));
     // if a campaign is set, hide the campaign name in the datagrid
     if (!empty($this->campaign)) {
         $this->dgUnsentMailings->setColumnHidden('campaign_name');
     }
     // sorting columns
     $this->dgUnsentMailings->setSortingColumns(array('name', 'campaign_name', 'created_on', 'language'), 'created_on');
     $this->dgUnsentMailings->setSortParameter('desc');
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('Edit')) {
         // set colum URLs
         $this->dgUnsentMailings->setColumnURL('name', BackendModel::createURLForAction('Edit') . '&amp;id=[id]');
         // add edit column
         $this->dgUnsentMailings->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&amp;id=[id]', BL::lbl('Edit'));
     }
     // add the multicheckbox column
     $this->dgUnsentMailings->addColumn('checkbox', '<span class="checkboxHolder"><input type="checkbox" name="toggleChecks" value="toggleChecks" /></span>', '<span><input type="checkbox" name="id[]" value="[id]" class="inputCheckbox" /></span>');
     $this->dgUnsentMailings->setColumnsSequence('checkbox');
     // add mass action dropdown
     $ddmMassAction = new \SpoonFormDropdown('action', array('delete' => BL::lbl('Delete')), 'delete');
     $this->dgUnsentMailings->setMassAction($ddmMassAction);
     // set column functions
     $this->dgUnsentMailings->setColumnFunction(array(__CLASS__, 'setCampaignLink'), array('[campaign_id]', '[campaign_name]'), 'campaign_name', true);
     $this->dgUnsentMailings->setColumnFunction(array(new BackendDataGridFunctions(), 'getTimeAgo'), array('[created_on]'), 'created_on', true);
     // add styles
     $this->dgUnsentMailings->setColumnAttributes('name', array('class' => 'title'));
     // set paging limit
     $this->dgUnsentMailings->setPagingLimit(self::UNSENT_MAILINGS_PAGING_LIMIT);
 }
Example #7
0
 /**
  * Load the datagrid with drafts
  */
 private function loadDrafts()
 {
     // create datagrid
     $this->dgDrafts = new BackendDataGridDB(BackendPagesModel::QRY_DATAGRID_BROWSE_SPECIFIC_DRAFTS, array($this->record['id'], 'draft', BL::getWorkingLanguage()));
     // hide columns
     $this->dgDrafts->setColumnsHidden(array('id', 'revision_id'));
     // disable paging
     $this->dgDrafts->setPaging(false);
     // set headers
     $this->dgDrafts->setHeaderLabels(array('user_id' => \SpoonFilter::ucfirst(BL::lbl('By')), 'edited_on' => \SpoonFilter::ucfirst(BL::lbl('LastEditedOn'))));
     // set column-functions
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getUser'), array('[user_id]'), 'user_id');
     $this->dgDrafts->setColumnFunction(array(new BackendDataGridFunctions(), 'getTimeAgo'), array('[edited_on]'), 'edited_on');
     // our JS needs to know an id, so we can highlight it
     $this->dgDrafts->setRowAttributes(array('id' => 'row-[revision_id]'));
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('Edit')) {
         // set column URLs
         $this->dgDrafts->setColumnURL('title', BackendModel::createURLForAction('Edit') . '&amp;id=[id]&amp;draft=[revision_id]');
         // add use column
         $this->dgDrafts->addColumn('use_draft', null, BL::lbl('UseThisDraft'), BackendModel::createURLForAction('Edit') . '&amp;id=[id]&amp;draft=[revision_id]', BL::lbl('UseThisDraft'));
     }
 }
Example #8
0
 /**
  * Loads the datagrids
  */
 private function loadDataGrids()
 {
     /*
      * DataGrid for the published comments.
      */
     $this->dgPublished = new BackendDataGridDB(BackendBlogModel::QRY_DATAGRID_BROWSE_COMMENTS, array('published', BL::getWorkingLanguage(), 'active'));
     // active tab
     $this->dgPublished->setActiveTab('tabPublished');
     // num items per page
     $this->dgPublished->setPagingLimit(30);
     // header labels
     $this->dgPublished->setHeaderLabels(array('created_on' => \SpoonFilter::ucfirst(BL::lbl('Date')), 'text' => \SpoonFilter::ucfirst(BL::lbl('Comment'))));
     // add the multicheckbox column
     $this->dgPublished->setMassActionCheckboxes('check', '[id]');
     // assign column functions
     $this->dgPublished->setColumnFunction(array(new BackendDataGridFunctions(), 'getTimeAgo'), '[created_on]', 'created_on', true);
     $this->dgPublished->setColumnFunction(array(new BackendDataGridFunctions(), 'cleanupPlaintext'), '[text]', 'text', true);
     $this->dgPublished->setColumnFunction(array(__CLASS__, 'addPostData'), array('[text]', '[post_title]', '[post_url]', '[id]'), 'text', true);
     // sorting
     $this->dgPublished->setSortingColumns(array('created_on', 'text', 'author'), 'created_on');
     $this->dgPublished->setSortParameter('desc');
     // hide columns
     $this->dgPublished->setColumnsHidden('post_id', 'post_title', 'post_url');
     // add mass action dropdown
     $ddmMassAction = new \SpoonFormDropdown('action', array('moderation' => BL::lbl('MoveToModeration'), 'spam' => BL::lbl('MoveToSpam'), 'delete' => BL::lbl('Delete')), 'spam', false, 'form-control', 'form-control danger');
     $ddmMassAction->setAttribute('id', 'actionPublished');
     $ddmMassAction->setOptionAttributes('delete', array('data-target' => '#confirmDeletePublished'));
     $ddmMassAction->setOptionAttributes('spam', array('data-target' => '#confirmPublishedToSpam'));
     $this->dgPublished->setMassAction($ddmMassAction);
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('EditComment')) {
         $this->dgPublished->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('EditComment') . '&amp;id=[id]', BL::lbl('Edit'));
     }
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('MassCommentAction')) {
         $this->dgPublished->addColumn('mark_as_spam', null, BL::lbl('MarkAsSpam'), BackendModel::createURLForAction('MassCommentAction') . '&amp;id=[id]&amp;from=published&amp;action=spam', BL::lbl('MarkAsSpam'));
     }
     /*
      * DataGrid for the comments that are awaiting moderation.
      */
     // datagrid for the comments that are awaiting moderation
     $this->dgModeration = new BackendDataGridDB(BackendBlogModel::QRY_DATAGRID_BROWSE_COMMENTS, array('moderation', BL::getWorkingLanguage(), 'active'));
     // active tab
     $this->dgModeration->setActiveTab('tabModeration');
     // num items per page
     $this->dgModeration->setPagingLimit(30);
     // header labels
     $this->dgModeration->setHeaderLabels(array('created_on' => \SpoonFilter::ucfirst(BL::lbl('Date')), 'text' => \SpoonFilter::ucfirst(BL::lbl('Comment'))));
     // add the multicheckbox column
     $this->dgModeration->setMassActionCheckboxes('check', '[id]');
     // assign column functions
     $this->dgModeration->setColumnFunction(array(new BackendDataGridFunctions(), 'getTimeAgo'), '[created_on]', 'created_on', true);
     $this->dgModeration->setColumnFunction(array(new BackendDataGridFunctions(), 'cleanupPlaintext'), '[text]', 'text', true);
     $this->dgModeration->setColumnFunction(array(__CLASS__, 'addPostData'), array('[text]', '[post_title]', '[post_url]', '[id]'), 'text', true);
     // sorting
     $this->dgModeration->setSortingColumns(array('created_on', 'text', 'author'), 'created_on');
     $this->dgModeration->setSortParameter('desc');
     // hide columns
     $this->dgModeration->setColumnsHidden('post_id', 'post_title', 'post_url');
     // add mass action dropdown
     $ddmMassAction = new \SpoonFormDropdown('action', array('published' => BL::lbl('MoveToPublished'), 'spam' => BL::lbl('MoveToSpam'), 'delete' => BL::lbl('Delete')), 'published', false, 'form-control', 'form-control danger');
     $ddmMassAction->setAttribute('id', 'actionModeration');
     $ddmMassAction->setOptionAttributes('delete', array('data-target' => '#confirmDeleteModeration'));
     $ddmMassAction->setOptionAttributes('spam', array('data-target' => '#confirmModerationToSpam'));
     $this->dgModeration->setMassAction($ddmMassAction);
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('EditComment')) {
         $this->dgModeration->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('EditComment') . '&amp;id=[id]', BL::lbl('Edit'));
     }
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('MassCommentAction')) {
         $this->dgModeration->addColumn('approve', null, BL::lbl('Approve'), BackendModel::createURLForAction('MassCommentAction') . '&amp;id=[id]&amp;from=published&amp;action=published', BL::lbl('Approve'));
     }
     /*
      * DataGrid for the comments that are marked as spam
      */
     $this->dgSpam = new BackendDataGridDB(BackendBlogModel::QRY_DATAGRID_BROWSE_COMMENTS, array('spam', BL::getWorkingLanguage(), 'active'));
     // active tab
     $this->dgSpam->setActiveTab('tabSpam');
     // num items per page
     $this->dgSpam->setPagingLimit(30);
     // header labels
     $this->dgSpam->setHeaderLabels(array('created_on' => \SpoonFilter::ucfirst(BL::lbl('Date')), 'text' => \SpoonFilter::ucfirst(BL::lbl('Comment'))));
     // add the multicheckbox column
     $this->dgSpam->setMassActionCheckboxes('check', '[id]');
     // assign column functions
     $this->dgSpam->setColumnFunction(array(new BackendDataGridFunctions(), 'getTimeAgo'), '[created_on]', 'created_on', true);
     $this->dgSpam->setColumnFunction(array(new BackendDataGridFunctions(), 'cleanupPlaintext'), '[text]', 'text', true);
     $this->dgSpam->setColumnFunction(array(__CLASS__, 'addPostData'), array('[text]', '[post_title]', '[post_url]', '[id]'), 'text', true);
     // sorting
     $this->dgSpam->setSortingColumns(array('created_on', 'text', 'author'), 'created_on');
     $this->dgSpam->setSortParameter('desc');
     // hide columns
     $this->dgSpam->setColumnsHidden('post_id', 'post_title', 'post_url');
     // add mass action dropdown
     $ddmMassAction = new \SpoonFormDropdown('action', array('published' => BL::lbl('MoveToPublished'), 'moderation' => BL::lbl('MoveToModeration'), 'delete' => BL::lbl('Delete')), 'published', false, 'form-control', 'form-control danger');
     $ddmMassAction->setAttribute('id', 'actionSpam');
     $ddmMassAction->setOptionAttributes('delete', array('data-target' => '#confirmDeleteSpam'));
     $this->dgSpam->setMassAction($ddmMassAction);
     // check if this action is allowed
     if (BackendAuthentication::isAllowedAction('MassCommentAction')) {
         $this->dgSpam->addColumn('approve', null, BL::lbl('Approve'), BackendModel::createURLForAction('MassCommentAction') . '&amp;id=[id]&amp;from=spam&amp;action=published', BL::lbl('Approve'));
     }
 }