/** * 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()); } }
/** * 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')); } }
/** * 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') . '&id=[id]&draft=[revision_id]'); // add edit column $this->dgDrafts->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&id=[id]&draft=[revision_id]', BL::lbl('Edit')); } }
/** * Loads the datagrid with the unsent mailings */ private function loadDataGridQueuedMailings() { // set query & parameters $query = BackendMailmotorModel::QRY_DATAGRID_BROWSE_SENT; $parameters = array('queued'); // campaign is set if (!empty($this->campaign)) { // reset query, add to parameters $query = BackendMailmotorModel::QRY_DATAGRID_BROWSE_SENT_FOR_CAMPAIGN; $parameters[] = $this->campaign['id']; } // create datagrid $this->dgQueuedMailings = new BackendDataGridDB($query, $parameters); $this->dgQueuedMailings->setColumnsHidden(array('campaign_id', 'status')); // if a campaign is set, hide the campaign name in the datagrid if (!empty($this->campaign)) { $this->dgQueuedMailings->setColumnHidden('campaign_name'); } // set headers values $headers['sent'] = \SpoonFilter::ucfirst(BL::lbl('WillBeSentOn')); // set headers $this->dgQueuedMailings->setHeaderLabels($headers); // sorting columns $this->dgQueuedMailings->setSortingColumns(array('name', 'campaign_name', 'sent', 'language'), 'name'); $this->dgQueuedMailings->setSortParameter('desc'); // add the multicheckbox column $this->dgQueuedMailings->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->dgQueuedMailings->setColumnsSequence('checkbox'); // add mass action dropdown $ddmMassAction = new \SpoonFormDropdown('action', array('delete' => BL::lbl('Delete')), 'delete'); $this->dgQueuedMailings->setMassAction($ddmMassAction); // set column functions $this->dgQueuedMailings->setColumnFunction(array(__CLASS__, 'setCampaignLink'), array('[campaign_id]', '[campaign_name]'), 'campaign_name', true); $this->dgQueuedMailings->setColumnFunction('date', array('Y-m-d @ H:i', '[sent]'), 'sent', true); // check if this action is allowed if (BackendAuthentication::isAllowedAction('Copy')) { $this->dgQueuedMailings->addColumnAction('copy', null, BL::lbl('Copy'), BackendModel::createURLForAction('Copy') . '&id=[id]', BL::lbl('Copy'), array('class' => 'button icon iconMailAdd linkButton')); } // check if this action is allowed if (BackendAuthentication::isAllowedAction('EditMailingCampaign')) { $this->dgQueuedMailings->addColumnAction('edit_mailing_campaign', null, BL::lbl('Edit'), BackendModel::createURLForAction('EditMailingCampaign') . '&id=[id]', BL::lbl('EditMailingCampaign'), array('class' => 'button icon iconFolderEdit linkButton')); } // check if this action is allowed if (BackendAuthentication::isAllowedAction('Statistics')) { $this->dgQueuedMailings->addColumnAction('statistics', null, BL::lbl('Statistics'), BackendModel::createURLForAction('Statistics') . '&id=[id]', BL::lbl('Statistics'), array('class' => 'button icon iconStats linkButton')); } // add styles $this->dgQueuedMailings->setColumnAttributes('name', array('class' => 'title')); // set paging limit $this->dgQueuedMailings->setPagingLimit(self::SENT_MAILINGS_PAGING_LIMIT); }
/** * 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') . '&id=[id]&draft=[revision_id]'); // add use column $this->dgDrafts->addColumn('use_draft', null, BL::lbl('UseThisDraft'), BackendModel::createURLForAction('Edit') . '&id=[id]&draft=[revision_id]', BL::lbl('UseThisDraft')); } }
/** * 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') . '&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') . '&id=[id]&from=published&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') . '&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') . '&id=[id]&from=published&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') . '&id=[id]&from=spam&action=published', BL::lbl('Approve')); } }