protected function getInput() { JHtml::_('behavior.modal'); $document = JFactory::getDocument(); $script = "jQuery(document).ready(function(\$){\r\n\t\t\t\t\t\t\$('#" . $this->id . " li select.blv').change(function(){\r\n\t\t\t\t\t\t\t\$(this).parent().find('input.blv-value').val(\$(this).val());\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\$(\"#" . $this->id . "\").dragsort({ dragSelector: \"li\", dragEnd: saveOrder, placeHolderTemplate: \"<li class='placeHolder'><div></div></li>\", dragSelectorExclude: \"select, .chzn-container\"});\r\n\t\t\t\t\t\tfunction saveOrder() {\r\n\t\t\t var data = jQuery('#" . $this->id . " li').map(function() { return \$(this).data('itemid'); }).get();\r\n\t\t }\r\n\t\t\t\t\t});"; $document->addScriptDeclaration($script); $fields = JUDownloadHelper::getCatFields(); $values = $this->value; $html = ''; $html .= '<ul class="category-fieldorder" id="' . $this->id . '">'; if ($values) { foreach ($values as $key => $value) { if (isset($fields[$key])) { $html .= '<li>'; $html .= '<div>'; $html .= '<span class="field-name">' . $fields[$key] . '</span>'; $html .= '<select class="blv">'; $html .= '<option value="0" ' . ($key == 'title' ? 'disabled ' : '') . ($value == 0 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_HIDE') . '</option>'; $html .= '<option value="1" ' . ($key == 'title' ? 'disabled ' : '') . ($value == 1 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_LIST_VIEW') . '</option>'; $html .= '<option value="2" ' . ($value == 2 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_LIST_VIEW_AND_SHOW') . '</option>'; $html .= '</select>'; $html .= '<input type="hidden" class="blv-value" value="' . $value[0] . '" name="' . $this->name . '[' . $key . ']" />'; $html .= '</div>'; $html .= '</li>'; unset($fields[$key]); } } } if ($fields) { foreach ($fields as $key => $field) { $value = 0; $html .= '<li>'; $html .= '<div>'; $html .= '<span class="field-name" title="Field name">' . $fields[$key] . '</span>'; $html .= '<select class="blv">'; $html .= '<option value="0" ' . ($key == 'title' ? 'disabled ' : '') . ($value == 0 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_HIDE') . '</option>'; $html .= '<option value="1" ' . ($key == 'title' ? 'disabled ' : '') . ($value == 1 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_LIST_VIEW') . '</option>'; $html .= '<option value="2" ' . ($value == 2 ? 'selected' : '') . '>' . JText::_('COM_JUDOWNLOAD_LIST_VIEW_AND_SHOW') . '</option>'; $html .= '</select>'; $html .= '<input type="hidden" class="blv-value" value="' . $value . '" name="' . $this->name . '[' . $key . ']" />'; $html .= '</div>'; $html .= '</li>'; } } $html .= '</ul>'; return $html; }
public function __construct($config = array()) { $app = JFactory::getApplication(); $rootCat = JUDownloadFrontHelperCategory::getRootCategory(); $cat_id = $app->input->getInt('cat_id', $rootCat->id); $this->params = JUDownloadHelper::getParams($cat_id); if (!$cat_id) { $app->input->set('cat_id', $rootCat->id); } $fields = array_filter($app->input->get("fields", array(), 'array')); $apply_layout = $app->input->getInt("apply_layout", 0); $reset_layout = $app->input->getInt("reset_layout", 0); if ($fields && $apply_layout) { $app->setUserState("com_judownload.listcats." . $cat_id . ".fields", $fields); } $this->fields = $this->getFields($cat_id); if ($reset_layout || !$app->getUserState("com_judownload.listcats." . $cat_id . ".fields", array())) { $fieldIds = array(); foreach ($this->fields as $field) { if ($field->backend_list_view == 2) { $fieldIds[] = $field->id; } } $app->setUserState("com_judownload.listcats." . $cat_id . ".fields", $fieldIds); } $fieldIds = $app->getUserState("com_judownload.listcats." . $cat_id . ".fields", array()); if (empty($fieldIds)) { $fieldIds = array(); foreach ($this->fields as $field) { if (in_array($field->field_name, array("title", "id"))) { $fieldIds[] = $field->id; } } } $sortedFields = array(); foreach ($this->fields as $field) { if (in_array($field->id, $fieldIds)) { $sortedFields[] = $field->id; $this->dropdown_fields_selected[] = array("value" => $field->id, "text" => $field->caption); $this->fields_use[] = $field; } $this->dropdown_fields[] = array("value" => $field->id, "text" => $field->caption); } $config['filter_fields'] = $sortedFields; $this->cat_fields = JUDownloadHelper::getCatFields(); $cat_field_selected = array_filter($app->input->get("category_fields", array(), 'array')); $apply_cat_layout = $app->input->getInt("apply_cat_layout", 0); $reset_cat_layout = $app->input->getInt("reset_cat_layout", 0); if ($cat_field_selected && $apply_cat_layout) { $app->setUserState("com_judownload.listcats." . $cat_id . ".categoryfields", $cat_field_selected); } $cat_dropdown_field_selected = (array) $this->params->get('category_fields_listview_ordering'); $cat_field = array(); foreach ($cat_dropdown_field_selected as $field => $value) { if ($value == 2) { $cat_field[] = $field; } $this->cat_dropdown_fields[] = array("value" => $field, "text" => $this->cat_fields[$field]); } if ($reset_cat_layout || !$app->getUserState("com_judownload.listcats." . $cat_id . ".categoryfields", array())) { $app->setUserState("com_judownload.listcats." . $cat_id . ".categoryfields", $cat_field); } $this->cat_fields_use = $app->getUserState("com_judownload.listcats." . $cat_id . ".categoryfields", array()); if (empty($this->cat_fields_use)) { $this->cat_fields_use = array("title", "id"); } foreach ($this->cat_fields_use as $field) { $this->cat_dropdown_fields_selected[] = array("value" => $field, "text" => $this->cat_fields[$field]); } parent::__construct($config); }