示例#1
0
 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());
     }
 }
示例#2
0
 public function moveDocuments($document_id_arr, $tocat_id, $move_option_arr = array())
 {
     $dispatcher = JDispatcher::getInstance();
     $user = JFactory::getUser();
     JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_judownload/tables');
     $catTable = JTable::getInstance("Category", "JUDownloadTable");
     if ($tocat_id) {
         if (!$catTable->load($tocat_id)) {
             JError::raiseWarning(500, JText::_('COM_JUDOWNLOAD_TARGET_CATEGORY_NOT_FOUND'));
             return false;
         }
         $table = $this->getTable();
         $db = JFactory::getDbo();
         $assetName = 'com_judownload.category.' . (int) $tocat_id;
         $query = 'SELECT id FROM #__assets WHERE name="' . $assetName . '"';
         $db->setQuery($query);
         $tocat_asset_id = $db->loadResult();
         $canCreate = $user->authorise('judl.document.create', $assetName);
         if (!$canCreate) {
             JError::raiseError(100, JText::sprintf('COM_JUDOWNLOAD_CAN_NOT_CREATE_DOCUMENT_IN_THIS_CATEGORY', $catTable->title));
             return false;
         }
     } else {
         JError::raiseWarning(500, JText::_('COM_JUDOWNLOAD_NO_TARGET_CATEGORY_SELECTED'));
         return false;
     }
     if (empty($document_id_arr)) {
         JError::raiseError(100, JText::_('COM_JUDOWNLOAD_NO_ITEM_SELECTED'));
         return false;
     }
     set_time_limit(0);
     $moved_documents = array();
     foreach ($document_id_arr as $doc_id) {
         if (!$table->load($doc_id)) {
             continue;
         }
         $assetName = 'com_judownload.document.' . (int) $doc_id;
         $canDoEdit = $user->authorise('judl.document.edit', $assetName);
         if (!$canDoEdit) {
             if (!$user->id) {
                 JError::raiseWarning(100, JText::sprintf('COM_JUDOWNLOAD_YOU_DONT_HAVE_PERMISSION_TO_ACCESS_DOCUMENT', $table->title));
                 continue;
             } else {
                 if ($user->id == $table->created_by) {
                     $canDoEditOwn = $user->authorise('judl.document.edit.own', $assetName);
                     if (!$canDoEditOwn) {
                         JError::raiseWarning(100, JText::sprintf('COM_JUDOWNLOAD_YOU_DONT_HAVE_PERMISSION_TO_ACCESS_DOCUMENT', $table->title));
                         continue;
                     }
                 }
             }
         }
         $query = "SELECT cat_id FROM #__judownload_documents_xref WHERE doc_id = " . $doc_id . " AND main=1";
         $db->setQuery($query);
         $cat_id = $db->loadResult();
         if ($tocat_id == $cat_id) {
             continue;
         }
         $result = $dispatcher->trigger($this->onContentBeforeMove, array($this->option . '.' . $this->name, $table, $tocat_id, $move_option_arr));
         if (in_array(false, $result, true)) {
             $this->setError($table->getError());
             return false;
         }
         if ($table->style_id == -1) {
             $oldTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($cat_id);
             $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($tocat_id);
             if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) {
                 if (in_array('keep_template_params', $move_option_arr)) {
                     $table->style_id = $oldTemplateStyleObject->id;
                 } else {
                     $query = "UPDATE #__judownload_documents SET template_params = '' WHERE id=" . $doc_id;
                     $db->setQuery($query);
                     $db->execute();
                 }
             }
         }
         $query = "SELECT COUNT(*) FROM #__judownload_documents_xref WHERE cat_id=" . $tocat_id . " AND doc_id=" . $doc_id . " AND main=0";
         $db->setQuery($query);
         $is_secondary_cat = $db->loadResult();
         if ($is_secondary_cat) {
             $query = "DELETE FROM #__judownload_documents_xref WHERE doc_id=" . $doc_id . " AND main=1";
             $db->setQuery($query);
             $db->execute();
             $query = "UPDATE #__judownload_documents_xref SET main=1 WHERE cat_id=" . $tocat_id . " AND doc_id=" . $doc_id;
             $db->setQuery($query);
             $db->execute();
         } else {
             $query = "UPDATE #__judownload_documents_xref SET cat_id=" . $tocat_id . " WHERE doc_id=" . $doc_id . " AND main=1";
             $db->setQuery($query);
             $db->execute();
         }
         if (in_array('keep_permission', $move_option_arr)) {
             $query = 'UPDATE #__assets SET `parent_id` = ' . $tocat_asset_id . ' WHERE name="com_judownload.document.' . $doc_id . '"';
             $db->setQuery($query);
             $db->execute();
         } else {
             $query = 'UPDATE #__assets SET `parent_id` = ' . $tocat_asset_id . ', `rules` = "{}" WHERE name="com_judownload.document.' . $doc_id . '"';
             $db->setQuery($query);
             $db->execute();
         }
         $moved_documents[] = $doc_id;
         $this->cleanCache();
         $dispatcher->trigger($this->onContentAfterMove, array($this->option . '.' . $this->name, $table, $tocat_id, $move_option_arr));
     }
     $total_moved_documents = count($moved_documents);
     if ($total_moved_documents) {
         $old_field_groupid = JUDownloadHelper::getCategoryById($cat_id)->fieldgroup_id;
         $new_field_groupid = JUDownloadHelper::getCategoryById($tocat_id)->fieldgroup_id;
         $keep_extra_fields = in_array("keep_extra_fields", $move_option_arr);
         if ($keep_extra_fields) {
             $keep_extra_fields = $old_field_groupid == $new_field_groupid ? true : false;
         }
         if (!$keep_extra_fields) {
             foreach ($moved_documents as $doc_id) {
                 JUDownloadHelper::deleteFieldValuesOfDocument($doc_id);
             }
         }
         $old_criteria_groupid = JUDownloadHelper::getCategoryById($cat_id)->criteriagroup_id;
         $new_criteria_groupid = JUDownloadHelper::getCategoryById($tocat_id)->criteriagroup_id;
         $keep_rates = in_array("keep_rates", $move_option_arr);
         if ($keep_rates) {
             $keep_rates = $old_criteria_groupid == $new_criteria_groupid ? true : false;
         }
         if (!$keep_rates) {
             JTable::addIncludePath(JPATH_ADMINISTRATOR . "/components/com_judownload/tables");
             $ratingTable = JTable::getInstance("Rating", "JUDownloadTable");
             foreach ($moved_documents as $doc_id) {
                 $query = "SELECT id FROM #__judownload_rating WHERE doc_id = " . $doc_id;
                 $db->setQuery($query);
                 $ratingIds = $db->loadColumn();
                 foreach ($ratingIds as $ratingId) {
                     $ratingTable->delete($ratingId);
                 }
             }
         }
     }
     return $total_moved_documents;
 }
