Esempio n. 1
0
 /**
  * Save newly POSTed sort order for the listing.
  *
  * @param ResponseHelper $responseHelper
  */
 public function process(ResponseHelper $responseHelper)
 {
     if (!$this->request->isPost()) {
         $this->error = ['result' => 'error', 'message' => 'Must be POST.'];
         return;
     }
     if (!is_array($this->request->getPost('sort_order'))) {
         $this->error = ['result' => 'error', 'message' => 'sort_order array not available.'];
         return;
     }
     $listing = $this->component->getListing();
     $primaryKey = $listing->getPrimaryKey();
     $model = $primaryKey->getTable();
     $dbAdapter = $model->getAdapter();
     $sortField = $this->component->getSortField();
     foreach ($this->request->getPost('sort_order') as $index => $id) {
         try {
             $model->update(array($sortField->getName() => $index), $dbAdapter->quoteInto("{$primaryKey->getName()} = ?", $id));
         } catch (Exception $e) {
             $this->error = ['result' => 'error', 'message' => 'Failed to save.'];
         }
     }
 }
Esempio n. 2
0
 /**
  * Ensure the user is allowed to view the listing in this component.
  */
 public function init()
 {
     $this->component->getPermissions()->haltIfNotAllowed('view-listing');
     $this->session = new Session();
     $this->session->set($this->component->getListingQueryParamsSessionName(), $this->request->getQuery());
     if ($this->component instanceof SortableListingInterface) {
         $fields = $this->component->getFields();
         $sortField = $this->component->getSortField();
         if (!$fields->has($sortField)) {
             $fields->add($sortField);
         }
         /* @var $sorter \Dewdrop\Fields\Helper\SelectSort */
         $sorter = $this->component->getListing()->getSelectModifierByName('SelectSort');
         $sorter->setDefaultField($sortField);
     }
 }