public function getInput($fieldValue = null) { if (!$this->isPublished()) { return ""; } if ((JUDownloadHelper::getDocumentSubmitType($this->doc_id) == 'submit' && $this->canSubmit()) || (JUDownloadHelper::getDocumentSubmitType($this->doc_id) == 'edit' && $this->canEdit()) ) { $disabled = false; } else { $disabled = true; } $document = JFactory::getDocument(); $rootCat = JUDownloadFrontHelperCategory::getRootCategory(); JText::script('COM_JUDOWNLOAD_TOTAL_CATS_OVER_MAXIMUM_N_CATS'); JText::script('COM_JUDOWNLOAD_CATEGORY_X_ALREADY_EXIST'); $app = JFactory::getApplication(); if (isset($this->doc) && $this->doc->cat_id) { $params = JUDownloadHelper::getParams($this->doc->cat_id); } else { $params = JUDownloadHelper::getParams(null, $this->doc_id); } $db = JFactory::getDbo(); $docId = $this->doc_id; $documentObject = JUDownloadHelper::getDocumentById($docId); $secondaryCatIds = $secondaryCatIdsStr = ""; if ($fieldValue && !empty($fieldValue['main'])) { $categoryId = (int) $fieldValue['main']; if ($fieldValue['secondary']) { $secondaryCatIdsStr = $fieldValue['secondary']; $secondaryCatIds = explode(",", $secondaryCatIdsStr); } $query = $db->getQuery(true); $query->select("c.id, c.parent_id"); $query->from("#__judownload_categories AS c"); $query->select("field_group.id AS fieldgroup_id, field_group.name AS fieldgroup_name"); $query->join("LEFT", "#__judownload_fields_groups AS field_group ON (field_group.id = c.fieldgroup_id AND field_group.published = 1)"); $query->where("c.id = " . $categoryId); $db->setQuery($query); $mainCategory = $db->loadObject(); } elseif ($docId) { $categories = $this->value; foreach ($categories AS $category) { if ($category->main == 1) { $mainCategory = $category; $query = $db->getQuery(true); $query->select("field_group.id, field_group.name"); $query->from("#__judownload_fields_groups AS field_group"); $query->join("", "#__judownload_categories AS c on c.fieldgroup_id = field_group.id"); $query->where("c.id = " . $mainCategory->id); $query->where("field_group.published = 1"); $db->setQuery($query); $fieldGroup = $db->loadObject(); if (is_object($fieldGroup)) { $mainCategory->fieldgroup_name = $fieldGroup->name; $mainCategory->fieldgroup_id = $fieldGroup->id; } else { $mainCategory->fieldgroup_name = null; $mainCategory->fieldgroup_id = null; } } else { $secondaryCatIds[] = $category->id; } } if ($secondaryCatIds) { $secondaryCatIdsStr = implode(",", $secondaryCatIds); } } elseif ($app->input->getInt('cat_id')) { $categoryId = $app->input->getInt('cat_id'); $mainCategory = JUDownloadHelper::getCategoryById($categoryId); $query = "SELECT id, name FROM #__judownload_fields_groups WHERE id= " . $mainCategory->fieldgroup_id . " AND published = 1"; $db->setQuery($query); $fieldGroup = $db->loadObject(); if (is_object($fieldGroup)) { $mainCategory->fieldgroup_name = $fieldGroup->name; $mainCategory->fieldgroup_id = $fieldGroup->id; } else { $mainCategory->fieldgroup_name = null; $mainCategory->fieldgroup_id = null; } } else { $mainCategory = new stdClass(); $mainCategory->id = ''; $mainCategory->parent_id = $rootCat->id; $mainCategory->fieldgroup_name = null; $mainCategory->fieldgroup_id = null; } $document->addStyleSheet(JUri::root() . "components/com_judownload/fields/" . $this->folder . "/core_categories.css"); if (!$disabled) { $document->addScript(JUri::root() . "components/com_judownload/fields/" . $this->folder . "/core_categories.js"); if (JUDownloadHelper::isJoomla3x()) { $jsIsJoomla3x = 1; } else { $jsIsJoomla3x = 0; } $script = "jQuery(document).ready(function($){ $('.category_selection').docChangeCategory({ doc_id: '" . $docId . "', is_joomla_3x: '" . $jsIsJoomla3x . "', main_cat_id: '" . $mainCategory->id . "', fieldgroup_id: '" . $mainCategory->fieldgroup_id . "', fieldgroup_name : '" . $mainCategory->fieldgroup_name . "', max_cats : " . (int) 1 . " }); });"; $document->addScriptDeclaration($script); } $this->addAttribute("class", "categories", "input"); $this->addAttribute("class", $this->getInputClass(), "input"); $this->setVariable('mainCategory', $mainCategory); $this->setVariable('secondaryCatIds', $secondaryCatIds); $this->setVariable('documentObject', $documentObject); $this->setVariable('disabled', $disabled); $this->setVariable('secondaryCatIdsStr', $secondaryCatIdsStr); $this->setVariable('rootCat', $rootCat); $this->setVariable('params', $params); return $this->fetch('input.php', __CLASS__); }