示例#3
0
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

require_once "template_helper.php";

$app      = JFactory::getApplication();
$document = JFactory::getDocument();

// Name of current template that component using
//$this->template

// Name of this template
$self_template = basename(dirname(__FILE__));

$templateStyle = JUDownloadFrontHelperTemplate::getCurrentTemplateStyle();
$templateParams = $templateStyle->params;

//Load font awesome icon
$document->addStyleSheet(JUri::root(true) . '/components/com_judownload/assets/css/font-awesome.min.css');

JUDownloadFrontHelper::loadjQuery();
JUDownloadFrontHelper::loadBootstrap(3, $templateParams->get('load_bootstrap', '2'));

$JUDLTemplateDefaultHelper = new JUDLTemplateDefaultHelper($self_template);

$document->addStyleSheet(JUri::root(true) . "/components/com_judownload/assets/css/reset.css");
$document->addStyleSheet(JUri::root(true) . "/components/com_judownload/assets/css/core.css");
$document->addStyleSheet(JUri::root(true) . "/components/com_judownload/templates/" . $self_template . "/assets/css/common.css");

// Define a variable that allows google analytics tracks download (core.js)
示例#4
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;
 }
示例#5
0
 public function docChangeCategory()
 {
     $app = JFactory::getApplication();
     if ($app->input->get('action', '') == 'update-maincat') {
         $ori_cat_id = $app->input->getInt('ori_cat_id', 0);
         $ori_cat = JUDownloadHelper::getCategoryById($ori_cat_id);
         $data['ori_field_group_id'] = 0;
         $data['new_field_group_id'] = 0;
         $data['new_field_group_name'] = "";
         $data['path'] = "";
         if ($ori_cat) {
             $data['ori_field_group_id'] = $ori_cat->fieldgroup_id;
         }
         $new_cat_id = $app->input->getInt('new_cat_id', 0);
         $rootCat = JUDownloadFrontHelperCategory::getRootCategory();
         $params = JUDownloadHelper::getParams();
         if ($rootCat->id == $new_cat_id && !$params->get('allow_add_doc_to_root', 0)) {
             return "";
         }
         $new_cat = JUDownloadHelper::getCategoryById($new_cat_id);
         if ($new_cat) {
             $db = JFactory::getDbo();
             $query = "SELECT id, name FROM #__judownload_fields_groups WHERE id = " . $new_cat->fieldgroup_id . " AND published = 1";
             $db->setQuery($query);
             $fieldgroup = $db->loadObject();
             if ($fieldgroup) {
                 $data['new_field_group_id'] = $fieldgroup->id;
                 $data['new_field_group_name'] = $fieldgroup->name;
             }
             $data['path'] = JUDownloadHelper::generateCategoryPath($new_cat_id);
         }
         if ($data['ori_field_group_id'] != $data['new_field_group_id']) {
             $data['msg_field_group'] = JText::_('COM_JUDOWNLOAD_CHANGE_MAIN_CATEGORY_CAUSE_CHANGE_FIELD_GROUP_WARNING');
         }
         $documentId = $app->input->getInt('id', 0);
         $data['message_style'] = JText::_('COM_JUDOWNLOAD_INHERIT');
         if ($documentId) {
             $documentObject = JUDownloadHelper::getDocumentById($documentId);
             if ($documentObject->style_id == -1) {
                 $oldStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($documentId->cat_id);
                 $newStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($new_cat->id);
                 if ($oldStyleObject->template_id != $newStyleObject->template_id) {
                     $data['msg_style'] = JText::_('COM_JUDOWNLOAD_CHANGE_MAIN_CATEGORY_CAUSE_CHANGE_TEMPLATE_WARNING');
                 }
             }
             $newTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleOfCategory($new_cat->id);
             $data['message_style'] = JText::_('COM_JUDOWNLOAD_INHERIT') . ' (' . $newTemplateStyleObject->title . ' [' . $newTemplateStyleObject->template_title . ' ]' . ')';
         }
         return json_encode($data);
     } elseif ($app->input->getInt('action', '') == 'insert_secondary_cat') {
         $cat_id_str = $app->input->get('secondary_cat_id', '', 'string');
         $html = '';
         if (!empty($cat_id_str)) {
             $cat_id_arr = explode(",", $cat_id_str);
             foreach ($cat_id_arr as $key => $cat_id) {
                 $html .= "<li id=\"cat-" . $cat_id . "\"><a class=\"drag-icon\"></a><span>" . JUDownloadHelper::generateCategoryPath($cat_id) . "</span><a href=\"#\" onclick=\"return false\" class=\"remove-secondary-cat\" ><i class=\"icon-minus fa fa-minus-circle\"></i> " . JText::_('COM_JUDOWNLOAD_REMOVE') . "</a></li>";
             }
         }
         return $html;
     }
 }
