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());
     }
 }
Beispiel #2
0
 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();
     }
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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'] = '';
         }
     }
 }
Beispiel #5
0
 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);
 }
Beispiel #6
0
 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();
 }