You've already forked joomla_test
first commit
This commit is contained in:
52
components/com_weblinks/helpers/association.php
Normal file
52
components/com_weblinks/helpers/association.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
JLoader::register('WeblinksHelper', JPATH_ADMINISTRATOR . '/components/com_weblinks/helpers/weblinks.php');
|
||||
JLoader::register('CategoryHelperAssociation', JPATH_ADMINISTRATOR . '/components/com_categories/helpers/association.php');
|
||||
|
||||
/**
|
||||
* Weblinks Component Association Helper
|
||||
*
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
* @since 3.0
|
||||
*/
|
||||
abstract class WeblinksHelperAssociation extends CategoryHelperAssociation
|
||||
{
|
||||
/**
|
||||
* Method to get the associations for a given item
|
||||
*
|
||||
* @param integer $id Id of the item
|
||||
* @param string $view Name of the view
|
||||
*
|
||||
* @return array Array of associations for the item
|
||||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
|
||||
public static function getAssociations($id = 0, $view = null)
|
||||
{
|
||||
jimport('helper.route', JPATH_COMPONENT_SITE);
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$jinput = $app->input;
|
||||
$view = is_null($view) ? $jinput->get('view') : $view;
|
||||
$id = empty($id) ? $jinput->getInt('id') : $id;
|
||||
|
||||
if ($view == 'category' || $view == 'categories')
|
||||
{
|
||||
return self::getCategoryAssociations($id, 'com_weblinks');
|
||||
}
|
||||
|
||||
return array();
|
||||
|
||||
}
|
||||
}
|
28
components/com_weblinks/helpers/category.php
Normal file
28
components/com_weblinks/helpers/category.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Weblinks Component Category Tree
|
||||
*
|
||||
* @static
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
* @since 1.6
|
||||
*/
|
||||
class WeblinksCategories extends JCategories
|
||||
{
|
||||
public function __construct($options = array())
|
||||
{
|
||||
$options['table'] = '#__weblinks';
|
||||
$options['extension'] = 'com_weblinks';
|
||||
parent::__construct($options);
|
||||
}
|
||||
}
|
77
components/com_weblinks/helpers/icon.php
Normal file
77
components/com_weblinks/helpers/icon.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Weblink Component HTML Helper
|
||||
*
|
||||
* @static
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
* @since 1.5
|
||||
*/
|
||||
class JHtmlIcon
|
||||
{
|
||||
public static function create($weblink, $params)
|
||||
{
|
||||
JHtml::_('bootstrap.tooltip');
|
||||
|
||||
$uri = JUri::getInstance();
|
||||
$url = JRoute::_(WeblinksHelperRoute::getFormRoute(0, base64_encode($uri)));
|
||||
$text = JHtml::_('image', 'system/new.png', JText::_('JNEW'), null, true);
|
||||
$button = JHtml::_('link', $url, $text);
|
||||
$output = '<span class="hasTooltip" title="' . JHtml::tooltipText('COM_WEBLINKS_FORM_CREATE_WEBLINK') . '">' . $button . '</span>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
public static function edit($weblink, $params, $attribs = array())
|
||||
{
|
||||
$uri = JUri::getInstance();
|
||||
|
||||
if ($params && $params->get('popup'))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ($weblink->state < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
JHtml::_('bootstrap.tooltip');
|
||||
|
||||
$url = WeblinksHelperRoute::getFormRoute($weblink->id, base64_encode($uri));
|
||||
$icon = $weblink->state ? 'edit.png' : 'edit_unpublished.png';
|
||||
$text = JHtml::_('image', 'system/'.$icon, JText::_('JGLOBAL_EDIT'), null, true);
|
||||
|
||||
if ($weblink->state == 0)
|
||||
{
|
||||
$overlib = JText::_('JUNPUBLISHED');
|
||||
}
|
||||
else
|
||||
{
|
||||
$overlib = JText::_('JPUBLISHED');
|
||||
}
|
||||
|
||||
$date = JHtml::_('date', $weblink->created);
|
||||
$author = $weblink->created_by_alias ? $weblink->created_by_alias : $weblink->author;
|
||||
|
||||
$overlib .= '<br />';
|
||||
$overlib .= $date;
|
||||
$overlib .= '<br />';
|
||||
$overlib .= htmlspecialchars($author, ENT_COMPAT, 'UTF-8');
|
||||
|
||||
$button = JHtml::_('link', JRoute::_($url), $text);
|
||||
|
||||
$output = '<span class="hasTooltip" title="' . JHtml::tooltipText('COM_WEBLINKS_EDIT') . ' :: ' . $overlib . '">' . $button . '</span>';
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
1
components/com_weblinks/helpers/index.html
Normal file
1
components/com_weblinks/helpers/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
256
components/com_weblinks/helpers/route.php
Normal file
256
components/com_weblinks/helpers/route.php
Normal file
@ -0,0 +1,256 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Weblinks Component Route Helper
|
||||
*
|
||||
* @static
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_weblinks
|
||||
* @since 1.5
|
||||
*/
|
||||
abstract class WeblinksHelperRoute
|
||||
{
|
||||
protected static $lookup;
|
||||
|
||||
/**
|
||||
* @param integer The route of the weblink
|
||||
*/
|
||||
public static function getWeblinkRoute($id, $catid, $language = 0)
|
||||
{
|
||||
$needles = array(
|
||||
'weblink' => array((int) $id)
|
||||
);
|
||||
|
||||
//Create the link
|
||||
$link = 'index.php?option=com_weblinks&view=weblink&id='. $id;
|
||||
|
||||
if ($catid > 1)
|
||||
{
|
||||
$categories = JCategories::getInstance('Weblinks');
|
||||
$category = $categories->get($catid);
|
||||
|
||||
if ($category)
|
||||
{
|
||||
$needles['category'] = array_reverse($category->getPath());
|
||||
$needles['categories'] = $needles['category'];
|
||||
$link .= '&catid='.$catid;
|
||||
}
|
||||
}
|
||||
|
||||
if ($language && $language != "*" && JLanguageMultilang::isEnabled())
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('a.sef AS sef')
|
||||
->select('a.lang_code AS lang_code')
|
||||
->from('#__languages AS a');
|
||||
|
||||
$db->setQuery($query);
|
||||
$langs = $db->loadObjectList();
|
||||
foreach ($langs as $lang)
|
||||
{
|
||||
if ($language == $lang->lang_code)
|
||||
{
|
||||
$link .= '&lang='.$lang->sef;
|
||||
$needles['language'] = $language;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($item = self::_findItem($needles))
|
||||
{
|
||||
$link .= '&Itemid='.$item;
|
||||
}
|
||||
elseif ($item = self::_findItem())
|
||||
{
|
||||
$link .= '&Itemid='.$item;
|
||||
}
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $id The id of the weblink.
|
||||
* @param string $return The return page variable.
|
||||
*/
|
||||
public static function getFormRoute($id, $return = null)
|
||||
{
|
||||
// Create the link.
|
||||
if ($id)
|
||||
{
|
||||
$link = 'index.php?option=com_weblinks&task=weblink.edit&w_id='. $id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$link = 'index.php?option=com_weblinks&task=weblink.add&w_id=0';
|
||||
}
|
||||
|
||||
if ($return)
|
||||
{
|
||||
$link .= '&return='.$return;
|
||||
}
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
public static function getCategoryRoute($catid, $language = 0)
|
||||
{
|
||||
if ($catid instanceof JCategoryNode)
|
||||
{
|
||||
$id = $catid->id;
|
||||
$category = $catid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$id = (int) $catid;
|
||||
$category = JCategories::getInstance('Weblinks')->get($id);
|
||||
}
|
||||
|
||||
if ($id < 1)
|
||||
{
|
||||
$link = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Create the link
|
||||
$link = 'index.php?option=com_weblinks&view=category&id='.$id;
|
||||
$needles = array(
|
||||
'category' => array($id)
|
||||
);
|
||||
|
||||
if ($language && $language != "*" && JLanguageMultilang::isEnabled())
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('a.sef AS sef')
|
||||
->select('a.lang_code AS lang_code')
|
||||
->from('#__languages AS a');
|
||||
|
||||
$db->setQuery($query);
|
||||
$langs = $db->loadObjectList();
|
||||
foreach ($langs as $lang)
|
||||
{
|
||||
if ($language == $lang->lang_code)
|
||||
{
|
||||
$link .= '&lang='.$lang->sef;
|
||||
$needles['language'] = $language;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($item = self::_findItem($needles))
|
||||
{
|
||||
$link .= '&Itemid='.$item;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($category)
|
||||
{
|
||||
$catids = array_reverse($category->getPath());
|
||||
$needles = array(
|
||||
'category' => $catids,
|
||||
'categories' => $catids
|
||||
);
|
||||
if ($item = self::_findItem($needles))
|
||||
{
|
||||
$link .= '&Itemid='.$item;
|
||||
}
|
||||
elseif ($item = self::_findItem())
|
||||
{
|
||||
$link .= '&Itemid='.$item;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
protected static function _findItem($needles = null)
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
$menus = $app->getMenu('site');
|
||||
$language = isset($needles['language']) ? $needles['language'] : '*';
|
||||
|
||||
// Prepare the reverse lookup array.
|
||||
if (!isset(self::$lookup[$language]))
|
||||
{
|
||||
self::$lookup[$language] = array();
|
||||
|
||||
$component = JComponentHelper::getComponent('com_weblinks');
|
||||
|
||||
$attributes = array('component_id');
|
||||
$values = array($component->id);
|
||||
|
||||
if ($language != '*')
|
||||
{
|
||||
$attributes[] = 'language';
|
||||
$values[] = array($needles['language'], '*');
|
||||
}
|
||||
|
||||
$items = $menus->getItems($attributes, $values);
|
||||
|
||||
if ($items)
|
||||
{
|
||||
foreach ($items as $item)
|
||||
{
|
||||
if (isset($item->query) && isset($item->query['view']))
|
||||
{
|
||||
$view = $item->query['view'];
|
||||
if (!isset(self::$lookup[$language][$view]))
|
||||
{
|
||||
self::$lookup[$language][$view] = array();
|
||||
}
|
||||
if (isset($item->query['id']))
|
||||
{
|
||||
|
||||
// here it will become a bit tricky
|
||||
// language != * can override existing entries
|
||||
// language == * cannot override existing entries
|
||||
if (!isset(self::$lookup[$language][$view][$item->query['id']]) || $item->language != '*')
|
||||
{
|
||||
self::$lookup[$language][$view][$item->query['id']] = $item->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($needles)
|
||||
{
|
||||
foreach ($needles as $view => $ids)
|
||||
{
|
||||
if (isset(self::$lookup[$language][$view]))
|
||||
{
|
||||
foreach ($ids as $id)
|
||||
{
|
||||
if (isset(self::$lookup[$language][$view][(int) $id]))
|
||||
{
|
||||
return self::$lookup[$language][$view][(int) $id];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$active = $menus->getActive();
|
||||
if ($active && ($active->language == '*' || !JLanguageMultilang::isEnabled()))
|
||||
{
|
||||
return $active->id;
|
||||
}
|
||||
|
||||
// if not found, return language specific home link
|
||||
$default = $menus->getDefault($language);
|
||||
return !empty($default->id) ? $default->id : null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user