/** * Sets the type of the field item currently being edited. * * @param string $urlVar The name of the URL variable if different from the primary key * * @return void * @since 1.1.0 */ function setType($urlVar = 'id') { // Get the posted values from the request. $data = $this->input->post->get('jform', array(), 'array'); $recordId = $this->input->get($urlVar, 0, 'int'); // Get the type. $options = new JRegistry(base64_decode($data['temp_type'])); $name = $options->get('name'); $typeMode = $options->get('type_mode'); $modes = FieldsandfiltersModes::getMode()->get($typeMode); $type = FieldsandfiltersFactory::getTypes()->getTypesByName($name)->get($name); if ($name && $modes && $type && $recordId == $options->get('id', 0)) { $data['type'] = $name; $data['type_mode'] = $typeMode; //Save the data in the session. JFactory::getApplication()->setUserState('com_fieldsandfilters.edit.field.data', $data); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . $this->getRedirectToItemAppend($recordId, $urlVar), false)); return true; } $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false)); return false; }
public static function setUserStateFieldID($context, $name = 'field_id') { $app = JFactory::getApplication(); $userState = (array) $app->getUserState($context); if ($fieldID = $app->input->getInt($name)) { if ($fieldID != JArrayHelper::getValue($userState, $name)) { $userState[$name] = $fieldID; $app->setUserState($context, $userState); return true; } } else { if (!JArrayHelper::getValue($userState, $name)) { $filterMode = FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER); $extensionsID = FieldsandfiltersFactory::getExtensions()->getExtensionsColumn('content_type_id'); $fieldsID = FieldsandfiltersFactory::getFields()->getFieldsByModeIDColumn('id', $extensionsID, $filterMode, array(1, -1)); $fieldID = current($fieldsID); $userState[$name] = $fieldID; $app->setUserState($context, $userState); return true; } } return false; }
/** * Method to delete one or more records. * * @param array &$pks An array of record primary keys. * * @return boolean True if successful, false if an error occurs. * @since 1.1.0 */ public function delete(&$pks) { $app = JFactory::getApplication(); $pks = (array) $pks; $table = $this->getTable(); $valueTable = $this->getTable('Fieldvalue', 'FieldsandfiltersTable'); $elementTable = $this->getTable('Element', 'FieldsandfiltersTable'); $filterMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER); $otherMode = (array) FieldsandfiltersModes::getModes(null, array(), true, $filterMode); // Include the content plugins for the on delete events. JPluginHelper::importPlugin('content'); // Include the fieldsandfilters Types plugins for the on save events. JPluginHelper::importPlugin(FieldsandfiltersTypes::PLUGIN_FOLDER); try { // Iterate the items to delete each one. foreach ($pks as $i => $pk) { if (!$table->load($pk) || !$this->canDelete($table)) { throw new Exception($table->getError()); } $context = $this->option . '.' . $this->name; // Trigger the onContentBeforeDelete event. $result = $app->triggerEvent($this->event_before_delete, array($context, $table)); if (in_array(false, $result, true)) { throw new Exception($table->getError()); } // Get old item $item = $this->getItem($pk); // Trigger the onFieldsandfiltersBeforeSaveData event. $result = $app->triggerEvent('onFieldsandfiltersBeforeDeleteData', array($context, $item)); if (in_array(false, $result, true)) { throw new Exception($table->getError()); } $objectTable = new stdClass(); $objectTable->field_id = $table->id; $objectTable->element_id = null; //delete fields values and connections if (in_array($table->mode, $filterMode)) { if (!$valueTable->deleteByFieldID($table->id)) { throw new Exception($valueTable->getError()); } if (!$elementTable->deleteConnections($objectTable)) { throw new Exception($elementTable->getError()); } } else { if (in_array($table->mode, $otherMode) && !$elementTable->deleteData($objectTable)) { throw new Exception($elementTable->getError()); } } if (!$table->delete($pk)) { throw new Exception($table->getError()); } // Trigger the onContentAfterDelete event. $app->triggerEvent($this->event_after_delete, array($context, $table)); } // Clear the component's cache $this->cleanCache(); } catch (Exception $e) { $this->setError($e->getMessage()); return false; } return true; }
/** * onFieldsandfiltersPrepareFormField * * @param KextensionsForm $form The form to be altered. * @param JObject $data The associated data for the form. * @param boolean $isNew Is element is new * @param string $fieldset Fieldset name * * @return boolean * @since 1.1.0 */ public function onFieldsandfiltersPrepareFormField(KextensionsForm $form, JObject $data, $isNew = false, $fieldset = 'fieldsandfilters') { if (!($fields = $data->get($this->_name))) { return true; } // Load Array Helper $fields = is_array($fields) ? $fields : array($fields); $staticMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_STATIC); $syntax = KextensionsPlugin::getParams('system', 'fieldsandfilters')->get('syntax', '#{%s}'); while ($field = array_shift($fields)) { $root = new SimpleXMLElement('<fields />'); $root->addAttribute('name', 'data'); if ($field->params->get('type.hidden', 0)) { $element = $root->addChild('field'); $element->addAttribute('type', 'hidden'); } else { if (!empty($field->description) && $field->params->get('base.admin_enabled_description', 0)) { switch ($field->params->get('base.admin_description_type', 'description')) { case 'tip': $element = $root->addChild('field'); $element->addAttribute('description', $field->description); $element->addAttribute('translate_description', 'false'); break; case 'description': default: $element = $root->addChild('field'); $element->addAttribute('type', 'spacer'); $element->addAttribute('name', 'description_spacer_' . $field->id); $element->addAttribute('label', $field->description); $element->addAttribute('translate_label', 'false'); $element->addAttribute('fieldset', $fieldset); $element = $root->addChild('field'); break; } } else { $element = $root->addChild('field'); } $label = '<strong>' . $field->name . '</strong> ' . sprintf($syntax, $field->id); if ($field->state == -1) { $label .= ' [' . JText::_('PLG_FIELDSANDFILTERS_FORM_ONLY_ADMIN') . ']'; } if (in_array($field->mode, $staticMode)) { $element->addAttribute('type', 'spacer'); $element->addAttribute('description', $field->data); $element->addAttribute('translate_description', 'false'); $label .= ' [' . JText::_('PLG_FIELDSANDFILTERS_FORM_GROUP_STATIC_TITLE') . ']'; } else { if ($field->params->get('type.readonly', 0)) { $element->addAttribute('class', 'readonly'); } else { $element->addAttribute('class', 'inputbox'); } $element->addAttribute('type', 'text'); if ($field->required) { $element->addAttribute('required', 'true'); } } $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('label', $label); $element->addAttribute('translate_label', 'false'); } $element->addAttribute('id', $field->id); $element->addAttribute('name', $field->id); $element->addAttribute('fieldset', $fieldset); // hr bottom spacer $element = $root->addChild('field'); $element->addAttribute('type', 'spacer'); $element->addAttribute('name', 'hr_bottom_spacer_' . $field->id); $element->addAttribute('hr', 'true'); $element->addAttribute('fieldset', $fieldset); $form->addOrder($field->id, $field->ordering)->setField($field->id, $root); } return true; }
/** * onFieldsandfiltersPrepareFormField * * @param KextensionsForm $form The form to be altered. * @param JObject $data The associated data for the form. * @param boolean $isNew Is element is new * @param string $fieldset Fieldset name * * @return boolean * @since 1.1.0 */ public function onFieldsandfiltersPrepareFormField(KextensionsForm $form, JObject $data, $isNew = false, $fieldset = 'fieldsandfilters') { if (!($fields = $data->get($this->_name))) { return true; } $fields = is_array($fields) ? $fields : array($fields); $staticMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_STATIC); $syntax = KextensionsPlugin::getParams('system', 'fieldsandfilters')->get('syntax', '#{%s}'); while ($field = array_shift($fields)) { $root = new SimpleXMLElement('<fields />'); $root->addAttribute('name', 'data'); $rootJson = $root->addChild('fields'); $rootJson->addAttribute('name', $field->id); $label = '<strong>' . $field->name . '</strong> ' . sprintf($syntax, $field->id); if ($field->state == -1) { $label .= ' [' . JText::_('PLG_FIELDSANDFILTERS_FORM_ONLY_ADMIN') . ']'; } if (!($isStaticMode = in_array($field->mode, $staticMode))) { // name spacer $element = $rootJson->addChild('field'); $element->addAttribute('type', 'spacer'); $element->addAttribute('name', 'name_spacer_' . $field->id); $element->addAttribute('label', $label); $element->addAttribute('translate_label', 'false'); $element->addAttribute('class', 'text'); $element->addAttribute('fieldset', $fieldset); } if (!empty($field->description) && $field->params->get('base.admin_enabled_description', 0)) { switch ($field->params->get('base.admin_description_type', 'description')) { case 'tip': $element->addAttribute('description', $field->description); $element->addAttribute('translate_description', 'false'); break; case 'description': default: $element = $rootJson->addChild('field'); $element->addAttribute('type', 'spacer'); $element->addAttribute('name', 'description_spacer_' . $field->id); $element->addAttribute('label', $field->description); $element->addAttribute('translate_label', 'false'); $element->addAttribute('fieldset', $fieldset); break; } } $element = $rootJson->addChild('field'); $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('fieldset', $fieldset); if ($isStaticMode) { $label .= ' [' . JText::_('PLG_FIELDSANDFILTERS_FORM_GROUP_STATIC_TITLE') . ']'; $element->addAttribute('type', 'spacer'); $element->addAttribute('description', $field->data); $element->addAttribute('name', $field->id); $element->addAttribute('label', $label); $element->addAttribute('translate_label', 'false'); $element->addAttribute('translate_description', 'false'); } else { //image $element->addAttribute('name', 'image'); $element->addAttribute('type', 'media'); $element->addAttribute('class', 'inputbox'); $element->addAttribute('label', 'PLG_FAF_TS_IE_FORM_IMAGE_LBL'); $element->addAttribute('description', 'PLG_FAF_TS_IE_FORM_IMAGE_DESC'); $element->addAttribute('filter', 'safehtml'); if ($field->required) { $element->addAttribute('required', 'true'); } //src $element = $rootJson->addChild('field'); $element->addAttribute('name', 'src'); $element->addAttribute('type', 'hidden'); $element->addAttribute('filter', 'safehtml'); $element->addAttribute('fieldset', $fieldset); // caption $element = $rootJson->addChild('field'); $element->addAttribute('name', 'caption'); $element->addAttribute('type', 'text'); $element->addAttribute('class', 'inputbox'); $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('label', 'PLG_FAF_TS_IE_FORM_CAPTION_LBL'); $element->addAttribute('description', 'PLG_FAF_TS_IE_FORM_CAPTION_DESC'); $element->addAttribute('filter', 'safehtml'); $element->addAttribute('fieldset', $fieldset); // alt $element = $rootJson->addChild('field'); $element->addAttribute('name', 'alt'); $element->addAttribute('type', 'text'); $element->addAttribute('class', 'inputbox'); $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('label', 'PLG_FAF_TS_IE_FORM_ALT_LBL'); $element->addAttribute('description', 'PLG_FAF_TS_IE_FORM_ALT_DESC'); $element->addAttribute('filter', 'safehtml'); $element->addAttribute('fieldset', $fieldset); if ($field->params->get('type.create_thumb')) { //src thumb $element = $rootJson->addChild('field'); $element->addAttribute('name', 'src_thumb'); $element->addAttribute('type', 'hidden'); $element->addAttribute('filter', 'safehtml'); $element->addAttribute('fieldset', $fieldset); } else { // link $element = $rootJson->addChild('field'); $element->addAttribute('name', 'link'); $element->addAttribute('type', 'text'); $element->addAttribute('class', 'inputbox'); $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('label', 'PLG_FAF_TS_IE_FORM_LINK_LBL'); $element->addAttribute('description', 'PLG_FAF_TS_IE_FORM_LINK_DESC'); $element->addAttribute('filter', 'safehtml'); $element->addAttribute('fieldset', $fieldset); // link target $element = $rootJson->addChild('field'); $element->addAttribute('name', 'target'); $element->addAttribute('type', 'list'); $element->addAttribute('class', 'inputbox'); $element->addAttribute('labelclass', 'control-label'); $element->addAttribute('label', 'PLG_FAF_TS_IE_FORM_TARGET_LBL'); $element->addAttribute('description', 'PLG_FAF_TS_IE_FORM_TARGET_DESC'); $element->addAttribute('fieldset', $fieldset); KextensionsXML::addOptionsNode($element, array('PLG_FAF_TS_IE_FORM_TARGET_OPTION_DEFAULT' => '', 'PLG_FAF_TS_IE_FORM_TARGET_OPTION_BLANK' => 1, 'PLG_FAF_TS_IE_FORM_TARGET_OPTION_POPUP' => 2, 'PLG_FAF_TS_IE_FORM_TARGET_OPTION_MODAL' => 3, 'PLG_FAF_TS_IE_FORM_TARGET_OPTION_PARENT' => 4)); } } // hr bottom spacer $element = $rootJson->addChild('field'); $element->addAttribute('type', 'spacer'); $element->addAttribute('name', 'hr_bottom_spacer_' . $field->id); $element->addAttribute('hr', 'true'); $element->addAttribute('fieldset', $fieldset); $form->addOrder($field->id, $field->ordering)->setField($field->id, $root); } return true; }
/** * Method to save the form data. * * @param array $data The form data. * * @return boolean True on success, False on error. * * @since 1.1.0 */ public function save($data) { $app = JFactory::getApplication(); $table = $this->getTable(); $key = $table->getKeyName(); $pk = !empty($data[$key]) ? $data[$key] : (int) $this->getState($this->getName() . '.id'); $isNew = true; // Include the content plugins for the on save events. JPluginHelper::importPlugin('content'); JPluginHelper::importPlugin('fieldsandfilterstypes'); // Allow an exception to be thrown. try { // Load the row if saving an existing record. if ($pk > 0) { $table->load($pk); $isNew = false; } // Bind the data. if (!$table->bind($data)) { throw new Exception($table->getError()); } // Prepare the row for saving $this->prepareTable($table); // Check the data. if (!$table->check()) { throw new Exception($table->getError()); } // Load PluginExtensions Helper $extensionName = ($extension = FieldsandfiltersFactory::getExtensions()->getExtensionsByTypeIDPivot('content_type_id', $table->content_type_id)->get($table->content_type_id)) ? $extension->name : ''; $context = $this->option . '.' . $this->name . '.' . $extensionName; // Trigger the onContentBeforeSave event. $result = $app->triggerEvent($this->event_before_save, array($context, $table, $isNew)); if (in_array(false, $result, true)) { throw new Exception($table->getError()); } $tableFields = (array) $table->get('fields'); // Get old item $item = $this->getItem($table->{$key}); // Store the data. if (!$table->store()) { throw new Exception($table->getError()); } $table->set('fields', JArrayHelper::toObject($tableFields, 'JObject')); // Store fields data and connections // Trigger the onFieldsandfiltersBeforeSaveData event. $result = $app->triggerEvent('onFieldsandfiltersBeforeSaveData', array($this->option . '.' . $this->name, $table, $item, $isNew)); // array($newItem, $oldItem) if (in_array(false, $result, true)) { throw new Exception($table->getError()); } $item = $item->get('fields', new JObject()); $dataItem = $item->get('data', new JObject()); $connectionsItem = $item->get('connections', new JObject()); $tableFields = $table->get('fields', new JObject()); $data = $tableFields->get('data', new JObject()); $connections = $tableFields->get('connections', new JObject()); $filterMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER, array()); $otherMode = (array) FieldsandfiltersModes::getModes(null, array(), true, $filterMode); $fields = FieldsandfiltersFieldsHelper::getFieldsByTypeIDColumnFieldType($table->content_type_id); $fields = KextensionsArray::flatten(get_object_vars($fields)); while ($field = array_shift($fields)) { $_data = (string) $data->get($field->id, ''); $_dataItem = (string) $dataItem->get($field->id, ''); $_connections = (array) $connections->get($field->id, new JObject())->getProperties(true); $_connectionsItem = (array) $connectionsItem->get($field->id, new JObject())->getProperties(true); // other (field/static) if (in_array($field->mode, $otherMode) && (!empty($_data) || !empty($_dataItem))) { $tableObject = new stdClass(); $tableObject->field_id = (int) $field->id; // delete text if (!empty($_dataItem) && empty($_data)) { $table->deleteData($tableObject); } elseif (empty($_dataItem) && !empty($_data)) { $tableObject->data = $_data; $table->insertData($tableObject); } elseif ($_dataItem != $_data) { $tableObject->data = $_data; $table->updateData($tableObject); } } elseif (in_array($field->mode, $filterMode) && (!empty($_connections) || !empty($_connectionsItem))) { $tableObject = new stdClass(); $tableObject->field_id = (int) $field->id; $field_valuesID = array_keys($field->values->getProperties(true)); $_connections = array_intersect($field_valuesID, $_connections); $__connections = array_unique(array_diff($_connections, $_connectionsItem)); JArrayHelper::toInteger($__connections); if (!empty($__connections)) { $tableObject->field_value_id = $__connections; $table->insertConnections($tableObject); } $__connections = array_unique(array_diff($_connectionsItem, $_connections)); JArrayHelper::toInteger($__connections); if (!empty($__connections)) { $tableObject = new stdClass(); $tableObject->field_value_id = $__connections; $table->deleteConnections($tableObject); } } } // Trigger the onContentAfterSave event. $app->triggerEvent($this->event_after_save, array($context, $table, $isNew)); // Clean the cache. $this->cleanCache(); } catch (Exception $e) { $this->setError($e->getMessage()); return false; } $pkName = $table->getKeyName(); if (isset($table->{$pkName})) { $this->setState($this->getName() . '.id', $table->{$pkName}); } $this->setState($this->getName() . '.new', $isNew); return true; }
/** * @since 1.2.0 **/ public static function getFieldsByTypeIDColumnFieldType($contentTypeID, $withStatic = null, $states = array(1, -1), $getAllextensions = true) { $withStatic = !is_null($withStatic) ? $withStatic : JComponentHelper::getParams('com_fieldsandfilters')->get('show_static_fields', true); $contentTypeID = (array) $contentTypeID; if ($getAllextensions && ($extension = FieldsandfiltersFactory::getExtensions()->getExtensionsByName(FieldsandfiltersExtensions::EXTENSION_DEFAULT)->get(FieldsandfiltersExtensions::EXTENSION_DEFAULT))) { $contentTypeID[] = (int) $extension->content_type_id; } $fieldsHelper = FieldsandfiltersFactory::getFields(); if ($withStatic) { $fields = $fieldsHelper->getFieldsPivot('type', $contentTypeID, $states, FieldsandfiltersFields::VALUES_BOTH); } else { $staticMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_STATIC, array()); $otherMode = (array) FieldsandfiltersModes::getModes(null, array(), true, $staticMode); $fields = $fieldsHelper->getFieldsByModeIDPivot('type', $contentTypeID, $otherMode, $states, FieldsandfiltersFields::VALUES_BOTH); } return $fields; }
<?php /** * @package com_fieldsandfilters * @copyright Copyright (C) 2012 KES - Kulka Tomasz . All rights reserved. * @license GNU General Public License version 3 or later; see License.txt * @author KES - Kulka Tomasz <*****@*****.**> - http://www.kextensions.com */ // no direct access defined('_JEXEC') or die; // Load PluginTypes Helper $typesHelper = FieldsandfiltersFactory::getTypes(); $valuesMode = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER); // Load PluginExtensions Helper $extensionsHelper = FieldsandfiltersFactory::getExtensions(); JHtml::_('bootstrap.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); JHtml::_('formbehavior.chosen', 'select'); // Import CSS JHtml::_('stylesheet', 'fieldsandfilters/administrator/fieldsandfilters.css', array(), true); $app = JFactory::getApplication(); $user = JFactory::getUser(); $userId = $user->get('id'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $canOrder = $user->authorise('core.edit.state', 'com_fieldsandfilters'); $saveOrder = $listOrder == 'f.ordering'; if ($saveOrder) { $saveOrderingUrl = 'index.php?option=com_fieldsandfilters&task=fields.saveOrderAjax&tmpl=component'; JHtml::_('sortablelist.sortable', 'fieldList', 'adminForm', strtolower($listDirn), $saveOrderingUrl);
/** * @since 1.1.0 */ public function onFieldsandfiltersPrepareFiltersHTML($context, Jobject $filters, $fieldsID = null, $getAllextensions = true, JRegistry $params = null, $ordering = 'ordering') { if (!in_array($context, $this->_contexts)) { return; } $app = JFactory::getApplication(); $jinput = $app->input; $id = $jinput->get('id', 0, 'int'); // Load PluginExtensions Helper $extensionsHelper = FieldsandfiltersFactory::getExtensions(); $extensionContent = $extensionsHelper->getExtensionsByName($this->_name)->get($this->_name); if ($context == $this->_contexts['category'] && !$id || !$extensionContent) { return; } // add model path $prefix = get_class($this); list($option, $class) = explode('.', $context); JModelLegacy::addIncludePath(sprintf('%s/%s/%s/overrides/models', JPATH_PLUGINS, $this->_type, $this->_name), $prefix . 'Model'); if (!($model = JModelLegacy::getInstance($class, $prefix . 'Model', array('ignore_request' => false, 'table_path' => JPATH_ADMINISTRATOR . '/components/' . $option . '/tables')))) { return; } $itemsID = $model->getContentItemsID(); if (empty($itemsID)) { return; } // Load Filters Helper $counts = FieldsandfiltersFiltersHelper::getFiltersValuesCount($extensionContent->content_type_id, $fieldsID, $itemsID, $model->getState('filter.published')); if (empty($counts)) { return; } $extensionsID = $getAllextensions ? $extensionsHelper->getExtensionsByNameColumn('content_type_id', array(FieldsandfiltersExtensions::EXTENSION_DEFAULT, $this->_name)) : $extensionContent->content_type_id; // Load Fields Helper $fieldsHelper = FieldsandfiltersFactory::getFields(); if (is_null($fieldsID)) { // Load PluginTypes Helper if ($modes = FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER)) { } // multi extensions array( $this->_name, 'allextensions' ) // $fields = $fieldsHelper->getFieldsByModeIDPivot( 'type', $extensionsID, $modes, 1, true ); // single extension $this->_name $fields = $fieldsHelper->getFieldsByModeIDPivot('type', $extensionsID, $modes, 1, FieldsandfiltersFields::VALUES_VALUES, true); } else { if (is_numeric($fieldsID) || is_array($fieldsID)) { // multi extensions array( $this->_name, 'allextensions' ) // $fields = $fieldsHelper->getFieldsByIDPivot( 'type', $extensionContent->content_type_id, $fieldsID, 1, true ); // single extension $this->_name $fields = $fieldsHelper->getFieldsByIDPivot('type', $extensionsID, $fieldsID, 1, FieldsandfiltersFields::VALUES_VALUES, true); } else { return; } } $templateFields = new JObject(); JPluginHelper::importPlugin('fieldsandfilterstypes'); // Trigger the onFieldsandfiltersPrepareFormField event. $app->triggerEvent('getFieldsandfiltersFiltersHTML', array($templateFields, $fields, $context, $params, $ordering)); $templateFields = $templateFields->getProperties(true); if (empty($templateFields)) { return; } ksort($templateFields); $filters->set('layouts', $templateFields); $filters->set('request', array('extensionID' => (int) $extensionContent->content_type_id, 'id' => $app->input->get('id', 0, 'int'))); $filters->set('counts', (array) $counts); $router = JFactory::getApplication()->getRouter(); if ($router->getMode() == JROUTER_MODE_SEF) { $filters->set('pagination', array('start' => 0)); } else { $filters->set('pagination', array('limitstart' => 0)); } $selectors = $filters->get('selectors'); if ($context == $this->_contexts['category'] && ($selector = trim($this->params->get('selector_other_category', '#adminForm')))) { $selectors['other'] = $selector; } elseif ($context == $this->_contexts['archive'] && ($selector = trim($this->params->get('selector_other_archive', '#adminForm')))) { $selectors['other'] = $selector; } elseif ($context == $this->_contexts['featured'] && ($selector = trim($this->params->get('selector_other_featured', '')))) { $selectors['other'] = $selector; } $filters->set('selectors', $selectors); return implode("\n", $templateFields); }
/** * * @since 1.1.0 */ public function __construct($debug = false) { parent::__construct($debug); $this->_valuesModes = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER); $this->_staticModes = (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_STATIC); }
/** * Overrides JTable::store to set modified data and user id. * * @param boolean $updateNulls True to update fields even if they are null. * * @return boolean True on success. * @since 1.1.0 */ public function store($updateNulls = false) { // Check mode field if (in_array($this->mode, (array) FieldsandfiltersModes::getMode(FieldsandfiltersModes::MODE_FILTER))) { // Verify that the alias is unique $table = JTable::getInstance('Field', 'FieldsandfiltersTable'); if ($table->load(array('alias' => $this->alias)) && ($table->id != $this->id || $this->id == 0)) { $this->setError(JText::sprintf('COM_FIELDSANDFILTERS_DATABASE_ERROR_FIELD_ALIAS_EXISTS', $this->alias)); return false; } } return parent::store($updateNulls); }