示例#6
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);
 }
示例#7
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();
 }
示例#8
0
	public function loadTemplate($tpl = null)
	{
		
		$this->_output = null;
		$app           = JFactory::getApplication();

		$template = JFactory::getApplication()->getTemplate();

		
		if ($this->getName() == 'category' || $this->getName() == 'tree')
		{
			
			$layoutUrl = $app->input->getString('layout', '');

			if (isset($layoutUrl) && $layoutUrl != '')
			{
				$layout = $layoutUrl;
			}
			else
			{
				$layout = null;
			}
			$catId  = $app->input->getInt('id', 1);
			$layout = JUDownloadFrontHelperCategory::getCategoryViewLayout($layout, $catId);
			$this->setLayout($layout);
		}
		elseif ($this->getName() == 'document')
		{
			
			$layoutUrl = $app->input->getString('layout', '');
			if (isset($layoutUrl) && $layoutUrl != '')
			{
				$layout = $layoutUrl;
			}
			else
			{
				$layout = null;
			}
			$docId = $app->input->getInt('id', 0);

			if ($docId > 0)
			{
				$layout = JUDownloadFrontHelperDocument::getDocumentViewLayout($layout, $docId);

				$this->setLayout($layout);
			}
		}

		$layout = $this->getLayout();

		$layoutTemplate = $this->getLayoutTemplate();

		
		$file = isset ($tpl) ? $layout . '_' . $tpl : $layout;

		
		$file = preg_replace('/[^A-Z0-9_\.-]/i', '', $file);
		$tpl  = isset ($tpl) ? preg_replace('/[^A-Z0-9_\.-]/i', '', $tpl) : $tpl;

		
		$lang = JFactory::getLanguage();
		$lang->load('tpl_' . $template, JPATH_BASE, null, false, false)
		|| $lang->load('tpl_' . $template, JPATH_THEMES . "/$template", null, false, false);

		
		$component = JApplicationHelper::getComponentName();
		$component = preg_replace('/[^A-Z0-9_\.-]/i', '', $component);
		$app       = JFactory::getApplication();
		$id        = $app->input->getInt('id', 0);

		$user = JFactory::getUser();

		if ($previewStyle = (int) $app->input->getInt('tplStyle', 0))
		{
			if ($user->id == 0)
			{
				$uri      = JUri::getInstance();
				$loginUrl = JRoute::_('index.php?option=com_users&view=login&return=' . base64_encode($uri), false);
				$app->enqueueMessage(JText::_("COM_JUDOWNLOAD_YOU_MUST_LOGIN_AS_SUPER_ADMIN_TO_PREVIEW_TEMPLATE_STYLE"), 'Notice');
				$app->redirect($loginUrl);

				return false;
			}
			else
			{
				if (!$user->authorise('core.admin', 'com_judownload'))
				{
					$app->enqueueMessage(JText::_("COM_JUDOWNLOAD_YOU_MUST_LOGIN_AS_SUPER_ADMIN_TO_PREVIEW_TEMPLATE_STYLE"), 'Notice');
				}
			}
		}

		
		if ($user->authorise('core.admin', 'com_judownload') && $previewStyle = (int) $app->input->getInt('tplStyle', 0))
		{
			$currentTemplateStyleObject = JUDownloadFrontHelperTemplate::getTemplateStyleObject($previewStyle);
		}
		else
		{
			$currentTemplateStyleObject = JUDownloadFrontHelperTemplate::getCurrentTemplateStyle($this->getName(), $id);
		}

		$JUTemplate            = trim($currentTemplateStyleObject->folder);
		$JUTemplate            = strtolower($JUTemplate);
		$this->template_params = $currentTemplateStyleObject->params;

		if (!$JUTemplate)
		{
			$JUTemplate = 'default';
		}

		$this->template = $JUTemplate;

		
		$JUTemplatePath = JUDownloadFrontHelperTemplate::getTemplatePathWithoutRoot($currentTemplateStyleObject->template_id);

		$topLevelTemplate = $JUTemplatePath[0]->folder ? $JUTemplatePath[0]->folder : 'default';

		
		$asset_file = JPATH_SITE . '/components/com_judownload/templates/' . $topLevelTemplate . '/load_assets.php';
		if (JFile::exists($asset_file))
		{
			include_once $asset_file;
		}

		
		$JUTemplatePathFull   = array();
		$JUTemplatePathFull[] = $this->_basePath . '/templates/default/' . $this->getName();
		$JUTemplatePathFull[] = JPATH_THEMES . '/' . $app->getTemplate() . '/html/' . $component . '/' . 'default' . '/' . $this->getName();

		$JUTemplatePath = array_reverse($JUTemplatePath);
		foreach ($JUTemplatePath AS $JUTemplatePathItem)
		{
			$JUTemplatePathFull[] = $this->_basePath . '/templates/' . $JUTemplatePathItem->folder . '/' . $this->getName();
			$JUTemplatePathFull[] = JPATH_THEMES . '/' . $app->getTemplate() . '/html/' . $component . '/' . $JUTemplatePathItem->folder . '/' . $this->getName();
		}

		foreach ($JUTemplatePathFull AS $item)
		{
			$this->_addPath('template', $item);
		}

		
		if (isset ($layoutTemplate) && $layoutTemplate != '_' && $layoutTemplate != $template)
		{
			$this->_path['template'] = str_replace($template, $layoutTemplate, $this->_path['template']);
		}

		
		$jversion_arr = explode(".", JVERSION);
		$priVersion   = $jversion_arr[0];
		$subVersion   = $jversion_arr[1];

		
		$fileToFind = $this->_createFileName('template', array('name' => $file . '.j' . $priVersion . $subVersion));

		$this->_template = JPath::find($this->_path['template'], $fileToFind);

		
		if ($this->_template == false)
		{
			$fileToFind      = $this->_createFileName('template', array('name' => $file . '.j' . $priVersion . 'x'));
			$this->_template = JPath::find($this->_path['template'], $fileToFind);
		}

		
		if ($this->_template == false)
		{
			$fileToFind      = $this->_createFileName('template', array('name' => $file));
			$this->_template = JPath::find($this->_path['template'], $fileToFind);
		}

		
		if ($this->_template == false)
		{
			$fallbackPaths   = array();
			$fallbackPaths[] = $this->_basePath . '/templates/default/' . $this->getName();
			$fallbackPaths[] = JPATH_THEMES . '/' . $app->getTemplate() . '/html/' . $component . '/' . 'default' . '/' . $this->getName();

			
			foreach ($fallbackPaths AS $fallbackPath)
			{
				
				$fallbackPath = trim($fallbackPath);

				
				if (substr($fallbackPath, -1) != DIRECTORY_SEPARATOR)
				{
					
					$fallbackPath .= DIRECTORY_SEPARATOR;
				}

				
				array_unshift($fallbackPaths, $fallbackPath);
			}

			
			$fileToFind      = $this->_createFileName('', array('name' => 'default.j' . $priVersion . $subVersion . (isset($tpl) ? '_' . $tpl : $tpl)));
			$this->_template = JPath::find($fallbackPaths, $fileToFind);

			
			if ($this->_template == false)
			{
				$fileToFind      = $this->_createFileName('', array('name' => 'default.j' . $priVersion . 'x' . (isset($tpl) ? '_' . $tpl : $tpl)));
				$this->_template = JPath::find($fallbackPaths, $fileToFind);
			}

			
			if ($this->_template == false)
			{
				
				$fileToFind      = $this->_createFileName('', array('name' => 'default' . (isset($tpl) ? '_' . $tpl : $tpl)));
				$this->_template = JPath::find($fallbackPaths, $fileToFind);
			}
		}
		if ($this->_template != false)
		{
			
			unset ($tpl);
			unset ($file);

			
			if (isset ($this->this))
			{
				unset ($this->this);
			}

			
			ob_start();

			
			
			include $this->_template;

			
			
			$this->_output = ob_get_contents();
			ob_end_clean();

			return $this->_output;
		}
		else
		{
			return JError::raiseError(500, JText::sprintf('JLIB_APPLICATION_ERROR_LAYOUTFILE_NOT_FOUND', $file));
		}
	}
