function render() { $formMessages = array('errors' => array(), 'info' => array()); # Controleer de users' rechten $this->_spotSec->fatalPermCheck(SpotSecurity::spotsec_keep_own_filters, ''); # editfilter resultaat is standaard niet geprobeerd $editResult = array(); # Instantieer het Spot user system $spotUserSystem = new SpotUserSystem($this->_db, $this->_settings); # zet de page title $this->_pageTitle = "spot: filters"; # haal de te editten filter op $spotFilter = $spotUserSystem->getFilter($this->_currentSession['user']['userid'], $this->_filterId); # als de te wijzigen security group niet gevonden kan worden, # geef dan een error if (empty($spotFilter) && isset($this->_editFilterForm['submitchangefilter'])) { $editResult = array('result' => 'failure'); $formMessages['errors'][] = array('validatefilter_filterdoesnotexist', array($this->_filterId)); } # if # Bepaal welke actie er gekozen was (welke knop ingedrukt was) $formAction = ''; if (isset($this->_editFilterForm['submitaddfilter'])) { $formAction = 'addfilter'; unset($this->_editFilterForm['submitaddfilter']); } elseif (isset($this->_editFilterForm['submitremovefilter'])) { $formAction = 'removefilter'; unset($this->_editFilterForm['submitremovefilter']); } elseif (isset($this->_editFilterForm['submitchangefilter'])) { $formAction = 'changefilter'; unset($this->_editFilterForm['submitchangefilter']); } elseif (isset($this->_editFilterForm['submitdiscardfilters'])) { $formAction = 'discardfilters'; unset($this->_editFilterForm['submitdiscardfilters']); } elseif (isset($this->_editFilterForm['submitsetfiltersasdefault'])) { $formAction = 'setfiltersasdefault'; unset($this->_editFilterForm['submitsetfiltersasdefault']); $this->_spotSec->fatalPermCheck(SpotSecurity::spotsec_set_filters_as_default, ''); } elseif (isset($this->_editFilterForm['submitexportfilters'])) { $formAction = 'exportfilters'; unset($this->_editFilterForm['submitexportfilters']); } elseif (isset($this->_editFilterForm['submitimportfilters'])) { $formAction = 'importfilters'; unset($this->_editFilterForm['submitimportfilters']); } elseif (isset($this->_editFilterForm['submitreorder'])) { $formAction = 'reorder'; unset($this->_editFilterForm['submitreorder']); } # if # Is dit een submit van een form, of nog maar de aanroep? if (!empty($formAction) && empty($formMessages['errors'])) { switch ($formAction) { case 'removefilter': $spotUserSystem->removeFilter($this->_currentSession['user']['userid'], $this->_filterId); $editResult = array('result' => 'success'); break; # case 'removefilter' # case 'removefilter' case 'discardfilters': $spotUserSystem->resetFilterList($this->_currentSession['user']['userid']); $editResult = array('result' => 'success'); break; # case 'discardfilters' # case 'discardfilters' case 'setfiltersasdefault': $spotUserSystem->setFiltersAsDefault($this->_currentSession['user']['userid']); $editResult = array('result' => 'success'); break; # case 'setfiltersasdefault' # case 'setfiltersasdefault' case 'exportfilters': $editResult = $spotUserSystem->filtersToXml($spotUserSystem->getPlainFilterList($this->_currentSession['user']['userid'], 'filter')); break; # case 'exportfilters' # case 'exportfilters' case 'importfilters': if (isset($_FILES['filterimport'])) { if ($_FILES['filterimport']['error'] == UPLOAD_ERR_OK) { $xml = file_get_contents($_FILES['filterimport']['tmp_name']); try { $filterList = $spotUserSystem->xmlToFilters($xml); $spotUserSystem->setFilterList($this->_currentSession['user']['userid'], $filterList); } catch (Exception $x) { $editResult = array('result' => 'failure'); $formMessages['errors'][] = array('validatefilter_invaliduploadxml', array()); } # catch } else { $editResult = array('result' => 'failure'); $formMessages['errors'][] = array('validatefilter_fileuploaderr', array($_FILES['filterimport']['error'])); } # if } else { $editResult = array('result' => 'failure'); $formMessages['errors'][] = array('validatefilter_nofileupload', array()); } # else break; # case 'importfilters' # case 'importfilters' case 'addfilter': # Creeer een nieuw filter record - we voegen een filter altijd aan de root toe $filter = $this->_editFilterForm; $filter['valuelist'] = explode('&', $filter['valuelist']); $filter['torder'] = 999; $filter['tparent'] = 0; $filter['children'] = array(); $filter['filtertype'] = 'filter'; $filter['sorton'] = $filter['sorton']; $filter['sortorder'] = $filter['sortorder']; # en probeer de filter toe te voegen $formMessages['errors'] = $spotUserSystem->addFilter($this->_currentSession['user']['userid'], $filter); if (!empty($formMessages['errors'])) { $editResult = array('result' => 'failure'); } else { $editResult = array('result' => 'success'); } # else break; # case 'addfilter' # case 'addfilter' case 'reorder': $orderCounter = 0; # Omdat de nestedSortable jquery widget niet een expliciete sortering meegeeft, voegen # we die zelf toe aan de hand van hoe de elementen binnen komen foreach ($this->_orderList as $id => $parent) { $spotFilter = $spotUserSystem->getFilter($this->_currentSession['user']['userid'], $id); # Als de volgorde of hierarchie dan moet de filter geupdate worden if ($spotFilter['torder'] != $orderCounter || $spotFilter['tparent'] != $parent) { $spotFilter['torder'] = (int) $orderCounter; $spotFilter['tparent'] = (int) $parent; $spotUserSystem->changeFilter($this->_currentSession['user']['userid'], $spotFilter); } # if $orderCounter++; } # foreach # case 'reorder' # case 'reorder' case 'changefilter': $spotFilter = array_merge($spotFilter, $this->_editFilterForm); $spotUserSystem->changeFilter($this->_currentSession['user']['userid'], $spotFilter); $editResult = array('result' => 'success'); break; # case 'changefilter' } # switch } # if #- display stuff -# $this->template('editfilter', array('filter' => $spotFilter, 'sorton' => $this->_sorton, 'sortorder' => $this->_sortorder, 'sortby' => $this->_sorton, 'sortdir' => $this->_sortorder, 'lastformaction' => $formAction, 'formmessages' => $formMessages, 'http_referer' => $this->_editFilterForm['http_referer'], 'editresult' => $editResult)); }