protected function getOptions() { $styleId = (int) $this->form->getValue('id'); if ($styleId) { $styleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($styleId); $defaultStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); if ($defaultStyleObject->template_id == $styleObject->template_id) { return array_merge(parent::getOptions(), JHtml::_('contentlanguage.existing')); } else { return parent::getOptions(); } } else { return array_merge(parent::getOptions()); } }
public function saveDocumentPrepareTemplateParams(&$data, $pk, $isNew, $newMainCatId) { $removeTemplateParams = false; if (!$isNew) { $oldTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfDocument($pk); $styleId = $data['style_id']; if ($styleId == -2) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); } elseif ($styleId == -1) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($newMainCatId); } else { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($styleId); } if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { $data['template_params'] = ""; $removeTemplateParams = true; } } if (!$removeTemplateParams && isset($data['template_params']) && is_array($data['template_params'])) { $registry = new JRegistry(); $registry->loadArray($data['template_params']); $data['template_params'] = $registry->toString(); } }
public function prepareDataToImport($data, $isInsert, $config = array()) { $db = JFactory::getDbo(); $defaultData = array('cat_id' => $data['main_cat']); if ($isInsert) { $user = JFactory::getUser(); $offset = $user->getParam('timezone', JFactory::getConfig()->get('offset')); if (!empty($config['publish_up'])) { $defaultData['publish_up'] = JFactory::getDate($config['publish_up'], $offset)->toSql(); } if (!empty($config['force_publish'])) { $data[$this->field_name_id_array['published']] = $config['force_publish']; } if (!empty($config['publish_down']) && $config['publish_down'] != $db->getNullDate()) { $defaultData['publish_down'] = JFactory::getDate($config['publish_down'], $offset)->toSql(); } if (!empty($config['created_by']) && $config['created_by'] > 0) { $defaultData['created_by'] = $config['created_by']; } if (!empty($config['default_icon'])) { $defaultData['icon'] = $config['default_icon']; } if (empty($defaultData['metadescription']) && !empty($config['meta_description'])) { $defaultData['metadescription'] = $config['meta_description']; } if (empty($defaultData['metakeyword']) && !empty($config['meta_keyword'])) { $defaultData['metakeyword'] = $config['meta_keyword']; } if (empty($data['secondary_cats']) && !empty($config['secondary_cats_assign'])) { $data['secondary_cats'] = $config['secondary_cats_assign']; } if (empty($defaultData['language'])) { $defaultData['language'] = '*'; } if (empty($defaultData['access'])) { $defaultData['access'] = 1; } if (empty($defaultData['style_id'])) { $defaultData['style_id'] = -1; } if (empty($defaultData['layout'])) { $defaultData['layout'] = -1; } if (empty($defaultData['params'])) { $params = array('display_params' => array('show_comment' => -2, 'fields' => array('title' => array('detail_view' => -2), 'created' => array('detail_view' => -2), 'author' => array('detail_view' => -2), 'cat_id' => array('detail_view' => -2), 'rating' => array('detail_view' => -2)))); $defaultData['params'] = json_encode($params); } } if (!empty($data['secondary_cats'])) { if (is_string($data['secondary_cats'])) { $data['secondary_cats'] = explode(',', $data['secondary_cats']); } $index = array_search($data['main_cat'], $data['secondary_cats']); if ($index) { unset($data['secondary_cats'][$index]); } $rootCat = JUDownloadFrontHelperCategory::getRootCategory(); $params = JUDownloadHelper::getParams(); $index = array_search($rootCat->id, $data['secondary_cats']); if ($index && !$params->get('allow_add_doc_to_root', 0)) { unset($data['secondary_cats'][$index]); } $data[$this->field_name_id_array['cat_id']]['secondary'] = implode(',', $data['secondary_cats']); } $aliasFieldId = $this->field_name_id_array['alias']; $titleFieldId = $this->field_name_id_array['title']; if (!$isInsert) { $oldMainCatId = JUDownloadFrontHelperCategory::getMainCategoryId($data['id']); if ($data['main_cat'] != $oldMainCatId) { if (empty($data[$titleFieldId])) { $document = JUDownloadHelper::getDocumentById($data['id']); $data[$titleFieldId] = $document->title; } if (empty($data[$aliasFieldId])) { $document = JUDownloadHelper::getDocumentById($data['id']); $data[$aliasFieldId] = $document->alias; } } } if (empty($data[$aliasFieldId])) { $data[$aliasFieldId] = strtolower(JApplication::stringURLSafe($data[$titleFieldId])); } $this->titleIncrement($data['main_cat'], $data['id'], $data[$aliasFieldId], $data[$titleFieldId]); $data['gallery'] = !empty($data['gallery']) ? explode('|', $data['gallery']) : array(); $data['files'] = !empty($data['files']) ? explode('|', $data['files']) : array(); $data['related_docs'] = !empty($data['related_docs']) ? explode(',', $data['related_docs']) : array(); if (!empty($data['style_id']) && !$isInsert) { $oldTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfDocument($data['id']); $styleId = $data['style_id']; if ($styleId == -2) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); } elseif ($styleId == -1) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($data['main_cat']); } else { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($styleId); } if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id && !isset($data['template_params'])) { $data['template_params'] = ''; } } if (!empty($data['template_params']) && is_array($data['template_params'])) { $registry = new JRegistry(); $registry->loadArray($data['template_params']); $data['template_params'] = $registry->toString(); } $data['plugin_params'] = !empty($data['plugin_params']) ? $data['plugin_params'] : array(); if (!is_array($data['plugin_params'])) { $registry = new JRegistry(); $registry->loadString($data['plugin_params']); $data['plugin_params'] = $registry->toArray(); } $db_plugin_params = array(); if (!$isInsert) { $db->setQuery("SELECT plugin_params FROM #__judownload_documents WHERE id = " . $data['id']); $rule_str = $db->loadResult(); $rule_registry = new JRegistry(); $rule_registry->loadString($rule_str); $db_plugin_params = $rule_registry->toArray(); } if (!empty($db_plugin_params)) { $db->setQuery("SELECT element FROM #__extensions WHERE type='plugin' AND folder = 'judownload'"); $rule_plugins = $db->loadColumn(); foreach ($db_plugin_params as $name => $value) { if (!in_array($name, $rule_plugins)) { unset($db_plugin_params[$name]); } if (array_key_exists($name, $data['plugin_params'])) { unset($db_plugin_params[$name]); } } } $plugin_params = array_merge($db_plugin_params, $data['plugin_params']); $registry = new JRegistry(); $registry->loadArray($plugin_params); $data['plugin_params'] = $registry->toString(); $fieldsData = array(); foreach ($data as $key => $value) { if (is_numeric($key)) { $fieldsData[$key] = $value; } elseif (is_string($key) && $key != 'files' && $key != 'gallery' && $key != 'main_cat' && $key != 'secondary_cats' && $key != 'related_docs') { $defaultData[$key] = $value; } } $postData = array('main_cat' => $data['main_cat'], 'data' => $defaultData, 'fieldsData' => $fieldsData, 'files' => $data['files'], 'gallery' => $data['gallery'], 'related_docs' => $data['related_docs']); return $postData; }
public function saveCategoryPrepareTemplateParams($pk, $table, &$data) { $app = JFactory::getApplication(); if ($pk > 0) { $oldTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($table->id); if ($data['style_id'] == -2) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); } elseif ($data['style_id'] == -1) { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($data['parent_id']); if ($table->style_id == -1) { if ($table->parent_id != $data['parent_id']) { if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { if ($data['changeTemplateStyleAction'] == 1) { $data['style_id'] = $oldTemplateStyleObject->id; $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($data['style_id']); $app->enqueueMessage(JText::sprintf('COM_JUDOWNLOAD_INHERITED_TEMPLATE_STYLE_HAS_BEEN_CHANGED_TO_X', $newTemplateStyleObject->title ? $newTemplateStyleObject->title : JText::_("COM_JUDOWNLOAD_NONE")), 'Notice'); } } } } } else { $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($data['style_id']); } } if (isset($data['template_params']) && is_array($data['template_params'])) { $registry = new JRegistry(); $registry->loadArray($data['template_params']); $data['template_params'] = (string) $registry; } if ($pk > 0) { if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { $data['template_params'] = ''; } } }
public function delete($pk = null) { $db = JFactory::getDbo(); $k = $this->_tbl_key; $pk = is_null($pk) ? $this->{$k} : $pk; $this->load($pk); if ($this->home == 1 || $this->default == 1) { $this->setError(JText::_('COM_JUDOWNLOAD_CAN_NOT_DELETE_DEFAULT_TEMPLATE_STYLE')); return false; } $defaultStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); $query = $db->getQuery(true); $query->update('#__judownload_categories'); $query->set('style_id = -2'); if ($defaultStyleObject->template_id != $this->template_id) { $query->set('template_params = ""'); } $query->where('parent_id = 0'); $query->where('style_id = ' . $pk); $db->setQuery($query); $db->execute(); $query = $db->getQuery(true); $query->select('id'); $query->from('#__judownload_categories'); $query->where('style_id = ' . $pk); $db->setQuery($query); $categoryArrayAssignedToStyle = $db->loadColumn(); $query = $db->getQuery(true); $query->update('#__judownload_categories'); $query->set('style_id = -1'); $query->where('parent_id != 0'); $query->where('style_id = ' . $pk); $db->setQuery($query); $db->execute(); foreach ($categoryArrayAssignedToStyle as $categoryIdAssignedToStyle) { $styleObjectOfCategory = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($categoryIdAssignedToStyle); if ($styleObjectOfCategory->template_id != $this->template_id) { $query = $db->getQuery(true); $query->update('#__judownload_categories'); $query->set('template_params = ""'); $query->where('id = ' . $categoryIdAssignedToStyle); $db->setQuery($query); $db->execute(); $query = $db->getQuery(true); $query->update('#__judownload_documents AS d'); $query->set('d.template_params = ""'); $query->join('', '#__judownload_documents_xref AS dxref ON d.id = dxref.doc_id AND dxref.main = 1'); $query->where('d.style_id = -1'); $query->where('dxref.cat_id = ' . $categoryIdAssignedToStyle); $db->setQuery($query); $db->execute(); JUDownloadFrontHelperTemplate::removeTemplateParamsOfInheritedStyleCatDoc($categoryIdAssignedToStyle); } } $query = $db->getQuery(true); $query->select('d.id'); $query->select('dxref.cat_id AS cat_id'); $query->from('#__judownload_documents AS d'); $query->join('', '#__judownload_documents_xref AS dxref ON d.id = dxref.doc_id AND dxref.main = 1'); $query->where('d.style_id = ' . $pk); $db->setQuery($query); $documentObjectListAssignedToStyle = $db->loadObjectList(); $catArrayResetTemplateParams = array(); foreach ($documentObjectListAssignedToStyle as $documentObject) { $styleObjectOfCategory = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($documentObject->cat_id); if ($styleObjectOfCategory->template_id != $this->template_id) { $catArrayResetTemplateParams[] = $documentObject->cat_id; } } $catArrayResetTemplateParams = array_unique($catArrayResetTemplateParams); if (is_array($catArrayResetTemplateParams) && count($catArrayResetTemplateParams)) { $query = $db->getQuery(true); $query->update('#__judownload_documents AS d'); $query->join('', '#__judownload_documents_xref AS dxref ON d.id = dxref.doc_id AND dxref.main = 1'); $query->set('d.template_params = ""'); $query->set('d.style_id = -1'); $query->where('dxref.cat_id IN (' . implode(',', $catArrayResetTemplateParams) . ')'); $query->where('d.style_id = ' . $pk); $db->setQuery($query); $db->execute(); } return parent::delete($pk); }
public function setDefault($cid) { $app = JFactory::getApplication(); $jInput = $app->input; $keepStyleDefault = $jInput->post->getInt('changeTemplateStyleAction', 1); $db = JFactory::getDbo(); $styleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($cid); $defaultTemplateStyleObject = JUDownloadFrontHelperTemplate::getDefaultTemplateStyle(); if ($styleObject->template_id != $defaultTemplateStyleObject->template_id) { if ($keepStyleDefault == 1) { JUDownloadFrontHelperTemplate::updateStyleIdForCatDocUsingDefaultStyle($defaultTemplateStyleObject->id); } else { JUDownloadFrontHelperTemplate::removeTemplateParamsOfCatDocUsingDefaultStyle(); } } $query = $db->getQuery(true); $query->update('#__judownload_template_styles'); $query->set('home = 0'); $query->where('home = 1'); $db->setQuery($query); $db->execute(); $query = $db->getQuery(true); $query->update('#__judownload_template_styles'); $query->set('home = 1'); $query->where('id = ' . (int) $cid); $db->setQuery($query); $db->execute(); }