示例#9
0
	public static function getDefaultTemplateStyle($byUserLanguage = false)
	{
		$app = JFactory::getApplication();

		$storeId = md5(__METHOD__ . "::" . (int) $byUserLanguage);
		if (!isset(self::$cache[$storeId]))
		{
			if ($byUserLanguage)
			{
				$templateStyleObjectByLang = JUDownloadFrontHelperTemplate::getHomeTemplateStyleByLanguage();
				$templateStyleObjectByHome = JUDownloadFrontHelperTemplate::getHomeTemplateStyle();
				if (!is_object($templateStyleObjectByLang) || $templateStyleObjectByLang->template_id != $templateStyleObjectByHome->template_id)
				{
					$templateStyleObject = $templateStyleObjectByHome;
				}
				else
				{
					$templateStyleObject = $templateStyleObjectByLang;
				}
			}
			else
			{
				$templateStyleObject = JUDownloadFrontHelperTemplate::getHomeTemplateStyle();
			}

			
			if ($app->isSite())
			{
				if (!is_object($templateStyleObject))
				{
					$templateStyleObject = new stdClass();
				}

				if (!isset($templateStyleObject->folder) || !$templateStyleObject->folder)
				{
					$templateStyleObject->folder = 'default';
				}
			}

			self::$cache[$storeId] = $templateStyleObject;
		}

		return self::$cache[$storeId];
	}
示例#10
0
	protected function getTmplFile($file = 'output.php', $class = null)
	{
		if (is_null($class))
		{
			$class = 'JUDownloadFieldBase';
		}

		$folder = str_replace('judownloadfield', '', strtolower($class));

		
		$templatePaths   = array();
		$templatePaths[] = JPATH_SITE . '/components/com_judownload/fields/' . $folder . '/tmpl/';
		$app             = JFactory::getApplication();
		if ($app->isSite())
		{
			$currentTemplateStyleObject = JUDownloadFrontHelperTemplate::getCurrentTemplateStyle();
			$JUTemplatePath             = JUDownloadFrontHelperTemplate::getTemplatePathWithoutRoot($currentTemplateStyleObject->template_id);
			if ($JUTemplatePath)
			{
				foreach ($JUTemplatePath as $template)
				{
					$templatePaths[] = JPATH_SITE . '/components/com_judownload/templates/' . $template->folder . '/fields/' . $folder . '/';
					$templatePaths[] = JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_judownload/' . $template->folder . '/fields/' . $folder . '/';
				}
			}
		}

		$templatePaths = array_reverse($templatePaths);
		foreach ($templatePaths AS $templatePath)
		{
			$path = $templatePath . $file;
			if (JFile::exists($path))
			{
				return $path;
			}
		}

		return $file;
	}