Spade

Mini Shell

Directory:~$ /home/lmsyaran/www/pusher/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/www/pusher/system.zip

PK�X�[L�^��/�/actionlogs/actionlogs.phpnu�[���<?php
/**
 * @package     Joomla.Plugins
 * @subpackage  System.actionlogs
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Cache\Cache;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Form;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\User\User;

/**
 * Joomla! Users Actions Logging Plugin.
 *
 * @since  3.9.0
 */
class PlgSystemActionLogs extends JPlugin
{
	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.9.0
	 */
	protected $app;

	/**
	 * Database object.
	 *
	 * @var    JDatabaseDriver
	 * @since  3.9.0
	 */
	protected $db;

	/**
	 * Load plugin language file automatically so that it can be used inside
component
	 *
	 * @var    boolean
	 * @since  3.9.0
	 */
	protected $autoloadLanguage = true;

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe.
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   3.9.0
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		// Import actionlog plugin group so that these plugins will be triggered
for events
		PluginHelper::importPlugin('actionlog');
	}

	/**
	 * Adds additional fields to the user editing form for logs e-mail
notifications
	 *
	 * @param   JForm  $form  The form to be altered.
	 * @param   mixed  $data  The associated data for the form.
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onContentPrepareForm($form, $data)
	{
		if (!$form instanceof Form)
		{
			$this->subject->setError('JERROR_NOT_A_FORM');

			return false;
		}

		$formName = $form->getName();

		$allowedFormNames = array(
			'com_users.profile',
			'com_admin.profile',
			'com_users.user',
		);

		if (!in_array($formName, $allowedFormNames))
		{
			return true;
		}

		/**
		 * We only allow users who has Super User permission change this setting
for himself or for other users
		 * who has same Super User permission
		 */

		$user = Factory::getUser();

		if (!$user->authorise('core.admin'))
		{
			return true;
		}

		// If we are on the save command, no data is passed to $data variable, we
need to get it directly from request
		$jformData = $this->app->input->get('jform', array(),
'array');

		if ($jformData && !$data)
		{
			$data = $jformData;
		}

		if (is_array($data))
		{
			$data = (object) $data;
		}

		if (empty($data->id) ||
!User::getInstance($data->id)->authorise('core.admin'))
		{
			return true;
		}

		Form::addFormPath(__DIR__ . '/forms');

		if ((!PluginHelper::isEnabled('actionlog', 'joomla'))
&& (Factory::getApplication()->isAdmin()))
		{
			$form->loadFile('information', false);

			return true;
		}

		if (!PluginHelper::isEnabled('actionlog', 'joomla'))
		{
			return true;
		}

		$form->loadFile('actionlogs', false);
	}

	/**
	 * Runs on content preparation
	 *
	 * @param   string  $context  The context for the data
	 * @param   object  $data     An object containing the data for the form.
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onContentPrepareData($context, $data)
	{
		if (!in_array($context, array('com_users.profile',
'com_admin.profile', 'com_users.user')))
		{
			return true;
		}

		if (is_array($data))
		{
			$data = (object) $data;
		}

		if
(!User::getInstance($data->id)->authorise('core.admin'))
		{
			return true;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName(array('notify',
'extensions')))
			->from($this->db->quoteName('#__action_logs_users'))
			->where($this->db->quoteName('user_id') . ' =
' . (int) $data->id);

		try
		{
			$values = $this->db->setQuery($query)->loadObject();
		}
		catch (JDatabaseExceptionExecuting $e)
		{
			return false;
		}

		if (!$values)
		{
			return true;
		}

		$data->actionlogs                       = new StdClass;
		$data->actionlogs->actionlogsNotify     = $values->notify;
		$data->actionlogs->actionlogsExtensions = $values->extensions;

		if (!HTMLHelper::isRegistered('users.actionlogsNotify'))
		{
			HTMLHelper::register('users.actionlogsNotify',
array(__CLASS__, 'renderActionlogsNotify'));
		}

		if (!HTMLHelper::isRegistered('users.actionlogsExtensions'))
		{
			HTMLHelper::register('users.actionlogsExtensions',
array(__CLASS__, 'renderActionlogsExtensions'));
		}

		return true;
	}

	/**
	 * Runs after the HTTP response has been sent to the client and delete log
records older than certain days
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onAfterRespond()
	{
		$daysToDeleteAfter = (int)
$this->params->get('logDeletePeriod', 0);

		if ($daysToDeleteAfter <= 0)
		{
			return;
		}

		// The delete frequency will be once per day
		$deleteFrequency = 3600 * 24;

		// Do we need to run? Compare the last run timestamp stored in the
plugin's options with the current
		// timestamp. If the difference is greater than the cache timeout we
shall not execute again.
		$now  = time();
		$last = (int) $this->params->get('lastrun', 0);

		if (abs($now - $last) < $deleteFrequency)
		{
			return;
		}

		// Update last run status
		$this->params->set('lastrun', $now);

		$db    = $this->db;
		$query = $db->getQuery(true)
			->update($db->qn('#__extensions'))
			->set($db->qn('params') . ' = ' .
$db->q($this->params->toString('JSON')))
			->where($db->qn('type') . ' = ' .
$db->q('plugin'))
			->where($db->qn('folder') . ' = ' .
$db->q('system'))
			->where($db->qn('element') . ' = ' .
$db->q('actionlogs'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risky to continue
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();

			$this->clearCacheGroups(array('com_plugins'), array(0, 1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		$daysToDeleteAfter = (int)
$this->params->get('logDeletePeriod', 0);
		$now = $db->quote(Factory::getDate()->toSql());

		if ($daysToDeleteAfter > 0)
		{
			$conditions = array($db->quoteName('log_date') . '
< ' . $query->dateAdd($now, -1 * $daysToDeleteAfter, '
DAY'));

			$query->clear()
				->delete($db->quoteName('#__action_logs'))->where($conditions);
			$db->setQuery($query);

			try
			{
				$db->execute();
			}
			catch (RuntimeException $e)
			{
				// Ignore it
				return;
			}
		}
	}

	/**
	 * Utility method to act on a user after it has been saved.
	 *
	 * @param   array    $user     Holds the new user data.
	 * @param   boolean  $isNew    True if a new user is stored.
	 * @param   boolean  $success  True if user was successfully stored in the
database.
	 * @param   string   $msg      Message.
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterSave($user, $isNew, $success, $msg)
	{
		if (!$success)
		{
			return false;
		}

		// Clear access rights in case user groups were changed.
		$userObject = new User($user['id']);
		$userObject->clearAccessRights();
		$authorised = $userObject->authorise('core.admin');

		$query = $this->db->getQuery(true)
			->select('COUNT(*)')
			->from($this->db->quoteName('#__action_logs_users'))
			->where($this->db->quoteName('user_id') . ' =
' . (int) $user['id']);

		try
		{
			$exists = (bool) $this->db->setQuery($query)->loadResult();
		}
		catch (JDatabaseExceptionExecuting $e)
		{
			return false;
		}

		// If preferences don't exist, insert.
		if (!$exists && $authorised &&
isset($user['actionlogs']))
		{
			$values  = array((int) $user['id'], (int)
$user['actionlogs']['actionlogsNotify']);
			$columns = array('user_id', 'notify');

			if
(isset($user['actionlogs']['actionlogsExtensions']))
			{
				$values[]  =
$this->db->quote(json_encode($user['actionlogs']['actionlogsExtensions']));
				$columns[] = 'extensions';
			}

			$query = $this->db->getQuery(true)
				->insert($this->db->quoteName('#__action_logs_users'))
				->columns($this->db->quoteName($columns))
				->values(implode(',', $values));
		}
		elseif ($exists && $authorised &&
isset($user['actionlogs']))
		{
			// Update preferences.
			$values = array($this->db->quoteName('notify') . '
= ' . (int)
$user['actionlogs']['actionlogsNotify']);

			if
(isset($user['actionlogs']['actionlogsExtensions']))
			{
				$values[] = $this->db->quoteName('extensions') . '
= ' .
$this->db->quote(json_encode($user['actionlogs']['actionlogsExtensions']));
			}

			$query = $this->db->getQuery(true)
				->update($this->db->quoteName('#__action_logs_users'))
				->set($values)
				->where($this->db->quoteName('user_id') . ' =
' . (int) $user['id']);
		}
		elseif ($exists && !$authorised)
		{
			// Remove preferences if user is not authorised.
			$query = $this->db->getQuery(true)
				->delete($this->db->quoteName('#__action_logs_users'))
				->where($this->db->quoteName('user_id') . ' =
' . (int) $user['id']);
		}

		try
		{
			$this->db->setQuery($query)->execute();
		}
		catch (JDatabaseExceptionExecuting $e)
		{
			return false;
		}

		return true;
	}

	/**
	 * Removes user preferences
	 *
	 * Method is called after user data is deleted from the database
	 *
	 * @param   array    $user     Holds the user data
	 * @param   boolean  $success  True if user was successfully stored in the
database
	 * @param   string   $msg      Message
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterDelete($user, $success, $msg)
	{
		if (!$success)
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->delete($this->db->quoteName('#__action_logs_users'))
			->where($this->db->quoteName('user_id') . ' =
' . (int) $user['id']);

		try
		{
			$this->db->setQuery($query)->execute();
		}
		catch (JDatabaseExceptionExecuting $e)
		{
			return false;
		}

		return true;
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = Factory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $clientId)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => $clientId ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache')
					);

					$cache = Cache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}

	/**
	 * Method to render a value.
	 *
	 * @param   integer|string  $value  The value (0 or 1).
	 *
	 * @return  string  The rendered value.
	 *
	 * @since   3.9.16
	 */
	public static function renderActionlogsNotify($value)
	{
		return Text::_($value ? 'JYES' : 'JNO');
	}

	/**
	 * Method to render a list of extensions.
	 *
	 * @param   array|string  $extensions  Array of extensions or an empty
string if none selected.
	 *
	 * @return  string  The rendered value.
	 *
	 * @since   3.9.16
	 */
	public static function renderActionlogsExtensions($extensions)
	{
		// No extensions selected.
		if (!$extensions)
		{
			return Text::_('JNONE');
		}

		// Load the helper.
		JLoader::register('ActionlogsHelper', JPATH_ADMINISTRATOR .
'/components/com_actionlogs/helpers/actionlogs.php');

		foreach ($extensions as &$extension)
		{
			// Load extension language files and translate extension name.
			ActionlogsHelper::loadTranslationFiles($extension);
			$extension = Text::_($extension);
		}

		return implode(', ', $extensions);
	}
}
PK�X�[���
actionlogs/actionlogs.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
	<name>PLG_SYSTEM_ACTIONLOGS</name>
	<author>Joomla! Project</author>
	<creationDate>May 2018</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.9.0</version>
	<description>PLG_SYSTEM_ACTIONLOGS_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="actionlogs">actionlogs.php</filename>
		<folder>forms</folder>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_actionlogs.ini</language>
		<language
tag="en-GB">en-GB.plg_system_actionlogs.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="logDeletePeriod"
					type="number"
					label="PLG_SYSTEM_ACTIONLOGS_LOG_DELETE_PERIOD"
					description="PLG_SYSTEM_ACTIONLOGS_LOG_DELETE_PERIOD_DESC"
					default="0"
					min="0"
					filter="int"
					validate="number"
				/>
				<field
					name="lastrun"
					type="hidden"
					default="0"
					filter="integer"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[��<__actionlogs/forms/actionlogs.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<form>
	<fieldset name="actionlogs"
label="PLG_SYSTEM_ACTIONLOGS_OPTIONS"
addfieldpath="/administrator/components/com_actionlogs/models/fields">
		<fields name="actionlogs">
			<field
				name="actionlogsNotify"
				type="radio"
				label="PLG_SYSTEM_ACTIONLOGS_NOTIFICATIONS"
				description="PLG_SYSTEM_ACTIONLOGS_NOTIFICATIONS_DESC"
				class="btn-group btn-group-yesno"
				default="0"
				filter="integer"
				required="true"
				>
				<option value="1">JYES</option>
				<option value="0">JNO</option>
			</field>
			<field
				name="actionlogsExtensions"
				type="logtype"
				label="PLG_SYSTEM_ACTIONLOGS_EXTENSIONS_NOTIFICATIONS"
				description="PLG_SYSTEM_ACTIONLOGS_EXTENSIONS_NOTIFICATIONS_DESC"
				multiple="true"
				validate="options"
				showon="actionlogsNotify:1"
			/>
		</fields>
	</fieldset>
</form>
PK�X�[�����
actionlogs/forms/information.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<form>
	<fields name="params">
		<fieldset name="information"
label="PLG_SYSTEM_ACTIONLOGS_OPTIONS"
addfieldpath="/administrator/components/com_actionlogs/models/fields">
			<field
				name="Information"
				type="plugininfo"
				label="PLG_SYSTEM_ACTIONLOGS_INFO_LABEL"
				description="PLG_SYSTEM_ACTIONLOGS_INFO_DESC"
			/>
		</fieldset>
	</fields>
</form>
PK�X�[�i8�;;'advancedtemplates/advancedtemplates.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Form\Form as JForm;
use Joomla\CMS\Language\Text as JText;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Extension as RL_Extension;
use RegularLabs\Library\Language as RL_Language;
use RegularLabs\Library\Plugin as RL_Plugin;
use RegularLabs\Library\Protect as RL_Protect;
use RegularLabs\Plugin\System\AdvancedTemplates\Document;

// Do not instantiate plugin on install pages
// to prevent installation/update breaking because of potential breaking
changes
$input = JFactory::getApplication()->input;
if (in_array($input->get('option'),
['com_installer', 'com_regularlabsmanager']) &&
$input->get('action') != '')
{
	return;
}

if ( ! is_file(__DIR__ . '/vendor/autoload.php'))
{
	return;
}

require_once __DIR__ . '/vendor/autoload.php';

if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
	JFactory::getLanguage()->load('plg_system_advancedtemplates',
__DIR__);
	JFactory::getApplication()->enqueueMessage(
		JText::sprintf('ATM_EXTENSION_CAN_NOT_FUNCTION',
JText::_('ADVANCEDTEMPLATEMANAGER'))
		. ' ' .
JText::_('ATM_REGULAR_LABS_LIBRARY_NOT_INSTALLED'),
		'error'
	);

	return;
}

require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';

if (! RL_Document::isJoomlaVersion(3, 'ADVANCEDTEMPLATEMANAGER'))
{
	RL_Extension::disable('advancedtemplates', 'plugin');

	RL_Language::load('plg_system_regularlabs');

	JFactory::getApplication()->enqueueMessage(
		JText::sprintf('RL_PLUGIN_HAS_BEEN_DISABLED',
JText::_('ADVANCEDTEMPLATEMANAGER')),
		'error'
	);

	return;
}

if (true)
{
	class PlgSystemAdvancedTemplates extends RL_Plugin
	{
		public $_title           = 'ADVANCEDTEMPLATEMANAGER';
		public $_lang_prefix     = 'ATP';
		public $_page_types      = ['html'];
		public $_enable_in_admin = true;
		public $_jversion        = 3;

		protected function extraChecks()
		{
			if ( ! RL_Protect::isComponentInstalled('advancedtemplates'))
			{
				return false;
			}

			return true;
			//return parent::extraChecks();
		}

		protected function handleOnContentPrepareForm(JForm $form, $data)
		{
			if ( ! $this->_is_admin)
			{
				return true;
			}

			return Document::changeMenuItemForm($form);
		}

		protected function handleOnAfterRoute()
		{
			if ( ! RL_Document::isClient('site'))
			{
				return;
			}

			Document::setTemplate();
		}

		protected function changeFinalHtmlOutput(&$html)
		{
			if ( ! $this->_is_admin)
			{
				return false;
			}

			return Document::replaceLinks($html);
		}
	}
}
PK�X�[Л?}}'advancedtemplates/advancedtemplates.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
	<name>PLG_SYSTEM_ADVANCEDTEMPLATES</name>
	<description>PLG_SYSTEM_ADVANCEDTEMPLATES_DESC</description>
	<version>3.9.5</version>
	<creationDate>February 2021</creationDate>
	<author>Regular Labs (Peter van Westen)</author>
	<authorEmail>info@regularlabs.com</authorEmail>
	<authorUrl>https://www.regularlabs.com</authorUrl>
	<copyright>Copyright © 2018 Regular Labs - All Rights
Reserved</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>

	<scriptfile>script.install.php</scriptfile>

	<updateservers>
		<server type="extension" priority="1"
name="Regular Labs - Advanced Template Manager">
			https://download.regularlabs.com/updates.xml?e=XXX&amp;type=.xml
		</server>
	</updateservers>

	<files>
		<filename
plugin="advancedtemplates">advancedtemplates.php</filename>
		<filename>script.install.helper.php</filename>
		<folder>language</folder>
		<folder>src</folder>
		<folder>vendor</folder>
	</files>

	<config>
		<fields name="params"
addfieldpath="/libraries/regularlabs/fields">
			<fieldset name="basic">
				<field name="@loadlanguage_regularlabs"
type="rl_loadlanguage"
extension="plg_system_regularlabs" />
				<field name="@loadlanguage"
type="rl_loadlanguage"
extension="plg_system_advancedtemplates" />
				<field name="@license" type="rl_license"
extension="ADVANCEDTEMPLATEMANAGER" />
				<field name="@version" type="rl_version"
extension="ADVANCEDTEMPLATEMANAGER" />
				<field name="@dependency" type="rl_dependency"
					   label="ATP_THE_COMPONENT"
					  
file="/administrator/components/com_advancedtemplates/advancedtemplates.php"
/>
				<field name="@header" type="rl_header"
					   label="ADVANCEDTEMPLATEMANAGER"
					   description="ADVANCEDTEMPLATEMANAGER_DESC"
					   url="https://www.regularlabs.com/advancedtemplatemanager"
/>

				<field name="@notice_settings" type="note"
class="alert alert-info"
					   description="ATP_SETTINGS,&lt;a
href=&quot;index.php?option=com_advancedtemplates&quot;
target=&quot;_blank&quot;&gt;,&lt;/a&gt;" />
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[���ZBBGadvancedtemplates/language/ar-AA/ar-AA.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] لا يمكن
تشغيله."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="مُنتج Regular Labs Library
غير مُمكن."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="مُنتج Regular Labs
Library غير مُثبت."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/ar-AA/ar-AA.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[���ZBBGadvancedtemplates/language/ar-SA/ar-SA.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] لا يمكن
تشغيله."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="مُنتج Regular Labs Library
غير مُمكن."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="مُنتج Regular Labs
Library غير مُثبت."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/ar-SA/ar-SA.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��tddGadvancedtemplates/language/az-AZ/az-AZ.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] не может
функционировать."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Плагин Regular Labs
Library не включен."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Плагин Regular Labs
Library не установлен."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/az-AZ/az-AZ.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[���Gadvancedtemplates/language/bg-BG/bg-BG.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] не може
да функционира."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Добавката Regular Labs
Library не е включена."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Добавката Regular
Labs Library не е инсталирана."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Версията на Regular Labs
Library плъгина е стара. Опитайте да я
преинсталирате [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/bg-BG/bg-BG.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[ˬfhhGadvancedtemplates/language/bn-BD/bn-BD.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] কাজ
করছে না।"
; ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is
not enabled."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs
ফ্রেমওয়ার্ক ইনস্টল করা
নাই।"
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/bn-BD/bn-BD.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[���8##Gadvancedtemplates/language/bs-BA/bs-BA.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ne
funkcioniše."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library nije
omogućen."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
nije instaliran."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/bs-BA/bs-BA.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[#1?Z88Gadvancedtemplates/language/ca-ES/ca-ES.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] no pot
funcionar."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="El plugin Regular Labs Library
no está activat."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="El plugin Regular Labs Library
no està instal·lat."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/ca-ES/ca-ES.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��3�TTGadvancedtemplates/language/cs-CZ/cs-CZ.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systém - Regular Labs - Pokročilý
správce šablon"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Pokročilý správce šablon -
převezme kontrolu nad šablonami v Joomla!"
ADVANCEDTEMPLATEMANAGER="Pokročilý správce šablon"

ADVANCEDTEMPLATEMANAGER_DESC="S Pokročilým správcem šablon máte k
dispozici další možnosti a funkce pro ovládání šablon."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nemůže
fungovat."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin
není povolen."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Zásuvný modul Regular Labs
Library není nainstalován."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Zásuvný modul knihovny Regular
Labs je zastaralý. Pokuste znovu nainstalovat [[%1:extension
name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="komponenta Pokročilý správce šablon"
PK�X�[zb1@��Kadvancedtemplates/language/cs-CZ/cs-CZ.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systém - Regular Labs - Pokročilý
správce šablon"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Pokročilý správce šablon -
převezme kontrolu nad šablonami v Joomla!"
ADVANCEDTEMPLATEMANAGER="Pokročilý správce šablon"
PK�X�[vi�llGadvancedtemplates/language/da-DK/da-DK.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Avanceret
Skabelon Håndtering"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Avanceret Skabelon Håndtering -
Avanceret styring af skabeloner i Joomla!"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"

ADVANCEDTEMPLATEMANAGER_DESC="Med Avanceret Skabelon Håndtering har
du ekstra indstillinger og funktionalitet til at kontrollere dine
skabeloner."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] kan ikke
fungere."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library
programudvidelse er ikke aktiveret."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library
programudvidelse er ikke installeret."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin er
forældet. Prøv at re-installere [[%1:extension name%]]."

ATP_SETTINGS="Se venligst [[%1:start link%]]Skabelon
Håndteringen[[%2:end link%]] for indstillinger."
ATP_THE_COMPONENT="Avanceret Skabelon Håndterings komponent"
PK�X�[��
=��Kadvancedtemplates/language/da-DK/da-DK.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Avanceret
Skabelon Håndtering"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Avanceret Skabelon Håndtering -
Avanceret styring af skabeloner i Joomla!"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"
PK�X�[����Gadvancedtemplates/language/de-DE/de-DE.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
Erweiterte Optionen für Templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Mit dem Advanced Template Manager haben
Sie extra Optionen und Funktionen um die Anzeige Ihrer Templates zu
steuern."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] wird nicht
funktionieren."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Das Regular Labs Library Plugin
ist nicht aktiviert."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library Plugin
ist nicht installiert."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Das Regular Labs Library Plugin ist
veraltet. Bitte versuche die Erweiterung [[%1:extension name%]] neu zu
installieren."

ATP_SETTINGS="Bitte klicken Sie auf [[%1:start link%]]Template
Manager[[%2:end link%]] für die Einstellungen."
ATP_THE_COMPONENT="Die Advanced Template Manager Komponente"
PK�X�[�_i]��Kadvancedtemplates/language/de-DE/de-DE.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
Erweiterte Optionen für Templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�]\$��Gadvancedtemplates/language/el-GR/el-GR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="Το [[%1:extension name%]] δεν
μπορεί να λειτουργήσει."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Το πρόσθετο Regular
Labs Library δεν είναι ενεργό."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Το πρόσθετο Regular
Labs Library plugin δεν είναι εγκατεστημένο."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/el-GR/el-GR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�LM0Gadvancedtemplates/language/en-GB/en-GB.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you have
extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] cannot
function."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is
not enabled."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin is
not installed."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[}~ؼ��Kadvancedtemplates/language/en-GB/en-GB.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��ԓDDGadvancedtemplates/language/es-CL/es-CL.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] no podrá
funcionar."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="El Plugin de Framework Regular
Labs no está activado."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="El Plugin de Framework Regular
Labs no está instalado."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/es-CL/es-CL.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�["^�$eeGadvancedtemplates/language/es-ES/es-ES.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Administrador
avanzado de plantillas"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Administrador avanzado de
plantillas - toma el control de las plantillas en Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] no podrá
funcionar."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="El plugin Regular Labs Library
no está habilitado."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="El plugin Regular Labs Library
no está instalado."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="El plugin de Regular Labs Library
está desactualizado. Intente reinstalando [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�@���Kadvancedtemplates/language/es-ES/es-ES.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Administrador
avanzado de plantillas"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Administrador avanzado de
plantillas - toma el control de las plantillas en Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[C$�[[Gadvancedtemplates/language/et-EE/et-EE.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Süsteem - Regular Labs -
Lisavõimalustega kujunduste haldur"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Lisavõimalustega kujunduste haldur
- võta Joomla! kujundustest viimast"
ADVANCEDTEMPLATEMANAGER="Lisavõimalustega kujunduste haldur"

ADVANCEDTEMPLATEMANAGER_DESC="Lisavõimalustega kujunduste haldur
annab juurde mõned lisavõimalused ja -funktsioonid, et võtta oma
kujundustest ja nende stiilidest viimast."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ei saa
töötada."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin pole
lubatud."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
pole paigaldatud."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin on
vana. Paigalda see uuesti [[%1:extension name%]]."

ATP_SETTINGS="Palun vaata [[%1:start link%]]Kujunduste halduri[[%2:end
link%]] seadeid."
ATP_THE_COMPONENT="Lisavõimalustega kujunduste haldur"
PK�X�[���%��Kadvancedtemplates/language/et-EE/et-EE.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Süsteem - Regular Labs -
Lisavõimalustega kujunduste haldur"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Lisavõimalustega kujunduste haldur
- võta Joomla! kujundustest viimast"
ADVANCEDTEMPLATEMANAGER="Lisavõimalustega kujunduste haldur"
PK�X�[���WWGadvancedtemplates/language/fa-IR/fa-IR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] نمی
تواند کار کند."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="پلاگین Regular Labs
Library فعال نشده است."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="پلاگین Regular Labs
Library نصب نشده است."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/fa-IR/fa-IR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[ї�7>>Gadvancedtemplates/language/fi-FI/fi-FI.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ei voi
toimia."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library
liitännäinen ei ole käytössä."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library
liitännäistä ei ole asennettu."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/fi-FI/fi-FI.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[Z,d���Gadvancedtemplates/language/fr-FR/fr-FR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - options
avancées pour les templates Joomla!"
ADVANCEDTEMPLATEMANAGER="Gestionnaire avancé de Template"

ADVANCEDTEMPLATEMANAGER_DESC="Avec Advanced Template Manager vous
disposez d'options et de fonctionnalités supplémentaires afin de
mieux contrôler vos templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ne peut pas
fonctionner."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Le plugin Regular Labs Library
n'est pas activé."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Le plugin Regular Labs Library
n'est pas installé."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Le plugin de la bibliothèque
Regular Labs est obsolète. Essayez de réinstaller [[%1:extension
name%]]."

ATP_SETTINGS="Merci de vous rendre dans la [[%1:start link%]]Gestion
des templates[[%2:end link%]] pour les paramètrages."
ATP_THE_COMPONENT="Le composant Advanced Template Manager"
PK�X�[؀K���Kadvancedtemplates/language/fr-FR/fr-FR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - options
avancées pour les templates Joomla!"
ADVANCEDTEMPLATEMANAGER="Gestionnaire avancé de Template"
PK�X�[�����Gadvancedtemplates/language/hi-IN/hi-IN.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] कार्य
नहीं कर सकता हैं."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs
रूपरेखा प्लगिन सक्षम नहीं
है."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs
रूपरेखा प्लगिन संस्थापित
नहीं है."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/hi-IN/hi-IN.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�4N�))Gadvancedtemplates/language/hr-HR/hr-HR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] neće
raditi."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library dodatak
nije omogućen."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library dodatak
nije instaliran."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/hr-HR/hr-HR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[j,SBBGadvancedtemplates/language/hu-HU/hu-HU.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nem
működik."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library
beépülőmodul nincs engedélyezve."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="A Regular Labs Library
beépülőmodul nincs telepítve."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/hu-HU/hu-HU.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��5$$Gadvancedtemplates/language/id-ID/id-ID.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
kendalikan templat di Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Dengan Advanced Template Manager anda
memiliki opsi dan fungsi tambahan guna mengendalikan templat-templat."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] tidak
berfungsi."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Plugin Pustaka Regular Labs
tidak diaktifkan."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Plugin Pustaka Regular Labs
tidak terpasang."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Silakan lihat [[%1:start link%]]Pengelolaan
Templat[[%2:end link%]] untuk pengaturannya."
ATP_THE_COMPONENT="komponen Advanced Template Manager"
PK�X�[[]����Kadvancedtemplates/language/id-ID/id-ID.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
kendalikan templat di Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�22Gadvancedtemplates/language/it-IT/it-IT.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Prendi
il controllo dei template Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Con Advanced Template Manager hai
opzioni e funzionalità extra per gestire i tuoi template."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] non può
funzionare."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Il plugin Regular Labs Library
non è abilitato."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Il plugin Regular Labs Library
non è installato."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="La libreria Regular Labs non è
aggiornata. Prova a reinstallare [[%1:extension name%]]."

ATP_SETTINGS="Per favore leggi [[%1:start link%]]Template
Manager[[%2:end link%]] per le impostazioni."
ATP_THE_COMPONENT="Componente Advanced Template Manager"
PK�X�[R�z#��Kadvancedtemplates/language/it-IT/it-IT.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Prendi
il controllo dei template Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�@�Gadvancedtemplates/language/ja-JP/ja-JP.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="システム - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Joomla!
テンプレートの高度なオプション"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="「Advanced Template
Manager」を使うと、テンプレートをコントロールする追加のオプションと機能が使えます。"

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]]
は機能しません。"
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs
フレームワークプラグインがインストールされていません。"
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs
フレームワークプラグインがインストールされていません。"
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="設定 (パラメータ) については、[[%1:start
link%]]テンプレート管理[[%2:end
link%]]を参照して下さい。"
ATP_THE_COMPONENT="Advanced Template Manager
コンポーネント"
PK�X�[Ձh_��Kadvancedtemplates/language/ja-JP/ja-JP.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="システム - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Joomla!
テンプレートの高度なオプション"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[���VVGadvancedtemplates/language/lt-LT/lt-LT.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - išplėstinė
šablonų tvarkyklė"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Išplėstinė šablonų tvarkyklė
- išplėstinės parinktys Joomla! šablonams"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"

ADVANCEDTEMPLATEMANAGER_DESC="Išplėstinė šablonų tvarkyklė
suteiks papildomas parinktis ir funkcionalumą šablonų valdymui."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] negali
veikti."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library įskiepis
nėra įgalintas."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library įskiepis
nėra įdiegtas."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Peržiūrėkite [[%1:start link%]]Šablonų tvarkyklės
[[%2:end link%]] nustatymus."
ATP_THE_COMPONENT="Išplėstinės šablonų tvarkyklės
komponentas"
PK�X�[�꿴�Kadvancedtemplates/language/lt-LT/lt-LT.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - išplėstinė
šablonų tvarkyklė"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Išplėstinė šablonų tvarkyklė
- išplėstinės parinktys Joomla! šablonams"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"
PK�X�[�i�=??Gadvancedtemplates/language/nb-NO/nb-NO.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] fungerer
ikke."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Rammeverk
programtillegg er ikke aktivert."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Rammeverk
programtillegg er ikke installert."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs biblioteket er
utdatert. Prøv å reinstaller [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/nb-NO/nb-NO.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�T�YYGadvancedtemplates/language/nl-BE/nl-BE.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systeem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - neem de
controle over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Met Advanced Template Manager heb je
extra opties en functionaliteit om de controle te nemen over uw
templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] kan niet
functioneren."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs bibliotheek plugin
is niet ingeschakeld."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regelmatig Labs bibliotheek
plugin niet geinstalleerd."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Gelieve het [[%1: start link%]]Template Beheer[[%2:end
link%]] te raadplegen voor instellingen"
ATP_THE_COMPONENT="het Advanced Template Manager component"
PK�X�[?bg��Kadvancedtemplates/language/nl-BE/nl-BE.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systeem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - neem de
controle over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[x��eLLGadvancedtemplates/language/nl-NL/nl-NL.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systeem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
geavanceerde opties voor templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Met Geavanceerde Template Manager heeft
u extra opties en functies om uw templates te controleren."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] kan niet
functioneren."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is
niet gepubliceerd."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin is
niet geïnstalleerd."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
verouderd. Probeer de [[%1:extension name%]] opnieuw te installeren."

ATP_SETTINGS="AUB kijk in [[%1:start link%]]Templatebeheer[[%2:end
link%]] voor instellingen."
ATP_THE_COMPONENT="het Advanced Template Manager component"
PK�X�[���Kadvancedtemplates/language/nl-NL/nl-NL.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Systeem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
geavanceerde opties voor templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"
PK�X�[��CSMMGadvancedtemplates/language/pl-PL/pl-PL.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
zaawansowane opcje w szablonach Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nie może
działać."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Wtyczka Regular Labs Library nie
jest włączona."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Wtyczka Regular Labs Library
nie jest zainstalowana."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Wtyczka Regular Labs Library jest
przestarzała. Spróbuj zainstalować ponownie [[%1:extension
name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[r_�4��Kadvancedtemplates/language/pl-PL/pl-PL.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
zaawansowane opcje w szablonach Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[I
�zzGadvancedtemplates/language/pt-BR/pt-BR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Gerenciador
Avançado de Temas"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Gerenciador Avançado de Temas -
assuma o controle de temas no Joomla!"
ADVANCEDTEMPLATEMANAGER="Gerenciador Avançado de Temas"

ADVANCEDTEMPLATEMANAGER_DESC="Com o Gerenciador Avançado de Temas
você tem opções e funcionalidades extras para controlar teus
temas."

ATP_EXTENSION_CAN_NOT_FUNCTION="O [[%1:extension name%]] não pode
funcionar."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="O plugin Regular Labs Library
não está habilitado."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="O plugin Regular Labs Library
não está instalado."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="O plugin da Biblioteca de Regular
Labs está desatualizado. Tente reinstalar [[%1:extension name%]]."

ATP_SETTINGS="Por favor, veja o [[%1: link inicial%]] Gerenciador de
Temas [[%2: link final%]] para configurações."
ATP_THE_COMPONENT="o componente de Gerenciador Avançado de
Temas"
PK�X�[C�����Kadvancedtemplates/language/pt-BR/pt-BR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Gerenciador
Avançado de Temas"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Gerenciador Avançado de Temas -
assuma o controle de temas no Joomla!"
ADVANCEDTEMPLATEMANAGER="Gerenciador Avançado de Temas"
PK�X�[�SXD??Gadvancedtemplates/language/pt-PT/pt-PT.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
opções avançadas para modelos em Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Com o Advanced Template Manager terá
opções e funcionalidades adicionais para gerir os seus modelos."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] não pode
funcionar."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="O plugin Regular Labs Library
não está ativado."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="O plugin Regular Labs Library
não está instalado"
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Por fgavor, ver configurações em[[%1:start
link%]]Gestor de modelos[[%2:end link%]]."
ATP_THE_COMPONENT="o componente Advanced Template Manager"
PK�X�[+�+@��Kadvancedtemplates/language/pt-PT/pt-PT.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistema - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
opções avançadas para modelos em Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[n�x##Gadvancedtemplates/language/ro-RO/ro-RO.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nu poate
functiona."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin
neactivat."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
neinstalat."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/ro-RO/ro-RO.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[!���RRGadvancedtemplates/language/ru-RU/ru-RU.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
дополнительные настройки для шаблонов в
Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="С помощью Advanced Template
Manager у вас есть дополнительные варианты и
возможности для управления
шаблонами."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] не может
работать."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Плагин Regular Labs
Library не включен."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library
плагин не установлен."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Плагин библиотеки
Regular Labs Library plugin устарел. Попробуйте его
переустановить [[%1:extension name%]]."

ATP_SETTINGS="Пожалуйста перейдите в [[%1:start
link%]]Advanced Template Manager[[%2:end link%]] для его
настройки."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
PK�X�[���S��Kadvancedtemplates/language/ru-RU/ru-RU.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
дополнительные настройки для шаблонов в
Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[����TTGadvancedtemplates/language/sk-SK/sk-SK.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nemôže
fungovať."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library doplnok nie
je aktivovaný/povolený."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library doplnok
nie je nainštalovaný."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Plugin knižnice regulárnych Labs
je zastaralý. Skúste ho preinštalovať [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/sk-SK/sk-SK.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[u�++Gadvancedtemplates/language/sl-SI/sl-SI.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ne more
delovati."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library vtičnik ni
omogočen."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library vtičnik
ni nameščen."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/sl-SI/sl-SI.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�]V�55Gadvancedtemplates/language/sr-RS/sr-RS.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] nemože
funkcionisati."
; ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is
not enabled."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Libraryki dodadak
nije instaliran."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/sr-RS/sr-RS.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��`55Gadvancedtemplates/language/sr-YU/sr-YU.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] ne može da
funkcioniše."
; ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is
not enabled."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
nije instaliran."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/sr-YU/sr-YU.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[��--Gadvancedtemplates/language/sv-SE/sv-SE.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
avancerade alternativ för sidmallar i Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Med Advanced Template Manager får du
extra alternativ och funktioner till dina sidmallar."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] fungerar
inte."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin är
inte aktiverad."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
är inte installerad."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Biblioteksplugin är
för gammal. Försök att installera den igen [[%1:extension name%]]."

ATP_SETTINGS="Gå till [[%1:start link%]]Mallar[[%2:end link%]] för
inställningar."
ATP_THE_COMPONENT="Komponenten Advanced Template Manager"
PK�X�[D0�a��Kadvancedtemplates/language/sv-SE/sv-SE.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager -
avancerade alternativ för sidmallar i Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�E�Gadvancedtemplates/language/th-TH/th-TH.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="ไม่สามารถใช้งาน
[[%1:extension name%]] ได้."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin
ยังไม่ได้เปิดใช้งาน."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin
ยังไม่ได้ถูกติดตั้ง."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/th-TH/th-TH.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[Q�qc~~Gadvancedtemplates/language/tr-TR/tr-TR.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Joomla
temalar için gelişmiş seçenekler sunar."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Advanced Template Manager ile temaları
denetlemek için ek seçenek ve işlevler eklenebilir."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]]
çalışamaz."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Kütüphanesi
uygulama eki etkinleştirilmemiş."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Kütüphanesi
uygulama eki kurulmamış."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Kütüphanesi uygulama
eki güncel değil. Lütfen [[%1:extension name%]] uygulamasını yeniden
kurmayı deneyin."

ATP_SETTINGS="Ayarlar için [[%1:start link%]]Template Manager sistem
uygulama eki[[%2:end link%]] bölümüne bakın."
ATP_THE_COMPONENT="Advanced Template Manager Bileşeni"
PK�X�[A�Ӥ��Kadvancedtemplates/language/tr-TR/tr-TR.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="Sistem - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - Joomla
temalar için gelişmiş seçenekler sunar."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[�kC�77Gadvancedtemplates/language/uk-UA/uk-UA.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Module Manager -
додаткове налаштування шаблонів Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="З Advanced Template Manager ви
отримаєте додаткові можливості і
функціональність для управління вашими
шаблонами."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] не може
функціонувати."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Плагін Regular Labs
Library не увімкнено."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Плагін Regular Labs
Library не встановлений."
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Плагин Regular Labs Library
застарілий. Будь ласка перевстановіть
[[%1:extension name%]]."

ATP_SETTINGS="Будь ласка використовуйте
[[%1:start link%]]Template Manager[[%2:end link%]] для
налаштування."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
PK�X�[�9z���Kadvancedtemplates/language/uk-UA/uk-UA.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Module Manager -
додаткове налаштування шаблонів Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[���OOGadvancedtemplates/language/vi-VN/vi-VN.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Với Advanced Template Manager bạn
có các tùy chọn và tính năng thêm để quản lý template của
bạn."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] không thể
thực hiện."
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Plugin Regular Labs Library
không được bật."
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Plugin Regular Labs Library
chưa được cài."
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

ATP_SETTINGS="Vui lòng xem [[%1:start link%]]Template Manager[[%2:end
link%]] để thiết lập."
ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[}~ؼ��Kadvancedtemplates/language/vi-VN/vi-VN.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[4�SR��Gadvancedtemplates/language/zh-CN/zh-CN.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="系统 - Regular Labs -
高级模板管理器"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="高级模板管理器 -
控制Joomla!中的模板"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"

ADVANCEDTEMPLATEMANAGER_DESC="使用高级模板管理器,您可以使用其他选项和功能来控制模板。"

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension
name%]]不能运行。"
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular
Labs依赖库插件没启用。"
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular
Labs依赖库插件没安装。"
ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular
Labs依赖库插件已过时。尝试重新安装[[%1:extension
name%]]。"

ATP_SETTINGS="有关设置,请参见[[%1:start
link%]]模板管理器[[%2:end link%]]。"
ATP_THE_COMPONENT="高级模板管理器组件"
PK�X�[�!0�zzKadvancedtemplates/language/zh-CN/zh-CN.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_ADVANCEDTEMPLATES="系统 - Regular Labs -
高级模板管理器"
PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="高级模板管理器 -
控制Joomla!中的模板"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"
PK�X�[���
 
Gadvancedtemplates/language/zh-TW/zh-TW.plg_system_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

; ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you
have extra options and functionality to control your templates."

ATP_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]]
無法動作。"
ATP_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library
外掛未啟用。"
ATP_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library
外掛未安裝。"
; ATP_REGULAR_LABS_LIBRARY_OUTDATED="Regular Labs Library plugin is
outdated. Try to re-install [[%1:extension name%]]."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
; ATP_THE_COMPONENT="the Advanced Template Manager component"
PK�X�[�Ս$��Kadvancedtemplates/language/zh-TW/zh-TW.plg_system_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_SYSTEM_ADVANCEDTEMPLATES="System - Regular Labs - Advanced
Template Manager"
; PLG_SYSTEM_ADVANCEDTEMPLATES_DESC="Advanced Template Manager - take
control over templates in Joomla!"
; ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PK�X�[	��JzYzY+advancedtemplates/script.install.helper.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Filesystem\File as JFile;
use Joomla\CMS\Filesystem\Folder as JFolder;
use Joomla\CMS\Installer\Installer as JInstaller;
use Joomla\CMS\Language\Text as JText;

class PlgSystemAdvancedTemplatesInstallerScriptHelper
{
	public $name              = '';
	public $alias             = '';
	public $extname           = '';
	public $extension_type    = '';
	public $plugin_folder     = 'system';
	public $module_position   = 'status';
	public $client_id         = 1;
	public $install_type      = 'install';
	public $show_message      = true;
	public $db                = null;
	public $softbreak         = null;
	public $installed_version = '';

	public function __construct(&$params)
	{
		$this->extname = $this->extname ?: $this->alias;
		$this->db      = JFactory::getDbo();
	}

	public function preflight($route, $adapter)
	{
		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		JFactory::getLanguage()->load('plg_system_regularlabsinstaller',
JPATH_PLUGINS . '/system/regularlabsinstaller');

		$this->installed_version =
$this->getVersion($this->getInstalledXMLFile());

		if ($this->show_message && $this->isInstalled())
		{
			$this->install_type = 'update';
		}

//		if ($this->extension_type == 'component')
//		{
//			// Remove admin menu to prevent error on creating it again
//			$query = $this->db->getQuery(true)
//				->delete('#__menu')
//				->where($this->db->quoteName('path') . ' =
' . $this->db->quote('com-' . $this->extname))
//				->where($this->db->quoteName('client_id') . '
= 1');
//			$this->db->setQuery($query);
//			$this->db->execute();
//		}

		if ($this->onBeforeInstall($route) === false)
		{
			return false;
		}

		return true;
	}

	public function postflight($route, $adapter)
	{
		$this->removeGlobalLanguageFiles();
		$this->removeUnusedLanguageFiles();

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, $this->getMainFolder());

		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		$this->fixExtensionNames();
		$this->updateUpdateSites();
		$this->removeAdminCache();

		if ($this->onAfterInstall($route) === false)
		{
			return false;
		}

		if ($route == 'install')
		{
			$this->publishExtension();
		}

		if ($this->show_message)
		{
			$this->addInstalledMessage();
		}

		JFactory::getCache()->clean('com_plugins');
		JFactory::getCache()->clean('_system');

		return true;
	}

	public function isInstalled()
	{
		if ( ! is_file($this->getInstalledXMLFile()))
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($this->extension_type))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName()))
			->setLimit(1);
		$this->db->setQuery($query);
		$result = $this->db->loadResult();

		return empty($result) ? false : true;
	}

	public function getMainFolder()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				return JPATH_PLUGINS . '/' . $this->plugin_folder .
'/' . $this->extname;

			case 'component' :
				return JPATH_ADMINISTRATOR . '/components/com_' .
$this->extname;

			case 'module' :
				return JPATH_ADMINISTRATOR . '/modules/mod_' .
$this->extname;

			case 'library' :
				return JPATH_SITE . '/libraries/' . $this->extname;
		}
	}

	public function getInstalledXMLFile()
	{
		return $this->getXMLFile($this->getMainFolder());
	}

	public function getCurrentXMLFile()
	{
		return $this->getXMLFile(__DIR__);
	}

	public function getXMLFile($folder)
	{
		switch ($this->extension_type)
		{
			case 'module' :
				return $folder . '/mod_' . $this->extname .
'.xml';

			default :
				return $folder . '/' . $this->extname . '.xml';
		}
	}

	public function uninstallExtension($extname, $type = 'plugin',
$folder = 'system', $show_message = true)
	{
		if (empty($extname))
		{
			return;
		}

		$folders = [];

		switch ($type)
		{
			case 'plugin':
				$folders[] = JPATH_PLUGINS . '/' . $folder . '/' .
$extname;
				break;

			case 'component':
				$folders[] = JPATH_ADMINISTRATOR . '/components/com_' .
$extname;
				$folders[] = JPATH_SITE . '/components/com_' . $extname;
				break;

			case 'module':
				$folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' .
$extname;
				$folders[] = JPATH_SITE . '/modules/mod_' . $extname;
				break;
		}

		if ( ! $this->foldersExist($folders))
		{
			return;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName($type, $extname)))
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($type));

		if ($type == 'plugin')
		{
			$query->where($this->db->quoteName('folder') . '
= ' . $this->db->quote($folder));
		}

		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			foreach ($folders as $folder)
			{
				JFactory::getApplication()->enqueueMessage('2. Deleting: '
. $folder, 'notice');
				JFolder::delete($folder);
			}

			return;
		}

		$ignore_ids =
JFactory::getApplication()->getUserState('rl_ignore_uninstall_ids',
[]);

		if (JFactory::getApplication()->input->get('option') ==
'com_installer' &&
JFactory::getApplication()->input->get('task') ==
'remove')
		{
			// Don't attempt to uninstall extensions that are already selected
to get uninstalled by them selves
			$ignore_ids = array_merge($ignore_ids,
JFactory::getApplication()->input->get('cid', [],
'array'));
			JFactory::getApplication()->input->set('cid',
array_merge($ignore_ids, $ids));
		}

		$ids = array_diff($ids, $ignore_ids);

		if (empty($ids))
		{
			return;
		}

		$ignore_ids = array_merge($ignore_ids, $ids);
		JFactory::getApplication()->setUserState('rl_ignore_uninstall_ids',
$ignore_ids);

		foreach ($ids as $id)
		{
			$tmpInstaller = new JInstaller;
			$tmpInstaller->uninstall($type, $id);
		}

		if ($show_message)
		{
			JFactory::getApplication()->enqueueMessage(
				JText::sprintf(
					'COM_INSTALLER_UNINSTALL_SUCCESS',
					JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type))
				), 'success'
			);
		}
	}

	public function foldersExist($folders = [])
	{
		foreach ($folders as $folder)
		{
			if (is_dir($folder))
			{
				return true;
			}
		}

		return false;
	}

	public function uninstallPlugin($extname, $folder = 'system',
$show_message = true)
	{
		$this->uninstallExtension($extname, 'plugin', $folder,
$show_message);
	}

	public function uninstallComponent($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'component', null,
$show_message);
	}

	public function uninstallModule($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'module', null,
$show_message);
	}

	public function publishExtension()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				$this->publishPlugin();

			case 'module' :
				$this->publishModule();
		}
	}

	public function publishPlugin()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('enabled') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->extname))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote($this->plugin_folder));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function publishModule()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		// check if module is already in the modules_menu table (meaning is is
already saved)
		$query->clear()
			->select($this->db->quoteName('moduleid'))
			->from('#__modules_menu')
			->where($this->db->quoteName('moduleid') . ' =
' . (int) $id)
			->setLimit(1);
		$this->db->setQuery($query);
		$exists = $this->db->loadResult();

		if ($exists)
		{
			return;
		}

		// Get highest ordering number in position
		$query->clear()
			->select($this->db->quoteName('ordering'))
			->from('#__modules')
			->where($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id)
			->order('ordering DESC');
		$this->db->setQuery($query, 0, 1);
		$ordering = $this->db->loadResult();
		$ordering++;

		// publish module and set ordering number
		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('published') . ' =
1')
			->set($this->db->quoteName('ordering') . ' =
' . (int) $ordering)
			->set($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('id') . ' = '
. (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		// add module to the modules_menu table
		$query->clear()
			->insert('#__modules_menu')
			->columns([$this->db->quoteName('moduleid'),
$this->db->quoteName('menuid')])
			->values((int) $id . ', 0');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function addInstalledMessage()
	{
		JFactory::getApplication()->enqueueMessage(
			JText::sprintf(
				$this->install_type == 'update' ?
'RLI_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' :
'RLI_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY',
				'<strong>' . JText::_($this->name) .
'</strong>',
				'<strong>' . $this->getVersion() .
'</strong>',
				$this->getFullType()
			), 'success'
		);
	}

	public function getPrefix()
	{
		switch ($this->extension_type)
		{
			case 'plugin':
				return JText::_('plg_' .
strtolower($this->plugin_folder));

			case 'component':
				return JText::_('com');

			case 'module':
				return JText::_('mod');

			case 'library':
				return JText::_('lib');

			default:
				return $this->extension_type;
		}
	}

	public function getElementName($type = null, $extname = null)
	{
		$type    = is_null($type) ? $this->extension_type : $type;
		$extname = is_null($extname) ? $this->extname : $extname;

		switch ($type)
		{
			case 'component' :
				return 'com_' . $extname;

			case 'module' :
				return 'mod_' . $extname;

			case 'plugin' :
			default:
				return $extname;
		}
	}

	public function getFullType()
	{
		return JText::_('RLI_' . strtoupper($this->getPrefix()));
	}

	public function getVersion($file = '')
	{
		$file = $file ?: $this->getCurrentXMLFile();

		if ( ! is_file($file))
		{
			return '';
		}

		$xml = JInstaller::parseXMLInstallFile($file);

		if ( ! $xml || ! isset($xml['version']))
		{
			return '';
		}

		return $xml['version'];
	}

	public function isNewer()
	{
		if ( ! $this->installed_version)
		{
			return true;
		}

		$package_version = $this->getVersion();

		return version_compare($this->installed_version, $package_version,
'<=');
	}

	public function canInstall()
	{
		// The extension is not installed yet
		if ( ! $this->installed_version)
		{
			return true;
		}

		// The free version is installed. So any version is ok to install
		if (strpos($this->installed_version, 'PRO') === false)
		{
			return true;
		}

		// Current package is a pro version, so all good
		if (strpos($this->getVersion(), 'PRO') !== false)
		{
			return true;
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, __DIR__);

		JFactory::getApplication()->enqueueMessage(JText::_('RLI_ERROR_PRO_TO_FREE'),
'error');

		JFactory::getApplication()->enqueueMessage(
			html_entity_decode(
				JText::sprintf(
					'RLI_ERROR_UNINSTALL_FIRST',
					'<a href="https://www.regularlabs.com/extensions/' .
$this->alias . '" target="_blank">',
					'</a>',
					JText::_($this->name)
				)
			), 'error'
		);

		return false;
	}

	/*
	 * Fixes incorrectly formed versions because of issues in old packager
	 */
	public function fixFileVersions($file)
	{
		if (is_array($file))
		{
			foreach ($file as $f)
			{
				self::fixFileVersions($f);
			}

			return;
		}

		if ( ! is_string($file) || ! is_file($file))
		{
			return;
		}

		$contents = file_get_contents($file);

		if (
			strpos($contents, 'FREEFREE') === false
			&& strpos($contents, 'FREEPRO') === false
			&& strpos($contents, 'PROFREE') === false
			&& strpos($contents, 'PROPRO') === false
		)
		{
			return;
		}

		$contents = str_replace(
			['FREEFREE', 'FREEPRO', 'PROFREE',
'PROPRO'],
			['FREE', 'PRO', 'FREE', 'PRO'],
			$contents
		);

		JFile::write($file, $contents);
	}

	public function onBeforeInstall($route)
	{
		if ( ! $this->canInstall())
		{
			return false;
		}

		return true;
	}

	public function onAfterInstall($route)
	{
		return true;
	}

	public function delete($files = [])
	{
		foreach ($files as $file)
		{
			if (is_dir($file))
			{
				JFolder::delete($file);
			}

			if (is_file($file))
			{
				JFile::delete($file);
			}
		}
	}

	public function fixAssetsRules()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('rules'))
			->from('#__assets')
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname))
			->setLimit(1);
		$this->db->setQuery($query);
		$rules = $this->db->loadResult();

		$rules = json_decode($rules);

		if (empty($rules))
		{
			return;
		}

		foreach ($rules as $key => $value)
		{
			if ( ! empty($value))
			{
				continue;
			}

			unset($rules->$key);
		}

		$rules = json_encode($rules);

		$query = $this->db->getQuery(true)
			->update($this->db->quoteName('#__assets'))
			->set($this->db->quoteName('rules') . ' = '
. $this->db->quote($rules))
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function fixExtensionNames()
	{
		switch ($this->extension_type)
		{
			case 'module' :
				$this->fixModuleNames();
		}
	}

	private function fixModuleNames()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$module_id = $this->db->loadResult();

		if (empty($module_id))
		{
			return;
		}

		$title = 'Regular Labs - ' . JText::_($this->name);

		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $module_id)
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'));
		$this->db->setQuery($query);
		$this->db->execute();

		// Fix module assets

		// Get asset id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__assets')
			->where($this->db->quoteName('name') . ' =
' . $this->db->quote('com_modules.module.' . (int)
$module_id))
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$asset_id = $this->db->loadResult();

		if (empty($asset_id))
		{
			return;
		}

		$query->clear()
			->update('#__assets')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $asset_id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateUpdateSites()
	{
		$this->removeOldUpdateSites();
		$this->updateNamesInUpdateSites();
		$this->updateHttptoHttpsInUpdateSites();
		$this->removeDuplicateUpdateSite();
		$this->updateDownloadKey();
	}

	private function removeOldUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('nonumber.nl%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateNamesInUpdateSites()
	{
		$name = JText::_($this->name);
		if ($this->alias != 'extensionmanager')
		{
			$name = 'Regular Labs - ' . $name;
		}

		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('name') . ' = '
. $this->db->quote($name))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateHttptoHttpsInUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('location') . ' =
REPLACE('
				. $this->db->quoteName('location') . ', '
				. $this->db->quote('http://') . ', '
				. $this->db->quote('https://')
				. ')')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('http://download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeDuplicateUpdateSite()
	{
		// First check to see if there is a pro entry

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('location') . ' NOT
LIKE ' . $this->db->quote('%pro=1%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$id = $this->db->loadResult();

		// Otherwise just get the first match
		if ( ! $id)
		{
			$query->clear()
				->select($this->db->quoteName('update_site_id'))
				->from('#__update_sites')
				->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
				->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
			$this->db->setQuery($query, 0, 1);
			$id = $this->db->loadResult();

			// Remove pro=1 from the found update site
			$query->clear()
				->update('#__update_sites')
				->set($this->db->quoteName('location')
					. ' = replace(' .
$this->db->quoteName('location') . ', ' .
$this->db->quote('&pro=1') . ', ' .
$this->db->quote('') . ')')
				->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
			$this->db->setQuery($query);
			$this->db->execute();
		}

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('update_site_id') .
' != ' . $id);
		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	// Save the download key from the Regular Labs Extension Manager config to
the update sites
	private function updateDownloadKey()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('params'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote('com_regularlabsmanager'));
		$this->db->setQuery($query);
		$params = $this->db->loadResult();

		if ( ! $params)
		{
			return;
		}

		$params = json_decode($params);

		if ( ! isset($params->key))
		{
			return;
		}

		// Add the key on all regularlabs.com urls
		$query->clear()
			->update('#__update_sites')
			->set($this->db->quoteName('extra_query') . ' =
' . $this->db->quote('k=' . $params->key))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeAdminCache()
	{
		$this->delete([JPATH_ADMINISTRATOR . '/cache/regularlabs']);
		$this->delete([JPATH_ADMINISTRATOR . '/cache/nonumber']);
	}

	private function removeGlobalLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		$language_files = JFolder::files(JPATH_ADMINISTRATOR .
'/language', '\.' . $this->getPrefix() .
'_' . $this->extname . '\.', true, true);

		// Remove override files
		foreach ($language_files as $i => $language_file)
		{
			if (strpos($language_file, '/overrides/') === false)
			{
				continue;
			}

			unset($language_files[$i]);
		}

		if (empty($language_files))
		{
			return;
		}

		JFile::delete($language_files);
	}

	private function removeUnusedLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		if ( ! is_file(__DIR__ . '/language'))
		{
			return;
		}

		$installed_languages = array_merge(
			is_file(JPATH_SITE . '/language') ?
JFolder::folders(JPATH_SITE . '/language') : [],
			is_file(JPATH_ADMINISTRATOR . '/language') ?
JFolder::folders(JPATH_ADMINISTRATOR . '/language') : []
		);

		$languages = array_diff(
			JFolder::folders(__DIR__ . '/language') ?: [],
			$installed_languages
		);

		$delete_languages = [];

		foreach ($languages as $language)
		{
			$delete_languages[] = $this->getMainFolder() . '/language/'
. $language;
		}

		if (empty($delete_languages))
		{
			return;
		}

		// Remove folders
		$this->delete($delete_languages);
	}
}
PK�X�[�
x���$advancedtemplates/script.install.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;

require_once __DIR__ . '/script.install.helper.php';

class PlgSystemAdvancedTemplatesInstallerScript extends
PlgSystemAdvancedTemplatesInstallerScriptHelper
{
	public $name           = 'ADVANCEDTEMPLATEMANAGER';
	public $alias          = 'advancedtemplatemanager';
	public $extname        = 'advancedtemplates';
	public $extension_type = 'plugin';

	public function uninstall($adapter)
	{
		$this->uninstallComponent($this->extname);
		$this->uninstallPlugin($this->extname, 'actionlog');
	}

	public function onAfterInstall($route)
	{
		$this->setPluginOrdering();

		return parent::onAfterInstall($route);
	}

	private function setPluginOrdering()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('ordering') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote('advancedtemplates'))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote('system'));
		$this->db->setQuery($query);
		$this->db->execute();

		JFactory::getCache()->clean('_system');
	}
}
PK�X�[�$��"advancedtemplates/src/Document.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\AdvancedTemplates;

defined('_JEXEC') or die;

use AdvancedTemplatesModelStyle;
use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Form\Form as JForm;
use Joomla\CMS\Language\Text as JText;
use Joomla\CMS\Router\Route as JRoute;
use Joomla\Registry\Registry as JRegistry;
use RegularLabs\Library\Conditions as RL_Conditions;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Language as RL_Language;
use RegularLabs\Library\Parameters as RL_Parameters;
use RegularLabs\Library\RegEx as RL_RegEx;

class Document
{
	static $style_params;

	/*
	 * Replace links to com_templates with com_advancedtemplates
	 */
	public static function replaceLinks(&$html)
	{
		if ( ! RL_Document::isHtml())
		{
			return false;
		}

		RL_Language::load('com_advancedtemplates');

		if (JFactory::getApplication()->input->get('option') ==
'com_templates')
		{
			self::replaceLinksInCoreTemplateManager($html);

			return true;
		}


		$html = RL_RegEx::replace(
			'((["\'])[^\s"\'%]*\?option=com_)(templates(\2|[^a-z-\"\'].*?\2))',
			'\1advanced\3',
			$html
		);

		$html = str_replace(
			[
				'?option=com_advancedtemplates&force=1',
				'?option=com_advancedtemplates&amp;force=1',
			],
			'?option=com_templates',
			$html
		);

		return true;
	}

	public static function replaceLinksInCoreTemplateManager(&$html)
	{
		if ( ! Params::get()->show_switch)
		{
			return  false;
		}


		$url = 'index.php?option=com_advancedtemplates';
		if (JFactory::getApplication()->input->get('view') ==
'style')
		{
			$url .= '&task=style.edit&id=' . (int)
JFactory::getApplication()->input->get('id');
		}

		$link = '<a style="float:right;" href="' .
JRoute::_($url) . '">' .
JText::_('ATP_SWITCH_TO_ADVANCED_TEMPLATE_MANAGER') .
'</a><div
style="clear:both;"></div>';
		$html =
RL_RegEx::replace('(</div>\s*</form>\s*(<\!--.*?-->\s*)*</div>)',
$link . '\1', $html);

		return true;
	}

	public static function setTemplate()
	{
		$params = Params::get();

		if
(JFactory::getApplication()->input->get('templateStyle'))
		{
			if (isset($params->template_positions_display) &&
$params->template_positions_display)
			{
				return;
			}
		}

		$active = self::getActiveStyle();

		// return if no active template is found
		if (empty($active))
		{
			return;
		}

		// convert params from json to JRegistry object. setTemplate need that.
		$active->params = new JRegistry($active->params);

		JFactory::getApplication()->setTemplate($active->template,
$active->params);
	}

	/**
	 * @return Object  The active style
	 */
	public static function getActiveStyle()
	{
		$styles = self::getStyles();

		$active = null;

		foreach ($styles as $id => &$style)
		{
			if ( ! self::isStyleActive($style, $active))
			{
				continue;
			}

			$active = $style;
			break;
		}

		return $active;
	}

	/**
	 * @return bool  True if the current style should be set as active
	 */
	public static function isStyleActive(&$style, &$active)
	{
		// continue if default language is already set
		if ($active && $style->home)
		{
			return false;
		}

		// check if style is set as language default
		if ($style->home && $style->home ==
JFactory::getLanguage()->getTag())
		{
			$active = $style;

			return false;
		}

		// check if style is set as main default
		if ($style->home === 1 || $style->home === '1')
		{
			$active = $style;

			return false;
		}

		// continue if style is set as default for a different language
		if ($style->home)
		{
			return false;
		}

		// continue is style assignments don't pass
		if ( ! self::stylePassesAssignments($style))
		{
			return false;
		}

		return true;
	}

	/**
	 * @return Array  An array of template styles with the id as key
	 */
	public static function getStyles()
	{
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select('s.*')
			->from('#__template_styles as s')
			->where('s.client_id = 0');
		$db->setQuery($query);

		$styles = $db->loadObjectList('id');

		return $styles;
	}

	/**
	 * @param $style
	 *
	 * @return Object  The advanced parameter object
	 */
	public static function getStyleParams($style)
	{
		$params = Params::get();

		$adv_params = self::getAdvancedParams($style);

		if ( ! $params->show_assignto_homepage)
		{
			$adv_params->assignto_homepage = 0;
		}
		if ( ! $params->show_assignto_usergrouplevels)
		{
			$adv_params->assignto_usergrouplevels = 0;
		}
		if ( ! $params->show_assignto_date)
		{
			$adv_params->assignto_date = 0;
		}
		if ( ! $params->show_assignto_languages)
		{
			$adv_params->assignto_languages = 0;
		}
		if ( ! $params->show_assignto_templates)
		{
			$adv_params->assignto_templates = 0;
		}
		if ( ! $params->show_assignto_urls)
		{
			$adv_params->assignto_urls = 0;
		}
		if ( ! $params->show_assignto_devices)
		{
			$adv_params->assignto_devices = 0;
		}
		if ( ! $params->show_assignto_os)
		{
			$adv_params->assignto_os = 0;
		}
		if ( ! $params->show_assignto_browsers)
		{
			$adv_params->assignto_browsers = 0;
		}
		if ( ! $params->show_assignto_components)
		{
			$adv_params->assignto_components = 0;
		}
		if ( ! $params->show_assignto_tags)
		{
			$adv_params->show_assignto_tags = 0;
		}
		if ( ! $params->show_assignto_content)
		{
			$adv_params->assignto_contentpagetypes = 0;
			$adv_params->assignto_cats             = 0;
			$adv_params->assignto_articles         = 0;
		}

		return $adv_params;
	}

	/**
	 * @param $style
	 *
	 * @return bool
	 */
	public static function stylePassesAssignments(&$style)
	{
		$params      = self::getStyleParams($style);
		$assignments = RL_Conditions::getConditionsFromParams($params);

		if ( ! RL_Conditions::hasConditions($assignments))
		{
			return false;
		}

		return RL_Conditions::pass($assignments, $params->match_method);
	}

	/**
	 * @param $id
	 *
	 * @return object  The advanced params for the template style in a json
string
	 */
	public static function getAdvancedParams($style)
	{
		if (isset(self::$style_params[$style->id]))
		{
			return self::$style_params[$style->id];
		}

		$db    = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select('a.params')
			->from('#__advancedtemplates AS a')
			->where('a.styleid = ' . (int) $style->id);
		$db->setQuery($query);

		$params = $db->loadResult();

		// if no params are found in database, get the default params
		if (empty($params))
		{
			require_once JPATH_ADMINISTRATOR .
'/components/com_advancedtemplates/models/style.php';
			$model  = new AdvancedTemplatesModelStyle;
			$params = (object) $model->initAssignments($style->id, $style);
		}

		self::$style_params[$style->id] =
RL_Parameters::getInstance()->getParams($params, JPATH_ADMINISTRATOR .
'/components/com_advancedtemplates/assignments.xml');

		return self::$style_params[$style->id];
	}

	public static function changeMenuItemForm($form)
	{
		if ( ! ($form instanceof JForm))
		{
			return false;
		}

		// Check we are manipulating a valid form.
		$name = $form->getName();
		if ($name != 'com_menus.item')
		{
			return true;
		}

		$form->removeField('template_style_id');

		return true;
	}
}
PK�X�[������
advancedtemplates/src/Params.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\AdvancedTemplates;

defined('_JEXEC') or die;

use RegularLabs\Library\Parameters as RL_Parameters;

class Params
{
	protected static $params = null;

	public static function get()
	{
		if ( ! is_null(self::$params))
		{
			return self::$params;
		}

		$params =
RL_Parameters::getInstance()->getComponentParams('advancedtemplates');

		self::$params = $params;

		return self::$params;
	}
}
PK�X�[��Ͳ�%advancedtemplates/vendor/autoload.phpnu�[���<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitbb523eca11cc998f0b74510de948c64d::getLoader();
PK�X�[?�6H��7advancedtemplates/vendor/composer/autoload_classmap.phpnu�[���<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
];
PK�X�[�-�z��9advancedtemplates/vendor/composer/autoload_namespaces.phpnu�[���<?php

// autoload_namespaces.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
];
PK�X�[������3advancedtemplates/vendor/composer/autoload_psr4.phpnu�[���<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
	'RegularLabs\\Plugin\\System\\AdvancedTemplates\\' =>
[$baseDir . '/src'],
];
PK�X�[��yW��3advancedtemplates/vendor/composer/autoload_real.phpnu�[���<?php

// autoload_real.php @generated by Composer

class ComposerAutoloaderInitbb523eca11cc998f0b74510de948c64d
{
	private static $loader;

	public static function loadClassLoader($class)
	{
		if ('Composer\Autoload\ClassLoader' === $class)
		{
			require __DIR__ . '/ClassLoader.php';
		}
	}

	public static function getLoader()
	{
		if (null !== self::$loader)
		{
			return self::$loader;
		}

		spl_autoload_register(['ComposerAutoloaderInitbb523eca11cc998f0b74510de948c64d',
'loadClassLoader'], true, true);
		self::$loader = $loader = new \Composer\Autoload\ClassLoader;
		spl_autoload_unregister(['ComposerAutoloaderInitbb523eca11cc998f0b74510de948c64d',
'loadClassLoader']);

		$useStaticLoader = PHP_VERSION_ID >= 50600 && !
defined('HHVM_VERSION') && ( !
function_exists('zend_loader_file_encoded') || !
zend_loader_file_encoded());
		if ($useStaticLoader)
		{
			require_once __DIR__ . '/autoload_static.php';

			call_user_func(\Composer\Autoload\ComposerStaticInitbb523eca11cc998f0b74510de948c64d::getInitializer($loader));
		}
		else
		{
			$map = require __DIR__ . '/autoload_namespaces.php';
			foreach ($map as $namespace => $path)
			{
				$loader->set($namespace, $path);
			}

			$map = require __DIR__ . '/autoload_psr4.php';
			foreach ($map as $namespace => $path)
			{
				$loader->setPsr4($namespace, $path);
			}

			$classMap = require __DIR__ . '/autoload_classmap.php';
			if ($classMap)
			{
				$loader->addClassMap($classMap);
			}
		}

		$loader->register(true);

		return $loader;
	}
}
PK�X�[Zj��5advancedtemplates/vendor/composer/autoload_static.phpnu�[���<?php

// autoload_static.php @generated by Composer

namespace Composer\Autoload;

class ComposerStaticInitbb523eca11cc998f0b74510de948c64d
{
	public static $prefixLengthsPsr4 = [
		'R' =>
			[
				'RegularLabs\\Plugin\\System\\AdvancedTemplates\\' => 44,
			],
	];

	public static $prefixDirsPsr4 = [
		'RegularLabs\\Plugin\\System\\AdvancedTemplates\\' =>
			[
				0 => __DIR__ . '/../..' . '/src',
			],
	];

	public static function getInitializer(ClassLoader $loader)
	{
		return \Closure::bind(function () use ($loader) {
			$loader->prefixLengthsPsr4 =
ComposerStaticInitbb523eca11cc998f0b74510de948c64d::$prefixLengthsPsr4;
			$loader->prefixDirsPsr4    =
ComposerStaticInitbb523eca11cc998f0b74510de948c64d::$prefixDirsPsr4;
		}, null, ClassLoader::class);
	}
}
PK�X�[f�p�,�,1advancedtemplates/vendor/composer/ClassLoader.phpnu�[���<?php

/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <naderman@naderman.de>
 *     Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Composer\Autoload;

/**
 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
 *
 *     $loader = new \Composer\Autoload\ClassLoader();
 *
 *     // register classes with namespaces
 *     $loader->add('Symfony\Component',
__DIR__.'/component');
 *     $loader->add('Symfony',          
__DIR__.'/framework');
 *
 *     // activate the autoloader
 *     $loader->register();
 *
 *     // to enable searching the include path (eg. for PEAR packages)
 *     $loader->setUseIncludePath(true);
 *
 * In this example, if you try to use a class in the Symfony\Component
 * namespace or one of its children (Symfony\Component\Console for
instance),
 * the autoloader will first look for the class under the component/
 * directory, and it will then fallback to the framework/ directory if not
 * found before giving up.
 *
 * This class is loosely based on the Symfony UniversalClassLoader.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @see    http://www.php-fig.org/psr/psr-0/
 * @see    http://www.php-fig.org/psr/psr-4/
 */
class ClassLoader
{
	// PSR-4
	private $prefixLengthsPsr4 = [];
	private $prefixDirsPsr4    = [];
	private $fallbackDirsPsr4  = [];

	// PSR-0
	private $prefixesPsr0     = [];
	private $fallbackDirsPsr0 = [];

	private $useIncludePath        = false;
	private $classMap              = [];
	private $classMapAuthoritative = false;
	private $missingClasses        = [];
	private $apcuPrefix;

	public function getPrefixes()
	{
		if ( ! empty($this->prefixesPsr0))
		{
			return call_user_func_array('array_merge',
$this->prefixesPsr0);
		}

		return [];
	}

	public function getPrefixesPsr4()
	{
		return $this->prefixDirsPsr4;
	}

	public function getFallbackDirs()
	{
		return $this->fallbackDirsPsr0;
	}

	public function getFallbackDirsPsr4()
	{
		return $this->fallbackDirsPsr4;
	}

	public function getClassMap()
	{
		return $this->classMap;
	}

	/**
	 * @param array $classMap Class to filename map
	 */
	public function addClassMap(array $classMap)
	{
		if ($this->classMap)
		{
			$this->classMap = array_merge($this->classMap, $classMap);
		}
		else
		{
			$this->classMap = $classMap;
		}
	}

	/**
	 * Registers a set of PSR-0 directories for a given prefix, either
	 * appending or prepending to the ones previously set for this prefix.
	 *
	 * @param string       $prefix  The prefix
	 * @param array|string $paths   The PSR-0 root directories
	 * @param bool         $prepend Whether to prepend the directories
	 */
	public function add($prefix, $paths, $prepend = false)
	{
		if ( ! $prefix)
		{
			if ($prepend)
			{
				$this->fallbackDirsPsr0 = array_merge(
					(array) $paths,
					$this->fallbackDirsPsr0
				);
			}
			else
			{
				$this->fallbackDirsPsr0 = array_merge(
					$this->fallbackDirsPsr0,
					(array) $paths
				);
			}

			return;
		}

		$first = $prefix[0];
		if ( ! isset($this->prefixesPsr0[$first][$prefix]))
		{
			$this->prefixesPsr0[$first][$prefix] = (array) $paths;

			return;
		}
		if ($prepend)
		{
			$this->prefixesPsr0[$first][$prefix] = array_merge(
				(array) $paths,
				$this->prefixesPsr0[$first][$prefix]
			);
		}
		else
		{
			$this->prefixesPsr0[$first][$prefix] = array_merge(
				$this->prefixesPsr0[$first][$prefix],
				(array) $paths
			);
		}
	}

	/**
	 * Registers a set of PSR-4 directories for a given namespace, either
	 * appending or prepending to the ones previously set for this namespace.
	 *
	 * @param string       $prefix  The prefix/namespace, with trailing
'\\'
	 * @param array|string $paths   The PSR-4 base directories
	 * @param bool         $prepend Whether to prepend the directories
	 *
	 * @throws \InvalidArgumentException
	 */
	public function addPsr4($prefix, $paths, $prepend = false)
	{
		if ( ! $prefix)
		{
			// Register directories for the root namespace.
			if ($prepend)
			{
				$this->fallbackDirsPsr4 = array_merge(
					(array) $paths,
					$this->fallbackDirsPsr4
				);
			}
			else
			{
				$this->fallbackDirsPsr4 = array_merge(
					$this->fallbackDirsPsr4,
					(array) $paths
				);
			}
		}
		elseif ( ! isset($this->prefixDirsPsr4[$prefix]))
		{
			// Register directories for a new namespace.
			$length = strlen($prefix);
			if ('\\' !== $prefix[$length - 1])
			{
				throw new \InvalidArgumentException("A non-empty PSR-4 prefix must
end with a namespace separator.");
			}
			$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
			$this->prefixDirsPsr4[$prefix]                = (array) $paths;
		}
		elseif ($prepend)
		{
			// Prepend directories for an already registered namespace.
			$this->prefixDirsPsr4[$prefix] = array_merge(
				(array) $paths,
				$this->prefixDirsPsr4[$prefix]
			);
		}
		else
		{
			// Append directories for an already registered namespace.
			$this->prefixDirsPsr4[$prefix] = array_merge(
				$this->prefixDirsPsr4[$prefix],
				(array) $paths
			);
		}
	}

	/**
	 * Registers a set of PSR-0 directories for a given prefix,
	 * replacing any others previously set for this prefix.
	 *
	 * @param string       $prefix The prefix
	 * @param array|string $paths  The PSR-0 base directories
	 */
	public function set($prefix, $paths)
	{
		if ( ! $prefix)
		{
			$this->fallbackDirsPsr0 = (array) $paths;
		}
		else
		{
			$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
		}
	}

	/**
	 * Registers a set of PSR-4 directories for a given namespace,
	 * replacing any others previously set for this namespace.
	 *
	 * @param string       $prefix The prefix/namespace, with trailing
'\\'
	 * @param array|string $paths  The PSR-4 base directories
	 *
	 * @throws \InvalidArgumentException
	 */
	public function setPsr4($prefix, $paths)
	{
		if ( ! $prefix)
		{
			$this->fallbackDirsPsr4 = (array) $paths;
		}
		else
		{
			$length = strlen($prefix);
			if ('\\' !== $prefix[$length - 1])
			{
				throw new \InvalidArgumentException("A non-empty PSR-4 prefix must
end with a namespace separator.");
			}
			$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
			$this->prefixDirsPsr4[$prefix]                = (array) $paths;
		}
	}

	/**
	 * Turns on searching the include path for class files.
	 *
	 * @param bool $useIncludePath
	 */
	public function setUseIncludePath($useIncludePath)
	{
		$this->useIncludePath = $useIncludePath;
	}

	/**
	 * Can be used to check if the autoloader uses the include path to check
	 * for classes.
	 *
	 * @return bool
	 */
	public function getUseIncludePath()
	{
		return $this->useIncludePath;
	}

	/**
	 * Turns off searching the prefix and fallback directories for classes
	 * that have not been registered with the class map.
	 *
	 * @param bool $classMapAuthoritative
	 */
	public function setClassMapAuthoritative($classMapAuthoritative)
	{
		$this->classMapAuthoritative = $classMapAuthoritative;
	}

	/**
	 * Should class lookup fail if not found in the current class map?
	 *
	 * @return bool
	 */
	public function isClassMapAuthoritative()
	{
		return $this->classMapAuthoritative;
	}

	/**
	 * APCu prefix to use to cache found/not-found classes, if the extension
is enabled.
	 *
	 * @param string|null $apcuPrefix
	 */
	public function setApcuPrefix($apcuPrefix)
	{
		$this->apcuPrefix = function_exists('apcu_fetch') &&
ini_get('apc.enabled') ? $apcuPrefix : null;
	}

	/**
	 * The APCu prefix in use, or null if APCu caching is not enabled.
	 *
	 * @return string|null
	 */
	public function getApcuPrefix()
	{
		return $this->apcuPrefix;
	}

	/**
	 * Registers this instance as an autoloader.
	 *
	 * @param bool $prepend Whether to prepend the autoloader or not
	 */
	public function register($prepend = false)
	{
		spl_autoload_register([$this, 'loadClass'], true, $prepend);
	}

	/**
	 * Unregisters this instance as an autoloader.
	 */
	public function unregister()
	{
		spl_autoload_unregister([$this, 'loadClass']);
	}

	/**
	 * Loads the given class or interface.
	 *
	 * @param string $class The name of the class
	 *
	 * @return bool|null True if loaded, null otherwise
	 */
	public function loadClass($class)
	{
		if ($file = $this->findFile($class))
		{
			includeFile($file);

			return true;
		}
	}

	/**
	 * Finds the path to the file where the class is defined.
	 *
	 * @param string $class The name of the class
	 *
	 * @return string|false The path if found, false otherwise
	 */
	public function findFile($class)
	{
		// class map lookup
		if (isset($this->classMap[$class]))
		{
			return $this->classMap[$class];
		}
		if ($this->classMapAuthoritative ||
isset($this->missingClasses[$class]))
		{
			return false;
		}
		if (null !== $this->apcuPrefix)
		{
			$file = apcu_fetch($this->apcuPrefix . $class, $hit);
			if ($hit)
			{
				return $file;
			}
		}

		$file = $this->findFileWithExtension($class, '.php');

		// Search for Hack files if we are running on HHVM
		if (false === $file && defined('HHVM_VERSION'))
		{
			$file = $this->findFileWithExtension($class, '.hh');
		}

		if (null !== $this->apcuPrefix)
		{
			apcu_add($this->apcuPrefix . $class, $file);
		}

		if (false === $file)
		{
			// Remember that this class does not exist.
			$this->missingClasses[$class] = true;
		}

		return $file;
	}

	private function findFileWithExtension($class, $ext)
	{
		// PSR-4 lookup
		$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) .
$ext;

		$first = $class[0];
		if (isset($this->prefixLengthsPsr4[$first]))
		{
			$subPath = $class;
			while (false !== $lastPos = strrpos($subPath, '\\'))
			{
				$subPath = substr($subPath, 0, $lastPos);
				$search  = $subPath . '\\';
				if (isset($this->prefixDirsPsr4[$search]))
				{
					foreach ($this->prefixDirsPsr4[$search] as $dir)
					{
						$length = $this->prefixLengthsPsr4[$first][$search];
						if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
substr($logicalPathPsr4, $length)))
						{
							return $file;
						}
					}
				}
			}
		}

		// PSR-4 fallback dirs
		foreach ($this->fallbackDirsPsr4 as $dir)
		{
			if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4))
			{
				return $file;
			}
		}

		// PSR-0 lookup
		if (false !== $pos = strrpos($class, '\\'))
		{
			// namespaced class name
			$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
				. strtr(substr($logicalPathPsr4, $pos + 1), '_',
DIRECTORY_SEPARATOR);
		}
		else
		{
			// PEAR-like class name
			$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) .
$ext;
		}

		if (isset($this->prefixesPsr0[$first]))
		{
			foreach ($this->prefixesPsr0[$first] as $prefix => $dirs)
			{
				if (0 === strpos($class, $prefix))
				{
					foreach ($dirs as $dir)
					{
						if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
$logicalPathPsr0))
						{
							return $file;
						}
					}
				}
			}
		}

		// PSR-0 fallback dirs
		foreach ($this->fallbackDirsPsr0 as $dir)
		{
			if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0))
			{
				return $file;
			}
		}

		// PSR-0 include paths.
		if ($this->useIncludePath && $file =
stream_resolve_include_path($logicalPathPsr0))
		{
			return $file;
		}

		return false;
	}
}

/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 */
function includeFile($file)
{
	include $file;
}
PK�X�[D�hp0advancedtemplates/vendor/composer/installed.jsonnu�[���[]
PK�X�[
�..)advancedtemplates/vendor/composer/LICENSEnu�[���
Copyright (c) Nils Adermann, Jordi Boggiano

Permission is hereby granted, free of charge, to any person obtaining a
copy
of this software and associated documentation files (the
"Software"), to deal
in the Software without restriction, including without limitation the
rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

PK�X�[�k��--#autocloseticket/autocloseticket.phpnu�[���<?php
/**
 * @version        4.3.0
 * @package        Joomla
 * @subpackage     helpdeskpro Pro
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2013 - 2021 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */
defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Plugin\CMSPlugin;

class plgSystemAutoCloseTicket extends CMSPlugin
{
	/**
	 * Protect access to articles
	 *
	 * @return bool
	 * @throws Exception
	 */
	public function onAfterRoute()
	{
		if (!file_exists(JPATH_ROOT .
'/components/com_helpdeskpro/helpdeskpro.php'))
		{
			return;
		}

		$lastRun   = (int) $this->params->get('last_run', 0);
		$now       = time();
		$cacheTime = 7200; // 2 hours

		if (($now - $lastRun) < $cacheTime)
		{
			return;
		}

		//Store last run time
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true);
		$this->params->set('last_run', $now);
		$params = $this->params->toString();

		$query->update('#__extensions')
			->set('params = ' . $db->quote($params))
			->where('`element` = "autocloseticket"')
			->where('`folder` = "system"');

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risk continuing
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();
			$this->clearCacheGroups(array('com_plugins'), array(0,
1));
		}
		catch (Exception $exc)
		{
			// If we failed to execite
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		// Require necessary libraries files
		require_once JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/init.php';
		require_once JPATH_ROOT .
'/components/com_helpdeskpro/helper/helper.php';

		$numberDay          = $this->params->get('number_days',
14);
		$config             =
\OSSolution\HelpdeskPro\Site\Helper\Helper::getConfig();
		$closedTicketStatus = $config->closed_ticket_status;

		$currentDate = $db->quote(HTMLHelper::_('date',
'Now', 'Y-m-d H:i:s'));
		$query->clear()
			->update('#__helpdeskpro_tickets')
			->set('status_id = ' . (int) $closedTicketStatus)
			->where("DATEDIFF($currentDate , modified_date) >= " .
(int) $numberDay)
			->where('status_id != ' . (int) $closedTicketStatus);
		$db->setQuery($query);
		$db->execute();
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array $clearGroups  The cache groups to clean
	 * @param   array $cacheClients The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since   2.0.4
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = JFactory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => ($client_id) ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache'),
					);
					$cache   = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}
}
PK�X�[���??#autocloseticket/autocloseticket.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.0.0" type="plugin"
group="system" method="upgrade">
	<name>System - Helpdeskpro Auto Close Ticket</name>
	<author>Tuan Pham Ngoc</author>
	<authorEmail>tuanpn@joomdonation.com</authorEmail>
	<authorUrl>http://www.joomdonation.com</authorUrl>
	<copyright>Copyright (C) 2013 - 2020 Ossolution
Team</copyright>
	<license>GNU General Public License version 3, or
later</license>
	<creationDate>Jan 2017</creationDate>
	<version>4.3.0</version>
	<description></description>
	<files>
		<filename
plugin="autocloseticket">autocloseticket.php</filename>		
	</files>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field name="number_days" type="text"
size="60" default="14" label="Number Days"
description="Enter number days the tickets will be closed if there are
no activities on the ticket" />
				<field name="last_run" label="Last Run Time"
type="text" readonly="true" size="30"
description="Store Last Run Time of the
plugin"></field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[Y�wpppcache/cache.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.cache
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Joomla! Page Cache Plugin.
 *
 * @since  1.5
 */
class PlgSystemCache extends JPlugin
{
	/**
	 * Cache instance.
	 *
	 * @var    JCache
	 * @since  1.5
	 */
	public $_cache;

	/**
	 * Cache key
	 *
	 * @var    string
	 * @since  3.0
	 */
	public $_cache_key;

	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.8.0
	 */
	protected $app;

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe.
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   1.5
	 */
	public function __construct(& $subject, $config)
	{
		parent::__construct($subject, $config);

		// Get the application if not done by JPlugin.
		if (!isset($this->app))
		{
			$this->app = JFactory::getApplication();
		}

		// Set the cache options.
		$options = array(
			'defaultgroup' => 'page',
			'browsercache' =>
$this->params->get('browsercache', 0),
			'caching'      => false,
		);

		// Instantiate cache with previous options and create the cache key
identifier.
		$this->_cache     = JCache::getInstance('page', $options);
		$this->_cache_key = JUri::getInstance()->toString();
	}

	/**
	 * Get a cache key for the current page based on the url and possible
other factors.
	 *
	 * @return  string
	 *
	 * @since   3.7
	 */
	protected function getCacheKey()
	{
		static $key;

		if (!$key)
		{
			JPluginHelper::importPlugin('pagecache');

			$parts =
JEventDispatcher::getInstance()->trigger('onPageCacheGetKey');
			$parts[] = JUri::getInstance()->toString();

			$key = md5(serialize($parts));
		}

		return $key;
	}

	/**
	 * After Initialise Event.
	 * Checks if URL exists in cache, if so dumps it directly and closes.
	 *
	 * @return  void
	 *
	 * @since   1.5
	 */
	public function onAfterInitialise()
	{
		if ($this->app->isClient('administrator') ||
$this->app->get('offline', '0') ||
$this->app->getMessageQueue())
		{
			return;
		}

		// If any pagecache plugins return false for onPageCacheSetCaching, do
not use the cache.
		JPluginHelper::importPlugin('pagecache');

		$results =
JEventDispatcher::getInstance()->trigger('onPageCacheSetCaching');
		$caching = !in_array(false, $results, true);

		if ($caching && JFactory::getUser()->guest &&
$this->app->input->getMethod() === 'GET')
		{
			$this->_cache->setCaching(true);
		}

		$data = $this->_cache->get($this->getCacheKey());

		// If page exist in cache, show cached page.
		if ($data !== false)
		{
			// Set HTML page from cache.
			$this->app->setBody($data);

			// Dumps HTML page.
			echo $this->app->toString((bool)
$this->app->get('gzip'));

			// Mark afterCache in debug and run debug onAfterRespond events.
			// e.g., show Joomla Debug Console if debug is active.
			if (JDEBUG)
			{
				JProfiler::getInstance('Application')->mark('afterCache');
				JEventDispatcher::getInstance()->trigger('onAfterRespond');
			}

			// Closes the application.
			$this->app->close();
		}
	}

	/**
	 * After Render Event.
	 * Verify if current page is not excluded from cache.
	 *
	 * @return   void
	 *
	 * @since   3.9.12
	 */
	public function onAfterRender()
	{
		if ($this->_cache->getCaching() === false)
		{
			return;
		}

		// We need to check if user is guest again here, because auto-login
plugins have not been fired before the first aid check.
		// Page is excluded if excluded in plugin settings.
		if (!JFactory::getUser()->guest || $this->app->getMessageQueue()
|| $this->isExcluded() === true)
		{
			$this->_cache->setCaching(false);

			return;
		}

		// Disable compression before caching the page.
		$this->app->set('gzip', false);
	}

	/**
	 * After Respond Event.
	 * Stores page in cache.
	 *
	 * @return   void
	 *
	 * @since   1.5
	 */
	public function onAfterRespond()
	{
		if ($this->_cache->getCaching() === false)
		{
			return;
		}

		// Saves current page in cache.
		$this->_cache->store($this->app->getBody(),
$this->getCacheKey());
	}

	/**
	 * Check if the page is excluded from the cache or not.
	 *
	 * @return   boolean  True if the page is excluded else false
	 *
	 * @since    3.5
	 */
	protected function isExcluded()
	{
		// Check if menu items have been excluded.
		if ($exclusions =
$this->params->get('exclude_menu_items', array()))
		{
			// Get the current menu item.
			$active = $this->app->getMenu()->getActive();

			if ($active && $active->id && in_array((int)
$active->id, (array) $exclusions))
			{
				return true;
			}
		}

		// Check if regular expressions are being used.
		if ($exclusions = $this->params->get('exclude',
''))
		{
			// Normalize line endings.
			$exclusions = str_replace(array("\r\n", "\r"),
"\n", $exclusions);

			// Split them.
			$exclusions = explode("\n", $exclusions);

			// Gets internal URI.
			$internal_uri	= '/index.php?' .
JUri::getInstance()->buildQuery($this->app->getRouter()->getVars());

			// Loop through each pattern.
			if ($exclusions)
			{
				foreach ($exclusions as $exclusion)
				{
					// Make sure the exclusion has some content
					if ($exclusion !== '')
					{
						// Test both external and internal URI
						if (preg_match('#' . $exclusion . '#i',
$this->_cache_key . ' ' . $internal_uri, $match))
						{
							return true;
						}
					}
				}
			}
		}

		// If any pagecache plugins return true for onPageCacheIsExcluded,
exclude.
		JPluginHelper::importPlugin('pagecache');

		$results =
JEventDispatcher::getInstance()->trigger('onPageCacheIsExcluded');

		return in_array(true, $results, true);
	}
}
PK�X�[
�耮�cache/cache.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_cache</name>
	<author>Joomla! Project</author>
	<creationDate>February 2007</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_CACHE_XML_DESCRIPTION</description>
	<files>
		<filename plugin="cache">cache.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_cache.ini</language>
		<language
tag="en-GB">en-GB.plg_system_cache.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="browsercache"
					type="radio"
					label="PLG_CACHE_FIELD_BROWSERCACHE_LABEL"
					description="PLG_CACHE_FIELD_BROWSERCACHE_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="exclude_menu_items"
					type="menuitem"
					label="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_LABEL"
					description="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_DESC"
					multiple="multiple"
					filter="int_array"
				/>

			</fieldset>
			<fieldset name="advanced">
				<field
					name="exclude"
					type="textarea"
					label="PLG_CACHE_FIELD_EXCLUDE_LABEL"
					description="PLG_CACHE_FIELD_EXCLUDE_DESC"
					class="input-xxlarge"
					rows="15"
					filter="raw"
				/>

			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[����	�	custom_price/custom_price.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
jimport('joomla.plugin.plugin');

class plgSystemCustom_price extends JPlugin {
	protected $currencyClass = null;
	public $params = null;

	public function onBeforeCalculateProductPriceForQuantity(&$product) {
		if(empty($this->currencyClass))
			$this->currencyClass = hikashop_get('class.currency');

		$quantity = @$product->cart_product_quantity;

		if(empty($this->params)) {
			$plugin = JPluginHelper::getPlugin('system',
'custom_price');
			if(version_compare(JVERSION,'2.5','<')){
				jimport('joomla.html.parameter');
				$this->params = new JParameter($plugin->params);
			} else {
				$this->params = new JRegistry($plugin->params);
			}
		}

		$taxes = $this->params->get('taxes',0);
		$column =
$this->params->get('field','amount');
		if(empty($product->$column))
			return;

		if(empty($product->prices)) {
			$price= new stdClass();
			$price->price_currency_id = hikashop_getCurrency();
			$price->price_min_quantity = 1;
			$product->prices = array($price);
		}
		if($taxes && $product->product_type == 'variant'
&& empty($product->product_tax_id)) {
			$productClass = hikashop_get('class.product');
			$main = $productClass->get($product->product_parent_id);
			$product->product_tax_id = $main->product_tax_id;
		}
		foreach($product->prices as $k => $price) {
			switch($taxes) {
				case 2:
					$product->prices[$k]->price_value =
$this->currencyClass->getUntaxedPrice(hikashop_toFloat($product->$column),hikashop_getZone(),$product->product_tax_id);
					$product->prices[$k]->taxes =
$this->currencyClass->taxRates;
					$product->prices[$k]->price_value_with_tax =
hikashop_toFloat($product->$column);
					break;
				case 1:
					$product->prices[$k]->price_value =
hikashop_toFloat($product->$column);
					$product->prices[$k]->price_value_with_tax =
$this->currencyClass->getTaxedPrice(hikashop_toFloat($product->$column),hikashop_getZone(),$product->product_tax_id);
					$product->prices[$k]->taxes =
$this->currencyClass->taxRates;
					break;
				case 0:
				default:
					$product->prices[$k]->price_value =
hikashop_toFloat($product->$column);
					$product->prices[$k]->price_value_with_tax =
hikashop_toFloat($product->$column);
					break;
			}
		}
	}
}
PK�X�[���custom_price/custom_price.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>HikaShopCustom Price plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop Donation plugin</description>
	<files>
		<filename
plugin="custom_price">custom_price.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="taxes" type="radio"
default="0" label="HIKA_TAXES_HANDLING"
description="TAXES_HANDLING">
			<option value="0">NO_TAXES</option>
			<option value="1">TAXES_HANDLING_ON_TOP</option>
			<option
value="2">TAXES_HANDLING_ALREADY_INCLUDED</option>
		</param>
		<param name="field" type="text"
size="20" default="amount"
label="COLUMN_NAME_OF_THE_FIELD"
description="CUSTOM_PRICE_COLUMN_NAME" />
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="taxes" type="radio"
default="0" label="HIKA_TAXES_HANDLING"
description="TAXES_HANDLING">
					<option value="0">NO_TAXES</option>
					<option
value="1">TAXES_HANDLING_ON_TOP</option>
					<option
value="2">TAXES_HANDLING_ALREADY_INCLUDED</option>
				</field>
				<field name="field" type="text"
size="20" default="amount"
label="COLUMN_NAME_OF_THE_FIELD"
description="CUSTOM_PRICE_COLUMN_NAME" />
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,custom_price/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�_�u��debug/debug.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.Debug
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Utilities\ArrayHelper;

/**
 * Joomla! Debug plugin.
 *
 * @since  1.5
 */
class PlgSystemDebug extends JPlugin
{
	/**
	 * xdebug.file_link_format from the php.ini.
	 *
	 * @var    string
	 * @since  1.7
	 */
	protected $linkFormat = '';

	/**
	 * True if debug lang is on.
	 *
	 * @var    boolean
	 * @since  3.0
	 */
	private $debugLang = false;

	/**
	 * Holds log entries handled by the plugin.
	 *
	 * @var    array
	 * @since  3.1
	 */
	private $logEntries = array();

	/**
	 * Holds SHOW PROFILES of queries.
	 *
	 * @var    array
	 * @since  3.1.2
	 */
	private $sqlShowProfiles = array();

	/**
	 * Holds all SHOW PROFILE FOR QUERY n, indexed by n-1.
	 *
	 * @var    array
	 * @since  3.1.2
	 */
	private $sqlShowProfileEach = array();

	/**
	 * Holds all EXPLAIN EXTENDED for all queries.
	 *
	 * @var    array
	 * @since  3.1.2
	 */
	private $explains = array();

	/**
	 * Holds total amount of executed queries.
	 *
	 * @var    int
	 * @since  3.2
	 */
	private $totalQueries = 0;

	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.3
	 */
	protected $app;

	/**
	 * Database object.
	 *
	 * @var    JDatabaseDriver
	 * @since  3.8.0
	 */
	protected $db;

	/**
	 * Container for callback functions to be triggered when rendering the
console.
	 *
	 * @var    callable[]
	 * @since  3.7.0
	 */
	private static $displayCallbacks = array();

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe.
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   1.5
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		// Log the deprecated API.
		if ($this->params->get('log-deprecated', 0))
		{
			JLog::addLogger(array('text_file' =>
'deprecated.php'), JLog::ALL, array('deprecated'));
		}

		// Log everything (except deprecated APIs, these are logged separately
with the option above).
		if ($this->params->get('log-everything', 0))
		{
			JLog::addLogger(array('text_file' =>
'everything.php'), JLog::ALL, array('deprecated',
'databasequery'), true);
		}

		// Get the application if not done by JPlugin. This may happen during
upgrades from Joomla 2.5.
		if (!$this->app)
		{
			$this->app = JFactory::getApplication();
		}

		// Get the db if not done by JPlugin. This may happen during upgrades
from Joomla 2.5.
		if (!$this->db)
		{
			$this->db = JFactory::getDbo();
		}

		$this->debugLang = $this->app->get('debug_lang');

		// Skip the plugin if debug is off
		if ($this->debugLang == '0' &&
$this->app->get('debug') == '0')
		{
			return;
		}

		// Only if debugging or language debug is enabled.
		if (JDEBUG || $this->debugLang)
		{
			JFactory::getConfig()->set('gzip', 0);
			ob_start();
			ob_implicit_flush(false);
		}

		$this->linkFormat = ini_get('xdebug.file_link_format');

		if ($this->params->get('logs', 1))
		{
			$priority = 0;

			foreach ($this->params->get('log_priorities', array())
as $p)
			{
				$const = 'JLog::' . strtoupper($p);

				if (!defined($const))
				{
					continue;
				}

				$priority |= constant($const);
			}

			// Split into an array at any character other than alphabet, numbers, _,
., or -
			$categories = array_filter(preg_split('/[^A-Z0-9_\.-]/i',
$this->params->get('log_categories', '')));
			$mode       = $this->params->get('log_category_mode',
0);

			JLog::addLogger(array('logger' => 'callback',
'callback' => array($this, 'logger')), $priority,
$categories, $mode);
		}

		// Prepare disconnect handler for SQL profiling.
		$db = $this->db;
		$db->addDisconnectHandler(array($this,
'mysqlDisconnectHandler'));

		// Log deprecated class aliases
		foreach (JLoader::getDeprecatedAliases() as $deprecation)
		{
			JLog::add(
				sprintf(
					'%1$s has been aliased to %2$s and the former class name is
deprecated. The alias will be removed in %3$s.',
					$deprecation['old'],
					$deprecation['new'],
					$deprecation['version']
				),
				JLog::WARNING,
				'deprecated'
			);
		}
	}

	/**
	 * Add the CSS for debug.
	 * We can't do this in the constructor because stuff breaks.
	 *
	 * @return  void
	 *
	 * @since   2.5
	 */
	public function onAfterDispatch()
	{
		// Only if debugging or language debug is enabled.
		if ((JDEBUG || $this->debugLang) &&
$this->isAuthorisedDisplayDebug())
		{
			JHtml::_('stylesheet', 'cms/debug.css',
array('version' => 'auto', 'relative'
=> true));
		}

		// Disable asset media version if needed.
		if (JDEBUG && (int)
$this->params->get('refresh_assets', 1) === 0)
		{
			$this->app->getDocument()->setMediaVersion(null);
		}

		// Only if debugging is enabled for SQL query popovers.
		if (JDEBUG && $this->isAuthorisedDisplayDebug())
		{
			JHtml::_('bootstrap.tooltip');
			JHtml::_('bootstrap.popover', '.hasPopover',
array('placement' => 'top'));
		}
	}

	/**
	 * Show the debug info.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function onAfterRespond()
	{
		// Do not render if debugging or language debug is not enabled.
		if (!JDEBUG && !$this->debugLang)
		{
			return;
		}

		// User has to be authorised to see the debug information.
		if (!$this->isAuthorisedDisplayDebug())
		{
			return;
		}

		// Only render for HTML output.
		if (JFactory::getDocument()->getType() !== 'html')
		{
			return;
		}

		// Capture output.
		$contents = ob_get_contents();

		if ($contents)
		{
			ob_end_clean();
		}

		// No debug for Safari and Chrome redirection.
		if (strpos($contents, '<html><head><meta
http-equiv="refresh" content="0;') === 0
			&&
strpos(strtolower(isset($_SERVER['HTTP_USER_AGENT']) ?
$_SERVER['HTTP_USER_AGENT'] : ''), 'webkit')
!== false)
		{
			echo $contents;

			return;
		}

		// Load language.
		$this->loadLanguage();

		$html = array();

		// Some "mousewheel protecting" JS.
		$html[] = "<script>function toggleContainer(name)
		{
			var e = document.getElementById(name);// MooTools might not be available
;)
			e.style.display = e.style.display === 'none' ?
'block' : 'none';
		}</script>";

		$html[] = '<div id="system-debug"
class="profiler">';

		$html[] = '<h2>' . JText::_('PLG_DEBUG_TITLE')
. '</h2>';

		if (JDEBUG)
		{
			if (JError::getErrors())
			{
				$html[] = $this->display('errors');
			}

			if ($this->params->get('session', 1))
			{
				$html[] = $this->display('session');
			}

			if ($this->params->get('profile', 1))
			{
				$html[] = $this->display('profile_information');
			}

			if ($this->params->get('memory', 1))
			{
				$html[] = $this->display('memory_usage');
			}

			if ($this->params->get('queries', 1))
			{
				$html[] = $this->display('queries');
			}

			if (!empty($this->logEntries) &&
$this->params->get('logs', 1))
			{
				$html[] = $this->display('logs');
			}
		}

		if ($this->debugLang)
		{
			if ($this->params->get('language_errorfiles', 1))
			{
				$languageErrors = JFactory::getLanguage()->getErrorFiles();
				$html[]         =
$this->display('language_files_in_error', $languageErrors);
			}

			if ($this->params->get('language_files', 1))
			{
				$html[] = $this->display('language_files_loaded');
			}

			if ($this->params->get('language_strings', 1))
			{
				$html[] = $this->display('untranslated_strings');
			}
		}

		foreach (self::$displayCallbacks as $name => $callable)
		{
			$html[] = $this->displayCallback($name, $callable);
		}

		$html[] = '</div>';

		echo str_replace('</body>', implode('', $html)
. '</body>', $contents);
	}

	/**
	 * Add a display callback to be rendered with the debug console.
	 *
	 * @param   string    $name      The name of the callable, this is used to
generate the section title.
	 * @param   callable  $callable  The callback function to be added.
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 * @throws  InvalidArgumentException
	 */
	public static function addDisplayCallback($name, $callable)
	{
		// TODO - When PHP 5.4 is the minimum the parameter should be typehinted
"callable" and this check removed
		if (!is_callable($callable))
		{
			throw new InvalidArgumentException('A valid callback function must
be given.');
		}

		self::$displayCallbacks[$name] = $callable;

		return true;
	}

	/**
	 * Remove a registered display callback
	 *
	 * @param   string  $name  The name of the callable.
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public static function removeDisplayCallback($name)
	{
		unset(self::$displayCallbacks[$name]);

		return true;
	}

	/**
	 * Method to check if the current user is allowed to see the debug
information or not.
	 *
	 * @return  boolean  True if access is allowed.
	 *
	 * @since   3.0
	 */
	private function isAuthorisedDisplayDebug()
	{
		static $result = null;

		if ($result !== null)
		{
			return $result;
		}

		// If the user is not allowed to view the output then end here.
		$filterGroups = (array)
$this->params->get('filter_groups', array());

		if (!empty($filterGroups))
		{
			$userGroups = JFactory::getUser()->get('groups');

			if (!array_intersect($filterGroups, $userGroups))
			{
				$result = false;

				return false;
			}
		}

		$result = true;

		return true;
	}

	/**
	 * General display method.
	 *
	 * @param   string  $item    The item to display.
	 * @param   array   $errors  Errors occurred during execution.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function display($item, array $errors = array())
	{
		$title = JText::_('PLG_DEBUG_' . strtoupper($item));

		$status = '';

		if (count($errors))
		{
			$status = ' dbg-error';
		}

		$fncName = 'display' . ucfirst(str_replace('_',
'', $item));

		if (!method_exists($this, $fncName))
		{
			return __METHOD__ . ' -- Unknown method: ' . $fncName .
'<br />';
		}

		$html = array();

		$js = "toggleContainer('dbg_container_" . $item .
"');";

		$class = 'dbg-header' . $status;

		$html[] = '<div class="' . $class . '"
onclick="' . $js . '"><a
href="javascript:void(0);"><h3>' . $title .
'</h3></a></div>';

		// @todo set with js.. ?
		$style = ' style="display: none;"';

		$html[] = '<div ' . $style . '
class="dbg-container" id="dbg_container_' . $item .
'">';
		$html[] = $this->$fncName();
		$html[] = '</div>';

		return implode('', $html);
	}

	/**
	 * Display method for callback functions.
	 *
	 * @param   string    $name      The name of the callable.
	 * @param   callable  $callable  The callable function.
	 *
	 * @return  string
	 *
	 * @since   3.7.0
	 */
	protected function displayCallback($name, $callable)
	{
		$title = JText::_('PLG_DEBUG_' . strtoupper($name));

		$html = array();

		$js = "toggleContainer('dbg_container_" . $name .
"');";

		$class = 'dbg-header';

		$html[] = '<div class="' . $class . '"
onclick="' . $js . '"><a
href="javascript:void(0);"><h3>' . $title .
'</h3></a></div>';

		// @todo set with js.. ?
		$style = ' style="display: none;"';

		$html[] = '<div ' . $style . '
class="dbg-container" id="dbg_container_' . $name .
'">';
		$html[] = call_user_func($callable);
		$html[] = '</div>';

		return implode('', $html);
	}

	/**
	 * Display session information.
	 *
	 * Called recursively.
	 *
	 * @param   string   $key      A session key.
	 * @param   mixed    $session  The session array, initially null.
	 * @param   integer  $id       Used to identify the DIV for the JavaScript
toggling code.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displaySession($key = '', $session = null,
$id = 0)
	{
		if (!$session)
		{
			$session = JFactory::getSession()->getData();
		}

		$html = array();
		static $id;

		if (!is_array($session))
		{
			$html[] = $key . '<pre>' .
$this->prettyPrintJSON($session) . '</pre>' . PHP_EOL;
		}
		else
		{
			foreach ($session as $sKey => $entries)
			{
				$display = true;

				if (is_array($entries) && $entries)
				{
					$display = false;
				}

				if (is_object($entries))
				{
					$o = ArrayHelper::fromObject($entries);

					if ($o)
					{
						$entries = $o;
						$display = false;
					}
				}

				if (!$display)
				{
					$js = "toggleContainer('dbg_container_session" . $id .
'_' . $sKey . "');";

					$html[] = '<div class="dbg-header"
onclick="' . $js . '"><a
href="javascript:void(0);"><h3>' . $sKey .
'</h3></a></div>';

					// @todo set with js.. ?
					$style = ' style="display: none;"';

					$html[] = '<div ' . $style . '
class="dbg-container" id="dbg_container_session' . $id
. '_' . $sKey . '">';
					$id++;

					// Recurse...
					$this->displaySession($sKey, $entries, $id);

					$html[] = '</div>';

					continue;
				}

				if (is_array($entries))
				{
					$entries = implode($entries);
				}

				if (is_string($entries))
				{
					$html[] = $sKey . '<pre>' .
$this->prettyPrintJSON($entries) . '</pre>' . PHP_EOL;
				}
			}
		}

		return implode('', $html);
	}

	/**
	 * Display errors.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayErrors()
	{
		$html = array();

		$html[] = '<ol>';

		while ($error = JError::getError(true))
		{
			$col = (E_WARNING == $error->get('level')) ?
'red' : 'orange';

			$html[] = '<li>';
			$html[] = '<b style="color: ' . $col .
'">' . $error->getMessage() . '</b><br
/>';

			$info = $error->get('info');

			if ($info)
			{
				$html[] = '<pre>' . print_r($info, true) .
'</pre><br />';
			}

			$html[] = $this->renderBacktrace($error);
			$html[] = '</li>';
		}

		$html[] = '</ol>';

		return implode('', $html);
	}

	/**
	 * Display profile information.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayProfileInformation()
	{
		$html = array();

		$htmlMarks = array();

		$totalTime = 0;
		$totalMem  = 0;
		$marks     = array();
		$bars      = array();
		$barsMem   = array();

		foreach (JProfiler::getInstance('Application')->getMarks()
as $mark)
		{
			$totalTime += $mark->time;
			$totalMem  += (float) $mark->memory;
			$htmlMark  = sprintf(
				JText::_('PLG_DEBUG_TIME') . ': <span
class="label label-time">%.2f&nbsp;ms</span> /
<span class="label
label-default">%.2f&nbsp;ms</span>'
				. ' ' . JText::_('PLG_DEBUG_MEMORY') . ':
<span class="label label-memory">%0.3f MB</span> /
<span class="label label-default">%0.2f
MB</span>'
				. ' %s: %s',
				$mark->time,
				$mark->totalTime,
				$mark->memory,
				$mark->totalMemory,
				$mark->prefix,
				$mark->label
			);

			$marks[] = (object) array(
				'time'   => $mark->time,
				'memory' => $mark->memory,
				'html'   => $htmlMark,
				'tip'    => $mark->label,
			);
		}

		$avgTime = $totalTime / max(count($marks), 1);
		$avgMem  = $totalMem / max(count($marks), 1);

		foreach ($marks as $mark)
		{
			if ($mark->time > $avgTime * 1.5)
			{
				$barClass   = 'bar-danger';
				$labelClass = 'label-important label-danger';
			}
			elseif ($mark->time < $avgTime / 1.5)
			{
				$barClass   = 'bar-success';
				$labelClass = 'label-success';
			}
			else
			{
				$barClass   = 'bar-warning';
				$labelClass = 'label-warning';
			}

			if ($mark->memory > $avgMem * 1.5)
			{
				$barClassMem   = 'bar-danger';
				$labelClassMem = 'label-important label-danger';
			}
			elseif ($mark->memory < $avgMem / 1.5)
			{
				$barClassMem   = 'bar-success';
				$labelClassMem = 'label-success';
			}
			else
			{
				$barClassMem   = 'bar-warning';
				$labelClassMem = 'label-warning';
			}

			$barClass    .= " progress-$barClass";
			$barClassMem .= " progress-$barClassMem";

			$bars[] = (object) array(
				'width' => round($mark->time / ($totalTime / 100), 4),
				'class' => $barClass,
				'tip'   => $mark->tip . ' ' .
round($mark->time, 2) . ' ms',
			);

			$barsMem[] = (object) array(
				'width' => round((float) $mark->memory / ($totalMem /
100), 4),
				'class' => $barClassMem,
				'tip'   => $mark->tip . ' ' .
round($mark->memory, 3) . '  MB',
			);

			$htmlMarks[] = '<div>' .
str_replace('label-time', $labelClass,
str_replace('label-memory', $labelClassMem, $mark->html)) .
'</div>';
		}

		$html[] = '<h4>' . JText::_('PLG_DEBUG_TIME') .
'</h4>';
		$html[] = $this->renderBars($bars, 'profile');
		$html[] = '<h4>' . JText::_('PLG_DEBUG_MEMORY')
. '</h4>';
		$html[] = $this->renderBars($barsMem, 'profile');

		$html[] = '<div class="dbg-profile-list">' .
implode('', $htmlMarks) . '</div>';

		$db = $this->db;

		//  fix  for support custom shutdown function via
register_shutdown_function().
		$db->disconnect();

		$log = $db->getLog();

		if ($log)
		{
			$timings = $db->getTimings();

			if ($timings)
			{
				$totalQueryTime = 0.0;
				$lastStart      = null;

				foreach ($timings as $k => $v)
				{
					if (!($k % 2))
					{
						$lastStart = $v;
					}
					else
					{
						$totalQueryTime += $v - $lastStart;
					}
				}

				$totalQueryTime *= 1000;

				if ($totalQueryTime > ($totalTime * 0.25))
				{
					$labelClass = 'label-important';
				}
				elseif ($totalQueryTime < ($totalTime * 0.15))
				{
					$labelClass = 'label-success';
				}
				else
				{
					$labelClass = 'label-warning';
				}

				$html[] = '<br /><div>' . JText::sprintf(
						'PLG_DEBUG_QUERIES_TIME',
						sprintf('<span class="label ' . $labelClass .
'">%.2f&nbsp;ms</span>', $totalQueryTime)
					) . '</div>';

				if ($this->params->get('log-executed-sql', 0))
				{
					$this->writeToFile();
				}
			}
		}

		return implode('', $html);
	}

	/**
	 * Display memory usage.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayMemoryUsage()
	{
		$bytes = memory_get_usage();

		return '<span class="label label-default">' .
JHtml::_('number.bytes', $bytes) . '</span>'
			. ' (<span class="label label-default">'
			. number_format($bytes, 0, JText::_('DECIMALS_SEPARATOR'),
JText::_('THOUSANDS_SEPARATOR'))
			. ' '
			. JText::_('PLG_DEBUG_BYTES')
			. '</span>)';
	}

	/**
	 * Display logged queries.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayQueries()
	{
		$db  = $this->db;
		$log = $db->getLog();

		if (!$log)
		{
			return null;
		}

		$timings    = $db->getTimings();
		$callStacks = $db->getCallStacks();

		$db->setDebug(false);

		$selectQueryTypeTicker = array();
		$otherQueryTypeTicker  = array();

		$timing  = array();
		$maxtime = 0;

		if (isset($timings[0]))
		{
			$startTime         = $timings[0];
			$endTime           = $timings[count($timings) - 1];
			$totalBargraphTime = $endTime - $startTime;

			if ($totalBargraphTime > 0)
			{
				foreach ($log as $id => $query)
				{
					if (isset($timings[$id * 2 + 1]))
					{
						// Compute the query time: $timing[$k] = array( queryTime,
timeBetweenQueries ).
						$timing[$id] = array(
							($timings[$id * 2 + 1] - $timings[$id * 2]) * 1000,
							$id > 0 ? ($timings[$id * 2] - $timings[$id * 2 - 1]) * 1000 : 0,
						);
						$maxtime     = max($maxtime, $timing[$id]['0']);
					}
				}
			}
		}
		else
		{
			$startTime         = null;
			$totalBargraphTime = 1;
		}

		$bars           = array();
		$info           = array();
		$totalQueryTime = 0;
		$duplicates     = array();

		foreach ($log as $id => $query)
		{
			$did = md5($query);

			if (!isset($duplicates[$did]))
			{
				$duplicates[$did] = array();
			}

			$duplicates[$did][] = $id;

			if ($timings && isset($timings[$id * 2 + 1]))
			{
				// Compute the query time.
				$queryTime      = ($timings[$id * 2 + 1] - $timings[$id * 2]) * 1000;
				$totalQueryTime += $queryTime;

				// Run an EXPLAIN EXTENDED query on the SQL query if possible.
				$hasWarnings          = false;
				$hasWarningsInProfile = false;

				if (isset($this->explains[$id]))
				{
					$explain = $this->tableToHtml($this->explains[$id],
$hasWarnings);
				}
				else
				{
					$explain =
JText::sprintf('PLG_DEBUG_QUERY_EXPLAIN_NOT_POSSIBLE',
htmlspecialchars($query));
				}

				// Run a SHOW PROFILE query.
				$profile = '';

				if (isset($this->sqlShowProfileEach[$id]) &&
$db->getServerType() === 'mysql')
				{
					$profileTable = $this->sqlShowProfileEach[$id];
					$profile      = $this->tableToHtml($profileTable,
$hasWarningsInProfile);
				}

				// How heavy should the string length count: 0 - 1.
				$ratio     = 0.5;
				$timeScore = $queryTime / ((strlen($query) + 1) * $ratio) * 200;

				// Determine color of bargraph depending on query speed and presence of
warnings in EXPLAIN.
				if ($timeScore > 10)
				{
					$barClass   = 'bar-danger';
					$labelClass = 'label-important';
				}
				elseif ($hasWarnings || $timeScore > 5)
				{
					$barClass   = 'bar-warning';
					$labelClass = 'label-warning';
				}
				else
				{
					$barClass   = 'bar-success';
					$labelClass = 'label-success';
				}

				// Computes bargraph as follows: Position begin and end of the bar
relatively to whole execution time.
				// TODO: $prevBar is not used anywhere. Remove?
				$prevBar = $id && isset($bars[$id - 1]) ? $bars[$id - 1] : 0;

				$barPre   = round($timing[$id][1] / ($totalBargraphTime * 10), 4);
				$barWidth = round($timing[$id][0] / ($totalBargraphTime * 10), 4);
				$minWidth = 0.3;

				if ($barWidth < $minWidth)
				{
					$barPre -= ($minWidth - $barWidth);

					if ($barPre < 0)
					{
						$minWidth += $barPre;
						$barPre   = 0;
					}

					$barWidth = $minWidth;
				}

				$bars[$id] = (object) array(
					'class' => $barClass,
					'width' => $barWidth,
					'pre'   => $barPre,
					'tip'   => sprintf('%.2f ms', $queryTime),
				);
				$info[$id] = (object) array(
					'class'       => $labelClass,
					'explain'     => $explain,
					'profile'     => $profile,
					'hasWarnings' => $hasWarnings,
				);
			}
		}

		// Remove single queries from $duplicates.
		$total_duplicates = 0;

		foreach ($duplicates as $did => $dups)
		{
			if (count($dups) < 2)
			{
				unset($duplicates[$did]);
			}
			else
			{
				$total_duplicates += count($dups);
			}
		}

		// Fix first bar width.
		$minWidth = 0.3;

		if ($bars[0]->width < $minWidth && isset($bars[1]))
		{
			$bars[1]->pre -= ($minWidth - $bars[0]->width);

			if ($bars[1]->pre < 0)
			{
				$minWidth     += $bars[1]->pre;
				$bars[1]->pre = 0;
			}

			$bars[0]->width = $minWidth;
		}

		$memoryUsageNow = memory_get_usage();
		$list           = array();

		foreach ($log as $id => $query)
		{
			// Start query type ticker additions.
			$fromStart  = stripos($query, 'from');
			$whereStart = stripos($query, 'where', $fromStart);

			if ($whereStart === false)
			{
				$whereStart = stripos($query, 'order by', $fromStart);
			}

			if ($whereStart === false)
			{
				$whereStart = strlen($query) - 1;
			}

			$fromString = substr($query, 0, $whereStart);
			$fromString = str_replace(array("\t", "\n"), '
', $fromString);
			$fromString = trim($fromString);

			// Initialise the select/other query type counts the first time.
			if (!isset($selectQueryTypeTicker[$fromString]))
			{
				$selectQueryTypeTicker[$fromString] = 0;
			}

			if (!isset($otherQueryTypeTicker[$fromString]))
			{
				$otherQueryTypeTicker[$fromString] = 0;
			}

			// Increment the count.
			if (stripos($query, 'select') === 0)
			{
				$selectQueryTypeTicker[$fromString]++;
				unset($otherQueryTypeTicker[$fromString]);
			}
			else
			{
				$otherQueryTypeTicker[$fromString]++;
				unset($selectQueryTypeTicker[$fromString]);
			}

			$text = $this->highlightQuery($query);

			if ($timings && isset($timings[$id * 2 + 1]))
			{
				// Compute the query time.
				$queryTime = ($timings[$id * 2 + 1] - $timings[$id * 2]) * 1000;

				// Timing
				// Formats the output for the query time with EXPLAIN query results as
tooltip:
				$htmlTiming = '<div style="margin: 0 0
5px;"><span class="dbg-query-time">';
				$htmlTiming .= JText::sprintf(
					'PLG_DEBUG_QUERY_TIME',
					sprintf(
						'<span class="label
%s">%.2f&nbsp;ms</span>',
						$info[$id]->class,
						$timing[$id]['0']
					)
				);

				if ($timing[$id]['1'])
				{
					$htmlTiming .= ' ' . JText::sprintf(
							'PLG_DEBUG_QUERY_AFTER_LAST',
							sprintf('<span class="label
label-default">%.2f&nbsp;ms</span>',
$timing[$id]['1'])
						);
				}

				$htmlTiming .= '</span>';

				if (isset($callStacks[$id][0]['memory']))
				{
					$memoryUsed        = $callStacks[$id][0]['memory'][1] -
$callStacks[$id][0]['memory'][0];
					$memoryBeforeQuery = $callStacks[$id][0]['memory'][0];

					// Determine colour of query memory usage.
					if ($memoryUsed > 0.1 * $memoryUsageNow)
					{
						$labelClass = 'label-important';
					}
					elseif ($memoryUsed > 0.05 * $memoryUsageNow)
					{
						$labelClass = 'label-warning';
					}
					else
					{
						$labelClass = 'label-success';
					}

					$htmlTiming .= ' ' . '<span
class="dbg-query-memory">'
						. JText::sprintf(
							'PLG_DEBUG_MEMORY_USED_FOR_QUERY',
							sprintf('<span class="label ' . $labelClass .
'">%.3f&nbsp;MB</span>', $memoryUsed /
1048576),
							sprintf('<span class="label
label-default">%.3f&nbsp;MB</span>',
$memoryBeforeQuery / 1048576)
						)
						. '</span>';

					if ($callStacks[$id][0]['memory'][2] !== null)
					{
						// Determine colour of number or results.
						$resultsReturned = $callStacks[$id][0]['memory'][2];

						if ($resultsReturned > 3000)
						{
							$labelClass = 'label-important';
						}
						elseif ($resultsReturned > 1000)
						{
							$labelClass = 'label-warning';
						}
						elseif ($resultsReturned == 0)
						{
							$labelClass = '';
						}
						else
						{
							$labelClass = 'label-success';
						}

						$htmlResultsReturned = '<span class="label ' .
$labelClass . '">' . (int) $resultsReturned .
'</span>';
						$htmlTiming          .= ' <span
class="dbg-query-rowsnumber">'
							. JText::sprintf('PLG_DEBUG_ROWS_RETURNED_BY_QUERY',
$htmlResultsReturned) . '</span>';
					}
				}

				$htmlTiming .= '</div>';

				// Bar.
				$htmlBar = $this->renderBars($bars, 'query', $id);

				// Profile query.
				$title = JText::_('PLG_DEBUG_PROFILE');

				if (!$info[$id]->profile)
				{
					$title = '<span class="dbg-noprofile">' .
$title . '</span>';
				}

				$htmlProfile = $info[$id]->profile ?:
JText::_('PLG_DEBUG_NO_PROFILE');

				$htmlAccordions = JHtml::_(
					'bootstrap.startAccordion', 'dbg_query_' . $id,
array(
						'active' => $info[$id]->hasWarnings ?
('dbg_query_explain_' . $id) : '',
					)
				);

				$htmlAccordions .= JHtml::_('bootstrap.addSlide',
'dbg_query_' . $id, JText::_('PLG_DEBUG_EXPLAIN'),
'dbg_query_explain_' . $id)
					. $info[$id]->explain
					. JHtml::_('bootstrap.endSlide');

				$htmlAccordions .= JHtml::_('bootstrap.addSlide',
'dbg_query_' . $id, $title, 'dbg_query_profile_' . $id)
					. $htmlProfile
					. JHtml::_('bootstrap.endSlide');

				// Call stack and back trace.
				if (isset($callStacks[$id]))
				{
					$htmlAccordions .= JHtml::_('bootstrap.addSlide',
'dbg_query_' . $id, JText::_('PLG_DEBUG_CALL_STACK'),
'dbg_query_callstack_' . $id)
						. $this->renderCallStack($callStacks[$id])
						. JHtml::_('bootstrap.endSlide');
				}

				$htmlAccordions .= JHtml::_('bootstrap.endAccordion');

				$did = md5($query);

				if (isset($duplicates[$did]))
				{
					$dups = array();

					foreach ($duplicates[$did] as $dup)
					{
						if ($dup != $id)
						{
							$dups[] = '<a class="alert-link"
href="#dbg-query-' . ($dup + 1) . '">#' . ($dup
+ 1) . '</a>';
						}
					}

					$htmlQuery = '<div class="alert
alert-error">' .
JText::_('PLG_DEBUG_QUERY_DUPLICATES') . ': ' .
implode('&nbsp; ', $dups) . '</div>'
						. '<pre class="alert" title="' .
htmlspecialchars(JText::_('PLG_DEBUG_QUERY_DUPLICATES_FOUND'),
ENT_COMPAT, 'UTF-8') . '">' . $text .
'</pre>';
				}
				else
				{
					$htmlQuery = '<pre>' . $text .
'</pre>';
				}

				$list[] = '<a name="dbg-query-' . ($id + 1) .
'"></a>'
					. $htmlTiming
					. $htmlBar
					. $htmlQuery
					. $htmlAccordions;
			}
			else
			{
				$list[] = '<pre>' . $text . '</pre>';
			}
		}

		$totalTime = 0;

		foreach (JProfiler::getInstance('Application')->getMarks()
as $mark)
		{
			$totalTime += $mark->time;
		}

		if ($totalQueryTime > ($totalTime * 0.25))
		{
			$labelClass = 'label-important';
		}
		elseif ($totalQueryTime < ($totalTime * 0.15))
		{
			$labelClass = 'label-success';
		}
		else
		{
			$labelClass = 'label-warning';
		}

		if ($this->totalQueries === 0)
		{
			$this->totalQueries = $db->getCount();
		}

		$html = array();

		$html[] = '<h4>' .
JText::sprintf('PLG_DEBUG_QUERIES_LOGGED',
$this->totalQueries)
			. sprintf(' <span class="label ' . $labelClass .
'">%.2f&nbsp;ms</span>', $totalQueryTime) .
'</h4><br />';

		if ($total_duplicates)
		{
			$html[] = '<div class="alert alert-error">'
				. '<h4>' .
JText::sprintf('PLG_DEBUG_QUERY_DUPLICATES_TOTAL_NUMBER',
$total_duplicates) . '</h4>';

			foreach ($duplicates as $dups)
			{
				$links = array();

				foreach ($dups as $dup)
				{
					$links[] = '<a class="alert-link"
href="#dbg-query-' . ($dup + 1) . '">#' . ($dup
+ 1) . '</a>';
				}

				$html[] = '<div>' .
JText::sprintf('PLG_DEBUG_QUERY_DUPLICATES_NUMBER',
count($links)) . ': ' . implode('&nbsp; ', $links)
. '</div>';
			}

			$html[] = '</div>';
		}

		$html[] = '<ol><li>' . implode('<hr
/></li><li>', $list) . '<hr
/></li></ol>';

		if (!$this->params->get('query_types', 1))
		{
			return implode('', $html);
		}

		// Get the totals for the query types.
		$totalSelectQueryTypes = count($selectQueryTypeTicker);
		$totalOtherQueryTypes  = count($otherQueryTypeTicker);
		$totalQueryTypes       = $totalSelectQueryTypes + $totalOtherQueryTypes;

		$html[] = '<h4>' .
JText::sprintf('PLG_DEBUG_QUERY_TYPES_LOGGED', $totalQueryTypes)
. '</h4>';

		if ($totalSelectQueryTypes)
		{
			$html[] = '<h5>' .
JText::_('PLG_DEBUG_SELECT_QUERIES') . '</h5>';

			arsort($selectQueryTypeTicker);

			$list = array();

			foreach ($selectQueryTypeTicker as $query => $occurrences)
			{
				$list[] = '<pre>'
					. JText::sprintf('PLG_DEBUG_QUERY_TYPE_AND_OCCURRENCES',
$this->highlightQuery($query), $occurrences)
					. '</pre>';
			}

			$html[] = '<ol><li>' .
implode('</li><li>', $list) .
'</li></ol>';
		}

		if ($totalOtherQueryTypes)
		{
			$html[] = '<h5>' .
JText::_('PLG_DEBUG_OTHER_QUERIES') . '</h5>';

			arsort($otherQueryTypeTicker);

			$list = array();

			foreach ($otherQueryTypeTicker as $query => $occurrences)
			{
				$list[] = '<pre>'
					. JText::sprintf('PLG_DEBUG_QUERY_TYPE_AND_OCCURRENCES',
$this->highlightQuery($query), $occurrences)
					. '</pre>';
			}

			$html[] = '<ol><li>' .
implode('</li><li>', $list) .
'</li></ol>';
		}

		return implode('', $html);
	}

	/**
	 * Render the bars.
	 *
	 * @param   array    &$bars  Array of bar data
	 * @param   string   $class  Optional class for items
	 * @param   integer  $id     Id if the bar to highlight
	 *
	 * @return  string
	 *
	 * @since   3.1.2
	 */
	protected function renderBars(&$bars, $class = '', $id =
null)
	{
		$html = array();

		foreach ($bars as $i => $bar)
		{
			if (isset($bar->pre) && $bar->pre)
			{
				$html[] = '<div class="dbg-bar-spacer"
style="width:' . $bar->pre .
'%;"></div>';
			}

			$barClass = trim('bar dbg-bar progress-bar ' .
(isset($bar->class) ? $bar->class : ''));

			if ($id !== null && $i == $id)
			{
				$barClass .= ' dbg-bar-active';
			}

			$tip = empty($bar->tip) ? '' : ' title="' .
htmlspecialchars($bar->tip, ENT_COMPAT, 'UTF-8') .
'"';

			$html[] = '<a class="bar dbg-bar ' . $barClass .
'"' . $tip . ' style="width: '
				. $bar->width . '%;" href="#dbg-' . $class .
'-' . ($i + 1) . '"></a>';
		}

		return '<div class="progress dbg-bars dbg-bars-' .
$class . '">' . implode('', $html) .
'</div>';
	}

	/**
	 * Render an HTML table based on a multi-dimensional array.
	 *
	 * @param   array    $table         An array of tabular data.
	 * @param   boolean  &$hasWarnings  Changes value to true if warnings
are displayed, otherwise untouched
	 *
	 * @return  string
	 *
	 * @since   3.1.2
	 */
	protected function tableToHtml($table, &$hasWarnings)
	{
		if (!$table)
		{
			return null;
		}

		$html = array();

		$html[] = '<table class="table table-striped
dbg-query-table">';
		$html[] = '<thead>';
		$html[] = '<tr>';

		foreach (array_keys($table[0]) as $k)
		{
			$html[] = '<th>' . htmlspecialchars($k) .
'</th>';
		}

		$html[]    = '</tr>';
		$html[]    = '</thead>';
		$html[]    = '<tbody>';
		$durations = array();

		foreach ($table as $tr)
		{
			if (isset($tr['Duration']))
			{
				$durations[] = $tr['Duration'];
			}
		}

		rsort($durations, SORT_NUMERIC);

		foreach ($table as $tr)
		{
			$html[] = '<tr>';

			foreach ($tr as $k => $td)
			{
				if ($td === null)
				{
					// Display null's as 'NULL'.
					$td = 'NULL';
				}

				// Treat special columns.
				if ($k === 'Duration')
				{
					if ($td >= 0.001 && ($td == $durations[0] ||
(isset($durations[1]) && $td == $durations[1])))
					{
						// Duration column with duration value of more than 1 ms and within 2
top duration in SQL engine: Highlight warning.
						$html[]      = '<td class="dbg-warning">';
						$hasWarnings = true;
					}
					else
					{
						$html[] = '<td>';
					}

					// Display duration in milliseconds with the unit instead of seconds.
					$html[] = sprintf('%.2f&nbsp;ms', $td * 1000);
				}
				elseif ($k === 'Error')
				{
					// An error in the EXPLAIN query occurred, display it instead of the
result (means original query had syntax error most probably).
					$html[]      = '<td class="dbg-warning">' .
htmlspecialchars($td);
					$hasWarnings = true;
				}
				elseif ($k === 'key')
				{
					if ($td === 'NULL')
					{
						// Displays query parts which don't use a key with warning:
						$html[]      = '<td><strong>' . '<span
class="dbg-warning" title="'
							.
htmlspecialchars(JText::_('PLG_DEBUG_WARNING_NO_INDEX_DESC'),
ENT_COMPAT, 'UTF-8') . '">'
							. JText::_('PLG_DEBUG_WARNING_NO_INDEX') .
'</span>' . '</strong>';
						$hasWarnings = true;
					}
					else
					{
						$html[] = '<td><strong>' .
htmlspecialchars($td) . '</strong>';
					}
				}
				elseif ($k === 'Extra')
				{
					$htmlTd = htmlspecialchars($td);

					// Replace spaces with &nbsp; (non-breaking spaces) for less tall
tables displayed.
					$htmlTd = preg_replace('/([^;]) /',
'\1&nbsp;', $htmlTd);

					// Displays warnings for "Using filesort":
					$htmlTdWithWarnings = str_replace(
						'Using&nbsp;filesort',
						'<span class="dbg-warning" title="'
						.
htmlspecialchars(JText::_('PLG_DEBUG_WARNING_USING_FILESORT_DESC'),
ENT_COMPAT, 'UTF-8') . '">'
						. JText::_('PLG_DEBUG_WARNING_USING_FILESORT') .
'</span>',
						$htmlTd
					);

					if ($htmlTdWithWarnings !== $htmlTd)
					{
						$hasWarnings = true;
					}

					$html[] = '<td>' . $htmlTdWithWarnings;
				}
				else
				{
					$html[] = '<td>' . htmlspecialchars($td);
				}

				$html[] = '</td>';
			}

			$html[] = '</tr>';
		}

		$html[] = '</tbody>';
		$html[] = '</table>';

		return implode('', $html);
	}

	/**
	 * Disconnect handler for database to collect profiling and explain
information.
	 *
	 * @param   JDatabaseDriver  &$db  Database object.
	 *
	 * @return  void
	 *
	 * @since   3.1.2
	 */
	public function mysqlDisconnectHandler(&$db)
	{
		$db->setDebug(false);

		$this->totalQueries = $db->getCount();

		$dbVersion5037 = $db->getServerType() === 'mysql' &&
version_compare($db->getVersion(), '5.0.37',
'>=');

		if ($dbVersion5037)
		{
			try
			{
				// Check if profiling is enabled.
				$db->setQuery("SHOW VARIABLES LIKE
'have_profiling'");
				$hasProfiling = $db->loadResult();

				if ($hasProfiling)
				{
					// Run a SHOW PROFILE query.
					$db->setQuery('SHOW PROFILES');
					$this->sqlShowProfiles = $db->loadAssocList();

					if ($this->sqlShowProfiles)
					{
						foreach ($this->sqlShowProfiles as $qn)
						{
							// Run SHOW PROFILE FOR QUERY for each query where a profile is
available (max 100).
							$db->setQuery('SHOW PROFILE FOR QUERY ' . (int)
$qn['Query_ID']);
							$this->sqlShowProfileEach[(int) ($qn['Query_ID'] - 1)]
= $db->loadAssocList();
						}
					}
				}
				else
				{
					$this->sqlShowProfileEach[0] = array(array('Error' =>
'MySql have_profiling = off'));
				}
			}
			catch (Exception $e)
			{
				$this->sqlShowProfileEach[0] = array(array('Error' =>
$e->getMessage()));
			}
		}

		if (in_array($db->getServerType(), array('mysql',
'postgresql'), true))
		{
			$log = $db->getLog();

			foreach ($log as $k => $query)
			{
				$dbVersion56 = $db->getServerType() === 'mysql' &&
version_compare($db->getVersion(), '5.6', '>=');
				$dbVersion80 = $db->getServerType() === 'mysql' &&
version_compare($db->getVersion(), '8.0', '>=');

				if ($dbVersion80)
				{
					$dbVersion56 = false;
				}

				if ((stripos($query, 'select') === 0) || ($dbVersion56
&& ((stripos($query, 'delete') === 0) || (stripos($query,
'update') === 0))))
				{
					try
					{
						$db->setQuery('EXPLAIN ' . ($dbVersion56 ?
'EXTENDED ' : '') . $query);
						$this->explains[$k] = $db->loadAssocList();
					}
					catch (Exception $e)
					{
						$this->explains[$k] = array(array('Error' =>
$e->getMessage()));
					}
				}
			}
		}
	}

	/**
	 * Displays errors in language files.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayLanguageFilesInError()
	{
		$errorfiles = JFactory::getLanguage()->getErrorFiles();

		if (!count($errorfiles))
		{
			return '<p>' . JText::_('JNONE') .
'</p>';
		}

		$html = array();

		$html[] = '<ul>';

		foreach ($errorfiles as $file => $error)
		{
			$html[] = '<li>' . $this->formatLink($file) .
str_replace($file, '', $error) . '</li>';
		}

		$html[] = '</ul>';

		return implode('', $html);
	}

	/**
	 * Display loaded language files.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayLanguageFilesLoaded()
	{
		$html = array();

		$html[] = '<ul>';

		foreach (JFactory::getLanguage()->getPaths() as /* $extension => */
$files)
		{
			foreach ($files as $file => $status)
			{
				$html[] = '<li>';

				$html[] = $status
					? JText::_('PLG_DEBUG_LANG_LOADED')
					: JText::_('PLG_DEBUG_LANG_NOT_LOADED');

				$html[] = ' : ';
				$html[] = $this->formatLink($file);
				$html[] = '</li>';
			}
		}

		$html[] = '</ul>';

		return implode('', $html);
	}

	/**
	 * Display untranslated language strings.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function displayUntranslatedStrings()
	{
		$stripFirst = $this->params->get('strip-first', 1);
		$stripPref  = $this->params->get('strip-prefix');
		$stripSuff  = $this->params->get('strip-suffix');

		$orphans = JFactory::getLanguage()->getOrphans();

		if (!count($orphans))
		{
			return '<p>' . JText::_('JNONE') .
'</p>';
		}

		ksort($orphans, SORT_STRING);

		$guesses = array();

		foreach ($orphans as $key => $occurance)
		{
			if (is_array($occurance) && isset($occurance[0]))
			{
				$info = $occurance[0];
				$file = $info['file'] ?: '';

				if (!isset($guesses[$file]))
				{
					$guesses[$file] = array();
				}

				// Prepare the key.
				if (($pos = strpos($info['string'], '=')) > 0)
				{
					$parts = explode('=', $info['string']);
					$key   = $parts[0];
					$guess = $parts[1];
				}
				else
				{
					$guess = str_replace('_', ' ',
$info['string']);

					if ($stripFirst)
					{
						$parts = explode(' ', $guess);

						if (count($parts) > 1)
						{
							array_shift($parts);
							$guess = implode(' ', $parts);
						}
					}

					$guess = trim($guess);

					if ($stripPref)
					{
						$guess = trim(preg_replace(chr(1) . '^' . $stripPref .
chr(1) . 'i', '', $guess));
					}

					if ($stripSuff)
					{
						$guess = trim(preg_replace(chr(1) . $stripSuff . '$' .
chr(1) . 'i', '', $guess));
					}
				}

				$key = strtoupper(trim($key));
				$key = preg_replace('#\s+#', '_', $key);
				$key = preg_replace('#\W#', '', $key);

				// Prepare the text.
				$guesses[$file][] = $key . '="' . $guess .
'"';
			}
		}

		$html = array();

		foreach ($guesses as $file => $keys)
		{
			$html[] = "\n\n# " . ($file ? $this->formatLink($file) :
JText::_('PLG_DEBUG_UNKNOWN_FILE')) . "\n\n";
			$html[] = implode("\n", $keys);
		}

		return '<pre>' . implode('', $html) .
'</pre>';
	}

	/**
	 * Simple highlight for SQL queries.
	 *
	 * @param   string  $query  The query to highlight.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function highlightQuery($query)
	{
		$newlineKeywords =
'#\b(FROM|LEFT|INNER|OUTER|WHERE|SET|VALUES|ORDER|GROUP|HAVING|LIMIT|ON|AND|CASE)\b#i';

		$query = htmlspecialchars($query, ENT_QUOTES);

		$query = preg_replace($newlineKeywords, '<br
/>&#160;&#160;\\0', $query);

		$regex = array(

			// Tables are identified by the prefix.
			'/(=)/'                                        =>
'<b class="dbg-operator">$1</b>',

			// All uppercase words have a special meaning.
			'/(?<!\w|>)([A-Z_]{2,})(?!\w)/x'               =>
'<span class="dbg-command">$1</span>',

			// Tables are identified by the prefix.
			'/(' . $this->db->getPrefix() . '[a-z_0-9]+)/'
=> '<span class="dbg-table">$1</span>',

		);

		$query = preg_replace(array_keys($regex), array_values($regex), $query);

		$query = str_replace('*', '<b style="color:
red;">*</b>', $query);

		return $query;
	}

	/**
	 * Render the backtrace.
	 *
	 * Stolen from JError to prevent it's removal.
	 *
	 * @param   Exception  $error  The Exception object to be rendered.
	 *
	 * @return  string     Rendered backtrace.
	 *
	 * @since   2.5
	 */
	protected function renderBacktrace($error)
	{
		return JLayoutHelper::render('joomla.error.backtrace',
array('backtrace' => $error->getTrace()));
	}

	/**
	 * Replaces the Joomla! root with "JROOT" to improve
readability.
	 * Formats a link with a special value xdebug.file_link_format
	 * from the php.ini file.
	 *
	 * @param   string  $file  The full path to the file.
	 * @param   string  $line  The line number.
	 *
	 * @return  string
	 *
	 * @since   2.5
	 */
	protected function formatLink($file, $line = '')
	{
		return JHtml::_('debug.xdebuglink', $file, $line);
	}

	/**
	 * Store log messages so they can be displayed later.
	 * This function is passed log entries by JLogLoggerCallback.
	 *
	 * @param   JLogEntry  $entry  A log entry.
	 *
	 * @return  void
	 *
	 * @since   3.1
	 */
	public function logger(JLogEntry $entry)
	{
		$this->logEntries[] = $entry;
	}

	/**
	 * Display log messages.
	 *
	 * @return  string
	 *
	 * @since   3.1
	 */
	protected function displayLogs()
	{
		$priorities = array(
			JLog::EMERGENCY => '<span class="badge
badge-important">EMERGENCY</span>',
			JLog::ALERT     => '<span class="badge
badge-important">ALERT</span>',
			JLog::CRITICAL  => '<span class="badge
badge-important">CRITICAL</span>',
			JLog::ERROR     => '<span class="badge
badge-important">ERROR</span>',
			JLog::WARNING   => '<span class="badge
badge-warning">WARNING</span>',
			JLog::NOTICE    => '<span class="badge
badge-info">NOTICE</span>',
			JLog::INFO      => '<span class="badge
badge-info">INFO</span>',
			JLog::DEBUG     => '<span
class="badge">DEBUG</span>',
		);

		$out = '';

		$logEntriesTotal = count($this->logEntries);

		// SQL log entries
		$showExecutedSQL = $this->params->get('log-executed-sql',
0);

		if (!$showExecutedSQL)
		{
			$logEntriesDatabasequery = count(
				array_filter(
					$this->logEntries, function ($logEntry)
					{
						return $logEntry->category === 'databasequery';
					}
				)
			);
			$logEntriesTotal         -= $logEntriesDatabasequery;
		}

		// Deprecated log entries
		$logEntriesDeprecated = count(
			array_filter(
				$this->logEntries, function ($logEntry)
				{
					return $logEntry->category === 'deprecated';
				}
			)
		);
		$showDeprecated       =
$this->params->get('log-deprecated', 0);

		if (!$showDeprecated)
		{
			$logEntriesTotal -= $logEntriesDeprecated;
		}

		$showEverything = $this->params->get('log-everything',
0);

		$out .= '<h4>' .
JText::sprintf('PLG_DEBUG_LOGS_LOGGED', $logEntriesTotal) .
'</h4><br />';

		if ($showDeprecated && $logEntriesDeprecated > 0)
		{
			$out .= '
			<div class="alert alert-warning">
				<h4>' .
JText::sprintf('PLG_DEBUG_LOGS_DEPRECATED_FOUND_TITLE',
$logEntriesDeprecated) . '</h4>
				<div>' .
JText::_('PLG_DEBUG_LOGS_DEPRECATED_FOUND_TEXT') .
'</div>
			</div>
			<br />';
		}

		$out   .= '<ol>';
		$count = 1;

		foreach ($this->logEntries as $entry)
		{
			// Don't show database queries if not selected.
			if (!$showExecutedSQL && $entry->category ===
'databasequery')
			{
				continue;
			}

			// Don't show deprecated logs if not selected.
			if (!$showDeprecated && $entry->category ===
'deprecated')
			{
				continue;
			}

			// Don't show everything logs if not selected.
			if (!$showEverything && !in_array($entry->category,
array('deprecated', 'databasequery'), true))
			{
				continue;
			}

			$out .= '<li id="dbg_logs_' . $count .
'">';
			$out .= '<h5>' . $priorities[$entry->priority] .
' ' . $entry->category . '</h5><br />
				<pre>' . $entry->message . '</pre>';

			if ($entry->callStack)
			{
				$out .= JHtml::_('bootstrap.startAccordion',
'dbg_logs_' . $count, array('active' =>
''));
				$out .= JHtml::_('bootstrap.addSlide', 'dbg_logs_'
. $count, JText::_('PLG_DEBUG_CALL_STACK'),
'dbg_logs_backtrace_' . $count);
				$out .= $this->renderCallStack($entry->callStack);
				$out .= JHtml::_('bootstrap.endSlide');
				$out .= JHtml::_('bootstrap.endAccordion');
			}

			$out .= '<hr /></li>';
			$count++;
		}

		$out .= '</ol>';

		return $out;
	}

	/**
	 * Renders call stack and back trace in HTML.
	 *
	 * @param   array  $callStack  The call stack and back trace array.
	 *
	 * @return  string  The call stack and back trace in HMTL format.
	 *
	 * @since   3.5
	 */
	protected function renderCallStack(array $callStack = array())
	{
		$htmlCallStack = '';

		if ($callStack !== null)
		{
			$htmlCallStack .= '<div>';
			$htmlCallStack .= '<table class="table table-striped
dbg-query-table">';
			$htmlCallStack .= '<thead>';
			$htmlCallStack .= '<tr>';
			$htmlCallStack .= '<th>#</th>';
			$htmlCallStack .= '<th>' .
JText::_('PLG_DEBUG_CALL_STACK_CALLER') .
'</th>';
			$htmlCallStack .= '<th>' .
JText::_('PLG_DEBUG_CALL_STACK_FILE_AND_LINE') .
'</th>';
			$htmlCallStack .= '</tr>';
			$htmlCallStack .= '</thead>';
			$htmlCallStack .= '<tbody>';

			$count = count($callStack);

			foreach ($callStack as $call)
			{
				// Dont' back trace log classes.
				if (isset($call['class']) &&
strpos($call['class'], 'JLog') !== false)
				{
					$count--;
					continue;
				}

				$htmlCallStack .= '<tr>';

				$htmlCallStack .= '<td>' . $count .
'</td>';

				$htmlCallStack .= '<td>';

				if (isset($call['class']))
				{
					// If entry has Class/Method print it.
					$htmlCallStack .= htmlspecialchars($call['class'] .
$call['type'] . $call['function']) . '()';
				}
				else
				{
					if (isset($call['args']))
					{
						// If entry has args is a require/include.
						$htmlCallStack .= htmlspecialchars($call['function']) .
' ' . $this->formatLink($call['args'][0]);
					}
					else
					{
						// It's a function.
						$htmlCallStack .= htmlspecialchars($call['function']) .
'()';
					}
				}

				$htmlCallStack .= '</td>';

				$htmlCallStack .= '<td>';

				// If entry doesn't have line and number the next is a
call_user_func.
				if (!isset($call['file']) &&
!isset($call['line']))
				{
					$htmlCallStack .=
JText::_('PLG_DEBUG_CALL_STACK_SAME_FILE');
				}
				// If entry has file and line print it.
				else
				{
					$htmlCallStack .=
$this->formatLink(htmlspecialchars($call['file']),
htmlspecialchars($call['line']));
				}

				$htmlCallStack .= '</td>';

				$htmlCallStack .= '</tr>';
				$count--;
			}

			$htmlCallStack .= '</tbody>';
			$htmlCallStack .= '</table>';
			$htmlCallStack .= '</div>';

			if (!$this->linkFormat)
			{
				$htmlCallStack .= '<div>[<a
href="https://xdebug.org/docs/all_settings#file_link_format"
target="_blank" rel="noopener noreferrer">';
				$htmlCallStack .= JText::_('PLG_DEBUG_LINK_FORMAT') .
'</a>]</div>';
			}
		}

		return $htmlCallStack;
	}

	/**
	 * Pretty print JSON with colors.
	 *
	 * @param   string  $json  The json raw string.
	 *
	 * @return  string  The json string pretty printed.
	 *
	 * @since   3.5
	 */
	protected function prettyPrintJSON($json = '')
	{
		// In PHP 5.4.0 or later we have pretty print option.
		if (version_compare(PHP_VERSION, '5.4', '>='))
		{
			$json = json_encode($json, JSON_PRETTY_PRINT);
		}

		// Add some colors
		$json = preg_replace('#"([^"]+)":#',
'<span class=\'black\'>"</span><span
class=\'green\'>$1</span><span
class=\'black\'>"</span>:', $json);
		$json = preg_replace('#"(|[^"]+)"(\n|\r\n|,)#',
'<span
class=\'grey\'>"$1"</span>$2', $json);
		$json = str_replace('null,', '<span
class=\'blue\'>null</span>,', $json);

		return $json;
	}

	/**
	 * Write query to the log file
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	protected function writeToFile()
	{
		$app    = JFactory::getApplication();
		$domain = $app->isClient('site') ? 'site' :
'admin';
		$input  = $app->input;
		$file   = $app->get('log_path') . '/' . $domain .
'_' . $input->get('option') .
$input->get('view') . $input->get('layout') .
'.sql.php';

		// Get the queries from log.
		$current = '';
		$db      = $this->db;
		$log     = $db->getLog();
		$timings = $db->getTimings();

		foreach ($log as $id => $query)
		{
			if (isset($timings[$id * 2 + 1]))
			{
				$temp    = str_replace('`', '', $log[$id]);
				$temp    = str_replace(array("\t", "\n",
"\r\n"), ' ', $temp);
				$current .= $temp . ";\n";
			}
		}

		if (JFile::exists($file))
		{
			JFile::delete($file);
		}

		$head   = array('#');
		$head[] = '#<?php die(\'Forbidden.\'); ?>';
		$head[] = '#Date: ' . gmdate('Y-m-d H:i:s') . '
UTC';
		$head[] = '#Software: ' . \JPlatform::getLongVersion();
		$head[] = "\n";

		// Write new file.
		JFile::write($file, implode("\n", $head) . $current);
	}
}
PK�X�[�ۢ__debug/debug.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_debug</name>
	<author>Joomla! Project</author>
	<creationDate>December 2006</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_DEBUG_XML_DESCRIPTION</description>
	<files>
		<filename plugin="debug">debug.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_debug.ini</language>
		<language
tag="en-GB">en-GB.plg_system_debug.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="filter_groups"
					type="usergrouplist"
					label="PLG_DEBUG_FIELD_ALLOWED_GROUPS_LABEL"
					description="PLG_DEBUG_FIELD_ALLOWED_GROUPS_DESC"
					multiple="true"
					filter="int_array"
					size="10"
				/>

				<field
					name="session"
					type="radio"
					label="PLG_DEBUG_FIELD_SESSION_LABEL"
					description="PLG_DEBUG_FIELD_SESSION_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="profile"
					type="radio"
					label="PLG_DEBUG_FIELD_PROFILING_LABEL"
					description="PLG_DEBUG_FIELD_PROFILING_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="queries"
					type="radio"
					label="PLG_DEBUG_FIELD_QUERIES_LABEL"
					description="PLG_DEBUG_FIELD_QUERIES_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="query_types"
					type="radio"
					label="PLG_DEBUG_FIELD_QUERY_TYPES_LABEL"
					description="PLG_DEBUG_FIELD_QUERY_TYPES_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="memory"
					type="radio"
					label="PLG_DEBUG_FIELD_MEMORY_LABEL"
					description="PLG_DEBUG_FIELD_MEMORY_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="logs"
					type="radio"
					label="PLG_DEBUG_FIELD_LOGS_LABEL"
					description="PLG_DEBUG_FIELD_LOGS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="log_priorities"
					type="list"
					label="PLG_DEBUG_FIELD_LOG_PRIORITIES_LABEL"
					description="PLG_DEBUG_FIELD_LOG_PRIORITIES_DESC"
					multiple="true"
					default="all"
					>
					<option
value="all">PLG_DEBUG_FIELD_LOG_PRIORITIES_ALL</option>
					<option
value="emergency">PLG_DEBUG_FIELD_LOG_PRIORITIES_EMERGENCY</option>
					<option
value="alert">PLG_DEBUG_FIELD_LOG_PRIORITIES_ALERT</option>
					<option
value="critical">PLG_DEBUG_FIELD_LOG_PRIORITIES_CRITICAL</option>
					<option
value="error">PLG_DEBUG_FIELD_LOG_PRIORITIES_ERROR</option>
					<option
value="warning">PLG_DEBUG_FIELD_LOG_PRIORITIES_WARNING</option>
					<option
value="notice">PLG_DEBUG_FIELD_LOG_PRIORITIES_NOTICE</option>
					<option
value="info">PLG_DEBUG_FIELD_LOG_PRIORITIES_INFO</option>
					<option
value="debug">PLG_DEBUG_FIELD_LOG_PRIORITIES_DEBUG</option>
				</field>

				<field
					name="log_categories"
					type="text"
					label="PLG_DEBUG_FIELD_LOG_CATEGORIES_LABEL"
					description="PLG_DEBUG_FIELD_LOG_CATEGORIES_DESC"
					size="60"
				/>

				<field
					name="log_category_mode"
					type="radio"
					label="PLG_DEBUG_FIELD_LOG_CATEGORY_MODE_LABEL"
					description="PLG_DEBUG_FIELD_LOG_CATEGORY_MODE_DESC"
					default="0"
					filter="integer"
					class="btn-group btn-group-yesno btn-group-reversed"
					>
					<option
value="0">PLG_DEBUG_FIELD_LOG_CATEGORY_MODE_INCLUDE</option>
					<option
value="1">PLG_DEBUG_FIELD_LOG_CATEGORY_MODE_EXCLUDE</option>
				</field>

				<field
					name="refresh_assets"
					type="radio"
					label="PLG_DEBUG_FIELD_REFRESH_ASSETS_LABEL"
					description="PLG_DEBUG_FIELD_REFRESH_ASSETS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>
			</fieldset>

			<fieldset
				name="language"
				label="PLG_DEBUG_LANGUAGE_FIELDSET_LABEL"
				>

				<field
					name="language_errorfiles"
					type="radio"
					label="PLG_DEBUG_FIELD_LANGUAGE_ERRORFILES_LABEL"
					description="PLG_DEBUG_FIELD_LANGUAGE_ERRORFILES_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="language_files"
					type="radio"
					label="PLG_DEBUG_FIELD_LANGUAGE_FILES_LABEL"
					description="PLG_DEBUG_FIELD_LANGUAGE_FILES_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="language_strings"
					type="radio"
					label="PLG_DEBUG_FIELD_LANGUAGE_STRING_LABEL"
					description="PLG_DEBUG_FIELD_LANGUAGE_STRING_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="strip-first"
					type="radio"
					label="PLG_DEBUG_FIELD_STRIP_FIRST_LABEL"
					description="PLG_DEBUG_FIELD_STRIP_FIRST_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="strip-prefix"
					type="textarea"
					label="PLG_DEBUG_FIELD_STRIP_PREFIX_LABEL"
					description="PLG_DEBUG_FIELD_STRIP_PREFIX_DESC"
					cols="30"
					rows="4"
				/>

				<field
					name="strip-suffix"
					type="textarea"
					label="PLG_DEBUG_FIELD_STRIP_SUFFIX_LABEL"
					description="PLG_DEBUG_FIELD_STRIP_SUFFIX_DESC"
					cols="30"
					rows="4"
				/>
			</fieldset>

			<fieldset
				name="logging"
				label="PLG_DEBUG_LOGGING_FIELDSET_LABEL"
				>
				<field
					name="log-deprecated"
					type="radio"
					label="PLG_DEBUG_FIELD_LOG_DEPRECATED_LABEL"
					description="PLG_DEBUG_FIELD_LOG_DEPRECATED_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="log-everything"
					type="radio"
					label="PLG_DEBUG_FIELD_LOG_EVERYTHING_LABEL"
					description="PLG_DEBUG_FIELD_LOG_EVERYTHING_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="log-executed-sql"
					type="radio"
					label="PLG_DEBUG_FIELD_EXECUTEDSQL_LABEL"
					description="PLG_DEBUG_FIELD_EXECUTEDSQL_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[
�H''&dojoloader/dojo/1.6.1/dijit/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[��[��	�	4dojoloader/dojo/1.6.1/dijit/tree/ForestStoreModel.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){
dojo._hasResource["dijit.tree.ForestStoreModel"]=true;
dojo.provide("dijit.tree.ForestStoreModel");
dojo.require("dijit.tree.TreeStoreModel");
dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_1){
this.root={store:this,root:true,id:_1.rootId,label:_1.rootLabel,children:_1.rootChildren};
},mayHaveChildren:function(_2){
return _2===this.root||this.inherited(arguments);
},getChildren:function(_3,_4,_5){
if(_3===this.root){
if(this.root.children){
_4(this.root.children);
}else{
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_6){
this.root.children=_6;
_4(_6);
}),onError:_5});
}
}else{
this.inherited(arguments);
}
},isItem:function(_7){
return (_7===this.root)?true:this.inherited(arguments);
},fetchItemByIdentity:function(_8){
if(_8.identity==this.root.id){
var _9=_8.scope?_8.scope:dojo.global;
if(_8.onItem){
_8.onItem.call(_9,this.root);
}
}else{
this.inherited(arguments);
}
},getIdentity:function(_a){
return (_a===this.root)?this.root.id:this.inherited(arguments);
},getLabel:function(_b){
return (_b===this.root)?this.root.label:this.inherited(arguments);
},newItem:function(_c,_d,_e){
if(_d===this.root){
this.onNewRootItem(_c);
return this.store.newItem(_c);
}else{
return this.inherited(arguments);
}
},onNewRootItem:function(_f){
},pasteItem:function(_10,_11,_12,_13,_14){
if(_11===this.root){
if(!_13){
this.onLeaveRoot(_10);
}
}
dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_10,_11===this.root?null:_11,_12===this.root?null:_12,_13,_14);
if(_12===this.root){
this.onAddToRoot(_10);
}
},onAddToRoot:function(_15){
},onLeaveRoot:function(_16){
},_requeryTop:function(){
var _17=this.root.children||[];
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_18){
this.root.children=_18;
if(_17.length!=_18.length||dojo.some(_17,function(_19,idx){
return _18[idx]!=_19;
})){
this.onChildrenChange(this.root,_18);
}
})});
},onNewItem:function(_1a,_1b){
this._requeryTop();
this.inherited(arguments);
},onDeleteItem:function(_1c){
if(dojo.indexOf(this.root.children,_1c)!=-1){
this._requeryTop();
}
this.inherited(arguments);
},onSetItem:function(_1d,_1e,_1f,_20){
this._requeryTop();
this.inherited(arguments);
}});
}
PK�X�[
�H''+dojoloader/dojo/1.6.1/dijit/tree/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[jp���2dojoloader/dojo/1.6.1/dijit/tree/TreeStoreModel.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){
dojo._hasResource["dijit.tree.TreeStoreModel"]=true;
dojo.provide("dijit.tree.TreeStoreModel");
dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_1){
dojo.mixin(this,_1);
this.connects=[];
var _2=this.store;
if(!_2.getFeatures()["dojo.data.api.Identity"]){
throw new Error("dijit.Tree: store must support
dojo.data.Identity");
}
if(_2.getFeatures()["dojo.data.api.Notification"]){
this.connects=this.connects.concat([dojo.connect(_2,"onNew",this,"onNewItem"),dojo.connect(_2,"onDelete",this,"onDeleteItem"),dojo.connect(_2,"onSet",this,"onSetItem")]);
}
},destroy:function(){
dojo.forEach(this.connects,dojo.disconnect);
},getRoot:function(_3,_4){
if(this.root){
_3(this.root);
}else{
this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_5){
if(_5.length!=1){
throw new Error(this.declaredClass+": query
"+dojo.toJson(this.query)+" returned "+_5.length+"
items, but must return exactly one item");
}
this.root=_5[0];
_3(this.root);
}),onError:_4});
}
},mayHaveChildren:function(_6){
return dojo.some(this.childrenAttrs,function(_7){
return this.store.hasAttribute(_6,_7);
},this);
},getChildren:function(_8,_9,_a){
var _b=this.store;
if(!_b.isItemLoaded(_8)){
var _c=dojo.hitch(this,arguments.callee);
_b.loadItem({item:_8,onItem:function(_d){
_c(_d,_9,_a);
},onError:_a});
return;
}
var _e=[];
for(var i=0;i<this.childrenAttrs.length;i++){
var _f=_b.getValues(_8,this.childrenAttrs[i]);
_e=_e.concat(_f);
}
var _10=0;
if(!this.deferItemLoadingUntilExpand){
dojo.forEach(_e,function(_11){
if(!_b.isItemLoaded(_11)){
_10++;
}
});
}
if(_10==0){
_9(_e);
}else{
dojo.forEach(_e,function(_12,idx){
if(!_b.isItemLoaded(_12)){
_b.loadItem({item:_12,onItem:function(_13){
_e[idx]=_13;
if(--_10==0){
_9(_e);
}
},onError:_a});
}
});
}
},isItem:function(_14){
return this.store.isItem(_14);
},fetchItemByIdentity:function(_15){
this.store.fetchItemByIdentity(_15);
},getIdentity:function(_16){
return this.store.getIdentity(_16);
},getLabel:function(_17){
if(this.labelAttr){
return this.store.getValue(_17,this.labelAttr);
}else{
return this.store.getLabel(_17);
}
},newItem:function(_18,_19,_1a){
var _1b={parent:_19,attribute:this.childrenAttrs[0]},_1c;
if(this.newItemIdAttr&&_18[this.newItemIdAttr]){
this.fetchItemByIdentity({identity:_18[this.newItemIdAttr],scope:this,onItem:function(_1d){
if(_1d){
this.pasteItem(_1d,null,_19,true,_1a);
}else{
_1c=this.store.newItem(_18,_1b);
if(_1c&&(_1a!=undefined)){
this.pasteItem(_1c,_19,_19,false,_1a);
}
}
}});
}else{
_1c=this.store.newItem(_18,_1b);
if(_1c&&(_1a!=undefined)){
this.pasteItem(_1c,_19,_19,false,_1a);
}
}
},pasteItem:function(_1e,_1f,_20,_21,_22){
var _23=this.store,_24=this.childrenAttrs[0];
if(_1f){
dojo.forEach(this.childrenAttrs,function(_25){
if(_23.containsValue(_1f,_25,_1e)){
if(!_21){
var _26=dojo.filter(_23.getValues(_1f,_25),function(x){
return x!=_1e;
});
_23.setValues(_1f,_25,_26);
}
_24=_25;
}
});
}
if(_20){
if(typeof _22=="number"){
var _27=_23.getValues(_20,_24).slice();
_27.splice(_22,0,_1e);
_23.setValues(_20,_24,_27);
}else{
_23.setValues(_20,_24,_23.getValues(_20,_24).concat(_1e));
}
}
},onChange:function(_28){
},onChildrenChange:function(_29,_2a){
},onDelete:function(_2b,_2c){
},onNewItem:function(_2d,_2e){
if(!_2e){
return;
}
this.getChildren(_2e.item,dojo.hitch(this,function(_2f){
this.onChildrenChange(_2e.item,_2f);
}));
},onDeleteItem:function(_30){
this.onDelete(_30);
},onSetItem:function(_31,_32,_33,_34){
if(dojo.indexOf(this.childrenAttrs,_32)!=-1){
this.getChildren(_31,dojo.hitch(this,function(_35){
this.onChildrenChange(_31,_35);
}));
}else{
this.onChange(_31);
}
}});
}
PK�X�[1�		1dojoloader/dojo/1.6.1/dijit/tree/_dndContainer.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit.tree._dndContainer"]){
dojo._hasResource["dijit.tree._dndContainer"]=true;
dojo.provide("dijit.tree._dndContainer");
dojo.require("dojo.dnd.common");
dojo.require("dojo.dnd.Container");
dojo.getObject("tree",true,dojo);
dijit.tree._compareNodes=function(n1,n2){
if(n1===n2){
return 0;
}
if("sourceIndex" in document.documentElement){
return n1.sourceIndex-n2.sourceIndex;
}else{
if("compareDocumentPosition" in document.documentElement){
return n1.compareDocumentPosition(n2)&2?1:-1;
}else{
if(document.createRange){
var r1=doc.createRange();
r1.setStartBefore(n1);
var r2=doc.createRange();
r2.setStartBefore(n2);
return r1.compareBoundaryPoints(r1.END_TO_END,r2);
}else{
throw Error("dijit.tree._compareNodes don't know how to compare
two different nodes in this browser");
}
}
}
};
dojo.declare("dijit.tree._dndContainer",null,{constructor:function(_1,_2){
this.tree=_1;
this.node=_1.domNode;
dojo.mixin(this,_2);
this.map={};
this.current=null;
this.containerState="";
dojo.addClass(this.node,"dojoDndContainer");
this.events=[dojo.connect(this.node,"onmouseenter",this,"onOverEvent"),dojo.connect(this.node,"onmouseleave",this,"onOutEvent"),dojo.connect(this.tree,"_onNodeMouseEnter",this,"onMouseOver"),dojo.connect(this.tree,"_onNodeMouseLeave",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",dojo,"stopEvent"),dojo.connect(this.node,"onselectstart",dojo,"stopEvent")];
},getItem:function(_3){
var _4=this.selection[_3],_5={data:_4,type:["treeNode"]};
return _5;
},destroy:function(){
dojo.forEach(this.events,dojo.disconnect);
this.node=this.parent=null;
},onMouseOver:function(_6,_7){
this.current=_6;
},onMouseOut:function(_8,_9){
this.current=null;
},_changeState:function(_a,_b){
var _c="dojoDnd"+_a;
var _d=_a.toLowerCase()+"State";
dojo.replaceClass(this.node,_c+_b,_c+this[_d]);
this[_d]=_b;
},_addItemClass:function(_e,_f){
dojo.addClass(_e,"dojoDndItem"+_f);
},_removeItemClass:function(_10,_11){
dojo.removeClass(_10,"dojoDndItem"+_11);
},onOverEvent:function(){
this._changeState("Container","Over");
},onOutEvent:function(){
this._changeState("Container","");
}});
}
PK�X�[g6�""""0dojoloader/dojo/1.6.1/dijit/tree/_dndSelector.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit.tree._dndSelector"]){ //_hasResource
checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dijit.tree._dndSelector"] = true;
dojo.provide("dijit.tree._dndSelector");
dojo.require("dojo.dnd.common");
dojo.require("dijit.tree._dndContainer");


dojo.declare("dijit.tree._dndSelector",
	dijit.tree._dndContainer,
	{
		// summary:
		//		This is a base class for `dijit.tree.dndSource` , and isn't
meant to be used directly.
		//		It's based on `dojo.dnd.Selector`.
		// tags:
		//		protected

		/*=====
		// selection: Hash<String, DomNode>
		//		(id, DomNode) map for every TreeNode that's currently selected.
		//		The DOMNode is the TreeNode.rowNode.
		selection: {},
		=====*/

		constructor: function(tree, params){
			// summary:
			//		Initialization
			// tags:
			//		private

			this.selection={};
			this.anchor = null;

			dijit.setWaiState(this.tree.domNode, "multiselect",
!this.singular);

			this.events.push(
				dojo.connect(this.tree.domNode, "onmousedown",
this,"onMouseDown"),
				dojo.connect(this.tree.domNode, "onmouseup",
this,"onMouseUp"),
				dojo.connect(this.tree.domNode, "onmousemove",
this,"onMouseMove")
			);
		},

		//	singular: Boolean
		//		Allows selection of only one element, if true.
		//		Tree hasn't been tested in singular=true mode, unclear if it
works.
		singular: false,

		// methods
		getSelectedTreeNodes: function(){
			// summary:
			//		Returns a list of selected node(s).
			//		Used by dndSource on the start of a drag.
			// tags:
			//		protected
			var nodes=[], sel = this.selection;
			for(var i in sel){
				nodes.push(sel[i]);
			}
			return nodes;
		},

		selectNone: function(){
			// summary:
			//		Unselects all items
			// tags:
			//		private

			this.setSelection([]);
			return this;	// self
		},

		destroy: function(){
			// summary:
			//		Prepares the object to be garbage-collected
			this.inherited(arguments);
			this.selection = this.anchor = null;
		},
		addTreeNode: function(/*dijit._TreeNode*/node, /*Boolean?*/isAnchor){
			// summary
			//		add node to current selection
			// node: Node
			//		node to add
			// isAnchor: Boolean
			//		Whether the node should become anchor.

			this.setSelection(this.getSelectedTreeNodes().concat( [node] ));
			if(isAnchor){ this.anchor = node; }
			return node;
		},
		removeTreeNode: function(/*dijit._TreeNode*/node){
			// summary
			//		remove node from current selection
			// node: Node
			//		node to remove
			this.setSelection(this._setDifference(this.getSelectedTreeNodes(),
[node]))
			return node;
		},
		isTreeNodeSelected: function(/*dijit._TreeNode*/node){
			// summary
			//		return true if node is currently selected
			// node: Node
			//		the node to check whether it's in the current selection

			return node.id && !!this.selection[node.id];
		},
		setSelection: function(/*dijit._treeNode[]*/ newSelection){
			// summary
			//      set the list of selected nodes to be exactly newSelection. All
changes to the
			//      selection should be passed through this function, which ensures
that derived
			//      attributes are kept up to date. Anchor will be deleted if it has
been removed
			//      from the selection, but no new anchor will be added by this
function.
			// newSelection: Node[]
			//      list of tree nodes to make selected
			var oldSelection = this.getSelectedTreeNodes();
			dojo.forEach(this._setDifference(oldSelection, newSelection),
dojo.hitch(this, function(node){
				node.setSelected(false);
				if(this.anchor == node){
					delete this.anchor;
				}
				delete this.selection[node.id];
			}));
			dojo.forEach(this._setDifference(newSelection, oldSelection),
dojo.hitch(this, function(node){
				node.setSelected(true);
				this.selection[node.id] = node;
			}));
			this._updateSelectionProperties();
		},
		_setDifference: function(xs,ys){
			// summary
			//      Returns a copy of xs which lacks any objects
			//      occurring in ys. Checks for membership by
			//      modifying and then reading the object, so it will
			//      not properly handle sets of numbers or strings.
			
			dojo.forEach(ys, function(y){ y.__exclude__ = true; });
			var ret = dojo.filter(xs, function(x){ return !x.__exclude__; });

			// clean up after ourselves.
			dojo.forEach(ys, function(y){ delete y['__exclude__'] });
			return ret;
		},
		_updateSelectionProperties: function() {
			// summary
			//      Update the following tree properties from the current selection:
			//      path[s], selectedItem[s], selectedNode[s]
			
			var selected = this.getSelectedTreeNodes();
			var paths = [], nodes = [];
			dojo.forEach(selected, function(node) {
				nodes.push(node);
				paths.push(node.getTreePath());
			});
			var items = dojo.map(nodes,function(node) { return node.item; });
			this.tree._set("paths", paths);
			this.tree._set("path", paths[0] || []);
			this.tree._set("selectedNodes", nodes);
			this.tree._set("selectedNode", nodes[0] || null);
			this.tree._set("selectedItems", items);
			this.tree._set("selectedItem", items[0] || null);
		},
		// mouse events
		onMouseDown: function(e){
			// summary:
			//		Event processor for onmousedown
			// e: Event
			//		mouse event
			// tags:
			//		protected

			// ignore click on expando node
			if(!this.current || this.tree.isExpandoNode( e.target, this.current)){
return; }

			if(e.button == dojo.mouseButtons.RIGHT){ return; }	// ignore right-click

			dojo.stopEvent(e);

			var treeNode = this.current,
			  copy = dojo.isCopyKey(e), id = treeNode.id;

			// if shift key is not pressed, and the node is already in the
selection,
			// delay deselection until onmouseup so in the case of DND, deselection
			// will be canceled by onmousemove.
			if(!this.singular && !e.shiftKey && this.selection[id]){
				this._doDeselect = true;
				return;
			}else{
				this._doDeselect = false;
			}
			this.userSelect(treeNode, copy, e.shiftKey);
		},

		onMouseUp: function(e){
			// summary:
			//		Event processor for onmouseup
			// e: Event
			//		mouse event
			// tags:
			//		protected

			// _doDeselect is the flag to indicate that the user wants to either
ctrl+click on
			// a already selected item (to deselect the item), or click on a not-yet
selected item
			// (which should remove all current selection, and add the clicked
item). This can not
			// be done in onMouseDown, because the user may start a drag after
mousedown. By moving
			// the deselection logic here, the user can drags an already selected
item.
			if(!this._doDeselect){ return; }
			this._doDeselect = false;
			this.userSelect(this.current, dojo.isCopyKey( e ), e.shiftKey);
		},
		onMouseMove: function(e){
			// summary
			//		event processor for onmousemove
			// e: Event
			//		mouse event
			this._doDeselect = false;
		},

		userSelect: function(node, multi, range){
			// summary:
			//		Add or remove the given node from selection, responding
			//      to a user action such as a click or keypress.
			// multi: Boolean
			//		Indicates whether this is meant to be a multi-select action (e.g.
ctrl-click)
			// range: Boolean
			//		Indicates whether this is meant to be a ranged action (e.g.
shift-click)
			// tags:
			//		protected

			if(this.singular){
				if(this.anchor == node && multi){
					this.selectNone();
				}else{
					this.setSelection([node]);
					this.anchor = node;
				}
			}else{
				if(range && this.anchor){
					var cr = dijit.tree._compareNodes(this.anchor.rowNode, node.rowNode),
					begin, end, anchor = this.anchor;
					
					if(cr < 0){ //current is after anchor
						begin = anchor;
						end = node;
					}else{ //current is before anchor
						begin = node;
						end = anchor;
					}
					nodes = [];
					//add everything betweeen begin and end inclusively
					while(begin != end) {
						nodes.push(begin)
						begin = this.tree._getNextNode(begin);
					}
					nodes.push(end)

					this.setSelection(nodes);
				}else{
				    if( this.selection[ node.id ] && multi ) {
						this.removeTreeNode( node );
				    } else if(multi) {
						this.addTreeNode(node, true);
					} else {
						this.setSelection([node]);
						this.anchor = node;
				    }
				}
			}
		},

		forInSelectedItems: function(/*Function*/ f, /*Object?*/ o){
			// summary:
			//		Iterates over selected items;
			//		see `dojo.dnd.Container.forInItems()` for details
			o = o || dojo.global;
			for(var id in this.selection){
				// console.log("selected item id: " + id);
				f.call(o, this.getItem(id), id, this);
			}
		}
});

}
PK�X�[�r�z����#dojoloader/dojo/1.6.1/dijit/Tree.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit.Tree"]){ //_hasResource checks added
by build. Do not use _hasResource directly in your code.
dojo._hasResource["dijit.Tree"] = true;
dojo.provide("dijit.Tree");
dojo.require("dojo.fx");
dojo.require("dojo.DeferredList");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.require("dijit._Container");
dojo.require("dijit._Contained");
dojo.require("dijit._CssStateMixin");
dojo.require("dojo.cookie");
dojo.require("dijit.tree.TreeStoreModel");
dojo.require("dijit.tree.ForestStoreModel");
dojo.require("dijit.tree._dndSelector");


dojo.declare(
	"dijit._TreeNode",
	[dijit._Widget, dijit._Templated, dijit._Container, dijit._Contained,
dijit._CssStateMixin],
{
	// summary:
	//		Single node within a tree.   This class is used internally
	//		by Tree and should not be accessed directly.
	// tags:
	//		private

	// item: [const] dojo.data.Item
	//		the dojo.data entry this tree represents
	item: null,

	// isTreeNode: [protected] Boolean
	//		Indicates that this is a TreeNode.   Used by `dijit.Tree` only,
	//		should not be accessed directly.
	isTreeNode: true,

	// label: String
	//		Text of this tree node
	label: "",

	// isExpandable: [private] Boolean
	//		This node has children, so show the expando node (+ sign)
	isExpandable: null,

	// isExpanded: [readonly] Boolean
	//		This node is currently expanded (ie, opened)
	isExpanded: false,

	// state: [private] String
	//		Dynamic loading-related stuff.
	//		When an empty folder node appears, it is "UNCHECKED" first,
	//		then after dojo.data query it becomes "LOADING" and, finally
"LOADED"
	state: "UNCHECKED",

	templateString: dojo.cache("dijit",
"templates/TreeNode.html", "<div
class=\"dijitTreeNode\"
role=\"presentation\"\n\t><div
dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\"
role=\"presentation\"
dojoAttachEvent=\"onmouseenter:_onMouseEnter,
onmouseleave:_onMouseLeave, onclick:_onClick,
ondblclick:_onDblClick\"\n\t\t><img
src=\"${_blankGif}\" alt=\"\"
dojoAttachPoint=\"expandoNode\"
class=\"dijitTreeExpando\"
role=\"presentation\"\n\t\t/><span
dojoAttachPoint=\"expandoNodeText\"
class=\"dijitExpandoText\"
role=\"presentation\"\n\t\t></span\n\t\t><span
dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\"
role=\"presentation\">\n\t\t\t<img
src=\"${_blankGif}\" alt=\"\"
dojoAttachPoint=\"iconNode\" class=\"dijitIcon
dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span
dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\"
role=\"treeitem\" tabindex=\"-1\"
aria-selected=\"false\"
dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div
dojoAttachPoint=\"containerNode\"
class=\"dijitTreeContainer\" role=\"presentation\"
style=\"display: none;\"></div>\n</div>\n"),

	baseClass: "dijitTreeNode",

	// For hover effect for tree node, and focus effect for label
	cssStateNodes: {
		rowNode: "dijitTreeRow",
		labelNode: "dijitTreeLabel"
	},

	attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, {
		label: {node: "labelNode", type: "innerText"},
		tooltip: {node: "rowNode", type: "attribute",
attribute: "title"}
	}),

	buildRendering: function(){
		this.inherited(arguments);

		// set expand icon for leaf
		this._setExpando();

		// set icon and label class based on item
		this._updateItemClasses(this.item);

		if(this.isExpandable){
			dijit.setWaiState(this.labelNode, "expanded",
this.isExpanded);
		}

		//aria-selected should be false on all selectable elements.
		this.setSelected(false);
	},

	_setIndentAttr: function(indent){
		// summary:
		//		Tell this node how many levels it should be indented
		// description:
		//		0 for top level nodes, 1 for their children, 2 for their
		//		grandchildren, etc.

		// Math.max() is to prevent negative padding on hidden root node (when
indent == -1)
		var pixels = (Math.max(indent, 0) * this.tree._nodePixelIndent) +
"px";

		dojo.style(this.domNode, "backgroundPosition",	pixels + "
0px");
		dojo.style(this.rowNode, this.isLeftToRight() ? "paddingLeft" :
"paddingRight", pixels);

		dojo.forEach(this.getChildren(), function(child){
			child.set("indent", indent+1);
		});
		
		this._set("indent", indent);
	},

	markProcessing: function(){
		// summary:
		//		Visually denote that tree is loading data, etc.
		// tags:
		//		private
		this.state = "LOADING";
		this._setExpando(true);
	},

	unmarkProcessing: function(){
		// summary:
		//		Clear markup from markProcessing() call
		// tags:
		//		private
		this._setExpando(false);
	},

	_updateItemClasses: function(item){
		// summary:
		//		Set appropriate CSS classes for icon and label dom node
		//		(used to allow for item updates to change respective CSS)
		// tags:
		//		private
		var tree = this.tree, model = tree.model;
		if(tree._v10Compat && item === model.root){
			// For back-compat with 1.0, need to use null to specify root item
(TODO: remove in 2.0)
			item = null;
		}
		this._applyClassAndStyle(item, "icon", "Icon");
		this._applyClassAndStyle(item, "label", "Label");
		this._applyClassAndStyle(item, "row", "Row");
	},

	_applyClassAndStyle: function(item, lower, upper){
		// summary:
		//		Set the appropriate CSS classes and styles for labels, icons and
rows.
		//
		// item:
		//		The data item.
		//
		// lower:
		//		The lower case attribute to use, e.g. 'icon',
'label' or 'row'.
		//
		// upper:
		//		The upper case attribute to use, e.g. 'Icon',
'Label' or 'Row'.
		//
		// tags:
		//		private

		var clsName = "_" + lower + "Class";
		var nodeName = lower + "Node";
		var oldCls = this[clsName];

		this[clsName] = this.tree["get" + upper +
"Class"](item, this.isExpanded);
		dojo.replaceClass(this[nodeName], this[clsName] || "", oldCls
|| "");
 
		dojo.style(this[nodeName], this.tree["get" + upper +
"Style"](item, this.isExpanded) || {});
 	},

	_updateLayout: function(){
		// summary:
		//		Set appropriate CSS classes for this.domNode
		// tags:
		//		private
		var parent = this.getParent();
		if(!parent || parent.rowNode.style.display == "none"){
			/* if we are hiding the root node then make every first level child look
like a root node */
			dojo.addClass(this.domNode, "dijitTreeIsRoot");
		}else{
			dojo.toggleClass(this.domNode, "dijitTreeIsLast",
!this.getNextSibling());
		}
	},

	_setExpando: function(/*Boolean*/ processing){
		// summary:
		//		Set the right image for the expando node
		// tags:
		//		private

		var styles = ["dijitTreeExpandoLoading",
"dijitTreeExpandoOpened",
						"dijitTreeExpandoClosed",
"dijitTreeExpandoLeaf"],
			_a11yStates = ["*","-","+","*"],
			idx = processing ? 0 : (this.isExpandable ?	(this.isExpanded ? 1 : 2) :
3);

		// apply the appropriate class to the expando node
		dojo.replaceClass(this.expandoNode, styles[idx], styles);

		// provide a non-image based indicator for images-off mode
		this.expandoNodeText.innerHTML = _a11yStates[idx];

	},

	expand: function(){
		// summary:
		//		Show my children
		// returns:
		//		Deferred that fires when expansion is complete

		// If there's already an expand in progress or we are already
expanded, just return
		if(this._expandDeferred){
			return this._expandDeferred;		// dojo.Deferred
		}

		// cancel in progress collapse operation
		this._wipeOut && this._wipeOut.stop();

		// All the state information for when a node is expanded, maybe this
should be
		// set when the animation completes instead
		this.isExpanded = true;
		dijit.setWaiState(this.labelNode, "expanded",
"true");
		if(this.tree.showRoot || this !== this.tree.rootNode){
			dijit.setWaiRole(this.containerNode, "group");
		}
		dojo.addClass(this.contentNode,'dijitTreeContentExpanded');
		this._setExpando();
		this._updateItemClasses(this.item);
		if(this == this.tree.rootNode){
			dijit.setWaiState(this.tree.domNode, "expanded",
"true");
		}

		var def,
			wipeIn = dojo.fx.wipeIn({
				node: this.containerNode, duration: dijit.defaultDuration,
				onEnd: function(){
					def.callback(true);
				}
			});

		// Deferred that fires when expand is complete
		def = (this._expandDeferred = new dojo.Deferred(function(){
			// Canceller
			wipeIn.stop();
		}));

		wipeIn.play();

		return def;		// dojo.Deferred
	},

	collapse: function(){
		// summary:
		//		Collapse this node (if it's expanded)

		if(!this.isExpanded){ return; }

		// cancel in progress expand operation
		if(this._expandDeferred){
			this._expandDeferred.cancel();
			delete this._expandDeferred;
		}

		this.isExpanded = false;
		dijit.setWaiState(this.labelNode, "expanded",
"false");
		if(this == this.tree.rootNode){
			dijit.setWaiState(this.tree.domNode, "expanded",
"false");
		}
		dojo.removeClass(this.contentNode,'dijitTreeContentExpanded');
		this._setExpando();
		this._updateItemClasses(this.item);

		if(!this._wipeOut){
			this._wipeOut = dojo.fx.wipeOut({
				node: this.containerNode, duration: dijit.defaultDuration
			});
		}
		this._wipeOut.play();
	},

	// indent: Integer
	//		Levels from this node to the root node
	indent: 0,

	setChildItems: function(/* Object[] */ items){
		// summary:
		//		Sets the child items of this node, removing/adding nodes
		//		from current children to match specified items[] array.
		//		Also, if this.persist == true, expands any children that were
previously
		// 		opened.
		// returns:
		//		Deferred object that fires after all previously opened children
		//		have been expanded again (or fires instantly if there are no such
children).

		var tree = this.tree,
			model = tree.model,
			defs = [];	// list of deferreds that need to fire before I am complete


		// Orphan all my existing children.
		// If items contains some of the same items as before then we will
reattach them.
		// Don't call this.removeChild() because that will collapse the tree
etc.
		dojo.forEach(this.getChildren(), function(child){
			dijit._Container.prototype.removeChild.call(this, child);
		}, this);

		this.state = "LOADED";

		if(items && items.length > 0){
			this.isExpandable = true;

			// Create _TreeNode widget for each specified tree node, unless one
already
			// exists and isn't being used (presumably it's from a DnD
move and was recently
			// released
			dojo.forEach(items, function(item){
				var id = model.getIdentity(item),
					existingNodes = tree._itemNodesMap[id],
					node;
				if(existingNodes){
					for(var i=0;i<existingNodes.length;i++){
						if(existingNodes[i] && !existingNodes[i].getParent()){
							node = existingNodes[i];
							node.set('indent', this.indent+1);
							break;
						}
					}
				}
				if(!node){
					node = this.tree._createTreeNode({
							item: item,
							tree: tree,
							isExpandable: model.mayHaveChildren(item),
							label: tree.getLabel(item),
							tooltip: tree.getTooltip(item),
							dir: tree.dir,
							lang: tree.lang,
							indent: this.indent + 1
						});
					if(existingNodes){
						existingNodes.push(node);
					}else{
						tree._itemNodesMap[id] = [node];
					}
				}
				this.addChild(node);

				// If node was previously opened then open it again now (this may
trigger
				// more data store accesses, recursively)
				if(this.tree.autoExpand || this.tree._state(item)){
					defs.push(tree._expandNode(node));
				}
			}, this);

			// note that updateLayout() needs to be called on each child after
			// _all_ the children exist
			dojo.forEach(this.getChildren(), function(child, idx){
				child._updateLayout();
			});
		}else{
			this.isExpandable=false;
		}

		if(this._setExpando){
			// change expando to/from dot or + icon, as appropriate
			this._setExpando(false);
		}

		// Set leaf icon or folder icon, as appropriate
		this._updateItemClasses(this.item);

		// On initial tree show, make the selected TreeNode as either the root
node of the tree,
		// or the first child, if the root node is hidden
		if(this == tree.rootNode){
			var fc = this.tree.showRoot ? this : this.getChildren()[0];
			if(fc){
				fc.setFocusable(true);
				tree.lastFocused = fc;
			}else{
				// fallback: no nodes in tree so focus on Tree <div> itself
				tree.domNode.setAttribute("tabIndex", "0");
			}
		}

		return new dojo.DeferredList(defs);	// dojo.Deferred
	},

	getTreePath: function(){
		var node = this;
		var path = [];
		while(node && node !== this.tree.rootNode){
				path.unshift(node.item);
				node = node.getParent();
		}
		path.unshift(this.tree.rootNode.item);

		return path;
	},

	getIdentity: function() {
		return this.tree.model.getIdentity(this.item);
	},

	removeChild: function(/* treeNode */ node){
		this.inherited(arguments);

		var children = this.getChildren();
		if(children.length == 0){
			this.isExpandable = false;
			this.collapse();
		}

		dojo.forEach(children, function(child){
				child._updateLayout();
		});
	},

	makeExpandable: function(){
		// summary:
		//		if this node wasn't already showing the expando node,
		//		turn it into one and call _setExpando()

		// TODO: hmm this isn't called from anywhere, maybe should remove it
for 2.0

		this.isExpandable = true;
		this._setExpando(false);
	},

	_onLabelFocus: function(evt){
		// summary:
		//		Called when this row is focused (possibly programatically)
		//		Note that we aren't using _onFocus() builtin to dijit
		//		because it's called when focus is moved to a descendant
TreeNode.
		// tags:
		//		private
		this.tree._onNodeFocus(this);
	},

	setSelected: function(/*Boolean*/ selected){
		// summary:
		//		A Tree has a (single) currently selected node.
		//		Mark that this node is/isn't that currently selected node.
		// description:
		//		In particular, setting a node as selected involves setting tabIndex
		//		so that when user tabs to the tree, focus will go to that node
(only).
		dijit.setWaiState(this.labelNode, "selected", selected);
		dojo.toggleClass(this.rowNode, "dijitTreeRowSelected",
selected);
	},

	setFocusable: function(/*Boolean*/ selected){
		// summary:
		//		A Tree has a (single) node that's focusable.
		//		Mark that this node is/isn't that currently focsuable node.
		// description:
		//		In particular, setting a node as selected involves setting tabIndex
		//		so that when user tabs to the tree, focus will go to that node
(only).

		this.labelNode.setAttribute("tabIndex", selected ?
"0" : "-1");
	},

	_onClick: function(evt){
		// summary:
		//		Handler for onclick event on a node
		// tags:
		//		private
		this.tree._onClick(this, evt);
	},
	_onDblClick: function(evt){
		// summary:
		//		Handler for ondblclick event on a node
		// tags:
		//		private
		this.tree._onDblClick(this, evt);
	},

	_onMouseEnter: function(evt){
		// summary:
		//		Handler for onmouseenter event on a node
		// tags:
		//		private
		this.tree._onNodeMouseEnter(this, evt);
	},

	_onMouseLeave: function(evt){
		// summary:
		//		Handler for onmouseenter event on a node
		// tags:
		//		private
		this.tree._onNodeMouseLeave(this, evt);
	}
});

dojo.declare(
	"dijit.Tree",
	[dijit._Widget, dijit._Templated],
{
	// summary:
	//		This widget displays hierarchical data from a store.

	// store: [deprecated] String||dojo.data.Store
	//		Deprecated.  Use "model" parameter instead.
	//		The store to get data to display in the tree.
	store: null,

	// model: dijit.Tree.model
	//		Interface to read tree data, get notifications of changes to tree
data,
	//		and for handling drop operations (i.e drag and drop onto the tree)
	model: null,

	// query: [deprecated] anything
	//		Deprecated.  User should specify query to the model directly instead.
	//		Specifies datastore query to return the root item or top items for the
tree.
	query: null,

	// label: [deprecated] String
	//		Deprecated.  Use dijit.tree.ForestStoreModel directly instead.
	//		Used in conjunction with query parameter.
	//		If a query is specified (rather than a root node id), and a label is
also specified,
	//		then a fake root node is created and displayed, with this label.
	label: "",

	// showRoot: [const] Boolean
	//		Should the root node be displayed, or hidden?
	showRoot: true,

	// childrenAttr: [deprecated] String[]
	//		Deprecated.   This information should be specified in the model.
	//		One ore more attributes that holds children of a tree node
	childrenAttr: ["children"],

	// paths: String[][] or Item[][]
	//		Full paths from rootNode to selected nodes expressed as array of items
or array of ids.
	//		Since setting the paths may be asynchronous (because ofwaiting on
dojo.data), set("paths", ...)
	//		returns a Deferred to indicate when the set is complete.
	paths: [],
	
	// path: String[] or Item[]
	//      Backward compatible singular variant of paths.
	path: [],

	// selectedItems: [readonly] Item[]
	//		The currently selected items in this tree.
	//		This property can only be set (via set('selectedItems',
...)) when that item is already
	//		visible in the tree.   (I.e. the tree has already been expanded to
show that node.)
	//		Should generally use `paths` attribute to set the selected items
instead.
	selectedItems: null,

	// selectedItem: [readonly] Item
	//      Backward compatible singular variant of selectedItems.
	selectedItem: null,

	// openOnClick: Boolean
	//		If true, clicking a folder node's label will open it, rather than
calling onClick()
	openOnClick: false,

	// openOnDblClick: Boolean
	//		If true, double-clicking a folder node's label will open it,
rather than calling onDblClick()
	openOnDblClick: false,

	templateString: dojo.cache("dijit",
"templates/Tree.html", "<div class=\"dijitTree
dijitTreeContainer\"
role=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div
class=\"dijitInline dijitTreeIndent\" style=\"position:
absolute; top: -9999px\"
dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"),

	// persist: Boolean
	//		Enables/disables use of cookies for state saving.
	persist: true,

	// autoExpand: Boolean
	//		Fully expand the tree on load.   Overrides `persist`.
	autoExpand: false,

	// dndController: [protected] String
	//		Class name to use as as the dnd controller.  Specifying this class
enables DnD.
	//		Generally you should specify this as "dijit.tree.dndSource".
	//      Default of "dijit.tree._dndSelector" handles selection
only (no actual DnD).
	dndController: "dijit.tree._dndSelector",

	// parameters to pull off of the tree and pass on to the dndController as
its params
	dndParams:
["onDndDrop","itemCreator","onDndCancel","checkAcceptance",
"checkItemAcceptance", "dragThreshold",
"betweenThreshold"],

	//declare the above items so they can be pulled from the tree's
markup

	// onDndDrop: [protected] Function
	//		Parameter to dndController, see `dijit.tree.dndSource.onDndDrop`.
	//		Generally this doesn't need to be set.
	onDndDrop: null,

	/*=====
	itemCreator: function(nodes, target, source){
		// summary:
		//		Returns objects passed to `Tree.model.newItem()` based on DnD nodes
		//		dropped onto the tree.   Developer must override this method to
enable
		// 		dropping from external sources onto this Tree, unless the
Tree.model's items
		//		happen to look like {id: 123, name: "Apple" } with no other
attributes.
		// description:
		//		For each node in nodes[], which came from source, create a hash of
name/value
		//		pairs to be passed to Tree.model.newItem().  Returns array of those
hashes.
		// nodes: DomNode[]
		//		The DOMNodes dragged from the source container
		// target: DomNode
		//		The target TreeNode.rowNode
		// source: dojo.dnd.Source
		//		The source container the nodes were dragged from, perhaps another
Tree or a plain dojo.dnd.Source
		// returns: Object[]
		//		Array of name/value hashes for each new item to be added to the Tree,
like:
		// |	[
		// |		{ id: 123, label: "apple", foo: "bar" },
		// |		{ id: 456, label: "pear", zaz: "bam" }
		// |	]
		// tags:
		//		extension
		return [{}];
	},
	=====*/
	itemCreator: null,

	// onDndCancel: [protected] Function
	//		Parameter to dndController, see `dijit.tree.dndSource.onDndCancel`.
	//		Generally this doesn't need to be set.
	onDndCancel: null,

/*=====
	checkAcceptance: function(source, nodes){
		// summary:
		//		Checks if the Tree itself can accept nodes from this source
		// source: dijit.tree._dndSource
		//		The source which provides items
		// nodes: DOMNode[]
		//		Array of DOM nodes corresponding to nodes being dropped, dijitTreeRow
nodes if
		//		source is a dijit.Tree.
		// tags:
		//		extension
		return true;	// Boolean
	},
=====*/
	checkAcceptance: null,

/*=====
	checkItemAcceptance: function(target, source, position){
		// summary:
		//		Stub function to be overridden if one wants to check for the ability
to drop at the node/item level
		// description:
		//		In the base case, this is called to check if target can become a
child of source.
		//		When betweenThreshold is set, position="before" or
"after" means that we
		//		are asking if the source node can be dropped before/after the target
node.
		// target: DOMNode
		//		The dijitTreeRoot DOM node inside of the TreeNode that we are
dropping on to
		//		Use dijit.getEnclosingWidget(target) to get the TreeNode.
		// source: dijit.tree.dndSource
		//		The (set of) nodes we are dropping
		// position: String
		//		"over", "before", or "after"
		// tags:
		//		extension
		return true;	// Boolean
	},
=====*/
	checkItemAcceptance: null,

	// dragThreshold: Integer
	//		Number of pixels mouse moves before it's considered the start of
a drag operation
	dragThreshold: 5,

	// betweenThreshold: Integer
	//		Set to a positive value to allow drag and drop "between"
nodes.
	//
	//		If during DnD mouse is over a (target) node but less than
betweenThreshold
	//		pixels from the bottom edge, dropping the the dragged node will make
it
	//		the next sibling of the target node, rather than the child.
	//
	//		Similarly, if mouse is over a target node but less that
betweenThreshold
	//		pixels from the top edge, dropping the dragged node will make it
	//		the target node's previous sibling rather than the target
node's child.
	betweenThreshold: 0,

	// _nodePixelIndent: Integer
	//		Number of pixels to indent tree nodes (relative to parent node).
	//		Default is 19 but can be overridden by setting CSS class
dijitTreeIndent
	//		and calling resize() or startup() on tree after it's in the DOM.
	_nodePixelIndent: 19,

	_publish: function(/*String*/ topicName, /*Object*/ message){
		// summary:
		//		Publish a message for this widget/topic
		dojo.publish(this.id, [dojo.mixin({tree: this, event: topicName}, message
|| {})]);
	},

	postMixInProperties: function(){
		this.tree = this;

		if(this.autoExpand){
			// There's little point in saving opened/closed state of nodes for
a Tree
			// that initially opens all it's nodes.
			this.persist = false;
		}

		this._itemNodesMap={};

		if(!this.cookieName){
			this.cookieName = this.id + "SaveStateCookie";
		}

		this._loadDeferred = new dojo.Deferred();

		this.inherited(arguments);
	},

	postCreate: function(){
		this._initState();

		// Create glue between store and Tree, if not specified directly by user
		if(!this.model){
			this._store2model();
		}

		// monitor changes to items
		this.connect(this.model, "onChange",
"_onItemChange");
		this.connect(this.model, "onChildrenChange",
"_onItemChildrenChange");
		this.connect(this.model, "onDelete",
"_onItemDelete");

		this._load();

		this.inherited(arguments);

		if(this.dndController){
			if(dojo.isString(this.dndController)){
				this.dndController = dojo.getObject(this.dndController);
			}
			var params={};
			for(var i=0; i<this.dndParams.length;i++){
				if(this[this.dndParams[i]]){
					params[this.dndParams[i]] = this[this.dndParams[i]];
				}
			}
			this.dndController = new this.dndController(this, params);
		}
	},

	_store2model: function(){
		// summary:
		//		User specified a store&query rather than model, so create model
from store/query
		this._v10Compat = true;
		dojo.deprecated("Tree: from version 2.0, should specify a model
object rather than a store/query");

		var modelParams = {
			id: this.id + "_ForestStoreModel",
			store: this.store,
			query: this.query,
			childrenAttrs: this.childrenAttr
		};

		// Only override the model's mayHaveChildren() method if the user
has specified an override
		if(this.params.mayHaveChildren){
			modelParams.mayHaveChildren = dojo.hitch(this,
"mayHaveChildren");
		}

		if(this.params.getItemChildren){
			modelParams.getChildren = dojo.hitch(this, function(item, onComplete,
onError){
				this.getItemChildren((this._v10Compat && item ===
this.model.root) ? null : item, onComplete, onError);
			});
		}
		this.model = new dijit.tree.ForestStoreModel(modelParams);

		// For backwards compatibility, the visibility of the root node is
controlled by
		// whether or not the user has specified a label
		this.showRoot = Boolean(this.label);
	},

	onLoad: function(){
		// summary:
		//		Called when tree finishes loading and expanding.
		// description:
		//		If persist == true the loading may encompass many levels of fetches
		//		from the data store, each asynchronous.   Waits for all to finish.
		// tags:
		//		callback
	},

	_load: function(){
		// summary:
		//		Initial load of the tree.
		//		Load root node (possibly hidden) and it's children.
		this.model.getRoot(
			dojo.hitch(this, function(item){
				var rn = (this.rootNode = this.tree._createTreeNode({
					item: item,
					tree: this,
					isExpandable: true,
					label: this.label || this.getLabel(item),
					indent: this.showRoot ? 0 : -1
				}));
				if(!this.showRoot){
					rn.rowNode.style.display="none";
					// if root is not visible, move tree role to the invisible
					// root node's containerNode, see #12135
					dijit.setWaiRole(this.domNode, 'presentation');
					
					dijit.setWaiRole(rn.labelNode, 'presentation');
					dijit.setWaiRole(rn.containerNode, 'tree');
				}
				this.domNode.appendChild(rn.domNode);
				var identity = this.model.getIdentity(item);
				if(this._itemNodesMap[identity]){
					this._itemNodesMap[identity].push(rn);
				}else{
					this._itemNodesMap[identity] = [rn];
				}

				rn._updateLayout();		// sets "dijitTreeIsRoot" CSS classname

				// load top level children and then fire onLoad() event
				this._expandNode(rn).addCallback(dojo.hitch(this, function(){
					this._loadDeferred.callback(true);
					this.onLoad();
				}));
			}),
			function(err){
				console.error(this, ": error loading root: ", err);
			}
		);
	},

	getNodesByItem: function(/*dojo.data.Item or id*/ item){
		// summary:
		//		Returns all tree nodes that refer to an item
		// returns:
		//		Array of tree nodes that refer to passed item

		if(!item){ return []; }
		var identity = dojo.isString(item) ? item : this.model.getIdentity(item);
		// return a copy so widget don't get messed up by changes to
returned array
		return [].concat(this._itemNodesMap[identity]);
	},

	_setSelectedItemAttr: function(/*dojo.data.Item or id*/ item){
		this.set('selectedItems', [item]);
	},

	_setSelectedItemsAttr: function(/*dojo.data.Items or ids*/ items){
		// summary:
		//		Select tree nodes related to passed items.
		//		WARNING: if model use multi-parented items or desired tree node
isn't already loaded
		//		behavior is undefined. Use set('paths', ...) instead.
		var tree = this;
		this._loadDeferred.addCallback( dojo.hitch(this, function(){
			var identities = dojo.map(items, function(item){
				return (!item || dojo.isString(item)) ? item :
tree.model.getIdentity(item);
			});
			var nodes = [];
			dojo.forEach(identities, function(id){
				nodes = nodes.concat(tree._itemNodesMap[id] || []);
			});
			this.set('selectedNodes', nodes);
		}));
	},

	_setPathAttr: function(/*Item[] || String[]*/ path){
		// summary:
		//      Singular variant of _setPathsAttr
		if(path.length) {
			return this.set("paths", [path]);
		} else {
			//Empty list is interpreted as "select nothing"
			return this.set("paths", []);
		}
	},
	
	_setPathsAttr: function(/*Item[][] || String[][]*/ paths){
		// summary:
		//		Select the tree nodes identified by passed paths.
		// paths:
		//		Array of arrays of items or item id's
		// returns:
		//		Deferred to indicate when the set is complete
		var tree = this;

		// We may need to wait for some nodes to expand, so setting
		// each path will involve a Deferred. We bring those deferreds
		// together witha DeferredList.
		return new dojo.DeferredList(dojo.map(paths, function(path){
			var d = new dojo.Deferred();
			
			// normalize path to use identity
			path = dojo.map(path, function(item){
				return dojo.isString(item) ? item : tree.model.getIdentity(item);
			});

			if(path.length){
				// Wait for the tree to load, if it hasn't already.
				tree._loadDeferred.addCallback(function(){ selectPath(path,
[tree.rootNode], d); });
			}else{
				d.errback("Empty path");
			}
			return d;
		})).addCallback(setNodes);

		function selectPath(path, nodes, def){
			// Traverse path; the next path component should be among
"nodes".
			var nextPath = path.shift();
			var nextNode = dojo.filter(nodes, function(node){
				return node.getIdentity() == nextPath;
			})[0];
			if(!!nextNode){
				if(path.length){
					tree._expandNode(nextNode).addCallback(function(){ selectPath(path,
nextNode.getChildren(), def); });
				}else{
					//Successfully reached the end of this path
					def.callback(nextNode);
				}
			} else {
				def.errback("Could not expand path at " + nextPath);
			}
		}
		
		function setNodes(newNodes){
			//After all expansion is finished, set the selection to
			//the set of nodes successfully found.
			tree.set("selectedNodes", dojo.map(
				dojo.filter(newNodes,function(x){return x[0];}),
				function(x){return x[1];}));
		}
	},

	_setSelectedNodeAttr: function(node){
		this.set('selectedNodes', [node]);
	},
	_setSelectedNodesAttr: function(nodes){
		this._loadDeferred.addCallback( dojo.hitch(this, function(){
			this.dndController.setSelection(nodes);
		}));
	},


	////////////// Data store related functions //////////////////////
	// These just get passed to the model; they are here for back-compat

	mayHaveChildren: function(/*dojo.data.Item*/ item){
		// summary:
		//		Deprecated.   This should be specified on the model itself.
		//
		//		Overridable function to tell if an item has or may have children.
		//		Controls whether or not +/- expando icon is shown.
		//		(For efficiency reasons we may not want to check if an element
actually
		//		has children until user clicks the expando node)
		// tags:
		//		deprecated
	},

	getItemChildren: function(/*dojo.data.Item*/ parentItem,
/*function(items)*/ onComplete){
		// summary:
		//		Deprecated.   This should be specified on the model itself.
		//
		// 		Overridable function that return array of child items of given
parent item,
		//		or if parentItem==null then return top items in tree
		// tags:
		//		deprecated
	},

	///////////////////////////////////////////////////////
	// Functions for converting an item to a TreeNode
	getLabel: function(/*dojo.data.Item*/ item){
		// summary:
		//		Overridable function to get the label for a tree node (given the
item)
		// tags:
		//		extension
		return this.model.getLabel(item);	// String
	},

	getIconClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS class name to display icon
		// tags:
		//		extension
		return (!item || this.model.mayHaveChildren(item)) ? (opened ?
"dijitFolderOpened" : "dijitFolderClosed") :
"dijitLeaf"
	},

	getLabelClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS class name to display label
		// tags:
		//		extension
	},

	getRowClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS class name to display row
		// tags:
		//		extension
	},

	getIconStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS styles to display icon
		// returns:
		//		Object suitable for input to dojo.style() like {backgroundImage:
"url(...)"}
		// tags:
		//		extension
	},

	getLabelStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS styles to display label
		// returns:
		//		Object suitable for input to dojo.style() like {color:
"red", background: "green"}
		// tags:
		//		extension
	},

	getRowStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){
		// summary:
		//		Overridable function to return CSS styles to display row
		// returns:
		//		Object suitable for input to dojo.style() like {background-color:
"#bbb"}
		// tags:
		//		extension
	},

	getTooltip: function(/*dojo.data.Item*/ item){
		// summary:
		//		Overridable function to get the tooltip for a tree node (given the
item)
		// tags:
		//		extension
		return "";	// String
	},

	/////////// Keyboard and Mouse handlers ////////////////////

	_onKeyPress: function(/*Event*/ e){
		// summary:
		//		Translates keypress events into commands for the controller
		if(e.altKey){ return; }
		var dk = dojo.keys;
		var treeNode = dijit.getEnclosingWidget(e.target);
		if(!treeNode){ return; }

		var key = e.charOrCode;
		if(typeof key == "string" && key != " "){	//
handle printables (letter navigation)
			// Check for key navigation.
			if(!e.altKey && !e.ctrlKey && !e.shiftKey &&
!e.metaKey){
				this._onLetterKeyNav( { node: treeNode, key: key.toLowerCase() } );
				dojo.stopEvent(e);
			}
		}else{	// handle non-printables (arrow keys)
			// clear record of recent printables (being saved for multi-char letter
navigation),
			// because "a", down-arrow, "b" shouldn't
search for "ab"
			if(this._curSearch){
				clearTimeout(this._curSearch.timer);
				delete this._curSearch;
			}

			var map = this._keyHandlerMap;
			if(!map){
				// setup table mapping keys to events
				map = {};
				map[dk.ENTER]="_onEnterKey";
				//On WebKit based browsers, the combination ctrl-enter
				//does not get passed through. To allow accessible
				//multi-select on those browsers, the space key is
				//also used for selection.
				map[dk.SPACE]= map[" "] = "_onEnterKey";
				map[this.isLeftToRight() ? dk.LEFT_ARROW :
dk.RIGHT_ARROW]="_onLeftArrow";
				map[this.isLeftToRight() ? dk.RIGHT_ARROW :
dk.LEFT_ARROW]="_onRightArrow";
				map[dk.UP_ARROW]="_onUpArrow";
				map[dk.DOWN_ARROW]="_onDownArrow";
				map[dk.HOME]="_onHomeKey";
				map[dk.END]="_onEndKey";
				this._keyHandlerMap = map;
			}
			if(this._keyHandlerMap[key]){
				this[this._keyHandlerMap[key]]( { node: treeNode, item: treeNode.item,
evt: e } );
				dojo.stopEvent(e);
			}
		}
	},

	_onEnterKey: function(/*Object*/ message){
		this._publish("execute", { item: message.item, node:
message.node } );
		this.dndController.userSelect(message.node, dojo.isCopyKey( message.evt
), message.evt.shiftKey);
		this.onClick(message.item, message.node, message.evt);
	},

	_onDownArrow: function(/*Object*/ message){
		// summary:
		//		down arrow pressed; get next visible node, set focus there
		var node = this._getNextNode(message.node);
		if(node && node.isTreeNode){
			this.focusNode(node);
		}
	},

	_onUpArrow: function(/*Object*/ message){
		// summary:
		//		Up arrow pressed; move to previous visible node

		var node = message.node;

		// if younger siblings
		var previousSibling = node.getPreviousSibling();
		if(previousSibling){
			node = previousSibling;
			// if the previous node is expanded, dive in deep
			while(node.isExpandable && node.isExpanded &&
node.hasChildren()){
				// move to the last child
				var children = node.getChildren();
				node = children[children.length-1];
			}
		}else{
			// if this is the first child, return the parent
			// unless the parent is the root of a tree with a hidden root
			var parent = node.getParent();
			if(!(!this.showRoot && parent === this.rootNode)){
				node = parent;
			}
		}

		if(node && node.isTreeNode){
			this.focusNode(node);
		}
	},

	_onRightArrow: function(/*Object*/ message){
		// summary:
		//		Right arrow pressed; go to child node
		var node = message.node;

		// if not expanded, expand, else move to 1st child
		if(node.isExpandable && !node.isExpanded){
			this._expandNode(node);
		}else if(node.hasChildren()){
			node = node.getChildren()[0];
			if(node && node.isTreeNode){
				this.focusNode(node);
			}
		}
	},

	_onLeftArrow: function(/*Object*/ message){
		// summary:
		//		Left arrow pressed.
		//		If not collapsed, collapse, else move to parent.

		var node = message.node;

		if(node.isExpandable && node.isExpanded){
			this._collapseNode(node);
		}else{
			var parent = node.getParent();
			if(parent && parent.isTreeNode && !(!this.showRoot
&& parent === this.rootNode)){
				this.focusNode(parent);
			}
		}
	},

	_onHomeKey: function(){
		// summary:
		//		Home key pressed; get first visible node, and set focus there
		var node = this._getRootOrFirstNode();
		if(node){
			this.focusNode(node);
		}
	},

	_onEndKey: function(/*Object*/ message){
		// summary:
		//		End key pressed; go to last visible node.

		var node = this.rootNode;
		while(node.isExpanded){
			var c = node.getChildren();
			node = c[c.length - 1];
		}

		if(node && node.isTreeNode){
			this.focusNode(node);
		}
	},

	// multiCharSearchDuration: Number
	//		If multiple characters are typed where each keystroke happens within
	//		multiCharSearchDuration of the previous keystroke,
	//		search for nodes matching all the keystrokes.
	//
	//		For example, typing "ab" will search for entries starting
with
	//		"ab" unless the delay between "a" and
"b" is greater than multiCharSearchDuration.
	multiCharSearchDuration: 250,

	_onLetterKeyNav: function(message){
		// summary:
		//		Called when user presses a prinatable key; search for node starting
with recently typed letters.
		// message: Object
		//		Like { node: TreeNode, key: 'a' } where key is the key the
user pressed.

		// Branch depending on whether this key starts a new search, or modifies
an existing search
		var cs = this._curSearch;
		if(cs){
			// We are continuing a search.  Ex: user has pressed 'a', and
now has pressed
			// 'b', so we want to search for nodes starting
w/"ab".
			cs.pattern = cs.pattern + message.key;
			clearTimeout(cs.timer);
		}else{
			// We are starting a new search
			cs = this._curSearch = {
					pattern: message.key,
					startNode: message.node
			};
		}

		// set/reset timer to forget recent keystrokes
		var self = this;
		cs.timer = setTimeout(function(){
			delete self._curSearch;
		}, this.multiCharSearchDuration);

		// Navigate to TreeNode matching keystrokes [entered so far].
		var node = cs.startNode;
		do{
			node = this._getNextNode(node);
			//check for last node, jump to first node if necessary
			if(!node){
				node = this._getRootOrFirstNode();
			}
		}while(node !== cs.startNode &&
(node.label.toLowerCase().substr(0, cs.pattern.length) != cs.pattern));
		if(node && node.isTreeNode){
			// no need to set focus if back where we started
			if(node !== cs.startNode){
				this.focusNode(node);
			}
		}
	},

	isExpandoNode: function(node, widget){
		// summary:
		//		check whether a dom node is the expandoNode for a particular TreeNode
widget
		return dojo.isDescendant(node, widget.expandoNode);
	},
	_onClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){
		// summary:
		//		Translates click events into commands for the controller to process

		var domElement = e.target,
			isExpandoClick = this.isExpandoNode(domElement, nodeWidget);

		if( (this.openOnClick && nodeWidget.isExpandable) ||
isExpandoClick ){
			// expando node was clicked, or label of a folder node was clicked; open
it
			if(nodeWidget.isExpandable){
				this._onExpandoClick({node:nodeWidget});
			}
		}else{
			this._publish("execute", { item: nodeWidget.item, node:
nodeWidget, evt: e } );
			this.onClick(nodeWidget.item, nodeWidget, e);
			this.focusNode(nodeWidget);
		}
		dojo.stopEvent(e);
	},
	_onDblClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){
		// summary:
		//		Translates double-click events into commands for the controller to
process

		var domElement = e.target,
			isExpandoClick = (domElement == nodeWidget.expandoNode || domElement ==
nodeWidget.expandoNodeText);

		if( (this.openOnDblClick && nodeWidget.isExpandable)
||isExpandoClick ){
			// expando node was clicked, or label of a folder node was clicked; open
it
			if(nodeWidget.isExpandable){
				this._onExpandoClick({node:nodeWidget});
			}
		}else{
			this._publish("execute", { item: nodeWidget.item, node:
nodeWidget, evt: e } );
			this.onDblClick(nodeWidget.item, nodeWidget, e);
			this.focusNode(nodeWidget);
		}
		dojo.stopEvent(e);
	},

	_onExpandoClick: function(/*Object*/ message){
		// summary:
		//		User clicked the +/- icon; expand or collapse my children.
		var node = message.node;

		// If we are collapsing, we might be hiding the currently focused node.
		// Also, clicking the expando node might have erased focus from the
current node.
		// For simplicity's sake just focus on the node with the expando.
		this.focusNode(node);

		if(node.isExpanded){
			this._collapseNode(node);
		}else{
			this._expandNode(node);
		}
	},

	onClick: function(/* dojo.data */ item, /*TreeNode*/ node, /*Event*/ evt){
		// summary:
		//		Callback when a tree node is clicked
		// tags:
		//		callback
	},
	onDblClick: function(/* dojo.data */ item, /*TreeNode*/ node, /*Event*/
evt){
		// summary:
		//		Callback when a tree node is double-clicked
		// tags:
		//		callback
	},
	onOpen: function(/* dojo.data */ item, /*TreeNode*/ node){
		// summary:
		//		Callback when a node is opened
		// tags:
		//		callback
	},
	onClose: function(/* dojo.data */ item, /*TreeNode*/ node){
		// summary:
		//		Callback when a node is closed
		// tags:
		//		callback
	},

	_getNextNode: function(node){
		// summary:
		//		Get next visible node

		if(node.isExpandable && node.isExpanded &&
node.hasChildren()){
			// if this is an expanded node, get the first child
			return node.getChildren()[0];		// _TreeNode
		}else{
			// find a parent node with a sibling
			while(node && node.isTreeNode){
				var returnNode = node.getNextSibling();
				if(returnNode){
					return returnNode;		// _TreeNode
				}
				node = node.getParent();
			}
			return null;
		}
	},

	_getRootOrFirstNode: function(){
		// summary:
		//		Get first visible node
		return this.showRoot ? this.rootNode : this.rootNode.getChildren()[0];
	},

	_collapseNode: function(/*_TreeNode*/ node){
		// summary:
		//		Called when the user has requested to collapse the node

		if(node._expandNodeDeferred){
			delete node._expandNodeDeferred;
		}

		if(node.isExpandable){
			if(node.state == "LOADING"){
				// ignore clicks while we are in the process of loading data
				return;
			}

			node.collapse();
			this.onClose(node.item, node);

			if(node.item){
				this._state(node.item,false);
				this._saveState();
			}
		}
	},

	_expandNode: function(/*_TreeNode*/ node, /*Boolean?*/ recursive){
		// summary:
		//		Called when the user has requested to expand the node
		// recursive:
		//		Internal flag used when _expandNode() calls itself, don't set.
		// returns:
		//		Deferred that fires when the node is loaded and opened and (if
persist=true) all it's descendants
		//		that were previously opened too

		if(node._expandNodeDeferred && !recursive){
			// there's already an expand in progress (or completed), so just
return
			return node._expandNodeDeferred;	// dojo.Deferred
		}

		var model = this.model,
			item = node.item,
			_this = this;

		switch(node.state){
			case "UNCHECKED":
				// need to load all the children, and then expand
				node.markProcessing();

				// Setup deferred to signal when the load and expand are finished.
				// Save that deferred in this._expandDeferred as a flag that operation
is in progress.
				var def = (node._expandNodeDeferred = new dojo.Deferred());

				// Get the children
				model.getChildren(
					item,
					function(items){
						node.unmarkProcessing();

						// Display the children and also start expanding any children that
were previously expanded
						// (if this.persist == true).   The returned Deferred will fire when
those expansions finish.
						var scid = node.setChildItems(items);

						// Call _expandNode() again but this time it will just to do the
animation (default branch).
						// The returned Deferred will fire when the animation completes.
						// TODO: seems like I can avoid recursion and just use a deferred to
sequence the events?
						var ed = _this._expandNode(node, true);

						// After the above two tasks (setChildItems() and recursive
_expandNode()) finish,
						// signal that I am done.
						scid.addCallback(function(){
							ed.addCallback(function(){
								def.callback();
							})
						});
					},
					function(err){
						console.error(_this, ": error loading root children: ",
err);
					}
				);
				break;

			default:	// "LOADED"
				// data is already loaded; just expand node
				def = (node._expandNodeDeferred = node.expand());

				this.onOpen(node.item, node);

				if(item){
					this._state(item, true);
					this._saveState();
				}
		}

		return def;	// dojo.Deferred
	},

	////////////////// Miscellaneous functions ////////////////

	focusNode: function(/* _tree.Node */ node){
		// summary:
		//		Focus on the specified node (which must be visible)
		// tags:
		//		protected

		// set focus so that the label will be voiced using screen readers
		dijit.focus(node.labelNode);
	},

	_onNodeFocus: function(/*dijit._Widget*/ node){
		// summary:
		//		Called when a TreeNode gets focus, either by user clicking
		//		it, or programatically by arrow key handling code.
		// description:
		//		It marks that the current node is the selected one, and the
previously
		//		selected node no longer is.

		if(node && node != this.lastFocused){
			if(this.lastFocused && !this.lastFocused._destroyed){
				// mark that the previously focsable node is no longer focusable
				this.lastFocused.setFocusable(false);
			}

			// mark that the new node is the currently selected one
			node.setFocusable(true);
			this.lastFocused = node;
		}
	},

	_onNodeMouseEnter: function(/*dijit._Widget*/ node){
		// summary:
		//		Called when mouse is over a node (onmouseenter event),
		//		this is monitored by the DND code
	},

	_onNodeMouseLeave: function(/*dijit._Widget*/ node){
		// summary:
		//		Called when mouse leaves a node (onmouseleave event),
		//		this is monitored by the DND code
	},

	//////////////// Events from the model //////////////////////////

	_onItemChange: function(/*Item*/ item){
		// summary:
		//		Processes notification of a change to an item's scalar values
like label
		var model = this.model,
			identity = model.getIdentity(item),
			nodes = this._itemNodesMap[identity];

		if(nodes){
			var label = this.getLabel(item),
				tooltip = this.getTooltip(item);
			dojo.forEach(nodes, function(node){
				node.set({
					item: item,		// theoretically could be new JS Object representing same
item
					label: label,
					tooltip: tooltip
				});
				node._updateItemClasses(item);
			});
		}
	},

	_onItemChildrenChange: function(/*dojo.data.Item*/ parent,
/*dojo.data.Item[]*/ newChildrenList){
		// summary:
		//		Processes notification of a change to an item's children
		var model = this.model,
			identity = model.getIdentity(parent),
			parentNodes = this._itemNodesMap[identity];

		if(parentNodes){
			dojo.forEach(parentNodes,function(parentNode){
				parentNode.setChildItems(newChildrenList);
			});
		}
	},

	_onItemDelete: function(/*Item*/ item){
		// summary:
		//		Processes notification of a deletion of an item
		var model = this.model,
			identity = model.getIdentity(item),
			nodes = this._itemNodesMap[identity];

		if(nodes){
			dojo.forEach(nodes,function(node){
				// Remove node from set of selected nodes (if it's selected)
				this.dndController.removeTreeNode(node);

				var parent = node.getParent();
				if(parent){
					// if node has not already been orphaned from a _onSetItem(parent,
"children", ..) call...
					parent.removeChild(node);
				}
				node.destroyRecursive();
			}, this);
			delete this._itemNodesMap[identity];
		}
	},

	/////////////// Miscellaneous funcs

	_initState: function(){
		// summary:
		//		Load in which nodes should be opened automatically
		if(this.persist){
			var cookie = dojo.cookie(this.cookieName);
			this._openedItemIds = {};
			if(cookie){
				dojo.forEach(cookie.split(','), function(item){
					this._openedItemIds[item] = true;
				}, this);
			}
		}
	},
	_state: function(item,expanded){
		// summary:
		//		Query or set expanded state for an item,
		if(!this.persist){
			return false;
		}
		var id=this.model.getIdentity(item);
		if(arguments.length === 1){
			return this._openedItemIds[id];
		}
		if(expanded){
			this._openedItemIds[id] = true;
		}else{
			delete this._openedItemIds[id];
		}
	},
	_saveState: function(){
		// summary:
		//		Create and save a cookie with the currently expanded nodes
identifiers
		if(!this.persist){
			return;
		}
		var ary = [];
		for(var id in this._openedItemIds){
			ary.push(id);
		}
		dojo.cookie(this.cookieName, ary.join(","), {expires:365});
	},

	destroy: function(){
		if(this._curSearch){
			clearTimeout(this._curSearch.timer);
			delete this._curSearch;
		}
		if(this.rootNode){
			this.rootNode.destroyRecursive();
		}
		if(this.dndController && !dojo.isString(this.dndController)){
			this.dndController.destroy();
		}
		this.rootNode = null;
		this.inherited(arguments);
	},

	destroyRecursive: function(){
		// A tree is treated as a leaf, not as a node with children (like a
grid),
		// but defining destroyRecursive for back-compat.
		this.destroy();
	},

	resize: function(changeSize){
		if(changeSize){
			dojo.marginBox(this.domNode, changeSize);
		}

		// The only JS sizing involved w/tree is the indentation, which is
specified
		// in CSS and read in through this dummy indentDetector node (tree must
be
		// visible and attached to the DOM to read this)
		this._nodePixelIndent = dojo._getMarginSize(this.tree.indentDetector).w;

		if(this.tree.rootNode){
			// If tree has already loaded, then reset indent for all the nodes
			this.tree.rootNode.set('indent', this.showRoot ? 0 : -1);
		}
	},

	_createTreeNode: function(/*Object*/ args){
		// summary:
		//		creates a TreeNode
		// description:
		//		Developers can override this method to define their own TreeNode
class;
		//		However it will probably be removed in a future release in favor of a
way
		//		of just specifying a widget for the label, rather than one that
contains
		//		the children too.
		return new dijit._TreeNode(args);
	}
});

// For back-compat.  TODO: remove in 2.0

}
PK�X�[���PNN*dojoloader/dojo/1.6.1/dijit/_base/focus.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.focus"]){
dojo._hasResource["dijit._base.focus"]=true;
dojo.provide("dijit._base.focus");
dojo.require("dojo.window");
dojo.require("dijit._base.manager");
dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){
return dijit.getBookmark().isCollapsed;
},getBookmark:function(){
var bm,rg,tg,_1=dojo.doc.selection,cf=dijit._curFocus;
if(dojo.global.getSelection){
_1=dojo.global.getSelection();
if(_1){
if(_1.isCollapsed){
tg=cf?cf.tagName:"";
if(tg){
tg=tg.toLowerCase();
if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){
_1={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};
return {isCollapsed:(_1.end<=_1.start),mark:_1};
}
}
bm={isCollapsed:true};
if(_1.rangeCount){
bm.mark=_1.getRangeAt(0).cloneRange();
}
}else{
rg=_1.getRangeAt(0);
bm={isCollapsed:false,mark:rg.cloneRange()};
}
}
}else{
if(_1){
tg=cf?cf.tagName:"";
tg=tg.toLowerCase();
if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){
if(_1.type&&_1.type.toLowerCase()=="none"){
return {isCollapsed:true,mark:null};
}else{
rg=_1.createRange();
return
{isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};
}
}
bm={};
try{
rg=_1.createRange();
bm.isCollapsed=!(_1.type=="Text"?rg.htmlText.length:rg.length);
}
catch(e){
bm.isCollapsed=true;
return bm;
}
if(_1.type.toUpperCase()=="CONTROL"){
if(rg.length){
bm.mark=[];
var i=0,_2=rg.length;
while(i<_2){
bm.mark.push(rg.item(i++));
}
}else{
bm.isCollapsed=true;
bm.mark=null;
}
}else{
bm.mark=rg.getBookmark();
}
}else{
console.warn("No idea how to store the current selection for this
browser!");
}
}
return bm;
},moveToBookmark:function(_3){
var _4=dojo.doc,_5=_3.mark;
if(_5){
if(dojo.global.getSelection){
var _6=dojo.global.getSelection();
if(_6&&_6.removeAllRanges){
if(_5.pRange){
var r=_5;
var n=r.node;
n.selectionStart=r.start;
n.selectionEnd=r.end;
}else{
_6.removeAllRanges();
_6.addRange(_5);
}
}else{
console.warn("No idea how to restore selection for this
browser!");
}
}else{
if(_4.selection&&_5){
var rg;
if(_5.pRange){
rg=_5.range;
}else{
if(dojo.isArray(_5)){
rg=_4.body.createControlRange();
dojo.forEach(_5,function(n){
rg.addElement(n);
});
}else{
rg=_4.body.createTextRange();
rg.moveToBookmark(_5);
}
}
rg.select();
}
}
}
},getFocus:function(_7,_8){
var
_9=!dijit._curFocus||(_7&&dojo.isDescendant(dijit._curFocus,_7.domNode))?dijit._prevFocus:dijit._curFocus;
return
{node:_9,bookmark:(_9==dijit._curFocus)&&dojo.withGlobal(_8||dojo.global,dijit.getBookmark),openedForWindow:_8};
},focus:function(_a){
if(!_a){
return;
}
var _b="node" in
_a?_a.node:_a,_c=_a.bookmark,_d=_a.openedForWindow,_e=_c?_c.isCollapsed:false;
if(_b){
var _f=(_b.tagName.toLowerCase()=="iframe")?_b.contentWindow:_b;
if(_f&&_f.focus){
try{
_f.focus();
}
catch(e){
}
}
dijit._onFocusNode(_b);
}
if(_c&&dojo.withGlobal(_d||dojo.global,dijit.isCollapsed)&&!_e){
if(_d){
_d.focus();
}
try{
dojo.withGlobal(_d||dojo.global,dijit.moveToBookmark,null,[_c]);
}
catch(e2){
}
}
},_activeStack:[],registerIframe:function(_10){
return dijit.registerWin(_10.contentWindow,_10);
},unregisterIframe:function(_11){
dijit.unregisterWin(_11);
},registerWin:function(_12,_13){
var _14=function(evt){
dijit._justMouseDowned=true;
setTimeout(function(){
dijit._justMouseDowned=false;
},0);
if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){
return;
}
dijit._onTouchNode(_13||evt.target||evt.srcElement,"mouse");
};
var doc=dojo.isIE?_12.document.documentElement:_12.document;
if(doc){
if(dojo.isIE){
_12.document.body.attachEvent("onmousedown",_14);
var _15=function(evt){
if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){
dijit._onFocusNode(_13||evt.srcElement);
}else{
dijit._onTouchNode(_13||evt.srcElement);
}
};
doc.attachEvent("onactivate",_15);
var _16=function(evt){
dijit._onBlurNode(_13||evt.srcElement);
};
doc.attachEvent("ondeactivate",_16);
return function(){
_12.document.detachEvent("onmousedown",_14);
doc.detachEvent("onactivate",_15);
doc.detachEvent("ondeactivate",_16);
doc=null;
};
}else{
doc.body.addEventListener("mousedown",_14,true);
var _17=function(evt){
dijit._onFocusNode(_13||evt.target);
};
doc.addEventListener("focus",_17,true);
var _18=function(evt){
dijit._onBlurNode(_13||evt.target);
};
doc.addEventListener("blur",_18,true);
return function(){
doc.body.removeEventListener("mousedown",_14,true);
doc.removeEventListener("focus",_17,true);
doc.removeEventListener("blur",_18,true);
doc=null;
};
}
}
},unregisterWin:function(_19){
_19&&_19();
},_onBlurNode:function(_1a){
dijit._prevFocus=dijit._curFocus;
dijit._curFocus=null;
if(dijit._justMouseDowned){
return;
}
if(dijit._clearActiveWidgetsTimer){
clearTimeout(dijit._clearActiveWidgetsTimer);
}
dijit._clearActiveWidgetsTimer=setTimeout(function(){
delete dijit._clearActiveWidgetsTimer;
dijit._setStack([]);
dijit._prevFocus=null;
},100);
},_onTouchNode:function(_1b,by){
if(dijit._clearActiveWidgetsTimer){
clearTimeout(dijit._clearActiveWidgetsTimer);
delete dijit._clearActiveWidgetsTimer;
}
var _1c=[];
try{
while(_1b){
var _1d=dojo.attr(_1b,"dijitPopupParent");
if(_1d){
_1b=dijit.byId(_1d).domNode;
}else{
if(_1b.tagName&&_1b.tagName.toLowerCase()=="body"){
if(_1b===dojo.body()){
break;
}
_1b=dojo.window.get(_1b.ownerDocument).frameElement;
}else{
var
id=_1b.getAttribute&&_1b.getAttribute("widgetId"),_1e=id&&dijit.byId(id);
if(_1e&&!(by=="mouse"&&_1e.get("disabled"))){
_1c.unshift(id);
}
_1b=_1b.parentNode;
}
}
}
}
catch(e){
}
dijit._setStack(_1c,by);
},_onFocusNode:function(_1f){
if(!_1f){
return;
}
if(_1f.nodeType==9){
return;
}
dijit._onTouchNode(_1f);
if(_1f==dijit._curFocus){
return;
}
if(dijit._curFocus){
dijit._prevFocus=dijit._curFocus;
}
dijit._curFocus=_1f;
dojo.publish("focusNode",[_1f]);
},_setStack:function(_20,by){
var _21=dijit._activeStack;
dijit._activeStack=_20;
for(var _22=0;_22<Math.min(_21.length,_20.length);_22++){
if(_21[_22]!=_20[_22]){
break;
}
}
var _23;
for(var i=_21.length-1;i>=_22;i--){
_23=dijit.byId(_21[i]);
if(_23){
_23._focused=false;
_23.set("focused",false);
_23._hasBeenBlurred=true;
if(_23._onBlur){
_23._onBlur(by);
}
dojo.publish("widgetBlur",[_23,by]);
}
}
for(i=_22;i<_20.length;i++){
_23=dijit.byId(_20[i]);
if(_23){
_23._focused=true;
_23.set("focused",true);
if(_23._onFocus){
_23._onFocus(by);
}
dojo.publish("widgetFocus",[_23,by]);
}
}
}});
dojo.addOnLoad(function(){
var _24=dijit.registerWin(window);
if(dojo.isIE){
dojo.addOnWindowUnload(function(){
dijit.unregisterWin(_24);
_24=null;
});
}
});
}
PK�X�[
�H'',dojoloader/dojo/1.6.1/dijit/_base/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[n��U��,dojoloader/dojo/1.6.1/dijit/_base/manager.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.manager"]){
dojo._hasResource["dijit._base.manager"]=true;
dojo.provide("dijit._base.manager");
dojo.declare("dijit.WidgetSet",null,{constructor:function(){
this._hash={};
this.length=0;
},add:function(_1){
if(this._hash[_1.id]){
throw new Error("Tried to register widget with id=="+_1.id+"
but that id is already registered");
}
this._hash[_1.id]=_1;
this.length++;
},remove:function(id){
if(this._hash[id]){
delete this._hash[id];
this.length--;
}
},forEach:function(_2,_3){
_3=_3||dojo.global;
var i=0,id;
for(id in this._hash){
_2.call(_3,this._hash[id],i++,this._hash);
}
return this;
},filter:function(_4,_5){
_5=_5||dojo.global;
var _6=new dijit.WidgetSet(),i=0,id;
for(id in this._hash){
var w=this._hash[id];
if(_4.call(_5,w,i++,this._hash)){
_6.add(w);
}
}
return _6;
},byId:function(id){
return this._hash[id];
},byClass:function(_7){
var _8=new dijit.WidgetSet(),id,_9;
for(id in this._hash){
_9=this._hash[id];
if(_9.declaredClass==_7){
_8.add(_9);
}
}
return _8;
},toArray:function(){
var ar=[];
for(var id in this._hash){
ar.push(this._hash[id]);
}
return ar;
},map:function(_a,_b){
return dojo.map(this.toArray(),_a,_b);
},every:function(_c,_d){
_d=_d||dojo.global;
var x=0,i;
for(i in this._hash){
if(!_c.call(_d,this._hash[i],x++,this._hash)){
return false;
}
}
return true;
},some:function(_e,_f){
_f=_f||dojo.global;
var x=0,i;
for(i in this._hash){
if(_e.call(_f,this._hash[i],x++,this._hash)){
return true;
}
}
return false;
}});
(function(){
dijit.registry=new dijit.WidgetSet();
var _10=dijit.registry._hash,_11=dojo.attr,_12=dojo.hasAttr,_13=dojo.style;
dijit.byId=function(id){
return typeof id=="string"?_10[id]:id;
};
var _14={};
dijit.getUniqueId=function(_15){
var id;
do{
id=_15+"_"+(_15 in _14?++_14[_15]:_14[_15]=0);
}while(_10[id]);
return
dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id;
};
dijit.findWidgets=function(_16){
var _17=[];
function _18(_19){
for(var _1a=_19.firstChild;_1a;_1a=_1a.nextSibling){
if(_1a.nodeType==1){
var _1b=_1a.getAttribute("widgetId");
if(_1b){
var _1c=_10[_1b];
if(_1c){
_17.push(_1c);
}
}else{
_18(_1a);
}
}
}
};
_18(_16);
return _17;
};
dijit._destroyAll=function(){
dijit._curFocus=null;
dijit._prevFocus=null;
dijit._activeStack=[];
dojo.forEach(dijit.findWidgets(dojo.body()),function(_1d){
if(!_1d._destroyed){
if(_1d.destroyRecursive){
_1d.destroyRecursive();
}else{
if(_1d.destroy){
_1d.destroy();
}
}
}
});
};
if(dojo.isIE){
dojo.addOnWindowUnload(function(){
dijit._destroyAll();
});
}
dijit.byNode=function(_1e){
return _10[_1e.getAttribute("widgetId")];
};
dijit.getEnclosingWidget=function(_1f){
while(_1f){
var id=_1f.getAttribute&&_1f.getAttribute("widgetId");
if(id){
return _10[id];
}
_1f=_1f.parentNode;
}
return null;
};
var _20=(dijit._isElementShown=function(_21){
var s=_13(_21);
return
(s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_11(_21,"type")!="hidden");
});
dijit.hasDefaultTabStop=function(_22){
switch(_22.nodeName.toLowerCase()){
case "a":
return _12(_22,"href");
case "area":
case "button":
case "input":
case "object":
case "select":
case "textarea":
return true;
case "iframe":
var _23;
try{
var _24=_22.contentDocument;
if("designMode" in _24&&_24.designMode=="on"){
return true;
}
_23=_24.body;
}
catch(e1){
try{
_23=_22.contentWindow.document.body;
}
catch(e2){
return false;
}
}
return
_23.contentEditable=="true"||(_23.firstChild&&_23.firstChild.contentEditable=="true");
default:
return _22.contentEditable=="true";
}
};
var _25=(dijit.isTabNavigable=function(_26){
if(_11(_26,"disabled")){
return false;
}else{
if(_12(_26,"tabIndex")){
return _11(_26,"tabIndex")>=0;
}else{
return dijit.hasDefaultTabStop(_26);
}
}
});
dijit._getTabNavigable=function(_27){
var _28,_29,_2a,_2b,_2c,_2d,_2e={};
function _2f(_30){
return
_30&&_30.tagName.toLowerCase()=="input"&&_30.type&&_30.type.toLowerCase()=="radio"&&_30.name&&_30.name.toLowerCase();
};
var _31=function(_32){
dojo.query("> *",_32).forEach(function(_33){
if((dojo.isIE&&_33.scopeName!=="HTML")||!_20(_33)){
return;
}
if(_25(_33)){
var _34=_11(_33,"tabIndex");
if(!_12(_33,"tabIndex")||_34==0){
if(!_28){
_28=_33;
}
_29=_33;
}else{
if(_34>0){
if(!_2a||_34<_2b){
_2b=_34;
_2a=_33;
}
if(!_2c||_34>=_2d){
_2d=_34;
_2c=_33;
}
}
}
var rn=_2f(_33);
if(dojo.attr(_33,"checked")&&rn){
_2e[rn]=_33;
}
}
if(_33.nodeName.toUpperCase()!="SELECT"){
_31(_33);
}
});
};
if(_20(_27)){
_31(_27);
}
function rs(_35){
return _2e[_2f(_35)]||_35;
};
return {first:rs(_28),last:rs(_29),lowest:rs(_2a),highest:rs(_2c)};
};
dijit.getFirstInTabbingOrder=function(_36){
var _37=dijit._getTabNavigable(dojo.byId(_36));
return _37.lowest?_37.lowest:_37.first;
};
dijit.getLastInTabbingOrder=function(_38){
var _39=dijit._getTabNavigable(dojo.byId(_38));
return _39.last?_39.last:_39.highest;
};
dijit.defaultDuration=dojo.config["defaultDuration"]||200;
})();
}
PK�X�[/:��
�
*dojoloader/dojo/1.6.1/dijit/_base/place.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.place"]){
dojo._hasResource["dijit._base.place"]=true;
dojo.provide("dijit._base.place");
dojo.require("dojo.window");
dojo.require("dojo.AdapterRegistry");
dijit.getViewport=function(){
return dojo.window.getBox();
};
dijit.placeOnScreen=function(_1,_2,_3,_4){
var _5=dojo.map(_3,function(_6){
var c={corner:_6,pos:{x:_2.x,y:_2.y}};
if(_4){
c.pos.x+=_6.charAt(1)=="L"?_4.x:-_4.x;
c.pos.y+=_6.charAt(0)=="T"?_4.y:-_4.y;
}
return c;
});
return dijit._place(_1,_5);
};
dijit._place=function(_7,_8,_9,_a){
var _b=dojo.window.getBox();
if(!_7.parentNode||String(_7.parentNode.tagName).toLowerCase()!="body"){
dojo.body().appendChild(_7);
}
var _c=null;
dojo.some(_8,function(_d){
var _e=_d.corner;
var _f=_d.pos;
var _10=0;
var
_11={w:_e.charAt(1)=="L"?(_b.l+_b.w)-_f.x:_f.x-_b.l,h:_e.charAt(1)=="T"?(_b.t+_b.h)-_f.y:_f.y-_b.t};
if(_9){
var res=_9(_7,_d.aroundCorner,_e,_11,_a);
_10=typeof res=="undefined"?0:res;
}
var _12=_7.style;
var _13=_12.display;
var _14=_12.visibility;
_12.visibility="hidden";
_12.display="";
var mb=dojo.marginBox(_7);
_12.display=_13;
_12.visibility=_14;
var
_15=Math.max(_b.l,_e.charAt(1)=="L"?_f.x:(_f.x-mb.w)),_16=Math.max(_b.t,_e.charAt(0)=="T"?_f.y:(_f.y-mb.h)),_17=Math.min(_b.l+_b.w,_e.charAt(1)=="L"?(_15+mb.w):_f.x),_18=Math.min(_b.t+_b.h,_e.charAt(0)=="T"?(_16+mb.h):_f.y),_19=_17-_15,_1a=_18-_16;
_10+=(mb.w-_19)+(mb.h-_1a);
if(_c==null||_10<_c.overflow){
_c={corner:_e,aroundCorner:_d.aroundCorner,x:_15,y:_16,w:_19,h:_1a,overflow:_10,spaceAvailable:_11};
}
return !_10;
});
if(_c.overflow&&_9){
_9(_7,_c.aroundCorner,_c.corner,_c.spaceAvailable,_a);
}
var l=dojo._isBodyLtr(),s=_7.style;
s.top=_c.y+"px";
s[l?"left":"right"]=(l?_c.x:_b.w-_c.x-_c.w)+"px";
return _c;
};
dijit.placeOnScreenAroundNode=function(_1b,_1c,_1d,_1e){
_1c=dojo.byId(_1c);
var _1f=dojo.position(_1c,true);
return dijit._placeOnScreenAroundRect(_1b,_1f.x,_1f.y,_1f.w,_1f.h,_1d,_1e);
};
dijit.placeOnScreenAroundRectangle=function(_20,_21,_22,_23){
return
dijit._placeOnScreenAroundRect(_20,_21.x,_21.y,_21.width,_21.height,_22,_23);
};
dijit._placeOnScreenAroundRect=function(_24,x,y,_25,_26,_27,_28){
var _29=[];
for(var _2a in _27){
_29.push({aroundCorner:_2a,corner:_27[_2a],pos:{x:x+(_2a.charAt(1)=="L"?0:_25),y:y+(_2a.charAt(0)=="T"?0:_26)}});
}
return dijit._place(_24,_29,_28,{w:_25,h:_26});
};
dijit.placementRegistry=new dojo.AdapterRegistry();
dijit.placementRegistry.register("node",function(n,x){
return typeof x=="object"&&typeof
x.offsetWidth!="undefined"&&typeof
x.offsetHeight!="undefined";
},dijit.placeOnScreenAroundNode);
dijit.placementRegistry.register("rect",function(n,x){
return typeof x=="object"&&"x" in
x&&"y" in x&&"width" in
x&&"height" in x;
},dijit.placeOnScreenAroundRectangle);
dijit.placeOnScreenAroundElement=function(_2b,_2c,_2d,_2e){
return
dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);
};
dijit.getPopupAroundAlignment=function(_2f,_30){
var _31={};
dojo.forEach(_2f,function(pos){
switch(pos){
case "after":
_31[_30?"BR":"BL"]=_30?"BL":"BR";
break;
case "before":
_31[_30?"BL":"BR"]=_30?"BR":"BL";
break;
case "below-alt":
_30=!_30;
case "below":
_31[_30?"BL":"BR"]=_30?"TL":"TR";
_31[_30?"BR":"BL"]=_30?"TR":"TL";
break;
case "above-alt":
_30=!_30;
case "above":
default:
_31[_30?"TL":"TR"]=_30?"BL":"BR";
_31[_30?"TR":"TL"]=_30?"BR":"BL";
break;
}
});
return _31;
};
}
PK�X�[�����*dojoloader/dojo/1.6.1/dijit/_base/popup.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.popup"]){
dojo._hasResource["dijit._base.popup"]=true;
dojo.provide("dijit._base.popup");
dojo.require("dijit._base.focus");
dojo.require("dijit._base.place");
dojo.require("dijit._base.window");
dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,_createWrapper:function(_1){
var
_2=_1.declaredClass?_1._popupWrapper:(_1.parentNode&&dojo.hasClass(_1.parentNode,"dijitPopup")),_3=_1.domNode||_1;
if(!_2){
_2=dojo.create("div",{"class":"dijitPopup",style:{display:"none"},role:"presentation"},dojo.body());
_2.appendChild(_3);
var s=_3.style;
s.display="";
s.visibility="";
s.position="";
s.top="0px";
if(_1.declaredClass){
_1._popupWrapper=_2;
dojo.connect(_1,"destroy",function(){
dojo.destroy(_2);
delete _1._popupWrapper;
});
}
}
return _2;
},moveOffScreen:function(_4){
var _5=this._createWrapper(_4);
dojo.style(_5,{visibility:"hidden",top:"-9999px",display:""});
},hide:function(_6){
var _7=this._createWrapper(_6);
dojo.style(_7,"display","none");
},getTopPopup:function(){
var _8=this._stack;
for(var
pi=_8.length-1;pi>0&&_8[pi].parent===_8[pi-1].widget;pi--){
}
return _8[pi];
},open:function(_9){
var
_a=this._stack,_b=_9.popup,_c=_9.orient||((_9.parent?_9.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_d=_9.around,id=(_9.around&&_9.around.id)?(_9.around.id+"_dropdown"):("popup_"+this._idGen++);
while(_a.length&&(!_9.parent||!dojo.isDescendant(_9.parent.domNode,_a[_a.length-1].widget.domNode))){
dijit.popup.close(_a[_a.length-1].widget);
}
var _e=this._createWrapper(_b);
dojo.attr(_e,{id:id,style:{zIndex:this._beginZIndex+_a.length},"class":"dijitPopup
"+(_b.baseClass||_b["class"]||"").split("
")[0]+"Popup",dijitPopupParent:_9.parent?_9.parent.id:""});
if(dojo.isIE||dojo.isMoz){
if(!_b.bgIframe){
_b.bgIframe=new dijit.BackgroundIframe(_e);
}
}
var
_f=_d?dijit.placeOnScreenAroundElement(_e,_d,_c,_b.orient?dojo.hitch(_b,"orient"):null):dijit.placeOnScreen(_e,_9,_c=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_9.padding);
_e.style.display="";
_e.style.visibility="visible";
_b.domNode.style.visibility="visible";
var _10=[];
_10.push(dojo.connect(_e,"onkeypress",this,function(evt){
if(evt.charOrCode==dojo.keys.ESCAPE&&_9.onCancel){
dojo.stopEvent(evt);
_9.onCancel();
}else{
if(evt.charOrCode===dojo.keys.TAB){
dojo.stopEvent(evt);
var _11=this.getTopPopup();
if(_11&&_11.onCancel){
_11.onCancel();
}
}
}
}));
if(_b.onCancel){
_10.push(dojo.connect(_b,"onCancel",_9.onCancel));
}
_10.push(dojo.connect(_b,_b.onExecute?"onExecute":"onChange",this,function(){
var _12=this.getTopPopup();
if(_12&&_12.onExecute){
_12.onExecute();
}
}));
_a.push({widget:_b,parent:_9.parent,onExecute:_9.onExecute,onCancel:_9.onCancel,onClose:_9.onClose,handlers:_10});
if(_b.onOpen){
_b.onOpen(_f);
}
return _f;
},close:function(_13){
var _14=this._stack;
while((_13&&dojo.some(_14,function(_15){
return _15.widget==_13;
}))||(!_13&&_14.length)){
var top=_14.pop(),_16=top.widget,_17=top.onClose;
if(_16.onClose){
_16.onClose();
}
dojo.forEach(top.handlers,dojo.disconnect);
if(_16&&_16.domNode){
this.hide(_16);
}
if(_17){
_17();
}
}
}};
dijit._frames=new function(){
var _18=[];
this.pop=function(){
var _19;
if(_18.length){
_19=_18.pop();
_19.style.display="";
}else{
if(dojo.isIE<9){
var
_1a=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";
var _1b="<iframe src='"+_1a+"'"+"
style='position: absolute; left: 0px; top: 0px;"+"z-index:
-1; filter:Alpha(Opacity=\"0\");'>";
_19=dojo.doc.createElement(_1b);
}else{
_19=dojo.create("iframe");
_19.src="javascript:\"\"";
_19.className="dijitBackgroundIframe";
dojo.style(_19,"opacity",0.1);
}
_19.tabIndex=-1;
dijit.setWaiRole(_19,"presentation");
}
return _19;
};
this.push=function(_1c){
_1c.style.display="none";
_18.push(_1c);
};
}();
dijit.BackgroundIframe=function(_1d){
if(!_1d.id){
throw new Error("no id");
}
if(dojo.isIE||dojo.isMoz){
var _1e=(this.iframe=dijit._frames.pop());
_1d.appendChild(_1e);
if(dojo.isIE<7||dojo.isQuirks){
this.resize(_1d);
this._conn=dojo.connect(_1d,"onresize",this,function(){
this.resize(_1d);
});
}else{
dojo.style(_1e,{width:"100%",height:"100%"});
}
}
};
dojo.extend(dijit.BackgroundIframe,{resize:function(_1f){
if(this.iframe){
dojo.style(this.iframe,{width:_1f.offsetWidth+"px",height:_1f.offsetHeight+"px"});
}
},destroy:function(){
if(this._conn){
dojo.disconnect(this._conn);
this._conn=null;
}
if(this.iframe){
dijit._frames.push(this.iframe);
delete this.iframe;
}
}});
}
PK�X�[E���+dojoloader/dojo/1.6.1/dijit/_base/scroll.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.scroll"]){
dojo._hasResource["dijit._base.scroll"]=true;
dojo.provide("dijit._base.scroll");
dojo.require("dojo.window");
dijit.scrollIntoView=function(_1,_2){
dojo.window.scrollIntoView(_1,_2);
};
}
PK�X�[���``*dojoloader/dojo/1.6.1/dijit/_base/sniff.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.sniff"]){
dojo._hasResource["dijit._base.sniff"]=true;
dojo.provide("dijit._base.sniff");
dojo.require("dojo.uacss");
}
PK�X�[��{��.dojoloader/dojo/1.6.1/dijit/_base/typematic.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.typematic"]){
dojo._hasResource["dijit._base.typematic"]=true;
dojo.provide("dijit._base.typematic");
dijit.typematic={_fireEventAndReload:function(){
this._timer=null;
this._callback(++this._count,this._node,this._evt);
this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);
this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);
},trigger:function(_1,_2,_3,_4,_5,_6,_7,_8){
if(_5!=this._obj){
this.stop();
this._initialDelay=_7||500;
this._subsequentDelay=_6||0.9;
this._minDelay=_8||10;
this._obj=_5;
this._evt=_1;
this._node=_3;
this._currentTimeout=-1;
this._count=-1;
this._callback=dojo.hitch(_2,_4);
this._fireEventAndReload();
this._evt=dojo.mixin({faux:true},_1);
}
},stop:function(){
if(this._timer){
clearTimeout(this._timer);
this._timer=null;
}
if(this._obj){
this._callback(-1,this._node,this._evt);
this._obj=null;
}
},addKeyListener:function(_9,_a,_b,_c,_d,_e,_f){
if(_a.keyCode){
_a.charOrCode=_a.keyCode;
dojo.deprecated("keyCode attribute parameter for
dijit.typematic.addKeyListener is deprecated. Use charOrCode
instead.","","2.0");
}else{
if(_a.charCode){
_a.charOrCode=String.fromCharCode(_a.charCode);
dojo.deprecated("charCode attribute parameter for
dijit.typematic.addKeyListener is deprecated. Use charOrCode
instead.","","2.0");
}
}
return [dojo.connect(_9,"onkeypress",this,function(evt){
if(evt.charOrCode==_a.charOrCode&&(_a.ctrlKey===undefined||_a.ctrlKey==evt.ctrlKey)&&(_a.altKey===undefined||_a.altKey==evt.altKey)&&(_a.metaKey===undefined||_a.metaKey==(evt.metaKey||false))&&(_a.shiftKey===undefined||_a.shiftKey==evt.shiftKey)){
dojo.stopEvent(evt);
dijit.typematic.trigger(evt,_b,_9,_c,_a,_d,_e,_f);
}else{
if(dijit.typematic._obj==_a){
dijit.typematic.stop();
}
}
}),dojo.connect(_9,"onkeyup",this,function(evt){
if(dijit.typematic._obj==_a){
dijit.typematic.stop();
}
})];
},addMouseListener:function(_10,_11,_12,_13,_14,_15){
var dc=dojo.connect;
return [dc(_10,"mousedown",this,function(evt){
dojo.stopEvent(evt);
dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15);
}),dc(_10,"mouseup",this,function(evt){
dojo.stopEvent(evt);
dijit.typematic.stop();
}),dc(_10,"mouseout",this,function(evt){
dojo.stopEvent(evt);
dijit.typematic.stop();
}),dc(_10,"mousemove",this,function(evt){
evt.preventDefault();
}),dc(_10,"dblclick",this,function(evt){
dojo.stopEvent(evt);
if(dojo.isIE){
dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15);
setTimeout(dojo.hitch(this,dijit.typematic.stop),50);
}
})];
},addListener:function(_16,_17,_18,_19,_1a,_1b,_1c,_1d){
return
this.addKeyListener(_17,_18,_19,_1a,_1b,_1c,_1d).concat(this.addMouseListener(_16,_19,_1a,_1b,_1c,_1d));
}};
}
PK�X�[�z��(dojoloader/dojo/1.6.1/dijit/_base/wai.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.wai"]){
dojo._hasResource["dijit._base.wai"]=true;
dojo.provide("dijit._base.wai");
dijit.wai={onload:function(){
var
_1=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border:
1px solid;"+"border-color:red green;"+"position:
absolute;"+"height: 5px;"+"top:
-999px;"+"background-image:
url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());
var cs=dojo.getComputedStyle(_1);
if(cs){
var _2=cs.backgroundImage;
var
_3=(cs.borderTopColor==cs.borderRightColor)||(_2!=null&&(_2=="none"||_2=="url(invalid-url:)"));
dojo[_3?"addClass":"removeClass"](dojo.body(),"dijit_a11y");
if(dojo.isIE){
_1.outerHTML="";
}else{
dojo.body().removeChild(_1);
}
}
}};
if(dojo.isIE||dojo.isMoz){
dojo._loaders.unshift(dijit.wai.onload);
}
dojo.mixin(dijit,{hasWaiRole:function(_4,_5){
var _6=this.getWaiRole(_4);
return _5?(_6.indexOf(_5)>-1):(_6.length>0);
},getWaiRole:function(_7){
return
dojo.trim((dojo.attr(_7,"role")||"").replace("wairole:",""));
},setWaiRole:function(_8,_9){
dojo.attr(_8,"role",_9);
},removeWaiRole:function(_a,_b){
var _c=dojo.attr(_a,"role");
if(!_c){
return;
}
if(_b){
var t=dojo.trim((" "+_c+" ").replace("
"+_b+" "," "));
dojo.attr(_a,"role",t);
}else{
_a.removeAttribute("role");
}
},hasWaiState:function(_d,_e){
return
_d.hasAttribute?_d.hasAttribute("aria-"+_e):!!_d.getAttribute("aria-"+_e);
},getWaiState:function(_f,_10){
return _f.getAttribute("aria-"+_10)||"";
},setWaiState:function(_11,_12,_13){
_11.setAttribute("aria-"+_12,_13);
},removeWaiState:function(_14,_15){
_14.removeAttribute("aria-"+_15);
}});
}
PK�X�[�rn��+dojoloader/dojo/1.6.1/dijit/_base/window.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base.window"]){
dojo._hasResource["dijit._base.window"]=true;
dojo.provide("dijit._base.window");
dojo.require("dojo.window");
dijit.getDocumentWindow=function(_1){
return dojo.window.get(_1);
};
}
PK�X�[���ss$dojoloader/dojo/1.6.1/dijit/_base.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._base"]){
dojo._hasResource["dijit._base"]=true;
dojo.provide("dijit._base");
dojo.require("dijit._base.focus");
dojo.require("dijit._base.manager");
dojo.require("dijit._base.place");
dojo.require("dijit._base.popup");
dojo.require("dijit._base.scroll");
dojo.require("dijit._base.sniff");
dojo.require("dijit._base.typematic");
dojo.require("dijit._base.wai");
dojo.require("dijit._base.window");
}
PK�X�[��ĕff)dojoloader/dojo/1.6.1/dijit/_Contained.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._Contained"]){
dojo._hasResource["dijit._Contained"]=true;
dojo.provide("dijit._Contained");
dojo.declare("dijit._Contained",null,{getParent:function(){
var _1=dijit.getEnclosingWidget(this.domNode.parentNode);
return _1&&_1.isContainer?_1:null;
},_getSibling:function(_2){
var _3=this.domNode;
do{
_3=_3[_2+"Sibling"];
}while(_3&&_3.nodeType!=1);
return _3&&dijit.byNode(_3);
},getPreviousSibling:function(){
return this._getSibling("previous");
},getNextSibling:function(){
return this._getSibling("next");
},getIndexInParent:function(){
var p=this.getParent();
if(!p||!p.getIndexOfChild){
return -1;
}
return p.getIndexOfChild(this);
}});
}
PK�X�[�0��)dojoloader/dojo/1.6.1/dijit/_Container.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._Container"]){
dojo._hasResource["dijit._Container"]=true;
dojo.provide("dijit._Container");
dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){
this.inherited(arguments);
if(!this.containerNode){
this.containerNode=this.domNode;
}
},addChild:function(_1,_2){
var _3=this.containerNode;
if(_2&&typeof _2=="number"){
var _4=this.getChildren();
if(_4&&_4.length>=_2){
_3=_4[_2-1].domNode;
_2="after";
}
}
dojo.place(_1.domNode,_3,_2);
if(this._started&&!_1._started){
_1.startup();
}
},removeChild:function(_5){
if(typeof _5=="number"){
_5=this.getChildren()[_5];
}
if(_5){
var _6=_5.domNode;
if(_6&&_6.parentNode){
_6.parentNode.removeChild(_6);
}
}
},hasChildren:function(){
return this.getChildren().length>0;
},destroyDescendants:function(_7){
dojo.forEach(this.getChildren(),function(_8){
_8.destroyRecursive(_7);
});
},_getSiblingOfChild:function(_9,_a){
var
_b=_9.domNode,_c=(_a>0?"nextSibling":"previousSibling");
do{
_b=_b[_c];
}while(_b&&(_b.nodeType!=1||!dijit.byNode(_b)));
return _b&&dijit.byNode(_b);
},getIndexOfChild:function(_d){
return dojo.indexOf(this.getChildren(),_d);
},startup:function(){
if(this._started){
return;
}
dojo.forEach(this.getChildren(),function(_e){
_e.startup();
});
this.inherited(arguments);
}});
}
PK�X�[�eqQQ-dojoloader/dojo/1.6.1/dijit/_CssStateMixin.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._CssStateMixin"]){
dojo._hasResource["dijit._CssStateMixin"]=true;
dojo.provide("dijit._CssStateMixin");
dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},hovering:false,active:false,_applyAttributes:function(){
this.inherited(arguments);
dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){
this.connect(this.domNode,e,"_cssMouseEvent");
},this);
dojo.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active"],function(_1){
this.watch(_1,dojo.hitch(this,"_setStateClass"));
},this);
for(var ap in this.cssStateNodes){
this._trackMouseState(this[ap],this.cssStateNodes[ap]);
}
this._setStateClass();
},_cssMouseEvent:function(_2){
if(!this.disabled){
switch(_2.type){
case "mouseenter":
case "mouseover":
this._set("hovering",true);
this._set("active",this._mouseDown);
break;
case "mouseleave":
case "mouseout":
this._set("hovering",false);
this._set("active",false);
break;
case "mousedown":
this._set("active",true);
this._mouseDown=true;
var _3=this.connect(dojo.body(),"onmouseup",function(){
this._mouseDown=false;
this._set("active",false);
this.disconnect(_3);
});
break;
}
}
},_setStateClass:function(){
var _4=this.baseClass.split(" ");
function _5(_6){
_4=_4.concat(dojo.map(_4,function(c){
return c+_6;
}),"dijit"+_6);
};
if(!this.isLeftToRight()){
_5("Rtl");
}
if(this.checked){
_5("Checked");
}
if(this.state){
_5(this.state);
}
if(this.selected){
_5("Selected");
}
if(this.disabled){
_5("Disabled");
}else{
if(this.readOnly){
_5("ReadOnly");
}else{
if(this.active){
_5("Active");
}else{
if(this.hovering){
_5("Hover");
}
}
}
}
if(this._focused){
_5("Focused");
}
var tn=this.stateNode||this.domNode,_7={};
dojo.forEach(tn.className.split(" "),function(c){
_7[c]=true;
});
if("_stateClasses" in this){
dojo.forEach(this._stateClasses,function(c){
delete _7[c];
});
}
dojo.forEach(_4,function(c){
_7[c]=true;
});
var _8=[];
for(var c in _7){
_8.push(c);
}
tn.className=_8.join(" ");
this._stateClasses=_4;
},_trackMouseState:function(_9,_a){
var _b=false,_c=false,_d=false;
var _e=this,cn=dojo.hitch(this,"connect",_9);
function _f(){
var _10=("disabled" in
_e&&_e.disabled)||("readonly" in
_e&&_e.readonly);
dojo.toggleClass(_9,_a+"Hover",_b&&!_c&&!_10);
dojo.toggleClass(_9,_a+"Active",_c&&!_10);
dojo.toggleClass(_9,_a+"Focused",_d&&!_10);
};
cn("onmouseenter",function(){
_b=true;
_f();
});
cn("onmouseleave",function(){
_b=false;
_c=false;
_f();
});
cn("onmousedown",function(){
_c=true;
_f();
});
cn("onmouseup",function(){
_c=false;
_f();
});
cn("onfocus",function(){
_d=true;
_f();
});
cn("onblur",function(){
_d=false;
_f();
});
this.watch("disabled",_f);
this.watch("readOnly",_f);
}});
}
PK�X�[m>����)dojoloader/dojo/1.6.1/dijit/_Templated.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._Templated"]){
dojo._hasResource["dijit._Templated"]=true;
dojo.provide("dijit._Templated");
dojo.require("dijit._Widget");
dojo.require("dojo.string");
dojo.require("dojo.parser");
dojo.require("dojo.cache");
dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){
this._attachPoints=[];
this._attachEvents=[];
},_stringRepl:function(_1){
var _2=this.declaredClass,_3=this;
return dojo.string.substitute(_1,this,function(_4,_5){
if(_5.charAt(0)=="!"){
_4=dojo.getObject(_5.substr(1),false,_3);
}
if(typeof _4=="undefined"){
throw new Error(_2+" template:"+_5);
}
if(_4==null){
return "";
}
return
_5.charAt(0)=="!"?_4:_4.toString().replace(/"/g,"&quot;");
},this);
},buildRendering:function(){
var
_6=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);
var _7;
if(dojo.isString(_6)){
_7=dojo._toDom(this._stringRepl(_6));
if(_7.nodeType!=1){
throw new Error("Invalid template: "+_6);
}
}else{
_7=_6.cloneNode(true);
}
this.domNode=_7;
this.inherited(arguments);
this._attachTemplateNodes(_7);
if(this.widgetsInTemplate){
var
cw=(this._startupWidgets=dojo.parser.parse(_7,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang},propsThis:this,scope:"dojo"}));
this._supportingWidgets=dijit.findWidgets(_7);
this._attachTemplateNodes(cw,function(n,p){
return n[p];
});
}
this._fillContent(this.srcNodeRef);
},_fillContent:function(_8){
var _9=this.containerNode;
if(_8&&_9){
while(_8.hasChildNodes()){
_9.appendChild(_8.firstChild);
}
}
},_attachTemplateNodes:function(_a,_b){
_b=_b||function(n,p){
return n.getAttribute(p);
};
var
_c=dojo.isArray(_a)?_a:(_a.all||_a.getElementsByTagName("*"));
var x=dojo.isArray(_a)?0:-1;
for(;x<_c.length;x++){
var _d=(x==-1)?_a:_c[x];
if(this.widgetsInTemplate&&(_b(_d,"dojoType")||_b(_d,"data-dojo-type"))){
continue;
}
var
_e=_b(_d,"dojoAttachPoint")||_b(_d,"data-dojo-attach-point");
if(_e){
var _f,_10=_e.split(/\s*,\s*/);
while((_f=_10.shift())){
if(dojo.isArray(this[_f])){
this[_f].push(_d);
}else{
this[_f]=_d;
}
this._attachPoints.push(_f);
}
}
var
_11=_b(_d,"dojoAttachEvent")||_b(_d,"data-dojo-attach-event");
if(_11){
var _12,_13=_11.split(/\s*,\s*/);
var _14=dojo.trim;
while((_12=_13.shift())){
if(_12){
var _15=null;
if(_12.indexOf(":")!=-1){
var _16=_12.split(":");
_12=_14(_16[0]);
_15=_14(_16[1]);
}else{
_12=_14(_12);
}
if(!_15){
_15=_12;
}
this._attachEvents.push(this.connect(_d,_12,_15));
}
}
}
var _17=_b(_d,"waiRole");
if(_17){
dijit.setWaiRole(_d,_17);
}
var _18=_b(_d,"waiState");
if(_18){
dojo.forEach(_18.split(/\s*,\s*/),function(_19){
if(_19.indexOf("-")!=-1){
var _1a=_19.split("-");
dijit.setWaiState(_d,_1a[0],_1a[1]);
}
});
}
}
},startup:function(){
dojo.forEach(this._startupWidgets,function(w){
if(w&&!w._started&&w.startup){
w.startup();
}
});
this.inherited(arguments);
},destroyRendering:function(){
dojo.forEach(this._attachPoints,function(_1b){
delete this[_1b];
},this);
this._attachPoints=[];
dojo.forEach(this._attachEvents,this.disconnect,this);
this._attachEvents=[];
this.inherited(arguments);
}});
dijit._Templated._templateCache={};
dijit._Templated.getCachedTemplate=function(_1c,_1d,_1e){
var _1f=dijit._Templated._templateCache;
var key=_1d||_1c;
var _20=_1f[key];
if(_20){
try{
if(!_20.ownerDocument||_20.ownerDocument==dojo.doc){
return _20;
}
}
catch(e){
}
dojo.destroy(_20);
}
if(!_1d){
_1d=dojo.cache(_1c,{sanitize:true});
}
_1d=dojo.string.trim(_1d);
if(_1e||_1d.match(/\$\{([^\}]+)\}/g)){
return (_1f[key]=_1d);
}else{
var _21=dojo._toDom(_1d);
if(_21.nodeType!=1){
throw new Error("Invalid template: "+_1d);
}
return (_1f[key]=_21);
}
};
if(dojo.isIE){
dojo.addOnWindowUnload(function(){
var _22=dijit._Templated._templateCache;
for(var key in _22){
var _23=_22[key];
if(typeof _23=="object"){
dojo.destroy(_23);
}
delete _22[key];
}
});
}
dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});
}
PK�X�[|ͫpkk&dojoloader/dojo/1.6.1/dijit/_Widget.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._Widget"]){
dojo._hasResource["dijit._Widget"]=true;
dojo.provide("dijit._Widget");
dojo.require("dijit._WidgetBase");
dojo.require("dijit._base");
dojo.connect(dojo,"_connect",function(_1,_2){
if(_1&&dojo.isFunction(_1._onConnect)){
_1._onConnect(_2);
}
});
dijit._connectOnUseEventHandler=function(_3){
};
dijit._lastKeyDownNode=null;
if(dojo.isIE){
(function(){
var _4=function(_5){
dijit._lastKeyDownNode=_5.srcElement;
};
dojo.doc.attachEvent("onkeydown",_4);
dojo.addOnWindowUnload(function(){
dojo.doc.detachEvent("onkeydown",_4);
});
})();
}else{
dojo.doc.addEventListener("keydown",function(_6){
dijit._lastKeyDownNode=_6.target;
},true);
}
(function(){
dojo.declare("dijit._Widget",dijit._WidgetBase,{_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,create:function(_7,_8){
this._deferredConnects=dojo.clone(this._deferredConnects);
for(var _9 in this.attributeMap){
delete this._deferredConnects[_9];
}
for(_9 in this._deferredConnects){
if(this[_9]!==dijit._connectOnUseEventHandler){
delete this._deferredConnects[_9];
}
}
this.inherited(arguments);
if(this.domNode){
for(_9 in this.params){
this._onConnect(_9);
}
}
},_onConnect:function(_a){
if(_a in this._deferredConnects){
var _b=this[this._deferredConnects[_a]||"domNode"];
this.connect(_b,_a.toLowerCase(),_a);
delete this._deferredConnects[_a];
}
},focused:false,isFocusable:function(){
return
this.focus&&(dojo.style(this.domNode,"display")!="none");
},onFocus:function(){
},onBlur:function(){
},_onFocus:function(e){
this.onFocus();
},_onBlur:function(){
this.onBlur();
},setAttribute:function(_c,_d){
dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is
deprecated. Use set() instead.","","2.0");
this.set(_c,_d);
},attr:function(_e,_f){
if(dojo.config.isDebug){
var
_10=arguments.callee._ach||(arguments.callee._ach={}),_11=(arguments.callee.caller||"unknown
caller").toString();
if(!_10[_11]){
dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get()
or set() instead, called from "+_11,"","2.0");
_10[_11]=true;
}
}
var _12=arguments.length;
if(_12>=2||typeof _e==="object"){
return this.set.apply(this,arguments);
}else{
return this.get(_e);
}
},nodesWithKeyClick:["input","button"],connect:function(obj,_13,_14){
var
d=dojo,dc=d._connect,_15=this.inherited(arguments,[obj,_13=="ondijitclick"?"onclick":_13,_14]);
if(_13=="ondijitclick"){
if(d.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){
var m=d.hitch(this,_14);
_15.push(dc(obj,"onkeydown",this,function(e){
if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){
dijit._lastKeyDownNode=e.target;
if(!("openDropDown" in this&&obj==this._buttonNode)){
e.preventDefault();
}
}
}),dc(obj,"onkeyup",this,function(e){
if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target==dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){
dijit._lastKeyDownNode=null;
return m(e);
}
}));
}
}
return _15;
},_onShow:function(){
this.onShow();
},onShow:function(){
},onHide:function(){
},onClose:function(){
return true;
}});
})();
}
PK�X�[���499*dojoloader/dojo/1.6.1/dijit/_WidgetBase.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dijit._WidgetBase"]){
dojo._hasResource["dijit._WidgetBase"]=true;
dojo.provide("dijit._WidgetBase");
dojo.require("dijit._base.manager");
dojo.require("dojo.Stateful");
(function(){
dojo.declare("dijit._WidgetBase",dojo.Stateful,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_1,_2){
this.create(_1,_2);
},create:function(_3,_4){
this.srcNodeRef=dojo.byId(_4);
this._connects=[];
this._subscribes=[];
if(this.srcNodeRef&&(typeof
this.srcNodeRef.id=="string")){
this.id=this.srcNodeRef.id;
}
if(_3){
this.params=_3;
dojo._mixin(this,_3);
}
this.postMixInProperties();
if(!this.id){
this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));
}
dijit.registry.add(this);
this.buildRendering();
if(this.domNode){
this._applyAttributes();
var _5=this.srcNodeRef;
if(_5&&_5.parentNode&&this.domNode!==_5){
_5.parentNode.replaceChild(this.domNode,_5);
}
}
if(this.domNode){
this.domNode.setAttribute("widgetId",this.id);
}
this.postCreate();
if(this.srcNodeRef&&!this.srcNodeRef.parentNode){
delete this.srcNodeRef;
}
this._created=true;
},_applyAttributes:function(){
var _6=function(_7,_8){
if((_8.params&&_7 in _8.params)||_8[_7]){
_8.set(_7,_8[_7]);
}
};
for(var _9 in this.attributeMap){
_6(_9,this);
}
dojo.forEach(this._getSetterAttributes(),function(a){
if(!(a in this.attributeMap)){
_6(a,this);
}
},this);
},_getSetterAttributes:function(){
var _a=this.constructor;
if(!_a._setterAttrs){
var r=(_a._setterAttrs=[]),_b,_c=_a.prototype;
for(var _d in _c){
if(dojo.isFunction(_c[_d])&&(_b=_d.match(/^_set([a-zA-Z]*)Attr$/))&&_b[1]){
r.push(_b[1].charAt(0).toLowerCase()+_b[1].substr(1));
}
}
}
return _a._setterAttrs;
},postMixInProperties:function(){
},buildRendering:function(){
if(!this.domNode){
this.domNode=this.srcNodeRef||dojo.create("div");
}
if(this.baseClass){
var _e=this.baseClass.split(" ");
if(!this.isLeftToRight()){
_e=_e.concat(dojo.map(_e,function(_f){
return _f+"Rtl";
}));
}
dojo.addClass(this.domNode,_e);
}
},postCreate:function(){
},startup:function(){
this._started=true;
},destroyRecursive:function(_10){
this._beingDestroyed=true;
this.destroyDescendants(_10);
this.destroy(_10);
},destroy:function(_11){
this._beingDestroyed=true;
this.uninitialize();
var d=dojo,dfe=d.forEach,dun=d.unsubscribe;
dfe(this._connects,function(_12){
dfe(_12,d.disconnect);
});
dfe(this._subscribes,function(_13){
dun(_13);
});
dfe(this._supportingWidgets||[],function(w){
if(w.destroyRecursive){
w.destroyRecursive();
}else{
if(w.destroy){
w.destroy();
}
}
});
this.destroyRendering(_11);
dijit.registry.remove(this.id);
this._destroyed=true;
},destroyRendering:function(_14){
if(this.bgIframe){
this.bgIframe.destroy(_14);
delete this.bgIframe;
}
if(this.domNode){
if(_14){
dojo.removeAttr(this.domNode,"widgetId");
}else{
dojo.destroy(this.domNode);
}
delete this.domNode;
}
if(this.srcNodeRef){
if(!_14){
dojo.destroy(this.srcNodeRef);
}
delete this.srcNodeRef;
}
},destroyDescendants:function(_15){
dojo.forEach(this.getChildren(),function(_16){
if(_16.destroyRecursive){
_16.destroyRecursive(_15);
}
});
},uninitialize:function(){
return false;
},_setClassAttr:function(_17){
var _18=this[this.attributeMap["class"]||"domNode"];
dojo.replaceClass(_18,_17,this["class"]);
this._set("class",_17);
},_setStyleAttr:function(_19){
var _1a=this[this.attributeMap.style||"domNode"];
if(dojo.isObject(_19)){
dojo.style(_1a,_19);
}else{
if(_1a.style.cssText){
_1a.style.cssText+="; "+_19;
}else{
_1a.style.cssText=_19;
}
}
this._set("style",_19);
},_attrToDom:function(_1b,_1c){
var _1d=this.attributeMap[_1b];
dojo.forEach(dojo.isArray(_1d)?_1d:[_1d],function(_1e){
var _1f=this[_1e.node||_1e||"domNode"];
var _20=_1e.type||"attribute";
switch(_20){
case "attribute":
if(dojo.isFunction(_1c)){
_1c=dojo.hitch(this,_1c);
}
var
_21=_1e.attribute?_1e.attribute:(/^on[A-Z][a-zA-Z]*$/.test(_1b)?_1b.toLowerCase():_1b);
dojo.attr(_1f,_21,_1c);
break;
case "innerText":
_1f.innerHTML="";
_1f.appendChild(dojo.doc.createTextNode(_1c));
break;
case "innerHTML":
_1f.innerHTML=_1c;
break;
case "class":
dojo.replaceClass(_1f,_1c,this[_1b]);
break;
}
},this);
},get:function(_22){
var _23=this._getAttrNames(_22);
return this[_23.g]?this[_23.g]():this[_22];
},set:function(_24,_25){
if(typeof _24==="object"){
for(var x in _24){
this.set(x,_24[x]);
}
return this;
}
var _26=this._getAttrNames(_24);
if(this[_26.s]){
var _27=this[_26.s].apply(this,Array.prototype.slice.call(arguments,1));
}else{
if(_24 in this.attributeMap){
this._attrToDom(_24,_25);
}
this._set(_24,_25);
}
return _27||this;
},_attrPairNames:{},_getAttrNames:function(_28){
var apn=this._attrPairNames;
if(apn[_28]){
return apn[_28];
}
var uc=_28.charAt(0).toUpperCase()+_28.substr(1);
return
(apn[_28]={n:_28+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});
},_set:function(_29,_2a){
var _2b=this[_29];
this[_29]=_2a;
if(this._watchCallbacks&&this._created&&_2a!==_2b){
this._watchCallbacks(_29,_2b,_2a);
}
},toString:function(){
return "[Widget "+this.declaredClass+",
"+(this.id||"NO ID")+"]";
},getDescendants:function(){
return
this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[];
},getChildren:function(){
return this.containerNode?dijit.findWidgets(this.containerNode):[];
},connect:function(obj,_2c,_2d){
var _2e=[dojo._connect(obj,_2c,this,_2d)];
this._connects.push(_2e);
return _2e;
},disconnect:function(_2f){
for(var i=0;i<this._connects.length;i++){
if(this._connects[i]==_2f){
dojo.forEach(_2f,dojo.disconnect);
this._connects.splice(i,1);
return;
}
}
},subscribe:function(_30,_31){
var _32=dojo.subscribe(_30,this,_31);
this._subscribes.push(_32);
return _32;
},unsubscribe:function(_33){
for(var i=0;i<this._subscribes.length;i++){
if(this._subscribes[i]==_33){
dojo.unsubscribe(_33);
this._subscribes.splice(i,1);
return;
}
}
},isLeftToRight:function(){
return this.dir?(this.dir=="ltr"):dojo._isBodyLtr();
},placeAt:function(_34,_35){
if(_34.declaredClass&&_34.addChild){
_34.addChild(this,_35);
}else{
dojo.place(this.domNode,_34,_35);
}
return this;
}});
})();
}
PK�X�[�z��-dojoloader/dojo/1.6.1/dojo/AdapterRegistry.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.AdapterRegistry"]){
dojo._hasResource["dojo.AdapterRegistry"]=true;
dojo.provide("dojo.AdapterRegistry");
dojo.AdapterRegistry=function(_1){
this.pairs=[];
this.returnWrappers=_1||false;
};
dojo.extend(dojo.AdapterRegistry,{register:function(_2,_3,_4,_5,_6){
this.pairs[((_6)?"unshift":"push")]([_2,_3,_4,_5]);
},match:function(){
for(var i=0;i<this.pairs.length;i++){
var _7=this.pairs[i];
if(_7[1].apply(this,arguments)){
if((_7[3])||(this.returnWrappers)){
return _7[2];
}else{
return _7[2].apply(this,arguments);
}
}
}
throw new Error("No match found");
},unregister:function(_8){
for(var i=0;i<this.pairs.length;i++){
var _9=this.pairs[i];
if(_9[0]==_8){
this.pairs.splice(i,1);
return true;
}
}
return false;
}});
}
PK�X�[�P�

#dojoloader/dojo/1.6.1/dojo/cache.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.cache"]){
dojo._hasResource["dojo.cache"]=true;
dojo.provide("dojo.cache");
var cache={};
dojo.cache=function(_1,_2,_3){
if(typeof _1=="string"){
var _4=dojo.moduleUrl(_1,_2);
}else{
_4=_1;
_3=_2;
}
var _5=_4.toString();
var _6=_3;
if(_3!=undefined&&!dojo.isString(_3)){
_6=("value" in _3?_3.value:undefined);
}
var _7=_3&&_3.sanitize?true:false;
if(typeof _6=="string"){
_6=cache[_5]=_7?dojo.cache._sanitize(_6):_6;
}else{
if(_6===null){
delete cache[_5];
}else{
if(!(_5 in cache)){
_6=dojo._getText(_5);
cache[_5]=_7?dojo.cache._sanitize(_6):_6;
}
_6=cache[_5];
}
}
return _6;
};
dojo.cache._sanitize=function(_8){
if(_8){
_8=_8.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");
var _9=_8.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
if(_9){
_8=_9[1];
}
}else{
_8="";
}
return _8;
};
}
PK�X�[�)���$dojoloader/dojo/1.6.1/dojo/cookie.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.cookie"]){
dojo._hasResource["dojo.cookie"]=true;
dojo.provide("dojo.cookie");
dojo.require("dojo.regexp");
dojo.cookie=function(_1,_2,_3){
var c=document.cookie;
if(arguments.length==1){
var _4=c.match(new RegExp("(?:^|;
)"+dojo.regexp.escapeString(_1)+"=([^;]*)"));
return _4?decodeURIComponent(_4[1]):undefined;
}else{
_3=_3||{};
var _5=_3.expires;
if(typeof _5=="number"){
var d=new Date();
d.setTime(d.getTime()+_5*24*60*60*1000);
_5=_3.expires=d;
}
if(_5&&_5.toUTCString){
_3.expires=_5.toUTCString();
}
_2=encodeURIComponent(_2);
var _6=_1+"="+_2,_7;
for(_7 in _3){
_6+="; "+_7;
var _8=_3[_7];
if(_8!==true){
_6+="="+_8;
}
}
document.cookie=_6;
}
};
dojo.cookie.isSupported=function(){
if(!("cookieEnabled" in navigator)){
this("__djCookieTest__","CookiesAllowed");
navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";
if(navigator.cookieEnabled){
this("__djCookieTest__","",{expires:-1});
}
}
return navigator.cookieEnabled;
};
}
PK�X�[
�H''*dojoloader/dojo/1.6.1/dojo/data/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[�N�)!5!54dojoloader/dojo/1.6.1/dojo/data/ItemFileReadStore.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){
dojo._hasResource["dojo.data.ItemFileReadStore"]=true;
dojo.provide("dojo.data.ItemFileReadStore");
dojo.require("dojo.data.util.filter");
dojo.require("dojo.data.util.simpleFetch");
dojo.require("dojo.date.stamp");
dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(_1){
this._arrayOfAllItems=[];
this._arrayOfTopLevelItems=[];
this._loadFinished=false;
this._jsonFileUrl=_1.url;
this._ccUrl=_1.url;
this.url=_1.url;
this._jsonData=_1.data;
this.data=null;
this._datatypeMap=_1.typeMap||{};
if(!this._datatypeMap["Date"]){
this._datatypeMap["Date"]={type:Date,deserialize:function(_2){
return dojo.date.stamp.fromISOString(_2);
}};
}
this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};
this._itemsByIdentity=null;
this._storeRefPropName="_S";
this._itemNumPropName="_0";
this._rootItemPropName="_RI";
this._reverseRefMap="_RRM";
this._loadInProgress=false;
this._queuedFetches=[];
if(_1.urlPreventCache!==undefined){
this.urlPreventCache=_1.urlPreventCache?true:false;
}
if(_1.hierarchical!==undefined){
this.hierarchical=_1.hierarchical?true:false;
}
if(_1.clearOnClose){
this.clearOnClose=true;
}
if("failOk" in _1){
this.failOk=_1.failOk?true:false;
}
},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(_3){
if(!this.isItem(_3)){
throw new Error("dojo.data.ItemFileReadStore: Invalid item
argument.");
}
},_assertIsAttribute:function(_4){
if(typeof _4!=="string"){
throw new Error("dojo.data.ItemFileReadStore: Invalid attribute
argument.");
}
},getValue:function(_5,_6,_7){
var _8=this.getValues(_5,_6);
return (_8.length>0)?_8[0]:_7;
},getValues:function(_9,_a){
this._assertIsItem(_9);
this._assertIsAttribute(_a);
return (_9[_a]||[]).slice(0);
},getAttributes:function(_b){
this._assertIsItem(_b);
var _c=[];
for(var _d in _b){
if((_d!==this._storeRefPropName)&&(_d!==this._itemNumPropName)&&(_d!==this._rootItemPropName)&&(_d!==this._reverseRefMap)){
_c.push(_d);
}
}
return _c;
},hasAttribute:function(_e,_f){
this._assertIsItem(_e);
this._assertIsAttribute(_f);
return (_f in _e);
},containsValue:function(_10,_11,_12){
var _13=undefined;
if(typeof _12==="string"){
_13=dojo.data.util.filter.patternToRegExp(_12,false);
}
return this._containsValue(_10,_11,_12,_13);
},_containsValue:function(_14,_15,_16,_17){
return dojo.some(this.getValues(_14,_15),function(_18){
if(_18!==null&&!dojo.isObject(_18)&&_17){
if(_18.toString().match(_17)){
return true;
}
}else{
if(_16===_18){
return true;
}
}
});
},isItem:function(_19){
if(_19&&_19[this._storeRefPropName]===this){
if(this._arrayOfAllItems[_19[this._itemNumPropName]]===_19){
return true;
}
}
return false;
},isItemLoaded:function(_1a){
return this.isItem(_1a);
},loadItem:function(_1b){
this._assertIsItem(_1b.item);
},getFeatures:function(){
return this._features;
},getLabel:function(_1c){
if(this._labelAttr&&this.isItem(_1c)){
return this.getValue(_1c,this._labelAttr);
}
return undefined;
},getLabelAttributes:function(_1d){
if(this._labelAttr){
return [this._labelAttr];
}
return null;
},_fetchItems:function(_1e,_1f,_20){
var _21=this,_22=function(_23,_24){
var _25=[],i,key;
if(_23.query){
var _26,_27=_23.queryOptions?_23.queryOptions.ignoreCase:false;
var _28={};
for(key in _23.query){
_26=_23.query[key];
if(typeof _26==="string"){
_28[key]=dojo.data.util.filter.patternToRegExp(_26,_27);
}else{
if(_26 instanceof RegExp){
_28[key]=_26;
}
}
}
for(i=0;i<_24.length;++i){
var _29=true;
var _2a=_24[i];
if(_2a===null){
_29=false;
}else{
for(key in _23.query){
_26=_23.query[key];
if(!_21._containsValue(_2a,key,_26,_28[key])){
_29=false;
}
}
}
if(_29){
_25.push(_2a);
}
}
_1f(_25,_23);
}else{
for(i=0;i<_24.length;++i){
var _2b=_24[i];
if(_2b!==null){
_25.push(_2b);
}
}
_1f(_25,_23);
}
};
if(this._loadFinished){
_22(_1e,this._getItemsArray(_1e.queryOptions));
}else{
if(this._jsonFileUrl!==this._ccUrl){
dojo.deprecated("dojo.data.ItemFileReadStore: ","To change
the url, set the url property of the store,"+" not _jsonFileUrl. 
_jsonFileUrl support will be removed in 2.0");
this._ccUrl=this._jsonFileUrl;
this.url=this._jsonFileUrl;
}else{
if(this.url!==this._ccUrl){
this._jsonFileUrl=this.url;
this._ccUrl=this.url;
}
}
if(this.data!=null){
this._jsonData=this.data;
this.data=null;
}
if(this._jsonFileUrl){
if(this._loadInProgress){
this._queuedFetches.push({args:_1e,filter:_22});
}else{
this._loadInProgress=true;
var
_2c={url:_21._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};
var _2d=dojo.xhrGet(_2c);
_2d.addCallback(function(_2e){
try{
_21._getItemsFromLoadedData(_2e);
_21._loadFinished=true;
_21._loadInProgress=false;
_22(_1e,_21._getItemsArray(_1e.queryOptions));
_21._handleQueuedFetches();
}
catch(e){
_21._loadFinished=true;
_21._loadInProgress=false;
_20(e,_1e);
}
});
_2d.addErrback(function(_2f){
_21._loadInProgress=false;
_20(_2f,_1e);
});
var _30=null;
if(_1e.abort){
_30=_1e.abort;
}
_1e.abort=function(){
var df=_2d;
if(df&&df.fired===-1){
df.cancel();
df=null;
}
if(_30){
_30.call(_1e);
}
};
}
}else{
if(this._jsonData){
try{
this._loadFinished=true;
this._getItemsFromLoadedData(this._jsonData);
this._jsonData=null;
_22(_1e,this._getItemsArray(_1e.queryOptions));
}
catch(e){
_20(e,_1e);
}
}else{
_20(new Error("dojo.data.ItemFileReadStore: No JSON source data was
provided as either URL or a nested Javascript object."),_1e);
}
}
}
},_handleQueuedFetches:function(){
if(this._queuedFetches.length>0){
for(var i=0;i<this._queuedFetches.length;i++){
var _31=this._queuedFetches[i],_32=_31.args,_33=_31.filter;
if(_33){
_33(_32,this._getItemsArray(_32.queryOptions));
}else{
this.fetchItemByIdentity(_32);
}
}
this._queuedFetches=[];
}
},_getItemsArray:function(_34){
if(_34&&_34.deep){
return this._arrayOfAllItems;
}
return this._arrayOfTopLevelItems;
},close:function(_35){
if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){
if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){
}
this._arrayOfAllItems=[];
this._arrayOfTopLevelItems=[];
this._loadFinished=false;
this._itemsByIdentity=null;
this._loadInProgress=false;
this._queuedFetches=[];
}
},_getItemsFromLoadedData:function(_36){
var _37=false,_38=this;
function _39(_3a){
var _3b=((_3a!==null)&&(typeof
_3a==="object")&&(!dojo.isArray(_3a)||_37)&&(!dojo.isFunction(_3a))&&(_3a.constructor==Object||dojo.isArray(_3a))&&(typeof
_3a._reference==="undefined")&&(typeof
_3a._type==="undefined")&&(typeof
_3a._value==="undefined")&&_38.hierarchical);
return _3b;
};
function _3c(_3d){
_38._arrayOfAllItems.push(_3d);
for(var _3e in _3d){
var _3f=_3d[_3e];
if(_3f){
if(dojo.isArray(_3f)){
var _40=_3f;
for(var k=0;k<_40.length;++k){
var _41=_40[k];
if(_39(_41)){
_3c(_41);
}
}
}else{
if(_39(_3f)){
_3c(_3f);
}
}
}
}
};
this._labelAttr=_36.label;
var i,_42;
this._arrayOfAllItems=[];
this._arrayOfTopLevelItems=_36.items;
for(i=0;i<this._arrayOfTopLevelItems.length;++i){
_42=this._arrayOfTopLevelItems[i];
if(dojo.isArray(_42)){
_37=true;
}
_3c(_42);
_42[this._rootItemPropName]=true;
}
var _43={},key;
for(i=0;i<this._arrayOfAllItems.length;++i){
_42=this._arrayOfAllItems[i];
for(key in _42){
if(key!==this._rootItemPropName){
var _44=_42[key];
if(_44!==null){
if(!dojo.isArray(_44)){
_42[key]=[_44];
}
}else{
_42[key]=[null];
}
}
_43[key]=key;
}
}
while(_43[this._storeRefPropName]){
this._storeRefPropName+="_";
}
while(_43[this._itemNumPropName]){
this._itemNumPropName+="_";
}
while(_43[this._reverseRefMap]){
this._reverseRefMap+="_";
}
var _45;
var _46=_36.identifier;
if(_46){
this._itemsByIdentity={};
this._features["dojo.data.api.Identity"]=_46;
for(i=0;i<this._arrayOfAllItems.length;++i){
_42=this._arrayOfAllItems[i];
_45=_42[_46];
var _47=_45[0];
if(!Object.hasOwnProperty.call(this._itemsByIdentity,_47)){
this._itemsByIdentity[_47]=_42;
}else{
if(this._jsonFileUrl){
throw new Error("dojo.data.ItemFileReadStore:  The json data as
specified by: ["+this._jsonFileUrl+"] is malformed.  Items within
the list have identifier: ["+_46+"].  Value collided:
["+_47+"]");
}else{
if(this._jsonData){
throw new Error("dojo.data.ItemFileReadStore:  The json data provided
by the creation arguments is malformed.  Items within the list have
identifier: ["+_46+"].  Value collided:
["+_47+"]");
}
}
}
}
}else{
this._features["dojo.data.api.Identity"]=Number;
}
for(i=0;i<this._arrayOfAllItems.length;++i){
_42=this._arrayOfAllItems[i];
_42[this._storeRefPropName]=this;
_42[this._itemNumPropName]=i;
}
for(i=0;i<this._arrayOfAllItems.length;++i){
_42=this._arrayOfAllItems[i];
for(key in _42){
_45=_42[key];
for(var j=0;j<_45.length;++j){
_44=_45[j];
if(_44!==null&&typeof _44=="object"){
if(("_type" in _44)&&("_value" in _44)){
var _48=_44._type;
var _49=this._datatypeMap[_48];
if(!_49){
throw new Error("dojo.data.ItemFileReadStore: in the typeMap
constructor arg, no object class was specified for the datatype
'"+_48+"'");
}else{
if(dojo.isFunction(_49)){
_45[j]=new _49(_44._value);
}else{
if(dojo.isFunction(_49.deserialize)){
_45[j]=_49.deserialize(_44._value);
}else{
throw new Error("dojo.data.ItemFileReadStore: Value provided in
typeMap was neither a constructor, nor a an object with a deserialize
function");
}
}
}
}
if(_44._reference){
var _4a=_44._reference;
if(!dojo.isObject(_4a)){
_45[j]=this._getItemByIdentity(_4a);
}else{
for(var k=0;k<this._arrayOfAllItems.length;++k){
var _4b=this._arrayOfAllItems[k],_4c=true;
for(var _4d in _4a){
if(_4b[_4d]!=_4a[_4d]){
_4c=false;
}
}
if(_4c){
_45[j]=_4b;
}
}
}
if(this.referenceIntegrity){
var _4e=_45[j];
if(this.isItem(_4e)){
this._addReferenceToMap(_4e,_42,key);
}
}
}else{
if(this.isItem(_44)){
if(this.referenceIntegrity){
this._addReferenceToMap(_44,_42,key);
}
}
}
}
}
}
}
},_addReferenceToMap:function(_4f,_50,_51){
},getIdentity:function(_52){
var _53=this._features["dojo.data.api.Identity"];
if(_53===Number){
return _52[this._itemNumPropName];
}else{
var _54=_52[_53];
if(_54){
return _54[0];
}
}
return null;
},fetchItemByIdentity:function(_55){
var _56,_57;
if(!this._loadFinished){
var _58=this;
if(this._jsonFileUrl!==this._ccUrl){
dojo.deprecated("dojo.data.ItemFileReadStore: ","To change
the url, set the url property of the store,"+" not _jsonFileUrl. 
_jsonFileUrl support will be removed in 2.0");
this._ccUrl=this._jsonFileUrl;
this.url=this._jsonFileUrl;
}else{
if(this.url!==this._ccUrl){
this._jsonFileUrl=this.url;
this._ccUrl=this.url;
}
}
if(this.data!=null&&this._jsonData==null){
this._jsonData=this.data;
this.data=null;
}
if(this._jsonFileUrl){
if(this._loadInProgress){
this._queuedFetches.push({args:_55});
}else{
this._loadInProgress=true;
var
_59={url:_58._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};
var _5a=dojo.xhrGet(_59);
_5a.addCallback(function(_5b){
var _5c=_55.scope?_55.scope:dojo.global;
try{
_58._getItemsFromLoadedData(_5b);
_58._loadFinished=true;
_58._loadInProgress=false;
_56=_58._getItemByIdentity(_55.identity);
if(_55.onItem){
_55.onItem.call(_5c,_56);
}
_58._handleQueuedFetches();
}
catch(error){
_58._loadInProgress=false;
if(_55.onError){
_55.onError.call(_5c,error);
}
}
});
_5a.addErrback(function(_5d){
_58._loadInProgress=false;
if(_55.onError){
var _5e=_55.scope?_55.scope:dojo.global;
_55.onError.call(_5e,_5d);
}
});
}
}else{
if(this._jsonData){
_58._getItemsFromLoadedData(_58._jsonData);
_58._jsonData=null;
_58._loadFinished=true;
_56=_58._getItemByIdentity(_55.identity);
if(_55.onItem){
_57=_55.scope?_55.scope:dojo.global;
_55.onItem.call(_57,_56);
}
}
}
}else{
_56=this._getItemByIdentity(_55.identity);
if(_55.onItem){
_57=_55.scope?_55.scope:dojo.global;
_55.onItem.call(_57,_56);
}
}
},_getItemByIdentity:function(_5f){
var _60=null;
if(this._itemsByIdentity&&Object.hasOwnProperty.call(this._itemsByIdentity,_5f)){
_60=this._itemsByIdentity[_5f];
}else{
if(Object.hasOwnProperty.call(this._arrayOfAllItems,_5f)){
_60=this._arrayOfAllItems[_5f];
}
}
if(_60===undefined){
_60=null;
}
return _60;
},getIdentityAttributes:function(_61){
var _62=this._features["dojo.data.api.Identity"];
if(_62===Number){
return null;
}else{
return [_62];
}
},_forceLoad:function(){
var _63=this;
if(this._jsonFileUrl!==this._ccUrl){
dojo.deprecated("dojo.data.ItemFileReadStore: ","To change
the url, set the url property of the store,"+" not _jsonFileUrl. 
_jsonFileUrl support will be removed in 2.0");
this._ccUrl=this._jsonFileUrl;
this.url=this._jsonFileUrl;
}else{
if(this.url!==this._ccUrl){
this._jsonFileUrl=this.url;
this._ccUrl=this.url;
}
}
if(this.data!=null){
this._jsonData=this.data;
this.data=null;
}
if(this._jsonFileUrl){
var
_64={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};
var _65=dojo.xhrGet(_64);
_65.addCallback(function(_66){
try{
if(_63._loadInProgress!==true&&!_63._loadFinished){
_63._getItemsFromLoadedData(_66);
_63._loadFinished=true;
}else{
if(_63._loadInProgress){
throw new Error("dojo.data.ItemFileReadStore:  Unable to perform a
synchronous load, an async load is in progress.");
}
}
}
catch(e){
throw e;
}
});
_65.addErrback(function(_67){
throw _67;
});
}else{
if(this._jsonData){
_63._getItemsFromLoadedData(_63._jsonData);
_63._jsonData=null;
_63._loadFinished=true;
}
}
}});
dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch);
}
PK�X�[�`F�UU.dojoloader/dojo/1.6.1/dojo/data/util/filter.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.data.util.filter"]){
dojo._hasResource["dojo.data.util.filter"]=true;
dojo.provide("dojo.data.util.filter");
dojo.getObject("data.util.filter",true,dojo);
dojo.data.util.filter.patternToRegExp=function(_1,_2){
var _3="^";
var c=null;
for(var i=0;i<_1.length;i++){
c=_1.charAt(i);
switch(c){
case "\\":
_3+=c;
i++;
_3+=_1.charAt(i);
break;
case "*":
_3+=".*";
break;
case "?":
_3+=".";
break;
case "$":
case "^":
case "/":
case "+":
case ".":
case "|":
case "(":
case ")":
case "{":
case "}":
case "[":
case "]":
_3+="\\";
default:
_3+=c;
}
}
_3+="$";
if(_2){
return new RegExp(_3,"mi");
}else{
return new RegExp(_3,"m");
}
};
}
PK�X�[
�H''/dojoloader/dojo/1.6.1/dojo/data/util/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[k�s!!3dojoloader/dojo/1.6.1/dojo/data/util/simpleFetch.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.data.util.simpleFetch"]){
dojo._hasResource["dojo.data.util.simpleFetch"]=true;
dojo.provide("dojo.data.util.simpleFetch");
dojo.require("dojo.data.util.sorter");
dojo.getObject("data.util.simpleFetch",true,dojo);
dojo.data.util.simpleFetch.fetch=function(_1){
_1=_1||{};
if(!_1.store){
_1.store=this;
}
var _2=this;
var _3=function(_4,_5){
if(_5.onError){
var _6=_5.scope||dojo.global;
_5.onError.call(_6,_4,_5);
}
};
var _7=function(_8,_9){
var _a=_9.abort||null;
var _b=false;
var _c=_9.start?_9.start:0;
var _d=(_9.count&&(_9.count!==Infinity))?(_c+_9.count):_8.length;
_9.abort=function(){
_b=true;
if(_a){
_a.call(_9);
}
};
var _e=_9.scope||dojo.global;
if(!_9.store){
_9.store=_2;
}
if(_9.onBegin){
_9.onBegin.call(_e,_8.length,_9);
}
if(_9.sort){
_8.sort(dojo.data.util.sorter.createSortFunction(_9.sort,_2));
}
if(_9.onItem){
for(var i=_c;(i<_8.length)&&(i<_d);++i){
var _f=_8[i];
if(!_b){
_9.onItem.call(_e,_f,_9);
}
}
}
if(_9.onComplete&&!_b){
var _10=null;
if(!_9.onItem){
_10=_8.slice(_c,_d);
}
_9.onComplete.call(_e,_10,_9);
}
};
this._fetchItems(_1,_7,_3);
return _1;
};
}
PK�X�[�i���.dojoloader/dojo/1.6.1/dojo/data/util/sorter.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.data.util.sorter"]){
dojo._hasResource["dojo.data.util.sorter"]=true;
dojo.provide("dojo.data.util.sorter");
dojo.getObject("data.util.sorter",true,dojo);
dojo.data.util.sorter.basicComparator=function(a,b){
var r=-1;
if(a===null){
a=undefined;
}
if(b===null){
b=undefined;
}
if(a==b){
r=0;
}else{
if(a>b||a==null){
r=1;
}
}
return r;
};
dojo.data.util.sorter.createSortFunction=function(_1,_2){
var _3=[];
function _4(_5,_6,_7,s){
return function(_8,_9){
var a=s.getValue(_8,_5);
var b=s.getValue(_9,_5);
return _6*_7(a,b);
};
};
var _a;
var _b=_2.comparatorMap;
var bc=dojo.data.util.sorter.basicComparator;
for(var i=0;i<_1.length;i++){
_a=_1[i];
var _c=_a.attribute;
if(_c){
var _d=(_a.descending)?-1:1;
var _e=bc;
if(_b){
if(typeof _c!=="string"&&("toString" in _c)){
_c=_c.toString();
}
_e=_b[_c]||bc;
}
_3.push(_4(_c,_d,_e,_2));
}
}
return function(_f,_10){
var i=0;
while(i<_3.length){
var ret=_3[i++](_f,_10);
if(ret!==0){
return ret;
}
}
return 0;
};
};
}
PK�X�[
�H''*dojoloader/dojo/1.6.1/dojo/date/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[]A���(dojoloader/dojo/1.6.1/dojo/date/stamp.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.date.stamp"]){
dojo._hasResource["dojo.date.stamp"]=true;
dojo.provide("dojo.date.stamp");
dojo.getObject("date.stamp",true,dojo);
dojo.date.stamp.fromISOString=function(_1,_2){
if(!dojo.date.stamp._isoRegExp){
dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;
}
var _3=dojo.date.stamp._isoRegExp.exec(_1),_4=null;
if(_3){
_3.shift();
if(_3[1]){
_3[1]--;
}
if(_3[6]){
_3[6]*=1000;
}
if(_2){
_2=new Date(_2);
dojo.forEach(dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_5){
return _2["get"+_5]();
}),function(_6,_7){
_3[_7]=_3[_7]||_6;
});
}
_4=new
Date(_3[0]||1970,_3[1]||0,_3[2]||1,_3[3]||0,_3[4]||0,_3[5]||0,_3[6]||0);
if(_3[0]<100){
_4.setFullYear(_3[0]||1970);
}
var _8=0,_9=_3[7]&&_3[7].charAt(0);
if(_9!="Z"){
_8=((_3[8]||0)*60)+(Number(_3[9])||0);
if(_9!="-"){
_8*=-1;
}
}
if(_9){
_8-=_4.getTimezoneOffset();
}
if(_8){
_4.setTime(_4.getTime()+_8*60000);
}
}
return _4;
};
dojo.date.stamp.toISOString=function(_a,_b){
var _c=function(n){
return (n<10)?"0"+n:n;
};
_b=_b||{};
var _d=[],_e=_b.zulu?"getUTC":"get",_f="";
if(_b.selector!="time"){
var _10=_a[_e+"FullYear"]();
_f=["0000".substr((_10+"").length)+_10,_c(_a[_e+"Month"]()+1),_c(_a[_e+"Date"]())].join("-");
}
_d.push(_f);
if(_b.selector!="date"){
var
_11=[_c(_a[_e+"Hours"]()),_c(_a[_e+"Minutes"]()),_c(_a[_e+"Seconds"]())].join(":");
var _12=_a[_e+"Milliseconds"]();
if(_b.milliseconds){
_11+="."+(_12<100?"0":"")+_c(_12);
}
if(_b.zulu){
_11+="Z";
}else{
if(_b.selector!="time"){
var _13=_a.getTimezoneOffset();
var _14=Math.abs(_13);
_11+=(_13>0?"-":"+")+_c(Math.floor(_14/60))+":"+_c(_14%60);
}
}
_d.push(_11);
}
return _d.join("T");
};
}
PK�X�[�@18*dojoloader/dojo/1.6.1/dojo/DeferredList.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.DeferredList"]){
dojo._hasResource["dojo.DeferredList"]=true;
dojo.provide("dojo.DeferredList");
dojo.DeferredList=function(_1,_2,_3,_4,_5){
var _6=[];
dojo.Deferred.call(this);
var _7=this;
if(_1.length===0&&!_2){
this.resolve([0,[]]);
}
var _8=0;
dojo.forEach(_1,function(_9,i){
_9.then(function(_a){
if(_2){
_7.resolve([i,_a]);
}else{
_b(true,_a);
}
},function(_c){
if(_3){
_7.reject(_c);
}else{
_b(false,_c);
}
if(_4){
return null;
}
throw _c;
});
function _b(_d,_e){
_6[i]=[_d,_e];
_8++;
if(_8===_1.length){
_7.resolve(_6);
}
};
});
};
dojo.DeferredList.prototype=new dojo.Deferred();
dojo.DeferredList.prototype.gatherResults=function(_f){
var d=new dojo.DeferredList(_f,false,true,false);
d.addCallback(function(_10){
var ret=[];
dojo.forEach(_10,function(_11){
ret.push(_11[1]);
});
return ret;
});
return d;
};
}
PK�X�[�����(dojoloader/dojo/1.6.1/dojo/dnd/common.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.dnd.common"]){
dojo._hasResource["dojo.dnd.common"]=true;
dojo.provide("dojo.dnd.common");
dojo.getObject("dnd",true,dojo);
dojo.dnd.getCopyKeyState=dojo.isCopyKey;
dojo.dnd._uniqueId=0;
dojo.dnd.getUniqueId=function(){
var id;
do{
id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);
}while(dojo.byId(id));
return id;
};
dojo.dnd._empty={};
dojo.dnd.isFormElement=function(e){
var t=e.target;
if(t.nodeType==3){
t=t.parentNode;
}
return " button textarea input select option ".indexOf("
"+t.tagName.toLowerCase()+" ")>=0;
};
}
PK�X�[�8��66+dojoloader/dojo/1.6.1/dojo/dnd/Container.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.dnd.Container"]){
dojo._hasResource["dojo.dnd.Container"]=true;
dojo.provide("dojo.dnd.Container");
dojo.require("dojo.dnd.common");
dojo.require("dojo.parser");
dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(_1,_2){
this.node=dojo.byId(_1);
if(!_2){
_2={};
}
this.creator=_2.creator||null;
this.skipForm=_2.skipForm;
this.parent=_2.dropParent&&dojo.byId(_2.dropParent);
this.map={};
this.current=null;
this.containerState="";
dojo.addClass(this.node,"dojoDndContainer");
if(!(_2&&_2._skipStartup)){
this.startup();
}
this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];
},creator:function(){
},getItem:function(_3){
return this.map[_3];
},setItem:function(_4,_5){
this.map[_4]=_5;
},delItem:function(_6){
delete this.map[_6];
},forInItems:function(f,o){
o=o||dojo.global;
var m=this.map,e=dojo.dnd._empty;
for(var i in m){
if(i in e){
continue;
}
f.call(o,m[i],i,this);
}
return o;
},clearItems:function(){
this.map={};
},getAllNodes:function(){
return dojo.query("> .dojoDndItem",this.parent);
},sync:function(){
var _7={};
this.getAllNodes().forEach(function(_8){
if(_8.id){
var _9=this.getItem(_8.id);
if(_9){
_7[_8.id]=_9;
return;
}
}else{
_8.id=dojo.dnd.getUniqueId();
}
var
_a=_8.getAttribute("dndType"),_b=_8.getAttribute("dndData");
_7[_8.id]={data:_b||_8.innerHTML,type:_a?_a.split(/\s*,\s*/):["text"]};
},this);
this.map=_7;
return this;
},insertNodes:function(_c,_d,_e){
if(!this.parent.firstChild){
_e=null;
}else{
if(_d){
if(!_e){
_e=this.parent.firstChild;
}
}else{
if(_e){
_e=_e.nextSibling;
}
}
}
if(_e){
for(var i=0;i<_c.length;++i){
var t=this._normalizedCreator(_c[i]);
this.setItem(t.node.id,{data:t.data,type:t.type});
this.parent.insertBefore(t.node,_e);
}
}else{
for(var i=0;i<_c.length;++i){
var t=this._normalizedCreator(_c[i]);
this.setItem(t.node.id,{data:t.data,type:t.type});
this.parent.appendChild(t.node);
}
}
return this;
},destroy:function(){
dojo.forEach(this.events,dojo.disconnect);
this.clearItems();
this.node=this.parent=this.current=null;
},markupFactory:function(_f,_10){
_f._skipStartup=true;
return new dojo.dnd.Container(_10,_f);
},startup:function(){
if(!this.parent){
this.parent=this.node;
if(this.parent.tagName.toLowerCase()=="table"){
var c=this.parent.getElementsByTagName("tbody");
if(c&&c.length){
this.parent=c[0];
}
}
}
this.defaultCreator=dojo.dnd._defaultCreator(this.parent);
this.sync();
},onMouseOver:function(e){
var n=e.relatedTarget;
while(n){
if(n==this.node){
break;
}
try{
n=n.parentNode;
}
catch(x){
n=null;
}
}
if(!n){
this._changeState("Container","Over");
this.onOverEvent();
}
n=this._getChildByEvent(e);
if(this.current==n){
return;
}
if(this.current){
this._removeItemClass(this.current,"Over");
}
if(n){
this._addItemClass(n,"Over");
}
this.current=n;
},onMouseOut:function(e){
for(var n=e.relatedTarget;n;){
if(n==this.node){
return;
}
try{
n=n.parentNode;
}
catch(x){
n=null;
}
}
if(this.current){
this._removeItemClass(this.current,"Over");
this.current=null;
}
this._changeState("Container","");
this.onOutEvent();
},onSelectStart:function(e){
if(!this.skipForm||!dojo.dnd.isFormElement(e)){
dojo.stopEvent(e);
}
},onOverEvent:function(){
},onOutEvent:function(){
},_changeState:function(_11,_12){
var _13="dojoDnd"+_11;
var _14=_11.toLowerCase()+"State";
dojo.replaceClass(this.node,_13+_12,_13+this[_14]);
this[_14]=_12;
},_addItemClass:function(_15,_16){
dojo.addClass(_15,"dojoDndItem"+_16);
},_removeItemClass:function(_17,_18){
dojo.removeClass(_17,"dojoDndItem"+_18);
},_getChildByEvent:function(e){
var _19=e.target;
if(_19){
for(var _1a=_19.parentNode;_1a;_19=_1a,_1a=_19.parentNode){
if(_1a==this.parent&&dojo.hasClass(_19,"dojoDndItem")){
return _19;
}
}
}
return null;
},_normalizedCreator:function(_1b,_1c){
var t=(this.creator||this.defaultCreator).call(this,_1b,_1c);
if(!dojo.isArray(t.type)){
t.type=["text"];
}
if(!t.node.id){
t.node.id=dojo.dnd.getUniqueId();
}
dojo.addClass(t.node,"dojoDndItem");
return t;
}});
dojo.dnd._createNode=function(tag){
if(!tag){
return dojo.dnd._createSpan;
}
return function(_1d){
return dojo.create(tag,{innerHTML:_1d});
};
};
dojo.dnd._createTrTd=function(_1e){
var tr=dojo.create("tr");
dojo.create("td",{innerHTML:_1e},tr);
return tr;
};
dojo.dnd._createSpan=function(_1f){
return dojo.create("span",{innerHTML:_1f});
};
dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};
dojo.dnd._defaultCreator=function(_20){
var tag=_20.tagName.toLowerCase();
var
c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);
return function(_21,_22){
var _23=_21&&dojo.isObject(_21),_24,_25,n;
if(_23&&_21.tagName&&_21.nodeType&&_21.getAttribute){
_24=_21.getAttribute("dndData")||_21.innerHTML;
_25=_21.getAttribute("dndType");
_25=_25?_25.split(/\s*,\s*/):["text"];
n=_21;
}else{
_24=(_23&&_21.data)?_21.data:_21;
_25=(_23&&_21.type)?_21.type:["text"];
n=(_22=="avatar"?dojo.dnd._createSpan:c)(String(_24));
}
if(!n.id){
n.id=dojo.dnd.getUniqueId();
}
return {node:n,data:_24,type:_25};
};
};
}
PK�X�[
�H'')dojoloader/dojo/1.6.1/dojo/dnd/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[R΁�f�f"dojoloader/dojo/1.6.1/dojo/dojo.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

/*
	This is an optimized version of Dojo, built for deployment and not for
	development. To get sources and documentation, please visit:

		http://dojotoolkit.org
*/

(function(){var _1=null;if((_1||(typeof
djConfig!="undefined"&&djConfig.scopeMap))&&(typeof
window!="undefined")){var
_2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var
i=0;i<_1.length;i++){var _7=_1[i];_2+="var "+_7[0]+" =
{}; "+_7[1]+" =
"+_7[0]+";"+_7[1]+"._scopeName =
'"+_7[1]+"';";_3+=(i==0?"":",")+_7[0];_4+=(i==0?"":",")+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+"dojo._scopeArgs
=
["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof
this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var
cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var
i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var
_8=tn+"";console[_8]=("log" in console)?function(){var
a=Array.apply({},arguments);a.unshift(_8+":");console["log"](a.join("
"));}:function(){};console[_8]._fake=true;})();}}}if(typeof
dojo=="undefined"){dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var
d=dojo;if(typeof
dijit=="undefined"){dijit={_scopeName:"dijit"};}if(typeof
dojox=="undefined"){dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};var
_9=typeof djConfig!="undefined"?djConfig:typeof
dojoConfig!="undefined"?dojoConfig:null;if(_9){for(var c in
_9){d.config[c]=_9[c];}}dojo.locale=d.config.locale;var _a="$Rev:
24595
$".match(/\d+/);dojo.version={major:1,minor:6,patch:1,flag:"",revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return
major+"."+minor+"."+patch+flag+"
("+revision+")";}}};if(typeof
OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var
_b,_c,_d={};for(var i in
{toString:1}){_b=[];break;}dojo._extraNames=_b=_b||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];_c=_b.length;dojo._mixin=function(_e,_f){var
_10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in
_e)||(_e[_10]!==s&&(!(_10 in
_d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&&_f){for(i=0;i<_c;++i){_10=_b[i];s=_f[_10];if(!(_10
in _e)||(_e[_10]!==s&&(!(_10 in
_d)||_d[_10]!==s))){_e[_10]=s;}}}return
_e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var
i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return
obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var
i=0,p;obj&&(p=_12[i]);i++){if(i==0&&d._scopeMap[p]){p=d._scopeMap[p];}obj=(p
in obj?obj[p]:(_13?obj[p]={}:undefined));}return
obj;};dojo.setObject=function(_15,_16,_17){var
_18=_15.split("."),p=_18.pop(),obj=d._getProp(_18,true,_17);return
obj&&p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return
d._getProp(_19.split("."),_1a,_1b);};dojo.exists=function(_1c,obj){return
d.getObject(_1c,false,obj)!==undefined;};dojo["eval"]=function(_1d){return
d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=function(){};})();(function(){var
d=dojo,_1e;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1f){var
mp=d._modulePrefixes;return
!!(mp[_1f]&&mp[_1f].value);},_getModulePrefix:function(_20){var
mp=d._modulePrefixes;if(d._moduleHasPrefix(_20)){return
mp[_20].value;}return
_20;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadPath=function(_21,_22,cb){var
uri=((_21.charAt(0)=="/"||_21.match(/^\w+:/))?"":d.baseUrl)+_21;try{_1e=_22;return
!_22?d._loadUri(uri,cb):d._loadUriAndCheck(uri,_22,cb);}catch(e){console.error(e);return
false;}finally{_1e=null;}};dojo._loadUri=function(uri,cb){if(d._loadedUrls[uri]){return
true;}d._inFlightCount++;var
_23=d._getText(uri,true);if(_23){d._loadedUrls[uri]=true;d._loadedUrls.push(uri);if(cb){_23=/^define\(/.test(_23)?_23:"("+_23+")";}else{_23=d._scopePrefix+_23+d._scopeSuffix;}if(!d.isIE){_23+="\r\n//@
sourceURL="+uri;}var
_24=d["eval"](_23);if(cb){cb(_24);}}if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){setTimeout(function(){if(d._inFlightCount==0){d._callLoaded();}},0);}return
!!_23;};dojo._loadUriAndCheck=function(uri,_25,cb){var
ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error("failed
loading "+uri+" with error: "+e);}return
!!(ok&&d._loadedModules[_25]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var
mll=d._loaders;d._loaders=[];for(var
x=0;x<mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&&d._inFlightCount==0&&mll.length){d._callLoaded();}};dojo.unloaded=function(){var
mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var
_26=(typeof
fn=="string")?obj[fn]:fn;arr.push(function(){_26.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_27){d._onto(d._loaders,obj,_27);if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};var
dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof
Array?"apply":"call")](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount>0){console.warn("files
still in
flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof
setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+".loaded();",0);}else{d.loaded();}};dojo._getModuleSymbols=function(_28){var
_29=_28.split(".");for(var i=_29.length;i>0;i--){var
_2a=_29.slice(0,i).join(".");if(i==1&&!d._moduleHasPrefix(_2a)){_29[0]="../"+_29[0];}else{var
_2b=d._getModulePrefix(_2a);if(_2b!=_2a){_29.splice(0,i,_2b);break;}}}return
_29;};dojo._global_omit_module_check=false;dojo.loadInit=function(_2c){_2c();};dojo._loadModule=dojo.require=function(_2d,_2e){_2e=d._global_omit_module_check||_2e;var
_2f=d._loadedModules[_2d];if(_2f){return _2f;}var
_30=d._getModuleSymbols(_2d).join("/")+".js";var
_31=!_2e?_2d:null;var ok=d._loadPath(_30,_31);if(!ok&&!_2e){throw
new Error("Could not load '"+_2d+"'; last tried
'"+_30+"'");}if(!_2e&&!d._isXDomain){_2f=d._loadedModules[_2d];if(!_2f){throw
new Error("symbol '"+_2d+"' is not defined after
loading '"+_30+"'");}}return
_2f;};dojo.provide=function(_32){_32=_32+"";return
(d._loadedModules[_32]=d.getObject(_32,true));};dojo.platformRequire=function(_33){var
_34=_33.common||[];var
_35=_34.concat(_33[d._name]||_33["default"]||[]);for(var
x=0;x<_35.length;x++){var
_36=_35[x];if(_36.constructor==Array){d._loadModule.apply(d,_36);}else{d._loadModule(_36);}}};dojo.requireIf=function(_37,_38){if(_37===true){var
_39=[];for(var
i=1;i<arguments.length;i++){_39.push(arguments[i]);}d.require.apply(d,_39);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_3a,_3b){d._modulePrefixes[_3a]={name:_3a,value:_3b};};dojo.requireLocalization=function(_3c,_3d,_3e,_3f){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var
ore=new
RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new
RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var
n=null,_40=arguments,uri=[_40[0]];for(var
i=1;i<_40.length;i++){if(!_40[i]){continue;}var _41=new
d._Url(_40[i]+""),_42=new
d._Url(uri[0]+"");if(_41.path==""&&!_41.scheme&&!_41.authority&&!_41.query){if(_41.fragment!=n){_42.fragment=_41.fragment;}_41=_42;}else{if(!_41.scheme){_41.scheme=_42.scheme;if(!_41.authority){_41.authority=_42.authority;if(_41.path.charAt(0)!="/"){var
_43=_42.path.substring(0,_42.path.lastIndexOf("/")+1)+_41.path;var
_44=_43.split("/");for(var
j=0;j<_44.length;j++){if(_44[j]=="."){if(j==_44.length-1){_44[j]="";}else{_44.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_44[0]=="")&&_44[j]==".."&&_44[j-1]!=".."){if(j==(_44.length-1)){_44.splice(j,1);_44[j-1]="";}else{_44.splice(j-1,2);j-=2;}}}}_41.path=_44.join("/");}}}}uri=[];if(_41.scheme){uri.push(_41.scheme,":");}if(_41.authority){uri.push("//",_41.authority);}uri.push(_41.path);if(_41.query){uri.push("?",_41.query);}if(_41.fragment){uri.push("#",_41.fragment);}}this.uri=uri.join("");var
r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return
this.uri;};dojo.moduleUrl=function(_45,url){var
loc=d._getModuleSymbols(_45).join("/");if(!loc){return
null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var
_46=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_46==-1||_46>loc.indexOf("/"))){loc=d.baseUrl+loc;}return
new d._Url(loc,url);};})();if(typeof
window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var
d=dojo;if(document&&document.getElementsByTagName){var
_47=document.getElementsByTagName("script");var
_48=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_47.length;i++){var
src=_47[i].getAttribute("src");if(!src){continue;}var
m=src.match(_48);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var
cfg=(_47[i].getAttribute("djConfig")||_47[i].getAttribute("data-dojo-config"));if(cfg){var
_49=eval("({ "+cfg+" })");for(var x in
_49){dojo.config[x]=_49[x];}}break;}}}d.baseUrl=d.config.baseUrl;var
n=navigator;var
dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;d.isMac=dav.indexOf("Macintosh")>=0;var
_4a=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_4a&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_4a+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE
")[1])||undefined;var
_4b=document.documentMode;if(_4b&&_4b!=5&&Math.floor(d.isIE)!=_4b){d.isIE=_4b;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode=="BackCompat";d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var
_4c,_4d;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_4c=new
XMLHttpRequest();}catch(e){}}if(!_4c){for(var i=0;i<3;++i){var
_4e=d._XMLHTTP_PROGIDS[i];try{_4c=new
ActiveXObject(_4e);}catch(e){_4d=e;}if(_4c){d._XMLHTTP_PROGIDS=[_4e];break;}}}if(!_4c){throw
new Error("XMLHTTP not available: "+_4d);}return
_4c;};d._isDocumentOk=function(_4f){var
_50=_4f.status||0,lp=location.protocol;return
(_50>=200&&_50<300)||_50==304||_50==1223||(!_50&&(lp=="file:"||lp=="chrome:"||lp=="chrome-extension:"||lp=="app:"));};var
_51=window.location+"";var
_52=document.getElementsByTagName("base");var
_53=(_52&&_52.length>0);d._getText=function(uri,_54){var
_55=d._xhrObj();if(!_53&&dojo._Url){uri=(new
dojo._Url(_51,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_55.open("GET",uri,false);try{_55.send(null);if(!d._isDocumentOk(_55)){var
err=Error("Unable to load "+uri+"
status:"+_55.status);err.status=_55.status;err.responseText=_55.responseText;throw
err;}}catch(e){if(_54){return null;}throw e;}return _55.responseText;};var
_56=window;var _57=function(_58,fp){var
_59=_56.attachEvent||_56.addEventListener;_58=_56.attachEvent?_58:_58.substring(2);_59(_58,function(){fp.apply(_56,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var
mll=d._windowUnloaders;while(mll.length){(mll.pop())();}d=null;};var
_5a=0;d.addOnWindowUnload=function(obj,_5b){d._onto(d._windowUnloaders,obj,_5b);if(!_5a){_5a=1;_57("onunload",d.windowUnloaded);}};var
_5c=0;d.addOnUnload=function(obj,_5d){d._onto(d._unloaders,obj,_5d);if(!_5c){_5c=1;_57("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(dojo._scrollIntervalId){clearInterval(dojo._scrollIntervalId);dojo._scrollIntervalId=0;}if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&&window.detachEvent){window.detachEvent("onload",dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener("DOMContentLoaded",dojo._loadInit,false);window.addEventListener("load",dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent("onload",dojo._loadInit);if(!dojo.config.skipIeDomLoaded&&self===self.top){dojo._scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left");dojo._loadInit();}}catch(e){}},30);}}}}if(dojo.isIE){try{(function(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var
_5e=["*","group","roundrect","oval","shape","rect","imagedata","path","textpath","text"],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE>=8){i=1;l=_5e.length;}for(;i<l;++i){s.addRule("v\\:"+_5e[i],"behavior:url(#default#VML);
display:inline-block");}})();}catch(e){}}}(function(){var
mp=dojo.config["modulePaths"];if(mp){for(var _5f in
mp){dojo.registerModulePath(_5f,mp[_5f]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.require("dojo._base._loader.loader_debug");dojo.require("dojo.i18n");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");(function(){var
d=dojo,_60=Object.prototype.toString;dojo.isString=function(it){return
(typeof it=="string"||it instanceof
String);};dojo.isArray=function(it){return it&&(it instanceof
Array||typeof it=="array");};dojo.isFunction=function(it){return
_60.call(it)==="[object
Function]";};dojo.isObject=function(it){return
it!==undefined&&(it===null||typeof
it=="object"||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return
it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return
it&&!d.isFunction(it)&&/\{\s*\[native
code\]\s*\}/.test(String(it));};dojo.extend=function(_61,_62){for(var
i=1,l=arguments.length;i<l;i++){d._mixin(_61.prototype,arguments[i]);}return
_61;};dojo._hitchArgs=function(_63,_64){var pre=d._toArray(arguments,2);var
_65=d.isString(_64);return function(){var _66=d._toArray(arguments);var
f=_65?(_63||d.global)[_64]:_64;return
f&&f.apply(_63||this,pre.concat(_66));};};dojo.hitch=function(_67,_68){if(arguments.length>2){return
d._hitchArgs.apply(d,arguments);}if(!_68){_68=_67;_67=null;}if(d.isString(_68)){_67=_67||d.global;if(!_67[_68]){throw
(["dojo.hitch: scope[\"",_68,"\"] is null
(scope=\"",_67,"\")"].join(""));}return
function(){return _67[_68].apply(_67,arguments||[]);};}return
!_67?_68:function(){return
_68.apply(_67,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function
TMP(){};return function(obj,_69){TMP.prototype=obj;var tmp=new
TMP();TMP.prototype=null;if(_69){d._mixin(tmp,_69);}return tmp;};})();var
_6a=function(obj,_6b,_6c){return
(_6c||[]).concat(Array.prototype.slice.call(obj,_6b||0));};var
_6d=function(obj,_6e,_6f){var arr=_6f||[];for(var
x=_6e||0;x<obj.length;x++){arr.push(obj[x]);}return
arr;};dojo._toArray=d.isIE?function(obj){return
((obj.item)?_6d:_6a).apply(this,arguments);}:_6a;dojo.partial=function(_70){var
arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var
_71=d._extraNames,_72=_71.length,_73={};dojo.clone=function(o){if(!o||typeof
o!="object"||d.isFunction(o)){return
o;}if(o.nodeType&&"cloneNode" in o){return
o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}if(o
instanceof RegExp){return new RegExp(o);}var
r,i,l,s,_74;if(d.isArray(o)){r=[];for(i=0,l=o.length;i<l;++i){if(i in
o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new
o.constructor():{};}for(_74 in o){s=o[_74];if(!(_74 in
r)||(r[_74]!==s&&(!(_74 in
_73)||_73[_74]!==s))){r[_74]=d.clone(s);}}if(_72){for(i=0;i<_72;++i){_74=_71[i];s=o[_74];if(!(_74
in r)||(r[_74]!==s&&(!(_74 in
_73)||_73[_74]!==s))){r[_74]=s;}}}return
r;};dojo.trim=String.prototype.trim?function(str){return
str.trim();}:function(str){return
str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};var
_75=/\{([^\}]+)\}/g;dojo.replace=function(_76,map,_77){return
_76.replace(_77||_75,d.isFunction(map)?map:function(_78,k){return
d.getObject(k,false,map);});};})();}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var
_79=function(arr,obj,cb){return [(typeof
arr=="string")?arr.split(""):arr,obj||dojo.global,(typeof
cb=="string")?new
Function("item","index","array",cb):cb];};var
_7a=function(_7b,arr,_7c,_7d){var _7e=_79(arr,_7d,_7c);arr=_7e[0];for(var
i=0,l=arr.length;i<l;++i){var
_7f=!!_7e[2].call(_7e[1],arr[i],i,arr);if(_7b^_7f){return _7f;}}return
_7b;};dojo.mixin(dojo,{indexOf:function(_80,_81,_82,_83){var
_84=1,end=_80.length||0,i=0;if(_83){i=end-1;_84=end=-1;}if(_82!=undefined){i=_82;}if((_83&&i>end)||i<end){for(;i!=end;i+=_84){if(_80[i]==_81){return
i;}}}return -1;},lastIndexOf:function(_85,_86,_87){return
dojo.indexOf(_85,_86,_87,true);},forEach:function(arr,_88,_89){if(!arr||!arr.length){return;}var
_8a=_79(arr,_89,_88);arr=_8a[0];for(var
i=0,l=arr.length;i<l;++i){_8a[2].call(_8a[1],arr[i],i,arr);}},every:function(arr,_8b,_8c){return
_7a(true,arr,_8b,_8c);},some:function(arr,_8d,_8e){return
_7a(false,arr,_8d,_8e);},map:function(arr,_8f,_90){var
_91=_79(arr,_90,_8f);arr=_91[0];var _92=(arguments[3]?(new
arguments[3]()):[]);for(var
i=0,l=arr.length;i<l;++i){_92.push(_91[2].call(_91[1],arr[i],i,arr));}return
_92;},filter:function(arr,_93,_94){var _95=_79(arr,_94,_93);arr=_95[0];var
_96=[];for(var
i=0,l=arr.length;i<l;++i){if(_95[2].call(_95[1],arr[i],i,arr)){_96.push(arr[i]);}}return
_96;}});})();}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");(function(){var
d=dojo,mix=d._mixin,op=Object.prototype,_97=op.toString,_98=new
Function,_99=0,_9a="constructor";function err(msg,cls){throw new
Error("declare"+(cls?" "+cls:"")+":
"+msg);};function _9b(_9c,_9d){var
_9e=[],_9f=[{cls:0,refs:[]}],_a0={},_a1=1,l=_9c.length,i=0,j,lin,_a2,top,_a3,rec,_a4,_a5;for(;i<l;++i){_a2=_9c[i];if(!_a2){err("mixin
#"+i+" is unknown. Did you use dojo.require to pull it
in?",_9d);}else{if(_97.call(_a2)!="[object
Function]"){err("mixin #"+i+" is not a callable
constructor.",_9d);}}lin=_a2._meta?_a2._meta.bases:[_a2];top=0;for(j=lin.length-1;j>=0;--j){_a3=lin[j].prototype;if(!_a3.hasOwnProperty("declaredClass")){_a3.declaredClass="uniqName_"+(_99++);}_a4=_a3.declaredClass;if(!_a0.hasOwnProperty(_a4)){_a0[_a4]={count:0,refs:[],cls:lin[j]};++_a1;}rec=_a0[_a4];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_9f[0].refs.push(top);}while(_9f.length){top=_9f.pop();_9e.push(top.cls);--_a1;while(_a5=top.refs,_a5.length==1){top=_a5[0];if(!top||--top.count){top=0;break;}_9e.push(top.cls);--_a1;}if(top){for(i=0,l=_a5.length;i<l;++i){top=_a5[i];if(!--top.count){_9f.push(top);}}}}if(_a1){err("can't
build consistent
linearization",_9d);}_a2=_9c[0];_9e[0]=_a2?_a2._meta&&_a2===_9e[_9e.length-_a2._meta.bases.length]?_a2._meta.bases.length:1:0;return
_9e;};function _a6(_a7,a,f){var
_a8,_a9,_aa,_ab,_ac,_ad,_ae,opf,pos,_af=this._inherited=this._inherited||{};if(typeof
_a7=="string"){_a8=_a7;_a7=a;a=f;}f=0;_ab=_a7.callee;_a8=_a8||_ab.nom;if(!_a8){err("can't
deduce a name to call
inherited()",this.declaredClass);}_ac=this.constructor._meta;_aa=_ac.bases;pos=_af.p;if(_a8!=_9a){if(_af.c!==_ab){pos=0;_ad=_aa[0];_ac=_ad._meta;if(_ac.hidden[_a8]!==_ab){_a9=_ac.chains;if(_a9&&typeof
_a9[_a8]=="string"){err("calling chained method with
inherited:
"+_a8,this.declaredClass);}do{_ac=_ad._meta;_ae=_ad.prototype;if(_ac&&(_ae[_a8]===_ab&&_ae.hasOwnProperty(_a8)||_ac.hidden[_a8]===_ab)){break;}}while(_ad=_aa[++pos]);pos=_ad?pos:-1;}}_ad=_aa[++pos];if(_ad){_ae=_ad.prototype;if(_ad._meta&&_ae.hasOwnProperty(_a8)){f=_ae[_a8];}else{opf=op[_a8];do{_ae=_ad.prototype;f=_ae[_a8];if(f&&(_ad._meta?_ae.hasOwnProperty(_a8):f!==opf)){break;}}while(_ad=_aa[++pos]);}}f=_ad&&f||op[_a8];}else{if(_af.c!==_ab){pos=0;_ac=_aa[0]._meta;if(_ac&&_ac.ctor!==_ab){_a9=_ac.chains;if(!_a9||_a9.constructor!=="manual"){err("calling
chained constructor with
inherited",this.declaredClass);}while(_ad=_aa[++pos]){_ac=_ad._meta;if(_ac&&_ac.ctor===_ab){break;}}pos=_ad?pos:-1;}}while(_ad=_aa[++pos]){_ac=_ad._meta;f=_ac?_ac.ctor:_ad;if(f){break;}}f=_ad&&f;}_af.c=f;_af.p=pos;if(f){return
a===true?f:f.apply(this,a||_a7);}};function _b0(_b1,_b2){if(typeof
_b1=="string"){return this.inherited(_b1,_b2,true);}return
this.inherited(_b1,true);};function _b3(cls){var
_b4=this.constructor._meta.bases;for(var
i=0,l=_b4.length;i<l;++i){if(_b4[i]===cls){return true;}}return this
instanceof cls;};function _b5(_b6,_b7){var
_b8,i=0,l=d._extraNames.length;for(_b8 in
_b7){if(_b8!=_9a&&_b7.hasOwnProperty(_b8)){_b6[_b8]=_b7[_b8];}}for(;i<l;++i){_b8=d._extraNames[i];if(_b8!=_9a&&_b7.hasOwnProperty(_b8)){_b6[_b8]=_b7[_b8];}}};function
_b9(_ba,_bb){var _bc,t,i=0,l=d._extraNames.length;for(_bc in
_bb){t=_bb[_bc];if((t!==op[_bc]||!(_bc in
op))&&_bc!=_9a){if(_97.call(t)=="[object
Function]"){t.nom=_bc;}_ba[_bc]=t;}}for(;i<l;++i){_bc=d._extraNames[i];t=_bb[_bc];if((t!==op[_bc]||!(_bc
in op))&&_bc!=_9a){if(_97.call(t)=="[object
Function]"){t.nom=_bc;}_ba[_bc]=t;}}return _ba;};function
_bd(_be){_b9(this.prototype,_be);return this;};function _bf(_c0,_c1){return
function(){var a=arguments,_c2=a,a0=a[0],f,i,m,l=_c0.length,_c3;if(!(this
instanceof a.callee)){return
_c4(a);}if(_c1&&(a0&&a0.preamble||this.preamble)){_c3=new
Array(_c0.length);_c3[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_c0[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_c3[i]=a;}}for(i=l-1;i>=0;--i){f=_c0[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_c3?_c3[i]:a);}}f=this.postscript;if(f){f.apply(this,_c2);}};};function
_c5(_c6,_c7){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this
instanceof a.callee)){return
_c4(a);}if(_c7){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_c6){_c6.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function
_c8(_c9){return function(){var a=arguments,i=0,f,m;if(!(this instanceof
a.callee)){return
_c4(a);}for(;f=_c9[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function
_ca(_cb,_cc,_cd){return function(){var
b,m,f,i=0,_ce=1;if(_cd){i=_cc.length-1;_ce=-1;}for(;b=_cc[i];i+=_ce){m=b._meta;f=(m?m.hidden:b.prototype)[_cb];if(f){f.apply(this,arguments);}}};};function
_cf(_d0){_98.prototype=_d0.prototype;var t=new
_98;_98.prototype=null;return t;};function _c4(_d1){var
_d2=_d1.callee,t=_cf(_d2);_d2.apply(t,_d1);return
t;};d.declare=function(_d3,_d4,_d5){if(typeof
_d3!="string"){_d5=_d4;_d4=_d3;_d3="";}_d5=_d5||{};var
_d6,i,t,_d7,_d8,_d9,_da,_db=1,_dc=_d4;if(_97.call(_d4)=="[object
Array]"){_d9=_9b(_d4,_d3);t=_d9[0];_db=_d9.length-t;_d4=_d9[_db];}else{_d9=[0];if(_d4){if(_97.call(_d4)=="[object
Function]"){t=_d4._meta;_d9=_d9.concat(t?t.bases:_d4);}else{err("base
class is not a callable
constructor.",_d3);}}else{if(_d4!==null){err("unknown base class.
Did you use dojo.require to pull it
in?",_d3);}}}if(_d4){for(i=_db-1;;--i){_d6=_cf(_d4);if(!i){break;}t=_d9[i];(t._meta?_b5:mix)(_d6,t.prototype);_d7=new
Function;_d7.superclass=_d4;_d7.prototype=_d6;_d4=_d6.constructor=_d7;}}else{_d6={};}_b9(_d6,_d5);t=_d5.constructor;if(t!==op.constructor){t.nom=_9a;_d6.constructor=t;}for(i=_db-1;i;--i){t=_d9[i]._meta;if(t&&t.chains){_da=mix(_da||{},t.chains);}}if(_d6["-chains-"]){_da=mix(_da||{},_d6["-chains-"]);}t=!_da||!_da.hasOwnProperty(_9a);_d9[0]=_d7=(_da&&_da.constructor==="manual")?_c8(_d9):(_d9.length==1?_c5(_d5.constructor,t):_bf(_d9,t));_d7._meta={bases:_d9,hidden:_d5,chains:_da,parents:_dc,ctor:_d5.constructor};_d7.superclass=_d4&&_d4.prototype;_d7.extend=_bd;_d7.prototype=_d6;_d6.constructor=_d7;_d6.getInherited=_b0;_d6.inherited=_a6;_d6.isInstanceOf=_b3;if(_d3){_d6.declaredClass=_d3;d.setObject(_d3,_d7);}if(_da){for(_d8
in _da){if(_d6[_d8]&&typeof
_da[_d8]=="string"&&_d8!=_9a){t=_d6[_d8]=_ca(_d8,_d9,_da[_d8]==="after");t.nom=_d8;}}}return
_d7;};d.safeMixin=_b9;})();}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return
function(){var
ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target,r=t&&t.apply(this,arguments),i,lls=[].concat(ls);for(i
in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return
r;};},add:function(_dd,_de,_df){_dd=_dd||dojo.global;var
f=_dd[_de];if(!f||!f._listeners){var
d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_dd[_de]=d;}return
f._listeners.push(_df);},remove:function(_e0,_e1,_e2){var
f=(_e0||dojo.global)[_e1];if(f&&f._listeners&&_e2--){delete
f._listeners[_e2];}}};dojo.connect=function(obj,_e3,_e4,_e5,_e6){var
a=arguments,_e7=[],i=0;_e7.push(dojo.isString(a[0])?null:a[i++],a[i++]);var
a1=a[i+1];_e7.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var
l=a.length;i<l;i++){_e7.push(a[i]);}return
dojo._connect.apply(this,_e7);};dojo._connect=function(obj,_e8,_e9,_ea){var
l=dojo._listener,h=l.add(obj,_e8,dojo.hitch(_e9,_ea));return
[obj,_e8,h,l];};dojo.disconnect=function(_eb){if(_eb&&_eb[0]!==undefined){dojo._disconnect.apply(this,_eb);delete
_eb[0];}};dojo._disconnect=function(obj,_ec,_ed,_ee){_ee.remove(obj,_ec,_ed);};dojo._topics={};dojo.subscribe=function(_ef,_f0,_f1){return
[_ef,dojo._listener.add(dojo._topics,_ef,dojo.hitch(_f0,_f1))];};dojo.unsubscribe=function(_f2){if(_f2){dojo._listener.remove(dojo._topics,_f2[0],_f2[1]);}};dojo.publish=function(_f3,_f4){var
f=dojo._topics[_f3];if(f){f.apply(this,_f4||[]);}};dojo.connectPublisher=function(_f5,obj,_f6){var
pf=function(){dojo.publish(_f5,arguments);};return
_f6?dojo.connect(obj,_f6,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");(function(){var
_f7=function(){};var
_f8=Object.freeze||function(){};dojo.Deferred=function(_f9){var
_fa,_fb,_fc,_fd,_fe;var _ff=(this.promise={});function
_100(_101){if(_fb){throw new Error("This deferred has already been
resolved");}_fa=_101;_fb=true;_102();};function _102(){var
_103;while(!_103&&_fe){var
_104=_fe;_fe=_fe.next;if((_103=(_104.progress==_f7))){_fb=false;}var
func=(_fc?_104.error:_104.resolved);if(func){try{var
_105=func(_fa);if(_105&&typeof
_105.then==="function"){_105.then(dojo.hitch(_104.deferred,"resolve"),dojo.hitch(_104.deferred,"reject"));continue;}var
_106=_103&&_105===undefined;if(_103&&!_106){_fc=_105
instanceof
Error;}_104.deferred[_106&&_fc?"reject":"resolve"](_106?_fa:_105);}catch(e){_104.deferred.reject(e);}}else{if(_fc){_104.deferred.reject(_fa);}else{_104.deferred.resolve(_fa);}}}};this.resolve=this.callback=function(_107){this.fired=0;this.results=[_107,null];_100(_107);};this.reject=this.errback=function(_108){_fc=true;this.fired=1;_100(_108);this.results=[null,_108];if(!_108||_108.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_108);}};this.progress=function(_109){var
_10a=_fe;while(_10a){var
_10b=_10a.progress;_10b&&_10b(_109);_10a=_10a.next;}};this.addCallbacks=function(_10c,_10d){this.then(_10c,_10d,_f7);return
this;};this.then=_ff.then=function(_10e,_10f,_110){var
_111=_110==_f7?this:new dojo.Deferred(_ff.cancel);var
_112={resolved:_10e,error:_10f,progress:_110,deferred:_111};if(_fe){_fd=_fd.next=_112;}else{_fe=_fd=_112;}if(_fb){_102();}return
_111.promise;};var _113=this;this.cancel=_ff.cancel=function(){if(!_fb){var
_114=_f9&&_f9(_113);if(!_fb){if(!(_114 instanceof Error)){_114=new
Error(_114);}_114.log=false;_113.reject(_114);}}};_f8(_ff);};dojo.extend(dojo.Deferred,{addCallback:function(_115){return
this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(_116){return
this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addBoth:function(_117){var
_118=dojo.hitch.apply(dojo,arguments);return
this.addCallbacks(_118,_118);},fired:-1});})();dojo.when=function(_119,_11a,_11b,_11c){if(_119&&typeof
_119.then==="function"){return _119.then(_11a,_11b,_11c);}return
_11a(_119);};}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){return
eval("("+json+")");};dojo._escapeString=function(str){return
("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_11d,_11e){if(it===undefined){return
"undefined";}var _11f=typeof
it;if(_11f=="number"||_11f=="boolean"){return
it+"";}if(it===null){return
"null";}if(dojo.isString(it)){return dojo._escapeString(it);}var
_120=arguments.callee;var _121;_11e=_11e||"";var
_122=_11d?_11e+dojo.toJsonIndentStr:"";var
tf=it.__json__||it.json;if(dojo.isFunction(tf)){_121=tf.call(it);if(it!==_121){return
_120(_121,_11d,_122);}}if(it.nodeType&&it.cloneNode){throw new
Error("Can't serialize DOM nodes");}var sep=_11d?"
":"";var
_123=_11d?"\n":"";if(dojo.isArray(it)){var
res=dojo.map(it,function(obj){var val=_120(obj,_11d,_122);if(typeof
val!="string"){val="undefined";}return
_123+_122+val;});return
"["+res.join(","+sep)+_123+_11e+"]";}if(_11f=="function"){return
null;}var _124=[],key;for(key in it){var _125,val;if(typeof
key=="number"){_125="\""+key+"\"";}else{if(typeof
key=="string"){_125=dojo._escapeString(key);}else{continue;}}val=_120(it[key],_11d,_122);if(typeof
val!="string"){continue;}_124.push(_123+_122+_125+":"+sep+val);}return
"{"+_124.join(","+sep)+_123+_11e+"}";};}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var
d=dojo;dojo.Color=function(_126){if(_126){this.setColor(_126);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var
t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_127){if(d.isString(_127)){d.colorFromString(_127,this);}else{if(d.isArray(_127)){d.colorFromArray(_127,this);}else{this._set(_127.r,_127.g,_127.b,_127.a);if(!(_127
instanceof d.Color)){this.sanitize();}}}return
this;},sanitize:function(){return this;},toRgb:function(){var t=this;return
[t.r,t.g,t.b];},toRgba:function(){var t=this;return
[t.r,t.g,t.b,t.a];},toHex:function(){var
arr=d.map(["r","g","b"],function(x){var
s=this[x].toString(16);return
s.length<2?"0"+s:s;},this);return
"#"+arr.join("");},toCss:function(_128){var
t=this,rgb=t.r+", "+t.g+", "+t.b;return
(_128?"rgba("+rgb+",
"+t.a:"rgb("+rgb)+")";},toString:function(){return
this.toCss(true);}});dojo.blendColors=function(_129,end,_12a,obj){var
t=obj||new
d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_129[x]+(end[x]-_129[x])*_12a;if(x!="a"){t[x]=Math.round(t[x]);}});return
t.sanitize();};dojo.colorFromRgb=function(_12b,obj){var
m=_12b.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return
m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_12c,obj){var
t=obj||new
d.Color(),bits=(_12c.length==4)?4:8,mask=(1<<bits)-1;_12c=Number("0x"+_12c.substr(1));if(isNaN(_12c)){return
null;}d.forEach(["b","g","r"],function(x){var
c=_12c&mask;_12c>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return
t;};dojo.colorFromArray=function(a,obj){var t=obj||new
d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return
t.sanitize();};dojo.colorFromString=function(str,obj){var
a=d.Color.named[str];return
a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return
dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_12d,_12e){dojo.global=_12d;dojo.doc=_12e;};dojo.withGlobal=function(_12f,_130,_131,_132){var
_133=dojo.global;try{dojo.global=_12f;return
dojo.withDoc.call(null,_12f.document,_130,_131,_132);}finally{dojo.global=_133;}};dojo.withDoc=function(_134,_135,_136,_137){var
_138=dojo.doc,_139=dojo._bodyLtr,oldQ=dojo.isQuirks;try{dojo.doc=_134;delete
dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode=="BackCompat";if(_136&&typeof
_135=="string"){_135=_136[_135];}return
_135.apply(_136,_137||[]);}finally{dojo.doc=_138;delete
dojo._bodyLtr;if(_139!==undefined){dojo._bodyLtr=_139;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var
del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var
ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return
ofp.call(this,e);}};}node.addEventListener(name,fp,false);return
fp;},remove:function(node,_13a,_13b){if(node){_13a=del._normalizeEventName(_13a);if(!dojo.isIE&&(_13a=="mouseenter"||_13a=="mouseleave")){_13a=(_13a=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_13a,_13b,false);}},_normalizeEventName:function(name){return
name.slice(0,2)=="on"?name.slice(2):name;},_fixCallback:function(name,fp){return
name!="keypress"?fp:function(e){return
fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_13c){switch(evt.type){case
"keypress":del._setKeyChar(evt);break;}return
evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode>=32?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_13d){return
del._fixEvent(evt,_13d);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var
_13e=dojo._listener;dojo._connect=function(obj,_13f,_140,_141,_142){var
_143=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var
lid=_143?(_142?2:1):0,l=[dojo._listener,del,_13e][lid];var
h=l.add(obj,_13f,dojo.hitch(_140,_141));return
[obj,_13f,h,lid];};dojo._disconnect=function(obj,_144,_145,_146){([dojo._listener,del,_13e][_146]).remove(obj,_144,_145);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17};var
_147=dojo.isMac?"metaKey":"ctrlKey";dojo.isCopyKey=function(e){return
e[_147];};if(dojo.isIE<9||(dojo.isIE&&dojo.isQuirks)){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_148){return
e.button&_148;},isLeft:function(e){return
e.button&1;},isMiddle:function(e){return
e.button&4;},isRight:function(e){return
e.button&2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_149){return
e.button==_149;},isLeft:function(e){return
e.button==0;},isMiddle:function(e){return
e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var
_14a=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var
iel=dojo._listener;var
_14b=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_13e=iel=dojo._ie_listener={handlers:[],add:function(_14c,_14d,_14e){_14c=_14c||dojo.global;var
f=_14c[_14d];if(!f||!f[_14b]){var
d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_14b]=[];f=_14c[_14d]=d;}return
f[_14b].push(ieh.push(_14e)-1);},remove:function(_14f,_150,_151){var
f=(_14f||dojo.global)[_150],l=f&&f[_14b];if(f&&l&&_151--){delete
ieh[l[_151]];delete l[_151];}}};var
ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_152,fp){if(!node){return;}_152=del._normalizeEventName(_152);if(_152=="onkeypress"){var
kd=node.onkeydown;if(!kd||!kd[_14b]||!kd._stealthKeydownHandle){var
h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return
iel.add(node,_152,del._fixCallback(fp));},remove:function(node,_153,_154){_153=del._normalizeEventName(_153);iel.remove(node,_153,_154);if(_153=="onkeypress"){var
kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete
kd._stealthKeydownHandle;}}},_normalizeEventName:function(_155){return
_155.slice(0,2)!="on"?"on"+_155:_155;},_nop:function(){},_fixEvent:function(evt,_156){if(!evt){var
w=_156&&(_156.ownerDocument||_156.document||_156).parentWindow||window;evt=w.event;}if(!evt){return
(evt);}evt.target=evt.srcElement;evt.currentTarget=(_156||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var
se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var
_157=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var
_158=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_157.scrollLeft||0)-_158.x;evt.pageY=evt.clientY+(_157.scrollTop||0)-_158.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(dojo.isIE<9||dojo.isQuirks){evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;}return
del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case
"keypress":var c=("charCode" in
evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return
evt;},_stealthKeyDown:function(evt){var
kp=evt.currentTarget.onkeypress;if(!kp||!kp[_14b]){return;}var
k=evt.keyCode;var
_159=(k!=13||(dojo.isIE>=9&&!dojo.isQuirks))&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_159||evt.ctrlKey){var
c=_159?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var
faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);if(dojo.isIE<9||(dojo.isIE&&dojo.isQuirks)){evt.cancelBubble=faux.cancelBubble;}evt.returnValue=faux.returnValue;_14a(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_14a(this,0);}this.returnValue=false;}});dojo.stopEvent=(dojo.isIE<9||dojo.isQuirks)?function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);}:dojo.stopEvent;}del._synthesizeEvent=function(evt,_15a){var
faux=dojo.mixin({},evt,_15a);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return
faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_15b){switch(evt.type){case
"keypress":var
c=evt.which;if(c==3){c=99;}c=c<41&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return
del._synthesizeEvent(evt,{charCode:c});}return
evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_15c,fp){if(!node){return;}var
_15d=del._add(node,_15c,fp);if(del._normalizeEventName(_15c)=="keypress"){_15d._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var
k=evt.keyCode;var
_15e=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_15e||evt.ctrlKey){var
c=_15e?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if(!evt.shiftKey&&c>=65&&c<=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var
faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return
_15d;},remove:function(node,_15f,_160){if(node){if(_160._stealthKeyDownHandle){del._remove(node,"keydown",_160._stealthKeyDownHandle);}del._remove(node,_15f,_160);}},_fixEvent:function(evt,_161){switch(evt.type){case
"keypress":if(evt.faux){return evt;}var
c=evt.charCode;c=c>=32?c:0;return
del._synthesizeEvent(evt,{charCode:c,faux:true});}return
evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_162){var
ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var
r=t&&t.apply(_162,args);var lls=[].concat(ls);for(var i in lls){var
f=h[lls[i]];if(!(i in ap)&&f){f.apply(_162,args);}}return
r;};dojo._getIeDispatcher=function(){return new
Function(dojo._scopeName+"._ieDispatcher(arguments,
this)");};dojo._event_listener._fixCallback=function(fp){var
f=dojo._event_listener._fixEvent;return function(e){return
fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE){dojo.byId=function(id,doc){if(typeof
id!="string"){return id;}var
_163=doc||dojo.doc,te=_163.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return
te;}else{var eles=_163.all[id];if(!eles||eles.nodeName){eles=[eles];}var
i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return
te;}}}};}else{dojo.byId=function(id,doc){return ((typeof
id=="string")?(doc||dojo.doc).getElementById(id):id)||null;};}(function(){var
d=dojo;var byId=d.byId;var
_164=null,_165;d.addOnWindowUnload(function(){_164=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var
doc=node.ownerDocument;if(!_164||_165!=doc){_164=doc.createElement("div");_165=doc;}_164.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_164.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_166){try{node=byId(node);_166=byId(_166);while(node){if(node==_166){return
true;}node=node.parentNode;}}catch(e){}return
false;};dojo.setSelectable=function(node,_167){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_167?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_167?"auto":"none";}else{if(d.isIE){var
v=(node.unselectable=_167?"":"on");d.query("*",node).forEach("item.unselectable
= '"+v+"'");}}}};var _168=function(node,ref){var
_169=ref.parentNode;if(_169){_169.insertBefore(node,ref);}};var
_16a=function(node,ref){var
_16b=ref.parentNode;if(_16b){if(_16b.lastChild==ref){_16b.appendChild(node);}else{_16b.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_16c,_16d){_16c=byId(_16c);if(typeof
node=="string"){node=/^\s*</.test(node)?d._toDom(node,_16c.ownerDocument):byId(node);}if(typeof
_16d=="number"){var
cn=_16c.childNodes;if(!cn.length||cn.length<=_16d){_16c.appendChild(node);}else{_168(node,cn[_16d<0?0:_16d]);}}else{switch(_16d){case
"before":_168(node,_16c);break;case
"after":_16a(node,_16c);break;case
"replace":_16c.parentNode.replaceChild(node,_16c);break;case
"only":d.empty(_16c);_16c.appendChild(node);break;case
"first":if(_16c.firstChild){_168(node,_16c.firstChild);break;}default:_16c.appendChild(node);}}return
node;};dojo.boxModel="content-box";if(d.isIE){d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}var
gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var
dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return
s||{};};}else{if(d.isIE){gcs=function(node){return
node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return
node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_16e,_16f){return
parseFloat(_16f)||0;};}else{d._toPixelValue=function(_170,_171){if(!_171){return
0;}if(_171=="medium"){return
4;}if(_171.slice&&_171.slice(-2)=="px"){return
parseFloat(_171);}with(_170){var _172=style.left;var
_173=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_171;_171=style.pixelLeft;}catch(e){_171=0;}style.left=_172;runtimeStyle.left=_173;}return
_171;};}var px=d._toPixelValue;var
astr="DXImageTransform.Microsoft.Alpha";var
af=function(n,f){try{return n.filters.item(astr);}catch(e){return
f?{}:null;}};dojo._getOpacity=d.isIE<9?function(node){try{return
af(node).Opacity/100;}catch(e){return 1;}}:function(node){return
gcs(node).opacity;};dojo._setOpacity=d.isIE<9?function(node,_174){var
ov=_174*100,_175=_174==1;node.style.zoom=_175?"":1;if(!af(node)){if(_175){return
_174;}node.style.filter+="
progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_175;if(node.nodeName.toLowerCase()=="tr"){d.query(">
td",node).forEach(function(i){d._setOpacity(i,_174);});}return
_174;}:function(node,_176){return node.style.opacity=_176;};var
_177={left:true,top:true};var
_178=/margin|padding|width|height|max|min|offset/;var
_179=function(node,type,_17a){type=type.toLowerCase();if(d.isIE){if(_17a=="auto"){if(type=="height"){return
node.offsetHeight;}if(type=="width"){return
node.offsetWidth;}}if(type=="fontweight"){switch(_17a){case
700:return "bold";case 400:default:return
"normal";}}}if(!(type in
_177)){_177[type]=_178.test(type);}return
_177[type]?px(node,_17a):_17a;};var
_17b=d.isIE?"styleFloat":"cssFloat",_17c={"cssFloat":_17b,"styleFloat":_17b,"float":_17b};dojo.style=function(node,_17d,_17e){var
n=byId(node),args=arguments.length,op=(_17d=="opacity");_17d=_17c[_17d]||_17d;if(args==3){return
op?d._setOpacity(n,_17e):n.style[_17d]=_17e;}if(args==2&&op){return
d._getOpacity(n);}var s=gcs(n);if(args==2&&typeof
_17d!="string"){for(var x in
_17d){d.style(node,x,_17d[x]);}return s;}return
(args==1)?s:_179(n,_17d,s[_17d]||n.style[_17d]);};dojo._getPadExtents=function(n,_17f){var
s=_17f||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return
{l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_180){var
ne="none",s=_180||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return
{l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_181){var
s=_181||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return
{l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_182){var
s=_182||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return
{l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_183){var
s=_183||gcs(node),me=d._getMarginExtents(node,s);var
l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var
sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var
pcs=gcs(p);if(pcs.overflow!="visible"){var
be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE>7&&!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return
{l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getMarginSize=function(node,_184){node=byId(node);var
me=d._getMarginExtents(node,_184||gcs(node));var
size=node.getBoundingClientRect();return
{w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};dojo._getContentBox=function(node,_185){var
s=_185||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return
{l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_186){var
s=_186||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return
{l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";var
s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return
node.tagName=="BUTTON"||node.tagName=="INPUT"&&(node.getAttribute("type")||"").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var
n=node.tagName;return
d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_187,_188,_189){if(d._usesBorderBox(node)){var
pb=d._getPadBorderExtents(node,_189);if(_187>=0){_187+=pb.w;}if(_188>=0){_188+=pb.h;}}d._setBox(node,NaN,NaN,_187,_188);};dojo._setMarginBox=function(node,_18a,_18b,_18c,_18d,_18e){var
s=_18e||gcs(node),bb=d._usesBorderBox(node),pb=bb?_18f:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var
ns=node.style;if(_18c>=0&&!ns.width){ns.width="4px";}if(_18d>=0&&!ns.height){ns.height="4px";}}}var
mb=d._getMarginExtents(node,s);if(_18c>=0){_18c=Math.max(_18c-pb.w-mb.w,0);}if(_18d>=0){_18d=Math.max(_18d-pb.h-mb.h,0);}d._setBox(node,_18a,_18b,_18c,_18d);};var
_18f={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var
n=byId(node),s=gcs(n),b=box;return
!b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var
n=byId(node),s=gcs(n),b=box;return
!b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var
_190=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var
val,_191=0,_192=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return
0;}val=node[prop];if(val){_191+=val-0;if(node==_192){break;}}node=node.parentNode;}return
_191;};dojo._docScroll=function(){var n=d.global;return
"pageXOffset" in
n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.isQuirks?d.doc.body:d.doc.documentElement,{x:d._fixIeBiDiScrollLeft(n.scrollLeft||0),y:n.scrollTop||0});};dojo._isBodyLtr=function(){return
"_bodyLtr" in
d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};dojo._getIeDocumentElementOffset=function(){var
de=d.doc.documentElement;if(d.isIE<8){var
r=de.getBoundingClientRect();var
l=r.left,t=r.top;if(d.isIE<7){l+=de.clientLeft;t+=de.clientTop;}return
{x:l<0?0:l,y:t<0?0:t};}else{return
{x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_193){var
ie=d.isIE;if(ie&&!d._isBodyLtr()){var
qk=d.isQuirks,de=qk?d.doc.body:d.doc.documentElement;if(ie==6&&!qk&&d.global.frameElement&&de.scrollHeight>de.clientHeight){_193+=de.clientLeft;}return
(ie<8||qk)?(_193+de.clientWidth-de.scrollWidth):-_193;}return
_193;};dojo._abs=dojo.position=function(node,_194){node=byId(node);var
db=d.body(),dh=db.parentNode,ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var
_195=d._getIeDocumentElementOffset();ret.x-=_195.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_195.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var
cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}if(_194){var
_196=d._docScroll();ret.x+=_196.x;ret.y+=_196.y;}return
ret;};dojo.coords=function(node,_197){var
n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var
abs=d.position(n,_197);mb.x=abs.x;mb.y=abs.y;return mb;};var
_198={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_199={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_19a={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var
_19b=function(name){return _199[name.toLowerCase()]||name;};var
_19c=function(node,name){var
attr=node.getAttributeNode&&node.getAttributeNode(name);return
attr&&attr.specified;};dojo.hasAttr=function(node,name){var
lc=name.toLowerCase();return
_19a[_198[lc]||name]||_19c(byId(node),_199[lc]||name);};var
_19d={},_19e=0,_19f=dojo._scopeName+"attrid",_1a0={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1a1){node=byId(node);var
args=arguments.length,prop;if(args==2&&typeof
name!="string"){for(var x in name){d.attr(node,x,name[x]);}return
node;}var
lc=name.toLowerCase(),_1a2=_198[lc]||name,_1a3=_19a[_1a2],_1a4=_199[lc]||name;if(args==3){do{if(_1a2=="style"&&typeof
_1a1!="string"){d.style(node,_1a1);break;}if(_1a2=="innerHTML"){if(d.isIE&&node.tagName.toLowerCase()
in
_1a0){d.empty(node);node.appendChild(d._toDom(_1a1,node.ownerDocument));}else{node[_1a2]=_1a1;}break;}if(d.isFunction(_1a1)){var
_1a5=d.attr(node,_19f);if(!_1a5){_1a5=_19e++;d.attr(node,_19f,_1a5);}if(!_19d[_1a5]){_19d[_1a5]={};}var
h=_19d[_1a5][_1a2];if(h){d.disconnect(h);}else{try{delete
node[_1a2];}catch(e){}}_19d[_1a5][_1a2]=d.connect(node,_1a2,_1a1);break;}if(_1a3||typeof
_1a1=="boolean"){node[_1a2]=_1a1;break;}node.setAttribute(_1a4,_1a1);}while(false);return
node;}_1a1=node[_1a2];if(_1a3&&typeof
_1a1!="undefined"){return
_1a1;}if(_1a2!="href"&&(typeof
_1a1=="boolean"||d.isFunction(_1a1))){return _1a1;}return
_19c(node,_1a4)?node.getAttribute(_1a4):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_19b(name));};dojo.getNodeProp=function(node,name){node=byId(node);var
lc=name.toLowerCase(),_1a6=_198[lc]||name;if((_1a6 in
node)&&_1a6!="href"){return node[_1a6];}var
_1a7=_199[lc]||name;return
_19c(node,_1a7)?node.getAttribute(_1a7):null;};dojo.create=function(tag,_1a8,_1a9,pos){var
doc=d.doc;if(_1a9){_1a9=byId(_1a9);doc=_1a9.ownerDocument;}if(typeof
tag=="string"){tag=doc.createElement(tag);}if(_1a8){d.attr(tag,_1a8);}if(_1a9){d.place(tag,_1a9,pos);}return
tag;};d.empty=d.isIE?function(node){node=byId(node);for(var
c;c=node.lastChild;){d.destroy(c);}}:function(node){byId(node).innerHTML="";};var
_1aa={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_1ab=/<\s*([\w\:]+)/,_1ac={},_1ad=0,_1ae="__"+d._scopeName+"ToDomId";for(var
_1af in _1aa){if(_1aa.hasOwnProperty(_1af)){var
tw=_1aa[_1af];tw.pre=_1af=="option"?"<select
multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}d._toDom=function(frag,doc){doc=doc||d.doc;var
_1b0=doc[_1ae];if(!_1b0){doc[_1ae]=_1b0=++_1ad+"";_1ac[_1b0]=doc.createElement("div");}frag+="";var
_1b1=frag.match(_1ab),tag=_1b1?_1b1[1].toLowerCase():"",_1b2=_1ac[_1b0],wrap,i,fc,df;if(_1b1&&_1aa[tag]){wrap=_1aa[tag];_1b2.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1b2=_1b2.firstChild;}}else{_1b2.innerHTML=frag;}if(_1b2.childNodes.length==1){return
_1b2.removeChild(_1b2.firstChild);}df=doc.createDocumentFragment();while(fc=_1b2.firstChild){df.appendChild(fc);}return
df;};var
_1b3="className";dojo.hasClass=function(node,_1b4){return
((" "+byId(node)[_1b3]+" ").indexOf("
"+_1b4+" ")>=0);};var
_1b5=/\s+/,a1=[""],_1b6={},_1b7=function(s){if(typeof
s=="string"||s instanceof String){if(s.indexOf("
")<0){a1[0]=s;return a1;}else{return s.split(_1b5);}}return
s||"";};dojo.addClass=function(node,_1b8){node=byId(node);_1b8=_1b7(_1b8);var
cls=node[_1b3],_1b9;cls=cls?" "+cls+" ":"
";_1b9=cls.length;for(var
i=0,len=_1b8.length,c;i<len;++i){c=_1b8[i];if(c&&cls.indexOf("
"+c+" ")<0){cls+=c+"
";}}if(_1b9<cls.length){node[_1b3]=cls.substr(1,cls.length-2);}};dojo.removeClass=function(node,_1ba){node=byId(node);var
cls;if(_1ba!==undefined){_1ba=_1b7(_1ba);cls="
"+node[_1b3]+" ";for(var
i=0,len=_1ba.length;i<len;++i){cls=cls.replace("
"+_1ba[i]+" ","
");}cls=d.trim(cls);}else{cls="";}if(node[_1b3]!=cls){node[_1b3]=cls;}};dojo.replaceClass=function(node,_1bb,_1bc){node=byId(node);_1b6.className=node.className;dojo.removeClass(_1b6,_1bc);dojo.addClass(_1b6,_1bb);if(node.className!==_1b6.className){node.className=_1b6.className;}};dojo.toggleClass=function(node,_1bd,_1be){if(_1be===undefined){_1be=!d.hasClass(node,_1bd);}d[_1be?"addClass":"removeClass"](node,_1bd);};})();}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var
d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var
tnl=function(a,_1bf,_1c0){if(!a.sort){a=aps.call(a,0);}var
ctor=_1c0||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return
_1bf?a._stash(_1bf):a;};var
_1c1=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return
function(node){a[0]=node;return f.apply(o,a);};};var
_1c2=function(f,o){return
function(){this.forEach(_1c1(f,arguments,o));return this;};};var
_1c3=function(f,o){return function(){return
this.map(_1c1(f,arguments,o));};};var _1c4=function(f,o){return
function(){return this.filter(_1c1(f,arguments,o));};};var
_1c5=function(f,g,o){return function(){var
a=arguments,body=_1c1(f,a,o);if(g.call(o||d.global,a)){return
this.map(body);}this.forEach(body);return this;};};var
_1c6=function(a){return a.length==1&&(typeof
a[0]=="string");};var _1c7=function(node){var
p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return
tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var
nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1c3;nl._adaptAsForEach=_1c2;nl._adaptAsFilter=_1c4;nl._adaptWithCondition=_1c5;d.forEach(["slice","splice"],function(name){var
f=ap[name];nlp[name]=function(){return
this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});d.forEach(["indexOf","lastIndexOf","every","some"],function(name){var
f=d[name];nlp[name]=function(){return
f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach(["attr","style"],function(name){nlp[name]=_1c5(d[name],_1c6);});d.forEach(["connect","addClass","removeClass","replaceClass","toggleClass","empty","removeAttr"],function(name){nlp[name]=_1c2(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_1c8,_1c9){var
_1ca=_1c8.parse===true?true:false;if(typeof
_1c8.template=="string"){var
_1cb=_1c8.templateFunc||(dojo.string&&dojo.string.substitute);_1c8=_1cb?_1cb(_1c8.template,_1c8):_1c8;}var
type=(typeof
_1c8);if(type=="string"||type=="number"){_1c8=dojo._toDom(_1c8,(_1c9&&_1c9.ownerDocument));if(_1c8.nodeType==11){_1c8=dojo._toArray(_1c8.childNodes);}else{_1c8=[_1c8];}}else{if(!dojo.isArrayLike(_1c8)){_1c8=[_1c8];}else{if(!dojo.isArray(_1c8)){_1c8=dojo._toArray(_1c8);}}}if(_1ca){_1c8._runParse=true;}return
_1c8;},_cloneNode:function(node){return
node.cloneNode(true);},_place:function(ary,_1cc,_1cd,_1ce){if(_1cc.nodeType!=1&&_1cd=="only"){return;}var
_1cf=_1cc,_1d0;var _1d1=ary.length;for(var i=_1d1-1;i>=0;i--){var
node=(_1ce?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1d0){_1d0=_1cf.ownerDocument.createElement("div");}_1d0.appendChild(node);dojo.parser.parse(_1d0);node=_1d0.firstChild;while(_1d0.firstChild){_1d0.removeChild(_1d0.firstChild);}}if(i==_1d1-1){dojo.place(node,_1cf,_1cd);}else{_1cf.parentNode.insertBefore(node,_1cf);}_1cf=node;}},_stash:function(_1d2){this._parent=_1d2;return
this;},end:function(){if(this._parent){return this._parent;}else{return new
this._NodeListCtor();}},concat:function(item){var
t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return
a&&!d.isArray(a)&&(typeof
NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return
this._wrap(apc.apply(t,m),this);},map:function(func,obj){return
this._wrap(d.map(this,func,obj),this);},forEach:function(_1d3,_1d4){d.forEach(this,_1d3,_1d4);return
this;},coords:_1c3(d.coords),position:_1c3(d.position),place:function(_1d5,_1d6){var
item=d.query(_1d5)[0];return
this.forEach(function(node){d.place(node,item,_1d6);});},orphan:function(_1d7){return
(_1d7?d._filterQueryResult(this,_1d7):this).forEach(_1c7);},adopt:function(_1d8,_1d9){return
d.query(_1d8).place(this[0],_1d9)._stash(this);},query:function(_1da){if(!_1da){return
this;}var ret=this.map(function(node){return
d.query(_1da,node).filter(function(_1db){return
_1db!==undefined;});});return
this._wrap(apc.apply([],ret),this);},filter:function(_1dc){var
a=arguments,_1dd=this,_1de=0;if(typeof
_1dc=="string"){_1dd=d._filterQueryResult(this,a[0]);if(a.length==1){return
_1dd._stash(this);}_1de=1;}return
this._wrap(d.filter(_1dd,a[_1de],a[_1de+1]),this);},addContent:function(_1df,_1e0){_1df=this._normalize(_1df,this[0]);for(var
i=0,node;(node=this[i]);i++){this._place(_1df,node,_1e0,i>0);}return
this;},instantiate:function(_1e1,_1e2){var
c=d.isFunction(_1e1)?_1e1:d.getObject(_1e1);_1e2=_1e2||{};return
this.forEach(function(node){new c(_1e2,node);});},at:function(){var t=new
this._NodeListCtor();d.forEach(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return
t._stash(this);}});nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];d.forEach(nl.events,function(evt){var
_1e3="on"+evt;nlp[_1e3]=function(a,b){return
this.connect(_1e3,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;(function(){var
_1e4=function(d){var trim=d.trim;var each=d.forEach;var
qlc=(d._NodeListCtor=d.NodeList);var _1e5=function(){return d.doc;};var
_1e6=((d.isWebKit||d.isMozilla)&&((_1e5().compatMode)=="BackCompat"));var
_1e7=!!_1e5().firstChild["children"]?"children":"childNodes";var
_1e8=">~+";var _1e9=false;var _1ea=function(){return
true;};var
_1eb=function(_1ec){if(_1e8.indexOf(_1ec.slice(-1))>=0){_1ec+=" *
";}else{_1ec+=" ";}var ts=function(s,e){return
trim(_1ec.slice(s,e));};var _1ed=[];var
_1ee=-1,_1ef=-1,_1f0=-1,_1f1=-1,_1f2=-1,inId=-1,_1f3=-1,lc="",cc="",_1f4;var
x=0,ql=_1ec.length,_1f5=null,_1f6=null;var
_1f7=function(){if(_1f3>=0){var
tv=(_1f3==x)?null:ts(_1f3,x);_1f5[(_1e8.indexOf(tv)<0)?"tag":"oper"]=tv;_1f3=-1;}};var
_1f8=function(){if(inId>=0){_1f5.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var
_1f9=function(){if(_1f2>=0){_1f5.classes.push(ts(_1f2+1,x).replace(/\\/g,""));_1f2=-1;}};var
_1fa=function(){_1f8();_1f7();_1f9();};var
_1fb=function(){_1fa();if(_1f1>=0){_1f5.pseudos.push({name:ts(_1f1+1,x)});}_1f5.loops=(_1f5.pseudos.length||_1f5.attrs.length||_1f5.classes.length);_1f5.oquery=_1f5.query=ts(_1f4,x);_1f5.otag=_1f5.tag=(_1f5["oper"])?null:(_1f5.tag||"*");if(_1f5.tag){_1f5.tag=_1f5.tag.toUpperCase();}if(_1ed.length&&(_1ed[_1ed.length-1].oper)){_1f5.infixOper=_1ed.pop();_1f5.query=_1f5.infixOper.query+"
"+_1f5.query;}_1ed.push(_1f5);_1f5=null;};for(;lc=cc,cc=_1ec.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_1f5){_1f4=x;_1f5={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return
(_1e9)?this.otag:this.tag;}};_1f3=x;}if(_1ee>=0){if(cc=="]"){if(!_1f6.attr){_1f6.attr=ts(_1ee+1,x);}else{_1f6.matchFor=ts((_1f0||_1ee+1),x);}var
cmf=_1f6.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1f6.matchFor=cmf.slice(1,-1);}}_1f5.attrs.push(_1f6);_1f6=null;_1ee=_1f0=-1;}else{if(cc=="="){var
_1fc=("|~^$*".indexOf(lc)>=0)?lc:"";_1f6.type=_1fc+cc;_1f6.attr=ts(_1ee+1,x-_1fc.length);_1f0=x+1;}}}else{if(_1ef>=0){if(cc==")"){if(_1f1>=0){_1f6.value=ts(_1ef+1,x);}_1f1=_1ef=-1;}}else{if(cc=="#"){_1fa();inId=x+1;}else{if(cc=="."){_1fa();_1f2=x;}else{if(cc==":"){_1fa();_1f1=x;}else{if(cc=="["){_1fa();_1ee=x;_1f6={};}else{if(cc=="("){if(_1f1>=0){_1f6={name:ts(_1f1+1,x),value:null};_1f5.pseudos.push(_1f6);}_1ef=x;}else{if((cc=="
")&&(lc!=cc)){_1fb();}}}}}}}}}return _1ed;};var
_1fd=function(_1fe,_1ff){if(!_1fe){return _1ff;}if(!_1ff){return
_1fe;}return function(){return
_1fe.apply(window,arguments)&&_1ff.apply(window,arguments);};};var
_200=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var
_201=function(n){return (1==n.nodeType);};var _202="";var
_203=function(elem,attr){if(!elem){return
_202;}if(attr=="class"){return
elem.className||_202;}if(attr=="for"){return
elem.htmlFor||_202;}if(attr=="style"){return
elem.style.cssText||_202;}return
(_1e9?elem.getAttribute(attr):elem.getAttribute(attr,2))||_202;};var
_204={"*=":function(attr,_205){return function(elem){return
(_203(elem,attr).indexOf(_205)>=0);};},"^=":function(attr,_206){return
function(elem){return
(_203(elem,attr).indexOf(_206)==0);};},"$=":function(attr,_207){var
tval=" "+_207;return function(elem){var ea="
"+_203(elem,attr);return
(ea.lastIndexOf(_207)==(ea.length-_207.length));};},"~=":function(attr,_208){var
tval=" "+_208+" ";return function(elem){var ea="
"+_203(elem,attr)+" ";return
(ea.indexOf(tval)>=0);};},"|=":function(attr,_209){var
_20a=" "+_209+"-";return function(elem){var ea="
"+_203(elem,attr);return
((ea==_209)||(ea.indexOf(_20a)==0));};},"=":function(attr,_20b){return
function(elem){return (_203(elem,attr)==_20b);};}};var _20c=(typeof
_1e5().firstChild.nextElementSibling=="undefined");var
_20d=!_20c?"nextElementSibling":"nextSibling";var
_20e=!_20c?"previousElementSibling":"previousSibling";var
_20f=(_20c?_201:_1ea);var
_210=function(node){while(node=node[_20e]){if(_20f(node)){return
false;}}return true;};var
_211=function(node){while(node=node[_20d]){if(_20f(node)){return
false;}}return true;};var _212=function(node){var root=node.parentNode;var
i=0,tret=root[_1e7],ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return
-1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return
ci;}root["_l"]=l;ci=-1;for(var
te=root["firstElementChild"]||root["firstChild"];te;te=te[_20d]){if(_20f(te)){te["_i"]=++i;if(node===te){ci=i;}}}return
ci;};var _213=function(elem){return !((_212(elem))%2);};var
_214=function(elem){return ((_212(elem))%2);};var
_215={"checked":function(name,_216){return function(elem){return
!!("checked" in
elem?elem.checked:elem.selected);};},"first-child":function(){return
_210;},"last-child":function(){return
_211;},"only-child":function(name,_217){return
function(node){if(!_210(node)){return false;}if(!_211(node)){return
false;}return true;};},"empty":function(name,_218){return
function(elem){var cn=elem.childNodes;var
cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var
nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return
true;};},"contains":function(name,_219){var
cz=_219.charAt(0);if(cz=="\""||cz=="'"){_219=_219.slice(1,-1);}return
function(elem){return
(elem.innerHTML.indexOf(_219)>=0);};},"not":function(name,_21a){var
p=_1eb(_21a)[0];var
_21b={el:1};if(p.tag!="*"){_21b.tag=1;}if(!p.classes.length){_21b.classes=1;}var
ntf=_21c(p,_21b);return function(elem){return
(!ntf(elem));};},"nth-child":function(name,_21d){var
pi=parseInt;if(_21d=="odd"){return
_214;}else{if(_21d=="even"){return
_213;}}if(_21d.indexOf("n")!=-1){var
_21e=_21d.split("n",2);var
pred=_21e[0]?((_21e[0]=="-")?-1:pi(_21e[0])):1;var
idx=_21e[1]?pi(_21e[1]):0;var
lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return
function(elem){var i=_212(elem);return
(i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_21d=idx;}}var
_21f=pi(_21d);return function(elem){return (_212(elem)==_21f);};}};var
_220=(d.isIE<9||(dojo.isIE&&dojo.isQuirks))?function(cond){var
clc=cond.toLowerCase();if(clc=="class"){cond="className";}return
function(elem){return
(_1e9?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return
function(elem){return
(elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var
_21c=function(_221,_222){if(!_221){return _1ea;}_222=_222||{};var
ff=null;if(!("el" in
_222)){ff=_1fd(ff,_201);}if(!("tag" in
_222)){if(_221.tag!="*"){ff=_1fd(ff,function(elem){return
(elem&&(elem.tagName==_221.getTag()));});}}if(!("classes"
in _222)){each(_221.classes,function(_223,idx,arr){var re=new
RegExp("(?:^|\\s)"+_223+"(?:\\s|$)");ff=_1fd(ff,function(elem){return
re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in
_222)){each(_221.pseudos,function(_224){var
pn=_224.name;if(_215[pn]){ff=_1fd(ff,_215[pn](pn,_224.value));}});}if(!("attrs"
in _222)){each(_221.attrs,function(attr){var _225;var
a=attr.attr;if(attr.type&&_204[attr.type]){_225=_204[attr.type](a,attr.matchFor);}else{if(a.length){_225=_220(a);}}if(_225){ff=_1fd(ff,_225);}});}if(!("id"
in _222)){if(_221.id){ff=_1fd(ff,function(elem){return
(!!elem&&(elem.id==_221.id));});}}if(!ff){if(!("default"
in _222)){ff=_1ea;}}return ff;};var _226=function(_227){return
function(node,ret,bag){while(node=node[_20d]){if(_20c&&(!_201(node))){continue;}if((!bag||_228(node,bag))&&_227(node)){ret.push(node);}break;}return
ret;};};var _229=function(_22a){return function(root,ret,bag){var
te=root[_20d];while(te){if(_20f(te)){if(bag&&!_228(te,bag)){break;}if(_22a(te)){ret.push(te);}}te=te[_20d];}return
ret;};};var _22b=function(_22c){_22c=_22c||_1ea;return
function(root,ret,bag){var
te,x=0,tret=root[_1e7];while(te=tret[x++]){if(_20f(te)&&(!bag||_228(te,bag))&&(_22c(te,x))){ret.push(te);}}return
ret;};};var _22d=function(node,root){var
pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return
!!pn;};var _22e={};var _22f=function(_230){var
_231=_22e[_230.query];if(_231){return _231;}var io=_230.infixOper;var
oper=(io?io.oper:"");var _232=_21c(_230,{el:1});var
qt=_230.tag;var _233=("*"==qt);var
ecs=_1e5()["getElementsByClassName"];if(!oper){if(_230.id){_232=(!_230.loops&&_233)?_1ea:_21c(_230,{el:1,id:1});_231=function(root,arr){var
te=d.byId(_230.id,(root.ownerDocument||root));if(!te||!_232(te)){return;}if(9==root.nodeType){return
_200(te,arr);}else{if(_22d(te,root)){return
_200(te,arr);}}};}else{if(ecs&&/\{\s*\[native
code\]\s*\}/.test(String(ecs))&&_230.classes.length&&!_1e6){_232=_21c(_230,{el:1,classes:1,id:1});var
_234=_230.classes.join(" ");_231=function(root,arr,bag){var
ret=_200(0,arr),te,x=0;var
tret=root.getElementsByClassName(_234);while((te=tret[x++])){if(_232(te,root)&&_228(te,bag)){ret.push(te);}}return
ret;};}else{if(!_233&&!_230.loops){_231=function(root,arr,bag){var
ret=_200(0,arr),te,x=0;var
tret=root.getElementsByTagName(_230.getTag());while((te=tret[x++])){if(_228(te,bag)){ret.push(te);}}return
ret;};}else{_232=_21c(_230,{el:1,tag:1,id:1});_231=function(root,arr,bag){var
ret=_200(0,arr),te,x=0;var
tret=root.getElementsByTagName(_230.getTag());while((te=tret[x++])){if(_232(te,root)&&_228(te,bag)){ret.push(te);}}return
ret;};}}}}else{var
_235={el:1};if(_233){_235.tag=1;}_232=_21c(_230,_235);if("+"==oper){_231=_226(_232);}else{if("~"==oper){_231=_229(_232);}else{if(">"==oper){_231=_22b(_232);}}}}return
_22e[_230.query]=_231;};var _236=function(root,_237){var
_238=_200(root),qp,x,te,qpl=_237.length,bag,ret;for(var
i=0;i<qpl;i++){ret=[];qp=_237[i];x=_238.length-1;if(x>0){bag={};ret.nozip=true;}var
gef=_22f(qp);for(var
j=0;(te=_238[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_238=ret;}return
ret;};var _239={},_23a={};var _23b=function(_23c){var
_23d=_1eb(trim(_23c));if(_23d.length==1){var tef=_22f(_23d[0]);return
function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return
r;};}return function(root){return _236(root,_23d);};};var
nua=navigator.userAgent;var wk="WebKit/";var
_23e=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var
_23f=d.isIE?"commentStrip":"nozip";var
qsa="querySelectorAll";var
_240=(!!_1e5()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_23e));var
_241=/n\+\d|([^ ])?([>~+])([^ =])?/g;var
_242=function(_243,pre,ch,post){return ch?(pre?pre+"
":"")+ch+(post?" "+post:""):_243;};var
_244=function(_245,_246){_245=_245.replace(_241,_242);if(_240){var
_247=_23a[_245];if(_247&&!_246){return _247;}}var
_248=_239[_245];if(_248){return _248;}var qcz=_245.charAt(0);var
_249=(-1==_245.indexOf("
"));if((_245.indexOf("#")>=0)&&(_249)){_246=true;}var
_24a=(_240&&(!_246)&&(_1e8.indexOf(qcz)==-1)&&(!d.isIE||(_245.indexOf(":")==-1))&&(!(_1e6&&(_245.indexOf(".")>=0)))&&(_245.indexOf(":contains")==-1)&&(_245.indexOf(":checked")==-1)&&(_245.indexOf("|=")==-1));if(_24a){var
tq=(_1e8.indexOf(_245.charAt(_245.length-1))>=0)?(_245+"
*"):_245;return
_23a[_245]=function(root){try{if(!((9==root.nodeType)||_249)){throw
"";}var r=root[qsa](tq);r[_23f]=true;return r;}catch(e){return
_244(_245,true)(root);}};}else{var _24b=_245.split(/\s*,\s*/);return
_239[_245]=((_24b.length<2)?_23b(_245):function(root){var
_24c=0,ret=[],tp;while((tp=_24b[_24c++])){ret=ret.concat(_23b(tp)(root));}return
ret;});}};var _24d=0;var _24e=d.isIE?function(node){if(_1e9){return
(node.getAttribute("_uid")||node.setAttribute("_uid",++_24d)||_24d);}else{return
node.uniqueID;}}:function(node){return
(node._uid||(node._uid=++_24d));};var
_228=function(node,bag){if(!bag){return 1;}var
id=_24e(node);if(!bag[id]){return bag[id]=1;}return 0;};var
_24f="_zipIdx";var
_250=function(arr){if(arr&&arr.nozip){return
(qlc._wrap)?qlc._wrap(arr):arr;}var ret=new
qlc();if(!arr||!arr.length){return
ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return
ret;}_24d++;if(d.isIE&&_1e9){var
_251=_24d+"";arr[0].setAttribute(_24f,_251);for(var
x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_24f)!=_251){ret.push(te);}te.setAttribute(_24f,_251);}}else{if(d.isIE&&arr.commentStrip){try{for(var
x=1,te;te=arr[x];x++){if(_201(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_24f]=_24d;}for(var
x=1,te;te=arr[x];x++){if(arr[x][_24f]!=_24d){ret.push(te);}te[_24f]=_24d;}}}return
ret;};d.query=function(_252,root){qlc=d._NodeListCtor;if(!_252){return new
qlc();}if(_252.constructor==qlc){return _252;}if(typeof
_252!="string"){return new qlc(_252);}if(typeof
root=="string"){root=d.byId(root);if(!root){return new
qlc();}}root=root||_1e5();var
od=root.ownerDocument||root.documentElement;_1e9=(root.contentType&&root.contentType=="application/xml")||(d.isOpera&&(root.doctype||od.toString()=="[object
XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var
r=_244(_252)(root);if(r&&r.nozip&&!qlc._wrap){return
r;}return
_250(r);};d.query.pseudos=_215;d._filterQueryResult=function(_253,_254,root){var
_255=new
d._NodeListCtor(),_256=_1eb(_254),_257=(_256.length==1&&!/[^\w#\.]/.test(_254))?_21c(_256[0]):function(node){return
dojo.query(_254,root).indexOf(node)!=-1;};for(var
x=0,te;te=_253[x];x++){if(_257(te)){_255.push(te);}}return _255;};};var
_258=function(){acme={trim:function(str){str=str.replace(/^\s+/,"");for(var
i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return
str;},forEach:function(arr,_259,_25a){if(!arr||!arr.length){return;}for(var
i=0,l=arr.length;i<l;++i){_259.call(_25a||window,arr[i],i,arr);}},byId:function(id,doc){if(typeof
id=="string"){return
(doc||document).getElementById(id);}else{return
id;}},doc:document,NodeList:Array};var n=navigator;var dua=n.userAgent;var
dav=n.appVersion;var
tv=parseFloat(dav);acme.isOpera=(dua.indexOf("Opera")>=0)?tv:undefined;acme.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:undefined;acme.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;acme.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;var
_25b=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_25b&&!acme.isChrome){acme.isSafari=parseFloat(dav.split("Version/")[1]);if(!acme.isSafari||parseFloat(dav.substr(_25b+7))<=419.3){acme.isSafari=2;}}if(document.all&&!acme.isOpera){acme.isIE=parseFloat(dav.split("MSIE
")[1])||undefined;}Array._wrap=function(arr){return arr;};return
acme;};if(dojo){dojo.provide("dojo._base.query");_1e4(this["queryPortability"]||this["acme"]||dojo);}else{_1e4(this["queryPortability"]||this["acme"]||_258());}})();}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var
_25c=dojo,cfg=_25c.config;function
_25d(obj,name,_25e){if(_25e===null){return;}var val=obj[name];if(typeof
val=="string"){obj[name]=[val,_25e];}else{if(_25c.isArray(val)){val.push(_25e);}else{obj[name]=_25e;}}};dojo.fieldToObject=function(_25f){var
ret=null;var item=_25c.byId(_25f);if(item){var _260=item.name;var
type=(item.type||"").toLowerCase();if(_260&&type&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_25c.query("option",item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return
ret;};dojo.formToObject=function(_261){var ret={};var
_262="file|submit|image|reset|button|";_25c.forEach(dojo.byId(_261).elements,function(item){var
_263=item.name;var
type=(item.type||"").toLowerCase();if(_263&&type&&_262.indexOf(type)==-1&&!item.disabled){_25d(ret,_263,_25c.fieldToObject(item));if(type=="image"){ret[_263+".x"]=ret[_263+".y"]=ret[_263].x=ret[_263].y=0;}}});return
ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var
_264=[];var _265={};for(var name in map){var
_266=map[name];if(_266!=_265[name]){var
_267=enc(name)+"=";if(_25c.isArray(_266)){for(var
i=0;i<_266.length;i++){_264.push(_267+enc(_266[i]));}}else{_264.push(_267+enc(_266));}}}return
_264.join("&");};dojo.formToQuery=function(_268){return
_25c.objectToQuery(_25c.formToObject(_268));};dojo.formToJson=function(_269,_26a){return
_25c.toJson(_25c.formToObject(_269),_26a);};dojo.queryToObject=function(str){var
ret={};var qp=str.split("&");var
dec=decodeURIComponent;_25c.forEach(qp,function(item){if(item.length){var
_26b=item.split("=");var name=dec(_26b.shift());var
val=dec(_26b.join("="));if(typeof
ret[name]=="string"){ret[name]=[ret[name]];}if(_25c.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return
ret;};dojo._blockAsync=false;var
_26c=_25c._contentHandlers=dojo.contentHandlers={text:function(xhr){return
xhr.responseText;},json:function(xhr){return
_25c.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider
using the standard mimetype:application/json."+" json-commenting
can introduce security issues. To"+" decrease the chances of
hijacking, use the standard the 'json' handler and"+"
prefix your json with: {}&&\n"+"Use
djConfig.useCommentedJson=true to turn off this message.");}var
_26d=xhr.responseText;var _26e=_26d.indexOf("/*");var
_26f=_26d.lastIndexOf("*/");if(_26e==-1||_26f==-1){throw new
Error("JSON was not comment filtered");}return
_25c.fromJson(_26d.substring(_26e+2,_26f));},javascript:function(xhr){return
_25c.eval(xhr.responseText);},xml:function(xhr){var
_270=xhr.responseXML;if(_25c.isIE&&(!_270||!_270.documentElement)){var
ms=function(n){return "MSXML"+n+".DOMDocument";};var
dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_25c.some(dp,function(p){try{var
dom=new
ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_270=dom;}catch(e){return
false;}return true;});}return
_270;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return
_26c["json-comment-filtered"](xhr);}else{return
_26c["json"](xhr);}}};dojo._ioSetArgs=function(args,_271,_272,_273){var
_274={args:args,url:args.url};var _275=null;if(args.form){var
form=_25c.byId(args.form);var
_276=form.getAttributeNode("action");_274.url=_274.url||(_276?_276.value:null);_275=_25c.formToObject(form);}var
_277=[{}];if(_275){_277.push(_275);}if(args.content){_277.push(args.content);}if(args.preventCache){_277.push({"dojo.preventCache":new
Date().valueOf()});}_274.query=_25c.objectToQuery(_25c.mixin.apply(null,_277));_274.handleAs=args.handleAs||"text";var
d=new _25c.Deferred(_271);d.addCallbacks(_272,function(_278){return
_273(_278,d);});var
ld=args.load;if(ld&&_25c.isFunction(ld)){d.addCallback(function(_279){return
ld.call(args,_279,_274);});}var
err=args.error;if(err&&_25c.isFunction(err)){d.addErrback(function(_27a){return
err.call(args,_27a,_274);});}var
_27b=args.handle;if(_27b&&_25c.isFunction(_27b)){d.addBoth(function(_27c){return
_27b.call(args,_27c,_274);});}if(cfg.ioPublish&&_25c.publish&&_274.args.ioPublish!==false){d.addCallbacks(function(res){_25c.publish("/dojo/io/load",[d,res]);return
res;},function(res){_25c.publish("/dojo/io/error",[d,res]);return
res;});d.addBoth(function(res){_25c.publish("/dojo/io/done",[d,res]);return
res;});}d.ioArgs=_274;return d;};var
_27d=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _27e=typeof
xhr.abort;if(_27e=="function"||_27e=="object"||_27e=="unknown"){xhr.abort();}var
err=dfd.ioArgs.error;if(!err){err=new Error("xhr
cancelled");err.dojoType="cancel";}return err;};var
_27f=function(dfd){var ret=_26c[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return
ret===undefined?null:ret;};var
_280=function(_281,dfd){if(!dfd.ioArgs.args.failOk){console.error(_281);}return
_281;};var _282=null;var _283=[];var _284=0;var
_285=function(dfd){if(_284<=0){_284=0;if(cfg.ioPublish&&_25c.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_25c.publish("/dojo/io/stop");}}};var
_286=function(){var now=(new
Date()).getTime();if(!_25c._blockAsync){for(var
i=0,tif;i<_283.length&&(tif=_283[i]);i++){var dfd=tif.dfd;var
func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_283.splice(i--,1);_284-=1;}else{if(tif.ioCheck(dfd)){_283.splice(i--,1);tif.resHandle(dfd);_284-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_283.splice(i--,1);var
err=new Error("timeout
exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_284-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_285(dfd);if(!_283.length){clearInterval(_282);_282=null;return;}};dojo._ioCancelAll=function(){try{_25c.forEach(_283,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_25c.isIE){_25c.addOnWindowUnload(_25c._ioCancelAll);}_25c._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_25c.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_284){_25c.publish("/dojo/io/start");}_284+=1;_25c.publish("/dojo/io/send",[dfd]);}};_25c._ioWatch=function(dfd,_287,_288,_289){var
args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new
Date()).getTime();}_283.push({dfd:dfd,validCheck:_287,ioCheck:_288,resHandle:_289});if(!_282){_282=setInterval(_286,50);}if(args.sync){_286();}};var
_28a="application/x-www-form-urlencoded";var
_28b=function(dfd){return dfd.ioArgs.xhr.readyState;};var
_28c=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var
_28d=function(dfd){var
xhr=dfd.ioArgs.xhr;if(_25c._isDocumentOk(xhr)){dfd.callback(dfd);}else{var
err=new Error("Unable to load "+dfd.ioArgs.url+"
status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_28e){if(_28e.query.length){_28e.url+=(_28e.url.indexOf("?")==-1?"?":"&")+_28e.query;_28e.query=null;}};dojo.xhr=function(_28f,args,_290){var
dfd=_25c._ioSetArgs(args,_27d,_27f,_280);var _291=dfd.ioArgs;var
xhr=_291.xhr=_25c._xhrObj(_291.args);if(!xhr){dfd.cancel();return
dfd;}if("postData" in
args){_291.query=args.postData;}else{if("putData" in
args){_291.query=args.putData;}else{if("rawBody" in
args){_291.query=args.rawBody;}else{if((arguments.length>2&&!_290)||"POST|PUT".indexOf(_28f.toUpperCase())==-1){_25c._ioAddQueryToUrl(_291);}}}}xhr.open(_28f,_291.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var
hdr in
args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader("Content-Type",args.contentType||_28a);if(!args.headers||!("X-Requested-With"
in
args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_25c._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_291.query);}else{try{xhr.send(_291.query);}catch(e){_291.error=e;dfd.cancel();}}_25c._ioWatch(dfd,_28b,_28c,_28d);xhr=null;return
dfd;};dojo.xhrGet=function(args){return
_25c.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return
_25c.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return
_25c.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return
_25c.xhr("DELETE",args);};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");(function(){var
d=dojo;var
_292=d._mixin;dojo._Line=function(_293,end){this.start=_293;this.end=end;};dojo._Line.prototype.getValue=function(n){return
((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_292(this,args);if(d.isArray(this.curve)){this.curve=new
d._Line(this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var
_294=this._percent,_295=this.easing;return
_295?_295(_294):_294;},_fire:function(evt,args){var
a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception
in animation handler for:",evt);console.error(e);}}}return
this;},play:function(_296,_297){var
_298=this;if(_298._delayTimer){_298._clearTimer();}if(_297){_298._stopTimer();_298._active=_298._paused=false;_298._percent=0;}else{if(_298._active&&!_298._paused){return
_298;}}_298._fire("beforeBegin",[_298.node]);var
de=_296||_298.delay,_299=dojo.hitch(_298,"_play",_297);if(de>0){_298._delayTimer=setTimeout(_299,de);return
_298;}_299();return _298;},_play:function(_29a){var
_29b=this;if(_29b._delayTimer){_29b._clearTimer();}_29b._startTime=new
Date().valueOf();if(_29b._paused){_29b._startTime-=_29b.duration*_29b._percent;}_29b._active=true;_29b._paused=false;var
_29c=_29b.curve.getValue(_29b._getStep());if(!_29b._percent){if(!_29b._startRepeatCount){_29b._startRepeatCount=_29b.repeat;}_29b._fire("onBegin",[_29c]);}_29b._fire("onPlay",[_29c]);_29b._cycle();return
_29b;},pause:function(){var
_29d=this;if(_29d._delayTimer){_29d._clearTimer();}_29d._stopTimer();if(!_29d._active){return
_29d;}_29d._paused=true;_29d._fire("onPause",[_29d.curve.getValue(_29d._getStep())]);return
_29d;},gotoPercent:function(_29e,_29f){var
_2a0=this;_2a0._stopTimer();_2a0._active=_2a0._paused=true;_2a0._percent=_29e;if(_29f){_2a0.play();}return
_2a0;},stop:function(_2a1){var
_2a2=this;if(_2a2._delayTimer){_2a2._clearTimer();}if(!_2a2._timer){return
_2a2;}_2a2._stopTimer();if(_2a1){_2a2._percent=1;}_2a2._fire("onStop",[_2a2.curve.getValue(_2a2._getStep())]);_2a2._active=_2a2._paused=false;return
_2a2;},status:function(){if(this._active){return
this._paused?"paused":"playing";}return
"stopped";},_cycle:function(){var _2a3=this;if(_2a3._active){var
curr=new Date().valueOf();var
step=(curr-_2a3._startTime)/(_2a3.duration);if(step>=1){step=1;}_2a3._percent=step;if(_2a3.easing){step=_2a3.easing(step);}_2a3._fire("onAnimate",[_2a3.curve.getValue(step)]);if(_2a3._percent<1){_2a3._startTimer();}else{_2a3._active=false;if(_2a3.repeat>0){_2a3.repeat--;_2a3.play(null,true);}else{if(_2a3.repeat==-1){_2a3.play(null,true);}else{if(_2a3._startRepeatCount){_2a3.repeat=_2a3._startRepeatCount;_2a3._startRepeatCount=0;}}}_2a3._percent=0;_2a3._fire("onEnd",[_2a3.node]);!_2a3.repeat&&_2a3._stopTimer();}}return
_2a3;},_clearTimer:function(){clearTimeout(this._delayTimer);delete
this._delayTimer;}});var
ctr=0,_2a4=null,_2a5={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.connect(_2a5,"run",this,"_cycle");ctr++;}if(!_2a4){_2a4=setInterval(d.hitch(_2a5,"run"),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_2a4);_2a4=null;ctr=0;}}});var
_2a6=d.isIE?function(node){var
ns=node.style;if(!ns.width.length&&d.style(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var
_2a7=_292({properties:{}},args),_2a8=(_2a7.properties.opacity={});_2a8.start=!("start"
in _2a7)?function(){return
+d.style(_2a7.node,"opacity")||0;}:_2a7.start;_2a8.end=_2a7.end;var
anim=d.animateProperty(_2a7);d.connect(anim,"beforeBegin",d.partial(_2a6,_2a7.node));return
anim;};dojo.fadeIn=function(args){return
d._fade(_292({end:1},args));};dojo.fadeOut=function(args){return
d._fade(_292({end:0},args));};dojo._defaultEasing=function(n){return
0.5+((Math.sin((n+1.5)*Math.PI))/2);};var
_2a9=function(_2aa){this._properties=_2aa;for(var p in _2aa){var
prop=_2aa[p];if(prop.start instanceof d.Color){prop.tempColor=new
d.Color();}}};_2a9.prototype.getValue=function(r){var ret={};for(var p in
this._properties){var prop=this._properties[p],_2ab=prop.start;if(_2ab
instanceof
d.Color){ret[p]=d.blendColors(_2ab,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2ab)){ret[p]=((prop.end-_2ab)*r)+_2ab+(p!="opacity"?prop.units||"px":0);}}}return
ret;};dojo.animateProperty=function(args){var
n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var
anim=new
d.Animation(args);d.connect(anim,"beforeBegin",anim,function(){var
pm={};for(var p in
this.properties){if(p=="width"||p=="height"){this.node.display="block";}var
prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_292({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var
_2ac=(p.toLowerCase().indexOf("color")>=0);function
_2ad(node,p){var
v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return
v;}v=d.style(node,p);return
(p=="opacity")?+v:(_2ac?v:parseFloat(v));};if(!("end"
in prop)){prop.end=_2ad(n,p);}else{if(!("start" in
prop)){prop.start=_2ad(n,p);}}if(_2ac){prop.start=new
d.Color(prop.start);prop.end=new
d.Color(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new
_2a9(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return
anim;};dojo.anim=function(node,_2ae,_2af,_2b0,_2b1,_2b2){return
d.animateProperty({node:node,duration:_2af||d.Animation.prototype.duration,properties:_2ae,easing:_2b0,onEnd:_2b1}).play(_2b2||0);};})();}if(!dojo._hasResource["dojo._base.browser"]){dojo._hasResource["dojo._base.browser"]=true;dojo.provide("dojo._base.browser");dojo.forEach(dojo.config.require,function(i){dojo["require"](i);});}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(dojo.isBrowser&&(document.readyState==="complete"||dojo.config.afterOnLoad)){window.setTimeout(dojo._loadInit,100);}})();
PK�X�[PA����'dojoloader/dojo/1.6.1/dojo/fx/easing.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.fx.easing"]){
dojo._hasResource["dojo.fx.easing"]=true;
dojo.provide("dojo.fx.easing");
dojo.getObject("fx.easing",true,dojo);
dojo.fx.easing={linear:function(n){
return n;
},quadIn:function(n){
return Math.pow(n,2);
},quadOut:function(n){
return n*(n-2)*-1;
},quadInOut:function(n){
n=n*2;
if(n<1){
return Math.pow(n,2)/2;
}
return -1*((--n)*(n-2)-1)/2;
},cubicIn:function(n){
return Math.pow(n,3);
},cubicOut:function(n){
return Math.pow(n-1,3)+1;
},cubicInOut:function(n){
n=n*2;
if(n<1){
return Math.pow(n,3)/2;
}
n-=2;
return (Math.pow(n,3)+2)/2;
},quartIn:function(n){
return Math.pow(n,4);
},quartOut:function(n){
return -1*(Math.pow(n-1,4)-1);
},quartInOut:function(n){
n=n*2;
if(n<1){
return Math.pow(n,4)/2;
}
n-=2;
return -1/2*(Math.pow(n,4)-2);
},quintIn:function(n){
return Math.pow(n,5);
},quintOut:function(n){
return Math.pow(n-1,5)+1;
},quintInOut:function(n){
n=n*2;
if(n<1){
return Math.pow(n,5)/2;
}
n-=2;
return (Math.pow(n,5)+2)/2;
},sineIn:function(n){
return -1*Math.cos(n*(Math.PI/2))+1;
},sineOut:function(n){
return Math.sin(n*(Math.PI/2));
},sineInOut:function(n){
return -1*(Math.cos(Math.PI*n)-1)/2;
},expoIn:function(n){
return (n==0)?0:Math.pow(2,10*(n-1));
},expoOut:function(n){
return (n==1)?1:(-1*Math.pow(2,-10*n)+1);
},expoInOut:function(n){
if(n==0){
return 0;
}
if(n==1){
return 1;
}
n=n*2;
if(n<1){
return Math.pow(2,10*(n-1))/2;
}
--n;
return (-1*Math.pow(2,-10*n)+2)/2;
},circIn:function(n){
return -1*(Math.sqrt(1-Math.pow(n,2))-1);
},circOut:function(n){
n=n-1;
return Math.sqrt(1-Math.pow(n,2));
},circInOut:function(n){
n=n*2;
if(n<1){
return -1/2*(Math.sqrt(1-Math.pow(n,2))-1);
}
n-=2;
return 1/2*(Math.sqrt(1-Math.pow(n,2))+1);
},backIn:function(n){
var s=1.70158;
return Math.pow(n,2)*((s+1)*n-s);
},backOut:function(n){
n=n-1;
var s=1.70158;
return Math.pow(n,2)*((s+1)*n+s)+1;
},backInOut:function(n){
var s=1.70158*1.525;
n=n*2;
if(n<1){
return (Math.pow(n,2)*((s+1)*n-s))/2;
}
n-=2;
return (Math.pow(n,2)*((s+1)*n+s)+2)/2;
},elasticIn:function(n){
if(n==0||n==1){
return n;
}
var p=0.3;
var s=p/4;
n=n-1;
return -1*Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p);
},elasticOut:function(n){
if(n==0||n==1){
return n;
}
var p=0.3;
var s=p/4;
return Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p)+1;
},elasticInOut:function(n){
if(n==0){
return 0;
}
n=n*2;
if(n==2){
return 1;
}
var p=0.3*1.5;
var s=p/4;
if(n<1){
n-=1;
return -0.5*(Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p));
}
n-=1;
return 0.5*(Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p))+1;
},bounceIn:function(n){
return (1-dojo.fx.easing.bounceOut(1-n));
},bounceOut:function(n){
var s=7.5625;
var p=2.75;
var l;
if(n<(1/p)){
l=s*Math.pow(n,2);
}else{
if(n<(2/p)){
n-=(1.5/p);
l=s*Math.pow(n,2)+0.75;
}else{
if(n<(2.5/p)){
n-=(2.25/p);
l=s*Math.pow(n,2)+0.9375;
}else{
n-=(2.625/p);
l=s*Math.pow(n,2)+0.984375;
}
}
}
return l;
},bounceInOut:function(n){
if(n<0.5){
return dojo.fx.easing.bounceIn(n*2)/2;
}
return (dojo.fx.easing.bounceOut(n*2-1)/2)+0.5;
}};
}
PK�X�[
�H''(dojoloader/dojo/1.6.1/dojo/fx/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[�}!�$$(dojoloader/dojo/1.6.1/dojo/fx/Toggler.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.fx.Toggler"]){
dojo._hasResource["dojo.fx.Toggler"]=true;
dojo.provide("dojo.fx.Toggler");
dojo.declare("dojo.fx.Toggler",null,{node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,constructor:function(_1){
var _2=this;
dojo.mixin(_2,_1);
_2.node=_1.node;
_2._showArgs=dojo.mixin({},_1);
_2._showArgs.node=_2.node;
_2._showArgs.duration=_2.showDuration;
_2.showAnim=_2.showFunc(_2._showArgs);
_2._hideArgs=dojo.mixin({},_1);
_2._hideArgs.node=_2.node;
_2._hideArgs.duration=_2.hideDuration;
_2.hideAnim=_2.hideFunc(_2._hideArgs);
dojo.connect(_2.showAnim,"beforeBegin",dojo.hitch(_2.hideAnim,"stop",true));
dojo.connect(_2.hideAnim,"beforeBegin",dojo.hitch(_2.showAnim,"stop",true));
},show:function(_3){
return this.showAnim.play(_3||0);
},hide:function(_4){
return this.hideAnim.play(_4||0);
}});
}
PK�X�[�$


dojoloader/dojo/1.6.1/dojo/fx.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/  

if(!dojo._hasResource["dojo.fx"]){
dojo._hasResource["dojo.fx"]=true;
dojo.provide("dojo.fx");
dojo.require("dojo.fx.Toggler");
(function(){
var d=dojo,_1={_fire:function(_2,_3){
if(this[_2]){
this[_2].apply(this,_3||[]);
}
return this;
}};
var _4=function(_5){
this._index=-1;
this._animations=_5||[];
this._current=this._onAnimateCtx=this._onEndCtx=null;
this.duration=0;
d.forEach(this._animations,function(a){
this.duration+=a.duration;
if(a.delay){
this.duration+=a.delay;
}
},this);
};
d.extend(_4,{_onAnimate:function(){
this._fire("onAnimate",arguments);
},_onEnd:function(){
d.disconnect(this._onAnimateCtx);
d.disconnect(this._onEndCtx);
this._onAnimateCtx=this._onEndCtx=null;
if(this._index+1==this._animations.length){
this._fire("onEnd");
}else{
this._current=this._animations[++this._index];
this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");
this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");
this._current.play(0,true);
}
},play:function(_6,_7){
if(!this._current){
this._current=this._animations[this._index=0];
}
if(!_7&&this._current.status()=="playing"){
return this;
}
var _8=d.connect(this._current,"beforeBegin",this,function(){
this._fire("beforeBegin");
}),_9=d.connect(this._current,"onBegin",this,function(_a){
this._fire("onBegin",arguments);
}),_b=d.connect(this._current,"onPlay",this,function(_c){
this._fire("onPlay",arguments);
d.disconnect(_8);
d.disconnect(_9);
d.disconnect(_b);
});
if(this._onAnimateCtx){
d.disconnect(this._onAnimateCtx);
}
this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");
if(this._onEndCtx){
d.disconnect(this._onEndCtx);
}
this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");
this._current.play.apply(this._current,arguments);
return this;
},pause:function(){
if(this._current){
var e=d.connect(this._current,"onPause",this,function(_d){
this._fire("onPause",arguments);
d.disconnect(e);
});
this._current.pause();
}
return this;
},gotoPercent:function(_e,_f){
this.pause();
var _10=this.duration*_e;
this._current=null;
d.some(this._animations,function(a){
if(a.duration<=_10){
this._current=a;
return true;
}
_10-=a.duration;
return false;
});
if(this._current){
this._current.gotoPercent(_10/this._current.duration,_f);
}
return this;
},stop:function(_11){
if(this._current){
if(_11){
for(;this._index+1<this._animations.length;++this._index){
this._animations[this._index].stop(true);
}
this._current=this._animations[this._index];
}
var e=d.connect(this._current,"onStop",this,function(arg){
this._fire("onStop",arguments);
d.disconnect(e);
});
this._current.stop();
}
return this;
},status:function(){
return this._current?this._current.status():"stopped";
},destroy:function(){
if(this._onAnimateCtx){
d.disconnect(this._onAnimateCtx);
}
if(this._onEndCtx){
d.disconnect(this._onEndCtx);
}
}});
d.extend(_4,_1);
dojo.fx.chain=function(_12){
return new _4(_12);
};
var _13=function(_14){
this._animations=_14||[];
this._connects=[];
this._finished=0;
this.duration=0;
d.forEach(_14,function(a){
var _15=a.duration;
if(a.delay){
_15+=a.delay;
}
if(this.duration<_15){
this.duration=_15;
}
this._connects.push(d.connect(a,"onEnd",this,"_onEnd"));
},this);
this._pseudoAnimation=new
d.Animation({curve:[0,1],duration:this.duration});
var _16=this;
d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){
_16._connects.push(d.connect(_16._pseudoAnimation,evt,function(){
_16._fire(evt,arguments);
}));
});
};
d.extend(_13,{_doAction:function(_17,_18){
d.forEach(this._animations,function(a){
a[_17].apply(a,_18);
});
return this;
},_onEnd:function(){
if(++this._finished>this._animations.length){
this._fire("onEnd");
}
},_call:function(_19,_1a){
var t=this._pseudoAnimation;
t[_19].apply(t,_1a);
},play:function(_1b,_1c){
this._finished=0;
this._doAction("play",arguments);
this._call("play",arguments);
return this;
},pause:function(){
this._doAction("pause",arguments);
this._call("pause",arguments);
return this;
},gotoPercent:function(_1d,_1e){
var ms=this.duration*_1d;
d.forEach(this._animations,function(a){
a.gotoPercent(a.duration<ms?1:(ms/a.duration),_1e);
});
this._call("gotoPercent",arguments);
return this;
},stop:function(_1f){
this._doAction("stop",arguments);
this._call("stop",arguments);
return this;
},status:function(){
return this._pseudoAnimation.status();
},destroy:function(){
d.forEach(this._connects,dojo.disconnect);
}});
d.extend(_13,_1);
dojo.fx.combine=function(_20){
return new _13(_20);
};
dojo.fx.wipeIn=function(_21){
var _22=_21.node=d.byId(_21.node),s=_22.style,o;
var _23=d.animateProperty(d.mixin({properties:{height:{start:function(){
o=s.overflow;
s.overflow="hidden";
if(s.visibility=="hidden"||s.display=="none"){
s.height="1px";
s.display="";
s.visibility="";
return 1;
}else{
var _24=d.style(_22,"height");
return Math.max(_24,1);
}
},end:function(){
return _22.scrollHeight;
}}}},_21));
d.connect(_23,"onEnd",function(){
s.height="auto";
s.overflow=o;
});
return _23;
};
dojo.fx.wipeOut=function(_25){
var _26=_25.node=d.byId(_25.node),s=_26.style,o;
var _27=d.animateProperty(d.mixin({properties:{height:{end:1}}},_25));
d.connect(_27,"beforeBegin",function(){
o=s.overflow;
s.overflow="hidden";
s.display="";
});
d.connect(_27,"onEnd",function(){
s.overflow=o;
s.height="auto";
s.display="none";
});
return _27;
};
dojo.fx.slideTo=function(_28){
var _29=_28.node=d.byId(_28.node),top=null,_2a=null;
var _2b=(function(n){
return function(){
var cs=d.getComputedStyle(n);
var pos=cs.position;
top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);
_2a=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);
if(pos!="absolute"&&pos!="relative"){
var ret=d.position(n,true);
top=ret.y;
_2a=ret.x;
n.style.position="absolute";
n.style.top=top+"px";
n.style.left=_2a+"px";
}
};
})(_29);
_2b();
var
_2c=d.animateProperty(d.mixin({properties:{top:_28.top||0,left:_28.left||0}},_28));
d.connect(_2c,"beforeBegin",_2c,_2b);
return _2c;
};
})();
}
PK�X�[
�H''%dojoloader/dojo/1.6.1/dojo/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[��m��$dojoloader/dojo/1.6.1/dojo/parser.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.parser"]){
dojo._hasResource["dojo.parser"]=true;
dojo.provide("dojo.parser");
dojo.require("dojo.date.stamp");
new Date("X");
dojo.parser=new function(){
var d=dojo;
function _1(_2){
if(d.isString(_2)){
return "string";
}
if(typeof _2=="number"){
return "number";
}
if(typeof _2=="boolean"){
return "boolean";
}
if(d.isFunction(_2)){
return "function";
}
if(d.isArray(_2)){
return "array";
}
if(_2 instanceof Date){
return "date";
}
if(_2 instanceof d._Url){
return "url";
}
return "object";
};
function _3(_4,_5){
switch(_5){
case "string":
return _4;
case "number":
return _4.length?Number(_4):NaN;
case "boolean":
return typeof
_4=="boolean"?_4:!(_4.toLowerCase()=="false");
case "function":
if(d.isFunction(_4)){
_4=_4.toString();
_4=d.trim(_4.substring(_4.indexOf("{")+1,_4.length-1));
}
try{
if(_4===""||_4.search(/[^\w\.]+/i)!=-1){
return new Function(_4);
}else{
return d.getObject(_4,false)||new Function(_4);
}
}
catch(e){
return new Function();
}
case "array":
return _4?_4.split(/\s*,\s*/):[];
case "date":
switch(_4){
case "":
return new Date("");
case "now":
return new Date();
default:
return d.date.stamp.fromISOString(_4);
}
case "url":
return d.baseUrl+_4;
default:
return d.fromJson(_4);
}
};
var _6={},_7={};
d.connect(d,"extend",function(){
_7={};
});
function _8(_9,_a){
for(var _b in _9){
if(_b.charAt(0)=="_"){
continue;
}
if(_b in _6){
continue;
}
_a[_b]=_1(_9[_b]);
}
return _a;
};
function _c(_d,_e){
var c=_7[_d];
if(!c){
var _f=d.getObject(_d),_10=null;
if(!_f){
return null;
}
if(!_e){
_10=_8(_f.prototype,{});
}
c={cls:_f,params:_10};
}else{
if(!_e&&!c.params){
c.params=_8(c.cls.prototype,{});
}
}
return c;
};
this._functionFromScript=function(_11,_12){
var _13="";
var _14="";
var
_15=(_11.getAttribute(_12+"args")||_11.getAttribute("args"));
if(_15){
d.forEach(_15.split(/\s*,\s*/),function(_16,idx){
_13+="var "+_16+" = arguments["+idx+"]; ";
});
}
var _17=_11.getAttribute("with");
if(_17&&_17.length){
d.forEach(_17.split(/\s*,\s*/),function(_18){
_13+="with("+_18+"){";
_14+="}";
});
}
return new Function(_13+_11.innerHTML+_14);
};
this.instantiate=function(_19,_1a,_1b){
var _1c=[],_1a=_1a||{};
_1b=_1b||{};
var
_1d=(_1b.scope||d._scopeName)+"Type",_1e="data-"+(_1b.scope||d._scopeName)+"-";
d.forEach(_19,function(obj){
if(!obj){
return;
}
var _1f,_20,_21,_22,_23,_24;
if(obj.node){
_1f=obj.node;
_20=obj.type;
_24=obj.fastpath;
_21=obj.clsInfo||(_20&&_c(_20,_24));
_22=_21&&_21.cls;
_23=obj.scripts;
}else{
_1f=obj;
_20=_1d in _1a?_1a[_1d]:_1f.getAttribute(_1d);
_21=_20&&_c(_20);
_22=_21&&_21.cls;
_23=(_22&&(_22._noScript||_22.prototype._noScript)?[]:d.query(">
script[type^='dojo/']",_1f));
}
if(!_21){
throw new Error("Could not load class '"+_20);
}
var _25={};
if(_1b.defaults){
d._mixin(_25,_1b.defaults);
}
if(obj.inherited){
d._mixin(_25,obj.inherited);
}
if(_24){
var _26=_1f.getAttribute(_1e+"props");
if(_26&&_26.length){
try{
_26=d.fromJson.call(_1b.propsThis,"{"+_26+"}");
d._mixin(_25,_26);
}
catch(e){
throw new Error(e.toString()+" in
data-dojo-props='"+_26+"'");
}
}
var _27=_1f.getAttribute(_1e+"attach-point");
if(_27){
_25.dojoAttachPoint=_27;
}
var _28=_1f.getAttribute(_1e+"attach-event");
if(_28){
_25.dojoAttachEvent=_28;
}
dojo.mixin(_25,_1a);
}else{
var _29=_1f.attributes;
for(var _2a in _21.params){
var _2b=_2a in _1a?{value:_1a[_2a],specified:true}:_29.getNamedItem(_2a);
if(!_2b||(!_2b.specified&&(!dojo.isIE||_2a.toLowerCase()!="value"))){
continue;
}
var _2c=_2b.value;
switch(_2a){
case "class":
_2c="className" in _1a?_1a.className:_1f.className;
break;
case "style":
_2c="style" in
_1a?_1a.style:(_1f.style&&_1f.style.cssText);
}
var _2d=_21.params[_2a];
if(typeof _2c=="string"){
_25[_2a]=_3(_2c,_2d);
}else{
_25[_2a]=_2c;
}
}
}
var _2e=[],_2f=[];
d.forEach(_23,function(_30){
_1f.removeChild(_30);
var
_31=(_30.getAttribute(_1e+"event")||_30.getAttribute("event")),_20=_30.getAttribute("type"),nf=d.parser._functionFromScript(_30,_1e);
if(_31){
if(_20=="dojo/connect"){
_2e.push({event:_31,func:nf});
}else{
_25[_31]=nf;
}
}else{
_2f.push(nf);
}
});
var
_32=_22.markupFactory||_22.prototype&&_22.prototype.markupFactory;
var _33=_32?_32(_25,_1f,_22):new _22(_25,_1f);
_1c.push(_33);
var
_34=(_1f.getAttribute(_1e+"id")||_1f.getAttribute("jsId"));
if(_34){
d.setObject(_34,_33);
}
d.forEach(_2e,function(_35){
d.connect(_33,_35.event,null,_35.func);
});
d.forEach(_2f,function(_36){
_36.call(_33);
});
});
if(!_1a._started){
d.forEach(_1c,function(_37){
if(!_1b.noStart&&_37&&dojo.isFunction(_37.startup)&&!_37._started&&(!_37.getParent||!_37.getParent())){
_37.startup();
}
});
}
return _1c;
};
this.parse=function(_38,_39){
var _3a;
if(!_39&&_38&&_38.rootNode){
_39=_38;
_3a=_39.rootNode;
}else{
_3a=_38;
}
_3a=_3a?dojo.byId(_3a):dojo.body();
_39=_39||{};
var
_3b=(_39.scope||d._scopeName)+"Type",_3c="data-"+(_39.scope||d._scopeName)+"-";
function _3d(_3e,_3f){
var _40=dojo.clone(_3e.inherited);
dojo.forEach(["dir","lang"],function(_41){
var val=_3e.node.getAttribute(_41);
if(val){
_40[_41]=val;
}
});
var
_42=_3e.clsInfo&&!_3e.clsInfo.cls.prototype._noScript?_3e.scripts:null;
var
_43=(!_3e.clsInfo||!_3e.clsInfo.cls.prototype.stopParser)||(_39&&_39.template);
for(var _44=_3e.node.firstChild;_44;_44=_44.nextSibling){
if(_44.nodeType==1){
var _45,_46=_43&&_44.getAttribute(_3c+"type");
if(_46){
_45=_46;
}else{
_45=_43&&_44.getAttribute(_3b);
}
var _47=_46==_45;
if(_45){
var
_48={"type":_45,fastpath:_47,clsInfo:_c(_45,_47),node:_44,scripts:[],inherited:_40};
_3f.push(_48);
_3d(_48,_3f);
}else{
if(_42&&_44.nodeName.toLowerCase()=="script"){
_45=_44.getAttribute("type");
if(_45&&/^dojo\/\w/i.test(_45)){
_42.push(_44);
}
}else{
if(_43){
_3d({node:_44,inherited:_40},_3f);
}
}
}
}
}
};
var _49={};
if(_39&&_39.inherited){
for(var key in _39.inherited){
if(_39.inherited[key]){
_49[key]=_39.inherited[key];
}
}
}
var _4a=[];
_3d({node:_3a,inherited:_49},_4a);
var _4b=_39&&_39.template?{template:true}:null;
return this.instantiate(_4a,_4b,_39);
};
}();
(function(){
var _4c=function(){
if(dojo.config.parseOnLoad){
dojo.parser.parse();
}
};
if(dojo.getObject("dijit.wai.onload")===dojo._loaders[0]){
dojo._loaders.splice(1,0,_4c);
}else{
dojo._loaders.unshift(_4c);
}
})();
}
PK�X�[�E@�		$dojoloader/dojo/1.6.1/dojo/regexp.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.regexp"]){
dojo._hasResource["dojo.regexp"]=true;
dojo.provide("dojo.regexp");
dojo.getObject("regexp",true,dojo);
dojo.regexp.escapeString=function(_1,_2){
return _1.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){
if(_2&&_2.indexOf(ch)!=-1){
return ch;
}
return "\\"+ch;
});
};
dojo.regexp.buildGroupRE=function(_3,re,_4){
if(!(_3 instanceof Array)){
return re(_3);
}
var b=[];
for(var i=0;i<_3.length;i++){
b.push(re(_3[i]));
}
return dojo.regexp.group(b.join("|"),_4);
};
dojo.regexp.group=function(_5,_6){
return "("+(_6?"?:":"")+_5+")";
};
}
PK�X�[���&dojoloader/dojo/1.6.1/dojo/Stateful.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.Stateful"]){
dojo._hasResource["dojo.Stateful"]=true;
dojo.provide("dojo.Stateful");
dojo.declare("dojo.Stateful",null,{postscript:function(_1){
if(_1){
dojo.mixin(this,_1);
}
},get:function(_2){
return this[_2];
},set:function(_3,_4){
if(typeof _3==="object"){
for(var x in _3){
this.set(x,_3[x]);
}
return this;
}
var _5=this[_3];
this[_3]=_4;
if(this._watchCallbacks){
this._watchCallbacks(_3,_5,_4);
}
return this;
},watch:function(_6,_7){
var _8=this._watchCallbacks;
if(!_8){
var _9=this;
_8=this._watchCallbacks=function(_a,_b,_c,_d){
var _e=function(_f){
if(_f){
_f=_f.slice();
for(var i=0,l=_f.length;i<l;i++){
try{
_f[i].call(_9,_a,_b,_c);
}
catch(e){
console.error(e);
}
}
}
};
_e(_8["_"+_a]);
if(!_d){
_e(_8["*"]);
}
};
}
if(!_7&&typeof _6==="function"){
_7=_6;
_6="*";
}else{
_6="_"+_6;
}
var _10=_8[_6];
if(typeof _10!=="object"){
_10=_8[_6]=[];
}
_10.push(_7);
return {unwatch:function(){
_10.splice(dojo.indexOf(_10,_7),1);
}};
}});
}
PK�X�[b4�ϴ�$dojoloader/dojo/1.6.1/dojo/string.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.string"]){
dojo._hasResource["dojo.string"]=true;
dojo.provide("dojo.string");
dojo.getObject("string",true,dojo);
dojo.string.rep=function(_1,_2){
if(_2<=0||!_1){
return "";
}
var _3=[];
for(;;){
if(_2&1){
_3.push(_1);
}
if(!(_2>>=1)){
break;
}
_1+=_1;
}
return _3.join("");
};
dojo.string.pad=function(_4,_5,ch,_6){
if(!ch){
ch="0";
}
var
_7=String(_4),_8=dojo.string.rep(ch,Math.ceil((_5-_7.length)/ch.length));
return _6?_7+_8:_8+_7;
};
dojo.string.substitute=function(_9,_a,_b,_c){
_c=_c||dojo.global;
_b=_b?dojo.hitch(_c,_b):function(v){
return v;
};
return
_9.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_d,_e,_f){
var _10=dojo.getObject(_e,false,_a);
if(_f){
_10=dojo.getObject(_f,false,_c).call(_c,_10,_e);
}
return _b(_10,_e).toString();
});
};
dojo.string.trim=String.prototype.trim?dojo.trim:function(str){
str=str.replace(/^\s+/,"");
for(var i=str.length-1;i>=0;i--){
if(/\S/.test(str.charAt(i))){
str=str.substring(0,i+1);
break;
}
}
return str;
};
}
PK�X�[�&�
��#dojoloader/dojo/1.6.1/dojo/uacss.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.uacss"]){
dojo._hasResource["dojo.uacss"]=true;
dojo.provide("dojo.uacss");
(function(){
var
d=dojo,_1=d.doc.documentElement,ie=d.isIE,_2=d.isOpera,_3=Math.floor,ff=d.isFF,_4=d.boxModel.replace(/-/,""),_5={dj_ie:ie,dj_ie6:_3(ie)==6,dj_ie7:_3(ie)==7,dj_ie8:_3(ie)==8,dj_ie9:_3(ie)==9,dj_quirks:d.isQuirks,dj_iequirks:ie&&d.isQuirks,dj_opera:_2,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_chrome:d.isChrome,dj_gecko:d.isMozilla,dj_ff3:_3(ff)==3};
_5["dj_"+_4]=true;
var _6="";
for(var _7 in _5){
if(_5[_7]){
_6+=_7+" ";
}
}
_1.className=d.trim(_1.className+" "+_6);
dojo._loaders.unshift(function(){
if(!dojo._isBodyLtr()){
var _8="dj_rtl dijitRtl "+_6.replace(/ /g,"-rtl ");
_1.className=d.trim(_1.className+" "+_8);
}
});
})();
}
PK�X�[����
�
$dojoloader/dojo/1.6.1/dojo/window.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo.window"]){
dojo._hasResource["dojo.window"]=true;
dojo.provide("dojo.window");
dojo.getObject("window",true,dojo);
dojo.window.getBox=function(){
var
_1=(dojo.doc.compatMode=="BackCompat")?dojo.body():dojo.doc.documentElement;
var _2=dojo._docScroll();
return {w:_1.clientWidth,h:_1.clientHeight,l:_2.x,t:_2.y};
};
dojo.window.get=function(_3){
if(dojo.isIE&&window!==document.parentWindow){
_3.parentWindow.execScript("document._parentWindow =
window;","Javascript");
var _4=_3._parentWindow;
_3._parentWindow=null;
return _4;
}
return _3.parentWindow||_3.defaultView;
};
dojo.window.scrollIntoView=function(_5,_6){
try{
_5=dojo.byId(_5);
var
_7=_5.ownerDocument||dojo.doc,_8=_7.body||dojo.body(),_9=_7.documentElement||_8.parentNode,_a=dojo.isIE,_b=dojo.isWebKit;
if((!(dojo.isMoz||_a||_b||dojo.isOpera)||_5==_8||_5==_9)&&(typeof
_5.scrollIntoView!="undefined")){
_5.scrollIntoView(false);
return;
}
var
_c=_7.compatMode=="BackCompat",_d=(_a>=9&&_5.ownerDocument.parentWindow.frameElement)?((_9.clientHeight>0&&_9.clientWidth>0&&(_8.clientHeight==0||_8.clientWidth==0||_8.clientHeight>_9.clientHeight||_8.clientWidth>_9.clientWidth))?_9:_8):(_c?_8:_9),_e=_b?_8:_d,_f=_d.clientWidth,_10=_d.clientHeight,rtl=!dojo._isBodyLtr(),_11=_6||dojo.position(_5),el=_5.parentNode,_12=function(el){
return
((_a<=6||(_a&&_c))?false:(dojo.style(el,"position").toLowerCase()=="fixed"));
};
if(_12(_5)){
return;
}
while(el){
if(el==_8){
el=_e;
}
var _13=dojo.position(el),_14=_12(el);
if(el==_e){
_13.w=_f;
_13.h=_10;
if(_e==_9&&_a&&rtl){
_13.x+=_e.offsetWidth-_13.w;
}
if(_13.x<0||!_a){
_13.x=0;
}
if(_13.y<0||!_a){
_13.y=0;
}
}else{
var pb=dojo._getPadBorderExtents(el);
_13.w-=pb.w;
_13.h-=pb.h;
_13.x+=pb.l;
_13.y+=pb.t;
var _15=el.clientWidth,_16=_13.w-_15;
if(_15>0&&_16>0){
_13.w=_15;
_13.x+=(rtl&&(_a||el.clientLeft>pb.l))?_16:0;
}
_15=el.clientHeight;
_16=_13.h-_15;
if(_15>0&&_16>0){
_13.h=_15;
}
}
if(_14){
if(_13.y<0){
_13.h+=_13.y;
_13.y=0;
}
if(_13.x<0){
_13.w+=_13.x;
_13.x=0;
}
if(_13.y+_13.h>_10){
_13.h=_10-_13.y;
}
if(_13.x+_13.w>_f){
_13.w=_f-_13.x;
}
}
var
l=_11.x-_13.x,t=_11.y-Math.max(_13.y,0),r=l+_11.w-_13.w,bot=t+_11.h-_13.h;
if(r*l>0){
var s=Math[l<0?"max":"min"](l,r);
if(rtl&&((_a==8&&!_c)||_a>=9)){
s=-s;
}
_11.x+=el.scrollLeft;
el.scrollLeft+=s;
_11.x-=el.scrollLeft;
}
if(bot*t>0){
_11.y+=el.scrollTop;
el.scrollTop+=Math[t<0?"max":"min"](t,bot);
_11.y-=el.scrollTop;
}
el=(el!=_e)&&!_14&&el.parentNode;
}
}
catch(error){
console.error("scrollIntoView: "+error);
_5.scrollIntoView(false);
}
};
}
PK�X�[
�H''+dojoloader/dojo/1.6.1/dojo/_base/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[
�H''3dojoloader/dojo/1.6.1/dojo/_base/_loader/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[Iݮ���8dojoloader/dojo/1.6.1/dojo/_base/_loader/loader_debug.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo._base._loader.loader_debug"]){
dojo._hasResource["dojo._base._loader.loader_debug"]=true;
dojo.provide("dojo._base._loader.loader_debug");
dojo.nonDebugProvide=dojo.provide;
dojo.provide=function(_1){
var _2=dojo["_xdDebugQueue"];
if(_2&&_2.length>0&&_1==_2["currentResourceName"]){
if(dojo.isAIR){
window.setTimeout(function(){
dojo._xdDebugFileLoaded(_1);
},1);
}else{
window.setTimeout(dojo._scopeName+"._xdDebugFileLoaded('"+_1+"')",1);
}
}
return dojo.nonDebugProvide.apply(dojo,arguments);
};
dojo._xdDebugFileLoaded=function(_3){
if(!dojo._xdDebugScopeChecked){
if(dojo._scopeName!="dojo"){
window.dojo=window[dojo.config.scopeMap[0][1]];
window.dijit=window[dojo.config.scopeMap[1][1]];
window.dojox=window[dojo.config.scopeMap[2][1]];
}
dojo._xdDebugScopeChecked=true;
}
var _4=dojo._xdDebugQueue;
if(_3&&_3==_4.currentResourceName){
_4.shift();
}
if(_4.length==0){
dojo._xdWatchInFlight();
}
if(_4.length==0){
_4.currentResourceName=null;
for(var _5 in dojo._xdInFlight){
if(dojo._xdInFlight[_5]===true){
return;
}
}
dojo._xdNotifyLoaded();
}else{
if(_3==_4.currentResourceName){
_4.currentResourceName=_4[0].resourceName;
var _6=document.createElement("script");
_6.type="text/javascript";
_6.src=_4[0].resourcePath;
document.getElementsByTagName("head")[0].appendChild(_6);
}
}
};
}
PK�X�[�qa,oJoJ.dojoloader/dojo/1.6.1/dojo/_firebug/firebug.jsnu�[���/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojo._firebug.firebug"]){
dojo._hasResource["dojo._firebug.firebug"]=true;
dojo.provide("dojo._firebug.firebug");
dojo.deprecated=function(_1,_2,_3){
var _4="DEPRECATED: "+_1;
if(_2){
_4+=" "+_2;
}
if(_3){
_4+=" -- will be removed in version: "+_3;
}
console.warn(_4);
};
dojo.experimental=function(_5,_6){
var _7="EXPERIMENTAL: "+_5+" -- APIs subject to change
without notice.";
if(_6){
_7+=" "+_6;
}
console.warn(_7);
};
(function(){
var _8=(/Trident/.test(window.navigator.userAgent));
if(_8){
var
_9=["log","info","debug","warn","error"];
for(var i=0;i<_9.length;i++){
var m=_9[i];
var n="_"+_9[i];
console[n]=console[m];
console[m]=(function(){
var _a=n;
return function(){
console[_a](Array.prototype.slice.call(arguments).join(" "));
};
})();
}
try{
console.clear();
}
catch(e){
}
}
if(!dojo.isFF&&!dojo.isChrome&&!dojo.isSafari&&!_8&&!window.firebug&&(typeof
console!="undefined"&&!console.firebug)&&!dojo.config.useCustomLogger&&!dojo.isAIR){
try{
if(window!=window.parent){
if(window.parent["console"]){
window.console=window.parent.console;
}
return;
}
}
catch(e){
}
var _b=document;
var _c=window;
var _d=0;
var _e=null;
var _f=null;
var _10=null;
var _11=null;
var _12=null;
var _13=null;
var _14=false;
var _15=[];
var _16=[];
var _17={};
var _18={};
var _19=null;
var _1a;
var _1b;
var _1c=false;
var _1d=null;
var _1e=document.createElement("div");
var _1f;
var _20;
window.console={_connects:[],log:function(){
_21(arguments,"");
},debug:function(){
_21(arguments,"debug");
},info:function(){
_21(arguments,"info");
},warn:function(){
_21(arguments,"warning");
},error:function(){
_21(arguments,"error");
},assert:function(_22,_23){
if(!_22){
var _24=[];
for(var i=1;i<arguments.length;++i){
_24.push(arguments[i]);
}
_21(_24.length?_24:["Assertion Failure"],"error");
throw _23?_23:"Assertion Failure";
}
},dir:function(obj){
var str=_25(obj);
str=str.replace(/\n/g,"<br />");
str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");
_26([str],"dir");
},dirxml:function(_27){
var _28=[];
_29(_27,_28);
_26(_28,"dirxml");
},group:function(){
_26(arguments,"group",_2a);
},groupEnd:function(){
_26(arguments,"",_2b);
},time:function(_2c){
_17[_2c]=new Date().getTime();
},timeEnd:function(_2d){
if(_2d in _17){
var _2e=(new Date()).getTime()-_17[_2d];
_21([_2d+":",_2e+"ms"]);
delete _17[_2d];
}
},count:function(_2f){
if(!_18[_2f]){
_18[_2f]=0;
}
_18[_2f]++;
_21([_2f+": "+_18[_2f]]);
},trace:function(_30){
var _31=_30||3;
var f=console.trace.caller;
for(var i=0;i<_31;i++){
var _32=f.toString();
var _33=[];
for(var a=0;a<f.arguments.length;a++){
_33.push(f.arguments[a]);
}
if(f.arguments.length){
}else{
}
f=f.caller;
}
},profile:function(){
this.warn(["profile() not supported."]);
},profileEnd:function(){
},clear:function(){
if(_f){
while(_f.childNodes.length){
dojo.destroy(_f.firstChild);
}
}
dojo.forEach(this._connects,dojo.disconnect);
},open:function(){
_34(true);
},close:function(){
if(_14){
_34();
}
},_restoreBorder:function(){
if(_1f){
_1f.style.border=_20;
}
},openDomInspector:function(){
_1c=true;
_f.style.display="none";
_19.style.display="block";
_10.style.display="none";
document.body.style.cursor="pointer";
_1a=dojo.connect(document,"mousemove",function(evt){
if(!_1c){
return;
}
if(!_1d){
_1d=setTimeout(function(){
_1d=null;
},50);
}else{
return;
}
var _35=evt.target;
if(_35&&(_1f!==_35)){
var _36=true;
console._restoreBorder();
var _37=[];
_29(_35,_37);
_19.innerHTML=_37.join("");
_1f=_35;
_20=_1f.style.border;
_1f.style.border="#0000FF 1px solid";
}
});
setTimeout(function(){
_1b=dojo.connect(document,"click",function(evt){
document.body.style.cursor="";
_1c=!_1c;
dojo.disconnect(_1b);
});
},30);
},_closeDomInspector:function(){
document.body.style.cursor="";
dojo.disconnect(_1a);
dojo.disconnect(_1b);
_1c=false;
console._restoreBorder();
},openConsole:function(){
_f.style.display="block";
_19.style.display="none";
_10.style.display="none";
console._closeDomInspector();
},openObjectInspector:function(){
_f.style.display="none";
_19.style.display="none";
_10.style.display="block";
console._closeDomInspector();
},recss:function(){
var i,a,s;
a=document.getElementsByTagName("link");
for(i=0;i<a.length;i++){
s=a[i];
if(s.rel.toLowerCase().indexOf("stylesheet")>=0&&s.href){
var h=s.href.replace(/(&|%5C?)forceReload=\d+/,"");
s.href=h+(h.indexOf("?")>=0?"&":"?")+"forceReload="+new
Date().valueOf();
}
}
}};
function _34(_38){
_14=_38||!_14;
if(_e){
_e.style.display=_14?"block":"none";
}
};
function _39(){
_34(true);
if(_12){
_12.focus();
}
};
function _3a(x,y,w,h){
var
win=window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0");
if(!win){
var msg="Firebug Lite could not open a pop-up window, most likely
because of a blocker.\n"+"Either enable pop-ups for this domain,
or change the djConfig to popup=false.";
alert(msg);
}
_3b(win);
var _3c=win.document;
var _3d="<html
style=\"height:100%;\"><head><title>Firebug
Lite</title></head>\n"+"<body
bgColor=\"#ccc\" style=\"height:97%;\"
onresize=\"opener.onFirebugResize()\">\n"+"<div
id=\"fb\"></div>"+"</body></html>";
_3c.write(_3d);
_3c.close();
return win;
};
function _3b(wn){
var d=new Date();
d.setTime(d.getTime()+(60*24*60*60*1000));
d=d.toUTCString();
var dc=wn.document,_3e;
if(wn.innerWidth){
_3e=function(){
return {w:wn.innerWidth,h:wn.innerHeight};
};
}else{
if(dc.documentElement&&dc.documentElement.clientWidth){
_3e=function(){
return
{w:dc.documentElement.clientWidth,h:dc.documentElement.clientHeight};
};
}else{
if(dc.body){
_3e=function(){
return {w:dc.body.clientWidth,h:dc.body.clientHeight};
};
}
}
}
window.onFirebugResize=function(){
_4c(_3e().h);
clearInterval(wn._firebugWin_resize);
wn._firebugWin_resize=setTimeout(function(){
var
x=wn.screenLeft,y=wn.screenTop,w=wn.outerWidth||wn.document.body.offsetWidth,h=wn.outerHeight||wn.document.body.offsetHeight;
document.cookie="_firebugPosition="+[x,y,w,h].join(",")+";
expires="+d+"; path=/";
},5000);
};
};
function _3f(){
if(_e){
return;
}
if(dojo.config.popup){
var _40="100%";
var _41=document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/);
var p=_41?_41[1].split(","):[2,2,320,480];
_c=_3a(p[0],p[1],p[2],p[3]);
_b=_c.document;
dojo.config.debugContainerId="fb";
_c.console=window.console;
_c.dojo=window.dojo;
}else{
_b=document;
_40=(dojo.config.debugHeight||300)+"px";
}
var _42=_b.createElement("link");
_42.href=dojo.moduleUrl("dojo._firebug","firebug.css");
_42.rel="stylesheet";
_42.type="text/css";
var _43=_b.getElementsByTagName("head");
if(_43){
_43=_43[0];
}
if(!_43){
_43=_b.getElementsByTagName("html")[0];
}
if(dojo.isIE){
window.setTimeout(function(){
_43.appendChild(_42);
},0);
}else{
_43.appendChild(_42);
}
if(dojo.config.debugContainerId){
_e=_b.getElementById(dojo.config.debugContainerId);
}
if(!_e){
_e=_b.createElement("div");
_b.body.appendChild(_e);
}
_e.className+=" firebug";
_e.style.height=_40;
_e.style.display=(_14?"block":"none");
var _44=function(_45,_46,_47,_48){
return "<li class=\""+_48+"\"><a
href=\"javascript:void(0);\"
onclick=\"console."+_47+"(); return false;\"
title=\""+_46+"\">"+_45+"</a></li>";
};
_e.innerHTML="<div id=\"firebugToolbar\">"+"
 <ul id=\"fireBugTabs\"
class=\"tabs\">"+_44("Clear","Remove All
Console
Logs","clear","")+_44("ReCSS","Refresh
CSS without reloading
page","recss","")+_44("Console","Show
Console
Logs","openConsole","gap")+_44("DOM","Show
DOM
Inspector","openDomInspector","")+_44("Object","Show
Object
Inspector","openObjectInspector","")+((dojo.config.popup)?"":_44("Close","Close
the
console","close","gap"))+"\t</ul>"+"</div>"+"<input
type=\"text\" id=\"firebugCommandLine\"
/>"+"<div
id=\"firebugLog\"></div>"+"<div
id=\"objectLog\" style=\"display:none;\">Click on an
object in the Log display</div>"+"<div
id=\"domInspect\" style=\"display:none;\">Hover over
HTML elements in the main page. Click to hold selection.</div>";
_13=_b.getElementById("firebugToolbar");
_12=_b.getElementById("firebugCommandLine");
_49(_12,"keydown",_4a);
_49(_b,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b);
_f=_b.getElementById("firebugLog");
_10=_b.getElementById("objectLog");
_19=_b.getElementById("domInspect");
_11=_b.getElementById("fireBugTabs");
_4c();
_4d();
};
dojo.addOnLoad(_3f);
function _4e(){
_b=null;
if(_c.console){
_c.console.clear();
}
_c=null;
_e=null;
_f=null;
_10=null;
_19=null;
_12=null;
_15=[];
_16=[];
_17={};
};
function _4f(){
var _50=_12.value;
_12.value="";
_26([">  ",_50],"command");
var _51;
try{
_51=eval(_50);
}
catch(e){
}
};
function _4c(h){
var _52=25;
var
_53=h?h-(_52+_12.offsetHeight+25+(h*0.01))+"px":(_e.offsetHeight-_52-_12.offsetHeight)+"px";
_f.style.top=_52+"px";
_f.style.height=_53;
_10.style.height=_53;
_10.style.top=_52+"px";
_19.style.height=_53;
_19.style.top=_52+"px";
_12.style.bottom=0;
dojo.addOnWindowUnload(_4e);
};
function _26(_54,_55,_56){
if(_f){
_57(_54,_55,_56);
}else{
_15.push([_54,_55,_56]);
}
};
function _4d(){
var _58=_15;
_15=[];
for(var i=0;i<_58.length;++i){
_57(_58[i][0],_58[i][1],_58[i][2]);
}
};
function _57(_59,_5a,_5b){
var _5c=_f.scrollTop+_f.offsetHeight>=_f.scrollHeight;
_5b=_5b||_5d;
_5b(_59,_5a);
if(_5c){
_f.scrollTop=_f.scrollHeight-_f.offsetHeight;
}
};
function _5e(row){
var _5f=_16.length?_16[_16.length-1]:_f;
_5f.appendChild(row);
};
function _5d(_60,_61){
var row=_f.ownerDocument.createElement("div");
row.className="logRow"+(_61?"
logRow-"+_61:"");
row.innerHTML=_60.join("");
_5e(row);
};
function _2a(_62,_63){
_21(_62,_63);
var _64=_f.ownerDocument.createElement("div");
_64.className="logGroupBox";
_5e(_64);
_16.push(_64);
};
function _2b(){
_16.pop();
};
function _21(_65,_66){
var _67=[];
var _68=_65[0];
var _69=0;
if(typeof (_68)!="string"){
_68="";
_69=-1;
}
var _6a=_6b(_68);
for(var i=0;i<_6a.length;++i){
var _6c=_6a[i];
if(_6c&&typeof _6c=="object"){
_6c.appender(_65[++_69],_67);
}else{
_6d(_6c,_67);
}
}
var ids=[];
var obs=[];
for(i=_69+1;i<_65.length;++i){
_6d(" ",_67);
var _6e=_65[i];
if(_6e===undefined||_6e===null){
_6f(_6e,_67);
}else{
if(typeof (_6e)=="string"){
_6d(_6e,_67);
}else{
if(_6e instanceof Date){
_6d(_6e.toString(),_67);
}else{
if(_6e.nodeType==9){
_6d("[ XmlDoc ]",_67);
}else{
var id="_a"+_d++;
ids.push(id);
obs.push(_6e);
var str="<a id=\""+id+"\"
href=\"javascript:void(0);\">"+_70(_6e)+"</a>";
_71(str,_67);
}
}
}
}
}
_26(_67,_66);
for(i=0;i<ids.length;i++){
var btn=_b.getElementById(ids[i]);
if(!btn){
continue;
}
btn.obj=obs[i];
_c.console._connects.push(dojo.connect(btn,"onclick",function(){
console.openObjectInspector();
try{
_25(this.obj);
}
catch(e){
this.obj=e;
}
_10.innerHTML="<pre>"+_25(this.obj)+"</pre>";
}));
}
};
function _6b(_72){
var _73=[];
var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;
var _74={s:_6d,d:_75,i:_75,f:_76};
for(var m=reg.exec(_72);m;m=reg.exec(_72)){
var _77=m[8]?m[8]:m[5];
var _78=_77 in _74?_74[_77]:_79;
var _7a=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);
_73.push(_72.substr(0,m[0][0]=="%"?m.index:m.index+1));
_73.push({appender:_78,precision:_7a});
_72=_72.substr(m.index+m[0].length);
}
_73.push(_72);
return _73;
};
function _7b(_7c){
function _7d(ch){
switch(ch){
case "<":
return "&lt;";
case ">":
return "&gt;";
case "&":
return "&amp;";
case "'":
return "&#39;";
case "\"":
return "&quot;";
}
return "?";
};
return String(_7c).replace(/[<>&"']/g,_7d);
};
function _7e(_7f){
try{
return _7f+"";
}
catch(e){
return null;
}
};
function _71(_80,_81){
_81.push(_7e(_80));
};
function _6d(_82,_83){
_83.push(_7b(_7e(_82)));
};
function _6f(_84,_85){
_85.push("<span
class=\"objectBox-null\">",_7b(_7e(_84)),"</span>");
};
function _86(_87,_88){
_88.push("<span
class=\"objectBox-string\">&quot;",_7b(_7e(_87)),"&quot;</span>");
};
function _75(_89,_8a){
_8a.push("<span
class=\"objectBox-number\">",_7b(_7e(_89)),"</span>");
};
function _76(_8b,_8c){
_8c.push("<span
class=\"objectBox-number\">",_7b(_7e(_8b)),"</span>");
};
function _8d(_8e,_8f){
_8f.push("<span
class=\"objectBox-function\">",_70(_8e),"</span>");
};
function _79(_90,_91){
try{
if(_90===undefined){
_6f("undefined",_91);
}else{
if(_90===null){
_6f("null",_91);
}else{
if(typeof _90=="string"){
_86(_90,_91);
}else{
if(typeof _90=="number"){
_75(_90,_91);
}else{
if(typeof _90=="function"){
_8d(_90,_91);
}else{
if(_90.nodeType==1){
_92(_90,_91);
}else{
if(typeof _90=="object"){
_93(_90,_91);
}else{
_6d(_90,_91);
}
}
}
}
}
}
}
}
catch(e){
}
};
function _93(_94,_95){
var _96=_7e(_94);
var _97=/\[object (.*?)\]/;
var m=_97.exec(_96);
_95.push("<span
class=\"objectBox-object\">",m?m[1]:_96,"</span>");
};
function _92(_98,_99){
_99.push("<span class=\"objectBox-selector\">");
_99.push("<span
class=\"selectorTag\">",_7b(_98.nodeName.toLowerCase()),"</span>");
if(_98.id){
_99.push("<span
class=\"selectorId\">#",_7b(_98.id),"</span>");
}
if(_98.className){
_99.push("<span
class=\"selectorClass\">.",_7b(_98.className),"</span>");
}
_99.push("</span>");
};
function _29(_9a,_9b){
if(_9a.nodeType==1){
_9b.push("<div
class=\"objectBox-element\">","&lt;<span
class=\"nodeTag\">",_9a.nodeName.toLowerCase(),"</span>");
for(var i=0;i<_9a.attributes.length;++i){
var _9c=_9a.attributes[i];
if(!_9c.specified){
continue;
}
_9b.push("&nbsp;<span
class=\"nodeName\">",_9c.nodeName.toLowerCase(),"</span>=&quot;<span
class=\"nodeValue\">",_7b(_9c.nodeValue),"</span>&quot;");
}
if(_9a.firstChild){
_9b.push("&gt;</div><div
class=\"nodeChildren\">");
for(var _9d=_9a.firstChild;_9d;_9d=_9d.nextSibling){
_29(_9d,_9b);
}
_9b.push("</div><div
class=\"objectBox-element\">&lt;/<span
class=\"nodeTag\">",_9a.nodeName.toLowerCase(),"&gt;</span></div>");
}else{
_9b.push("/&gt;</div>");
}
}else{
if(_9a.nodeType==3){
_9b.push("<div
class=\"nodeText\">",_7b(_9a.nodeValue),"</div>");
}
}
};
function _49(_9e,_9f,_a0){
if(document.all){
_9e.attachEvent("on"+_9f,_a0);
}else{
_9e.addEventListener(_9f,_a0,false);
}
};
function _a1(_a2,_a3,_a4){
if(document.all){
_a2.detachEvent("on"+_a3,_a4);
}else{
_a2.removeEventListener(_a3,_a4,false);
}
};
function _a5(_a6){
if(document.all){
_a6.cancelBubble=true;
}else{
_a6.stopPropagation();
}
};
function _a7(msg,_a8,_a9){
var _aa=_a8.lastIndexOf("/");
var _ab=_aa==-1?_a8:_a8.substr(_aa+1);
var _ac=["<span
class=\"errorMessage\">",msg,"</span>","<div
class=\"objectBox-sourceLink\">",_ab," (line
",_a9,")</div>"];
_26(_ac,"error");
};
var _ad=new Date().getTime();
function _4b(_ae){
var _af=(new Date()).getTime();
if(_af>_ad+200){
_ae=dojo.fixEvent(_ae);
var _b0=dojo.keys;
var ekc=_ae.keyCode;
_ad=_af;
if(ekc==_b0.F12){
_34();
}else{
if((ekc==_b0.NUMPAD_ENTER||ekc==76)&&_ae.shiftKey&&(_ae.metaKey||_ae.ctrlKey)){
_39();
}else{
return;
}
}
_a5(_ae);
}
};
function _4a(e){
var dk=dojo.keys;
if(e.keyCode==13&&_12.value){
_b1(_12.value);
_4f();
}else{
if(e.keyCode==27){
_12.value="";
}else{
if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){
_b2("older");
}else{
if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){
_b2("newer");
}else{
if(e.keyCode==dk.HOME||e.charCode==dk.HOME){
_b3=1;
_b2("older");
}else{
if(e.keyCode==dk.END||e.charCode==dk.END){
_b3=999999;
_b2("newer");
}
}
}
}
}
}
};
var _b3=-1;
var _b4=null;
function _b1(_b5){
var _b6=_b7("firebug_history");
_b6=(_b6)?dojo.fromJson(_b6):[];
var pos=dojo.indexOf(_b6,_b5);
if(pos!=-1){
_b6.splice(pos,1);
}
_b6.push(_b5);
_b7("firebug_history",dojo.toJson(_b6),30);
while(_b6.length&&!_b7("firebug_history")){
_b6.shift();
_b7("firebug_history",dojo.toJson(_b6),30);
}
_b4=null;
_b3=-1;
};
function _b2(_b8){
var _b9=_b7("firebug_history");
_b9=(_b9)?dojo.fromJson(_b9):[];
if(!_b9.length){
return;
}
if(_b4===null){
_b4=_12.value;
}
if(_b3==-1){
_b3=_b9.length;
}
if(_b8=="older"){
--_b3;
if(_b3<0){
_b3=0;
}
}else{
if(_b8=="newer"){
++_b3;
if(_b3>_b9.length){
_b3=_b9.length;
}
}
}
if(_b3==_b9.length){
_12.value=_b4;
_b4=null;
}else{
_12.value=_b9[_b3];
}
};
function _b7(_ba,_bb){
var c=document.cookie;
if(arguments.length==1){
var _bc=c.match(new RegExp("(?:^|; )"+_ba+"=([^;]*)"));
return _bc?decodeURIComponent(_bc[1]):undefined;
}else{
var d=new Date();
d.setMonth(d.getMonth()+1);
document.cookie=_ba+"="+encodeURIComponent(_bb)+((d.toUtcString)?";
expires="+d.toUTCString():"");
}
};
function _bd(it){
return it&&it instanceof Array||typeof it=="array";
};
function _be(o){
var cnt=0;
for(var nm in o){
cnt++;
}
return cnt;
};
function _25(o,i,txt,_bf){
var ind=" \t";
txt=txt||"";
i=i||ind;
_bf=_bf||[];
var _c0;
if(o&&o.nodeType==1){
var _c1=[];
_29(o,_c1);
return _c1.join("");
}
var br=",\n",cnt=0,_c2=_be(o);
if(o instanceof Date){
return i+o.toString()+br;
}
looking:
for(var nm in o){
cnt++;
if(cnt==_c2){
br="\n";
}
if(o[nm]===window||o[nm]===document){
continue;
}else{
if(o[nm]===null){
txt+=i+nm+" : NULL"+br;
}else{
if(o[nm]&&o[nm].nodeType){
if(o[nm].nodeType==1){
}else{
if(o[nm].nodeType==3){
txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br;
}
}
}else{
if(typeof o[nm]=="object"&&(o[nm] instanceof
String||o[nm] instanceof Number||o[nm] instanceof Boolean)){
txt+=i+nm+" : "+o[nm]+","+br;
}else{
if(o[nm] instanceof Date){
txt+=i+nm+" : "+o[nm].toString()+br;
}else{
if(typeof (o[nm])=="object"&&o[nm]){
for(var j=0,_c3;_c3=_bf[j];j++){
if(o[nm]===_c3){
txt+=i+nm+" : RECURSION"+br;
continue looking;
}
}
_bf.push(o[nm]);
_c0=(_bd(o[nm]))?["[","]"]:["{","}"];
txt+=i+nm+" : "+_c0[0]+"\n";
txt+=_25(o[nm],i+ind,"",_bf);
txt+=i+_c0[1]+br;
}else{
if(typeof o[nm]=="undefined"){
txt+=i+nm+" : undefined"+br;
}else{
if(nm=="toString"&&typeof o[nm]=="function"){
var _c4=o[nm]();
if(typeof _c4=="string"&&_c4.match(/function ?(.*?)\(/)){
_c4=_7b(_70(o[nm]));
}
txt+=i+nm+" : "+_c4+br;
}else{
txt+=i+nm+" : "+_7b(_70(o[nm]))+br;
}
}
}
}
}
}
}
}
}
return txt;
};
function _70(obj){
var _c5=(obj instanceof Error);
if(obj.nodeType==1){
return _7b("< "+obj.tagName.toLowerCase()+"
id=\""+obj.id+"\" />");
}
if(obj.nodeType==3){
return _7b("[TextNode:
\""+obj.nodeValue+"\"]");
}
var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId));
if(!_c5&&nm){
return "{"+nm+"}";
}
var _c6=2;
var _c7=4;
var cnt=0;
if(_c5){
nm="[ Error: "+(obj.message||obj.description||obj)+"
]";
}else{
if(_bd(obj)){
nm="["+obj.slice(0,_c7).join(",");
if(obj.length>_c7){
nm+=" ... ("+obj.length+" items)";
}
nm+="]";
}else{
if(typeof obj=="function"){
nm=obj+"";
var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/;
var m=reg.exec(nm);
if(m){
if(!m[1]){
m[1]="function";
}
nm=m[1]+m[2];
}else{
nm="function()";
}
}else{
if(typeof obj!="object"||typeof obj=="string"){
nm=obj+"";
}else{
nm="{";
for(var i in obj){
cnt++;
if(cnt>_c6){
break;
}
nm+=i+":"+_7b(obj[i])+"  ";
}
nm+="}";
}
}
}
}
return nm;
};
_49(document,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b);
if((document.documentElement.getAttribute("debug")=="true")||(dojo.config.isDebug)){
_34(true);
}
dojo.addOnWindowUnload(function(){
_a1(document,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b);
window.onFirebugResize=null;
window.console=null;
});
}
})();
}
PK�X�[
�H''.dojoloader/dojo/1.6.1/dojo/_firebug/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[
�H''
dojoloader/dojo/1.6.1/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[
�H''dojoloader/dojo/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[A�@��dojoloader/dojoloader.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_dojoloader - Offlajn Dojo Loader
#
-------------------------------------------------------------------------
# @ author    Roland Soos, Balint Polgarfi
# @ copyright Copyright (C) Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );
jimport( 'joomla.filesystem.folder' );

require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'loader.php'
);

class plgSystemDojoloader extends JPlugin {

  var $cache = 0;

  //function plgSystemDojoloader(& $subject) {
  function __construct(& $subject) {
    parent::__construct($subject);
  }

  function onAfterRender(){
    foreach(@DojoLoader::getInstance(null) AS $loader){
      $loader->build();
    }
  }

  function customBuild(){
    $document = JFactory::getDocument();
    foreach(@DojoLoader::getInstance(null) AS $loader){
      $document->addScript($loader->_build());
    }
  }

}PK�X�[��l���dojoloader/dojoloader.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="1.5" type="plugin"
group="system" method="upgrade">
<name>Offlajn Dojo Loader</name>
<author>Roland Soos, Balint Polgarfi</author>
<creationDate>May 2012</creationDate>
<copyright>Copyright (C) Offlajn.com. All rights
reserved.</copyright>
<license>GNU General Public License</license>
<authorEmail>info@offlajn.com</authorEmail>
<authorUrl>http://offlajn.com</authorUrl>
<version>1.2.0</version>
<description>Dojo javascript library loader</description>
<files>
    <filename
plugin="dojoloader">dojoloader.php</filename>
    <filename>dojoloader.xml</filename>
    <filename>loader.php</filename>
    <folder>dojo</folder>
</files>
<params>
</params>
</extension>
PK�X�[/6�  dojoloader/loader.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_dojoloader - Offlajn Dojo Loader
# -------------------------------------------------------------------------
# @ author    Roland Soos, Balint Polgarfi
# @ copyright Copyright (C) Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.filesystem.file' );

class DojoLoader{

  var $path;

  var $scope;

  var $scripts;

  var $script;

  function __construct($version = '1.6.1', $scope =
'o'){
    $this->version = $version;
    $this->scope = $scope;
    $this->script = array();
    $this->scripts = array();
    $this->files = array();
    $this->path =
dirname(__FILE__).DIRECTORY_SEPARATOR.'dojo'.DIRECTORY_SEPARATOR.$this->version.DIRECTORY_SEPARATOR;
  }

	static function getInstance($version = '1.6.1', $scope =
'o'){
		static $instances;
		if (!isset( $instances )) {
			$instances = array();
		}

    if(!$version) return $instances;

		if (empty($instances[$version.$scope])){
			$instance = new DojoLoader($version, $scope);

			$instances[$version.$scope] =& $instance;
		}

		return $instances[$version.$scope];
	}

  // Require - static
  static function r($library, $version = null, $scope = 'o'){
    if($version == null)
      $l = DojoLoader::getInstance();
    else
      $l = DojoLoader::getInstance($version, $scope);
    $l->load($library);
  }

  static function addScript($script, $version = null, $scope =
'o'){
    if($version == null)
      $l = DojoLoader::getInstance();
    else
      $l = DojoLoader::getInstance($version, $scope);
    $l->_addScript($script);
  }

  function _addScript($script){
    $this->script[] = $script;
  }

  static function addScriptFile($file, $version = null, $scope =
'o') {
    DojoLoader::addAbsoluteScriptFile(JPATH_SITE.$file, $version, $scope);
  }

  static function addAbsoluteScriptFile($file, $version = null, $scope =
'o'){
    if ($version == null) $l = DojoLoader::getInstance();
    else $l = DojoLoader::getInstance($version, $scope);
    $l->_addScriptFile($file);
  }

  function _addScriptFile($file){
    $this->files[$file] = 1;
  }

  function load($l){
    $jspath = str_replace('.' ,DIRECTORY_SEPARATOR,
$l).'.js';
    $this->scripts[$l] = $jspath;
  }

  function build(){
    if(defined('WP_ADMIN')){
      $document =& JFactory::getDocument();
      $document->addScript($this->_build());
    }else{
      $body = JResponse::getBody();
  		$body = preg_replace('/<head>/',
'<head><script
src="'.$this->_build().'"
type="text/javascript"></script>', $body, 1);
      JResponse::setBody($body);
    }
  }

  function _build(){
    $keys = array_keys($this->scripts);
    $script = implode("\n",$this->script);
    $fkeys = array_keys($this->files);

    $folder = $this->checkFolders();

    $pathfolder =
JPATH_SITE.DIRECTORY_SEPARATOR.'media'.DIRECTORY_SEPARATOR.'dojo'.DIRECTORY_SEPARATOR.$folder.DIRECTORY_SEPARATOR;

    $hashcode = '';
    for($i=0; $i < count($fkeys); $i++){
      $hashcode.= filemtime($fkeys[$i]);
    }

    $hash = md5(implode('', $keys).implode('',
$fkeys).$script.$hashcode).'.js';

    $path = $pathfolder.$hash;

    if(!JFile::exists($path)){
      $t = '
        (function(){';
      $post = JRequest::get('post');
      if(!isset($post['offlajnformrenderer'])){
        $t.='
            djConfig = {
              modulePaths: {
                "dojo":
"'.$this->urlToDojo().'dojo",
                "dijit":
"'.$this->urlToDojo().'dijit",
                "dojox":
"'.$this->urlToDojo().'dojox"
              }

              '.($this->scope != '' ? ',
              scopeMap: [
                [ "dojo",
"'.$this->scope.'dojo" ],
                [ "dijit",
"'.$this->scope.'dijit" ],
                [ "dojox",
"'.$this->scope.'dojox" ]
              ]' : '').'
            };
            if(typeof '.$this->scope.'dojo ===
"undefined"){
        ';
        $t.=
JFile::read($this->path.'dojo'.DIRECTORY_SEPARATOR.'dojo.js');
        $t.= "} \n";
      }
      if($this->scope != ''){
        $t.= "\nvar dojo = ".$this->scope."dojo;\n";
        $t.= "\nvar dijit =
".$this->scope."dijit;\n";
        $t.= "\nvar dojox =
".$this->scope."dojox;\n";
      }
      for($i=0; $i < count($keys); $i++){
        $t.= $this->read($this->scripts[$keys[$i]])."\n";
      }
      for($i=0; $i < count($fkeys); $i++){
        $t.= $this->readAbs($fkeys[$i])."\n";
      }
      $t.='dojo.addOnLoad(function(){'.$script.'});
      ';
      $t.= 'djConfig = {};})();';
      JFile::write($path, $t);
    }
    return
JUri::root(true).'/media/dojo/'.$folder.'/'.$hash;
  }

  function checkDependencies($script){
    $dep = '';
    preg_match_all (
'/dojo\.require\("([_\.a-zA-Z0-9]*?)"\);/' , $script ,
$out);
    if(isset($out[1])){
      foreach($out[1] AS $o){
        if(!isset($this->scripts[$o])){
          $this->load($o);
          $dep.=$this->read($this->scripts[$o]);
        }
      }
    }
    return $dep;
  }

  function readAbs($s){
    $t = JFile::read($s);
    return $this->checkDependencies($t)."\n".$t;
  }

  function read($s){
    $t = JFile::read($this->path.$s);
    if($s == 'dojo/dojo.js') return $t;
    return $this->checkDependencies($t)."\n".$t;
  }

  function urlToDojo(){
    if(version_compare(JVERSION,'1.6.0','ge'))
      return
JUri::root(true).'/plugins/system/dojoloader/dojo/'.$this->version.'/';
    return
JUri::root(true).'/plugins/system/dojo/'.$this->version.'/';
  }

  function checkFolders() {
    $date = date('Ymd');
    $folders = array();
    $path =
JPATH_SITE.DIRECTORY_SEPARATOR.'media'.DIRECTORY_SEPARATOR.'dojo';
    $get = JRequest::get('get');
    if(isset($get['offlajnclearcache']) ||
!JFolder::exists($path.DIRECTORY_SEPARATOR.$date)) {
      $folders = JFolder::folders($path, '', '', 1);
      if(is_array($folders)){
        foreach($folders as $folder) {
          JFolder::delete($folder);
        }
      }
      JFolder::create($path.DIRECTORY_SEPARATOR.$date);
    }
    return $date;
  }
}
?>PK�X�[��5��
dump/dump.phpnu�[���<?php
/**
 * J!Dump
 * @version      $Id$
 * @package      jdump
 * @copyright    Copyright (C) 2007 Mathias Verraes. All rights reserved.
 * @license      GNU/GPL
 * @link         https://github.com/mathiasverraes/jdump
 */
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.event.helper' );

if
(file_exists(JPATH_ADMINISTRATOR.'/components/com_dump/helper.php'))

{
	require_once(JPATH_ADMINISTRATOR.'/components/com_dump/helper.php');
	require_once(JPATH_ADMINISTRATOR.'/components/com_dump/defines.php');
} 
else 
{
	JError::raiseNotice(20, 'The J!Dump Plugin needs the J!Dump Component
to function.');
}

$version = new JVersion();
if (!$version->isCompatible('2.5.5')) 
{
	JError::raiseNotice(20, 'J!Dump requires Joomla 2.5.5 or later. For
older Joomla versions, please use
https://github.com/downloads/mathiasverraes/jdump/unzip_first_jdump_v2012-10-08.zip');
}

class plgSystemDump extends JPlugin 
{
	function __construct(& $subject, $params) 
	{
		parent::__construct($subject, $params);
	}

	function onAfterRender() 
	{
	   $mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');

		if ($option == 'com_dump')
		{
			return;
		}

		// settings from config.xml
		$dumpConfig = JComponentHelper::getParams( 'com_dump' );
		$autopopup  = $dumpConfig->get( 'autopopup', 1 );

		$userstate = $mainframe->getUserState( 'dump.nodes', array()
);
		$cnt_dumps  = count($userstate);

		if( $autopopup && $cnt_dumps) 
		{
			DumpHelper::showPopup();
		}
	}
}


/**
 * Add a variable to the list of variables that will be shown in the debug
window
 * @param mixed $var The variable you want to dump
 * @param mixed $name The name of the variable you want to dump
 */
function dump($var = null, $name = '(unknown name)', $type =
null, $level = 0)
{
	$mainframe = JFactory::getApplication(); 
	$option    = JRequest::getCmd('option');

	require_once
JPATH_ADMINISTRATOR.'/components/com_dump/node.php';

		$source = '';
		if (function_exists('debug_backtrace'))
		{
			$trace = debug_backtrace();
			$source = DumpHelper::getSourceFunction($trace) 
					. DumpHelper::getSourcePath($trace);
		}

	// create a new node array
	$node           = DumpNode::getNode($var, $name, $type, $level, $source);
	//get the current userstate
	$userstate      = $mainframe->getUserState('dump.nodes');
	// append the node to the array
	$userstate[]    = $node;
	// set the userstate to the new array
	$mainframe->setUserState('dump.nodes', $userstate);
}

/**
 * Shortcut to dump the parameters of a template
 * @param object $var The "$this" object in the template
 */
function dumpTemplate($var, $name = false) 
{
	$name = $name ? $name :  $var->template;
	dump($var->params->toObject(), "dumpTemplate params :
".$name);
}

/**
 * Shortcut to dump a message
 * @param string $msg The message
 */
function dumpMessage($msg = '(Empty message)') 
{
	dump($msg, null, 'message', 0);
}

/**
 * Shortcut to dump system information
 */
function dumpSysinfo() 
{
	require_once
JPATH_ADMINISTRATOR.'/components/com_dump/sysinfo.php';
	$sysinfo = new DumpSysinfo();
	dump( $sysinfo->data, 'System Information');
}

/**
 * Shortcut to dump the backtrace
 */
function dumpTrace()
{
	$trace = debug_backtrace();

	$arr = dumpTraceBuild($trace);

	dump($arr, 'Backtrace', 'backtrace');
}

function dumpTraceBuild($trace)
{
	$ret = array();

	$ret['file']     = $trace[0]['file'];
	$ret['line']     = $trace[0]['line'];
	
	if (isset($trace[0]['class']) &&
isset($trace[0]['type']))
		$ret['function'] =
$trace[0]['class'].$trace[0]['type'].$trace[0]['function'];
	else
		$ret['function'] = $trace[0]['function'];
		
	$ret['args']     = $trace[0]['args'];

	array_shift($trace);
	
	if (count($trace) > 0)
		$ret['backtrace'] = dumpTraceBuild($trace);

	return $ret;
}
PK�X�[�j���
dump/dump.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.0" type="plugin"
group="system" method="upgrade">
	<name>J!Dump</name>
	<author>Mathias Verraes</author>
	<creationDate>%%TODAY%%</creationDate>
	<copyright>(c) Mathias Verraes 2006 - 2011</copyright>
	<license>GNU/GPL</license>
	<authorEmail></authorEmail>
	<authorUrl>https://github.com/mathiasverraes/jdump</authorUrl>
	<version>%%VERSION%%</version>
	<description>
	<![CDATA[
		J!Dump Plugin -- This plugin requires the J!Dump component to function. 
		Don't forget to <a
href="index.php?option=com_plugins&view=plugins&filter_folder=system">publish
this plugin!</a>
	]]>
	</description>
	<files>
		<filename plugin="dump">dump.php</filename>
	</files>
	<params>
	</params>
</extension>
PK�X�[��c
3
3fields/fields.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.Fields
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Form\Form;
use Joomla\Registry\Registry;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Multilanguage;

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR .
'/components/com_fields/helpers/fields.php');

/**
 * Fields Plugin
 *
 * @since  3.7
 */
class PlgSystemFields extends JPlugin
{
	/**
	 * Load the language file on instantiation.
	 *
	 * @var    boolean
	 * @since  3.7.0
	 */
	protected $autoloadLanguage = true;

	/**
	 * Normalizes the request data.
	 *
	 * @param   string  $context  The context
	 * @param   object  $data     The object
	 * @param   Form    $form     The form
	 *
	 * @return  void
	 *
	 * @since   3.8.7
	 */
	public function onContentNormaliseRequestData($context, $data, Form $form)
	{
		if (!FieldsHelper::extract($context, $data))
		{
			return true;
		}

		// Loop over all fields
		foreach ($form->getGroup('com_fields') as $field)
		{
			if ($field->disabled === true)
			{
				/**
				 * Disabled fields should NEVER be added to the request as
				 * they should NEVER be added by the browser anyway so nothing to check
against
				 * as "disabled" means no interaction at all.
				 */

				// Make sure the data object has an entry before delete it
				if (isset($data->com_fields[$field->fieldname]))
				{
					unset($data->com_fields[$field->fieldname]);
				}

				continue;
			}

			// Make sure the data object has an entry
			if (isset($data->com_fields[$field->fieldname]))
			{
				continue;
			}

			// Set a default value for the field
			$data->com_fields[$field->fieldname] = false;
		}
	}

	/**
	 * The save event.
	 *
	 * @param   string   $context  The context
	 * @param   JTable   $item     The table
	 * @param   boolean  $isNew    Is new item
	 * @param   array    $data     The validated data
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onContentAfterSave($context, $item, $isNew, $data =
array())
	{
		// Check if data is an array and the item has an id
		if (!is_array($data) || empty($item->id) ||
empty($data['com_fields']))
		{
			return true;
		}

		// Create correct context for category
		if ($context == 'com_categories.category')
		{
			$context = $item->extension . '.categories';

			// Set the catid on the category to get only the fields which belong to
this category
			$item->catid = $item->id;
		}

		// Check the context
		$parts = FieldsHelper::extract($context, $item);

		if (!$parts)
		{
			return true;
		}

		// Compile the right context for the fields
		$context = $parts[0] . '.' . $parts[1];

		// Loading the fields
		$fields = FieldsHelper::getFields($context, $item);

		if (!$fields)
		{
			return true;
		}

		// Loading the model
		$model = JModelLegacy::getInstance('Field',
'FieldsModel', array('ignore_request' => true));

		// Loop over the fields
		foreach ($fields as $field)
		{
			// Determine the value if it is (un)available from the data
			if (key_exists($field->name, $data['com_fields']))
			{
				$value = $data['com_fields'][$field->name] === false ?
null : $data['com_fields'][$field->name];
			}
			// Field not available on form, use stored value
			else
			{
				$value = $field->rawvalue;
			}

			// If no value set (empty) remove value from database
			if (is_array($value) ? !count($value) : !strlen($value))
			{
				$value = null;
			}

			// JSON encode value for complex fields
			if (is_array($value) && (count($value, COUNT_NORMAL) !==
count($value, COUNT_RECURSIVE) || !count(array_filter(array_keys($value),
'is_numeric'))))
			{
				$value = json_encode($value);
			}

			// Setting the value for the field and the item
			$model->setFieldValue($field->id, $item->id, $value);
		}

		return true;
	}

	/**
	 * The save event.
	 *
	 * @param   array    $userData  The date
	 * @param   boolean  $isNew     Is new
	 * @param   boolean  $success   Is success
	 * @param   string   $msg       The message
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onUserAfterSave($userData, $isNew, $success, $msg)
	{
		// It is not possible to manipulate the user during save events
		// Check if data is valid or we are in a recursion
		if (!$userData['id'] || !$success)
		{
			return true;
		}

		$user = JFactory::getUser($userData['id']);

		$task =
JFactory::getApplication()->input->getCmd('task');

		// Skip fields save when we activate a user, because we will lose the
saved data
		if (in_array($task, array('activate', 'block',
'unblock')))
		{
			return true;
		}

		// Trigger the events with a real user
		$this->onContentAfterSave('com_users.user', $user, false,
$userData);

		return true;
	}

	/**
	 * The delete event.
	 *
	 * @param   string    $context  The context
	 * @param   stdClass  $item     The item
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onContentAfterDelete($context, $item)
	{
		$parts = FieldsHelper::extract($context, $item);

		if (!$parts || empty($item->id))
		{
			return true;
		}

		$context = $parts[0] . '.' . $parts[1];

		JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_fields/models', 'FieldsModel');

		$model = JModelLegacy::getInstance('Field',
'FieldsModel', array('ignore_request' => true));
		$model->cleanupValues($context, $item->id);

		return true;
	}

	/**
	 * The user delete event.
	 *
	 * @param   stdClass  $user    The context
	 * @param   boolean   $succes  Is success
	 * @param   string    $msg     The message
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onUserAfterDelete($user, $succes, $msg)
	{
		$item     = new stdClass;
		$item->id = $user['id'];

		return $this->onContentAfterDelete('com_users.user', $item);
	}

	/**
	 * The form event.
	 *
	 * @param   JForm     $form  The form
	 * @param   stdClass  $data  The data
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onContentPrepareForm(JForm $form, $data)
	{
		$context = $form->getName();

		// When a category is edited, the context is
com_categories.categorycom_content
		if (strpos($context, 'com_categories.category') === 0)
		{
			$context = str_replace('com_categories.category',
'', $context) . '.categories';

			// Set the catid on the category to get only the fields which belong to
this category
			if (is_array($data) && key_exists('id', $data))
			{
				$data['catid'] = $data['id'];
			}

			if (is_object($data) && isset($data->id))
			{
				$data->catid = $data->id;
			}
		}

		$parts = FieldsHelper::extract($context, $form);

		if (!$parts)
		{
			return true;
		}

		$input = JFactory::getApplication()->input;

		// If we are on the save command we need the actual data
		$jformData = $input->get('jform', array(),
'array');

		if ($jformData && !$data)
		{
			$data = $jformData;
		}

		if (is_array($data))
		{
			$data = (object) $data;
		}

		FieldsHelper::prepareForm($parts[0] . '.' . $parts[1], $form,
$data);

		return true;
	}

	/**
	 * The display event.
	 *
	 * @param   string    $context     The context
	 * @param   stdClass  $item        The item
	 * @param   Registry  $params      The params
	 * @param   integer   $limitstart  The start
	 *
	 * @return  string
	 *
	 * @since   3.7.0
	 */
	public function onContentAfterTitle($context, $item, $params, $limitstart
= 0)
	{
		return $this->display($context, $item, $params, 1);
	}

	/**
	 * The display event.
	 *
	 * @param   string    $context     The context
	 * @param   stdClass  $item        The item
	 * @param   Registry  $params      The params
	 * @param   integer   $limitstart  The start
	 *
	 * @return  string
	 *
	 * @since   3.7.0
	 */
	public function onContentBeforeDisplay($context, $item, $params,
$limitstart = 0)
	{
		return $this->display($context, $item, $params, 2);
	}

	/**
	 * The display event.
	 *
	 * @param   string    $context     The context
	 * @param   stdClass  $item        The item
	 * @param   Registry  $params      The params
	 * @param   integer   $limitstart  The start
	 *
	 * @return  string
	 *
	 * @since   3.7.0
	 */
	public function onContentAfterDisplay($context, $item, $params,
$limitstart = 0)
	{
		return $this->display($context, $item, $params, 3);
	}

	/**
	 * Performs the display event.
	 *
	 * @param   string    $context      The context
	 * @param   stdClass  $item         The item
	 * @param   Registry  $params       The params
	 * @param   integer   $displayType  The type
	 *
	 * @return  string
	 *
	 * @since   3.7.0
	 */
	private function display($context, $item, $params, $displayType)
	{
		$parts = FieldsHelper::extract($context, $item);

		if (!$parts)
		{
			return '';
		}

		// If we have a category, set the catid field to fetch only the fields
which belong to it
		if ($parts[1] == 'categories' &&
!isset($item->catid))
		{
			$item->catid = $item->id;
		}

		$context = $parts[0] . '.' . $parts[1];

		// Convert tags
		if ($context == 'com_tags.tag' &&
!empty($item->type_alias))
		{
			// Set the context
			$context = $item->type_alias;

			$item = $this->prepareTagItem($item);
		}

		if (is_string($params) || !$params)
		{
			$params = new Registry($params);
		}

		$fields = FieldsHelper::getFields($context, $item, $displayType);

		if ($fields)
		{
			$app = Factory::getApplication();

			if ($app->isClient('site') &&
Multilanguage::isEnabled() && isset($item->language) &&
$item->language == '*')
			{
				$lang = $app->getLanguage()->getTag();

				foreach ($fields as $key => $field)
				{
					if ($field->language == '*' || $field->language ==
$lang)
					{
						continue;
					}

					unset($fields[$key]);
				}
			}
		}

		if ($fields)
		{
			foreach ($fields as $key => $field)
			{
				$fieldDisplayType = $field->params->get('display',
'2');

				if ($fieldDisplayType == $displayType)
				{
					continue;
				}

				unset($fields[$key]);
			}
		}

		if ($fields)
		{
			return FieldsHelper::render(
				$context,
				'fields.render',
				array(
					'item'            => $item,
					'context'         => $context,
					'fields'          => $fields
				)
			);
		}

		return '';
	}

	/**
	 * Performs the display event.
	 *
	 * @param   string    $context  The context
	 * @param   stdClass  $item     The item
	 *
	 * @return  void
	 *
	 * @since   3.7.0
	 */
	public function onContentPrepare($context, $item)
	{
		// Check property exists (avoid costly & useless recreation), if need
to recreate them, just unset the property!
		if (isset($item->jcfields))
		{
			return;
		}

		$parts = FieldsHelper::extract($context, $item);

		if (!$parts)
		{
			return;
		}

		$context = $parts[0] . '.' . $parts[1];

		// Convert tags
		if ($context == 'com_tags.tag' &&
!empty($item->type_alias))
		{
			// Set the context
			$context = $item->type_alias;

			$item = $this->prepareTagItem($item);
		}

		// Get item's fields, also preparing their value property for manual
display
		// (calling plugins events and loading layouts to get their HTML display)
		$fields = FieldsHelper::getFields($context, $item, true);

		// Adding the fields to the object
		$item->jcfields = array();

		foreach ($fields as $key => $field)
		{
			$item->jcfields[$field->id] = $field;
		}
	}

	/**
	 * The finder event.
	 *
	 * @param   stdClass  $item  The item
	 *
	 * @return  boolean
	 *
	 * @since   3.7.0
	 */
	public function onPrepareFinderContent($item)
	{
		$section = strtolower($item->layout);
		$tax     = $item->getTaxonomy('Type');

		if ($tax)
		{
			foreach ($tax as $context => $value)
			{
				// This is only a guess, needs to be improved
				$component = strtolower($context);

				if (strpos($context, 'com_') !== 0)
				{
					$component = 'com_' . $component;
				}

				// Transform com_article to com_content
				if ($component === 'com_article')
				{
					$component = 'com_content';
				}

				// Create a dummy object with the required fields
				$tmp     = new stdClass;
				$tmp->id = $item->__get('id');

				if ($item->__get('catid'))
				{
					$tmp->catid = $item->__get('catid');
				}

				// Getting the fields for the constructed context
				$fields = FieldsHelper::getFields($component . '.' .
$section, $tmp, true);

				if (is_array($fields))
				{
					foreach ($fields as $field)
					{
						// Adding the instructions how to handle the text
						$item->addInstruction(FinderIndexer::TEXT_CONTEXT,
$field->name);

						// Adding the field value as a field
						$item->{$field->name} = $field->value;
					}
				}
			}
		}

		return true;
	}

	/**
	 * Prepares a tag item to be ready for com_fields.
	 *
	 * @param   stdClass  $item  The item
	 *
	 * @return  object
	 *
	 * @since   3.8.4
	 */
	private function prepareTagItem($item)
	{
		// Map core fields
		$item->id       = $item->content_item_id;
		$item->language = $item->core_language;

		// Also handle the catid
		if (!empty($item->core_catid))
		{
			$item->catid = $item->core_catid;
		}

		return $item;
	}
}
PK�X�[���K''fields/fields.xmlnu�[���<?xml
version="1.0" encoding="utf-8" ?>
<extension type="plugin" version="3.7.0"
group="system" method="upgrade">
	<name>plg_system_fields</name>
	<author>Joomla! Project</author>
	<creationDate>March 2016</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.7.0</version>
	<description>PLG_SYSTEM_FIELDS_XML_DESCRIPTION</description>
	<files>
		<filename plugin="fields">fields.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_fields.ini</language>
		<language
tag="en-GB">en-GB.plg_system_fields.sys.ini</language>
	</languages>
</extension>
PK�X�[�dq���gantry5/fields/warning.phpnu�[���<?php

/**
 * @package   Gantry 5
 * @author    RocketTheme http://www.rockettheme.com
 * @copyright Copyright (C) 2007 - 2020 RocketTheme, LLC
 * @license   GNU/GPLv2 and later
 *
 * http://www.gnu.org/licenses/gpl-2.0.html
 */

class JFormFieldWarning extends JFormField
{
    protected $type = 'Warning';

    protected function getLabel()
    {
        return 'Gantry 5';
    }

    protected function getInput()
    {
        $app = JFactory::getApplication();
        $input = $app->input;

        $route = '';
        $cid = $input->post->get('cid', (array)
$input->getInt('id'), 'array');
        if ($cid) {
            $styles = $this->getStyles();
            $selected = array_intersect_key($styles, array_flip($cid));
            if ($selected) {
                $theme = reset($selected);
                $id = key($selected);
                $token = JSession::getFormToken();
                $route =
"index.php?option=com_gantry5&view=configurations/{$id}";
            }
        }

        if (!$route) {
            return '<a
href="index.php?option=com_gantry5" class="btn"
style="background:#439a86; color:#fff;">Gantry
5</a>';
        }

        $lang = JFactory::getLanguage();
        $lang->load('com_gantry5', JPATH_ADMINISTRATOR) ||
$lang->load('com_gantry5', JPATH_ADMINISTRATOR .
'/components/com_gantry5');

        $title1 = JText::_('GANTRY5_PLATFORM_STYLES');
        $title2 = JText::_('GANTRY5_PLATFORM_LAYOUT');
        $title3 = JText::_('GANTRY5_PLATFORM_PAGESETTINGS');

        return <<<HTML
<a href="{$route}/styles&theme={$theme}&{$token}=1"
class="btn" style="background:#439a86;
color:#fff;">{$title1}</a>
<a href="{$route}/layout&theme={$theme}&{$token}=1"
class="btn" style="background:#439a86;
color:#fff;">{$title2}</a>
<a href="{$route}/page&theme={$theme}&{$token}=1"
class="btn" style="background:#439a86;
color:#fff;">{$title3}</a>
HTML;
    }

    /**
     * @return array
     */
    private function getStyles()
    {
        static $list;

        if ($list === null) {
            // Load styles
            $db = JFactory::getDbo();
            $query = $db
                ->getQuery(true)
                ->select('s.id, s.template')
                ->from('#__template_styles as s')
                ->where('s.client_id = 0')
                ->where('e.enabled = 1')
                ->leftJoin('#__extensions as e ON
e.element=s.template AND e.type=' .
$db->quote('template') . ' AND
e.client_id=s.client_id');

            $db->setQuery($query);
            $templates = (array)$db->loadObjectList();

            $list = array();

            foreach ($templates as $template) {
                if ($this->isGantryTemplate($template->template)) {
                    $list[$template->id] = $template->template;
                }
            }
        }

        return $list;
    }

    private function isGantryTemplate($name)
    {
        return file_exists(JPATH_SITE .
"/templates/{$name}/gantry/theme.yaml");
    }
}
PK�X�[��x��U�Ugantry5/gantry5.phpnu�[���<?php
/**
 * @package   Gantry 5
 * @author    RocketTheme http://www.rockettheme.com
 * @copyright Copyright (C) 2007 - 2017 RocketTheme, LLC
 * @license   GNU/GPLv2 and later
 *
 * http://www.gnu.org/licenses/gpl-2.0.html
 */
defined('_JEXEC') or die;

class plgSystemGantry5 extends JPlugin
{
    /**
     * @var JApplicationCms
     */
    protected $app;
    protected $styles;
    protected $modules;

    public function __construct(&$subject, $config = array())
    {
        $this->_name = isset($config['name']) ?
$config['name'] : 'gantry5';
        $this->_type = isset($config['type']) ?
$config['type'] : 'system';

        $this->app = JFactory::getApplication();

        $this->loadLanguage('plg_system_gantry5.sys');

        JLoader::register('Gantry5\Loader', JPATH_LIBRARIES .
'/gantry5/Loader.php');

        // Detect Gantry Framework or fail gracefully.
        if (!class_exists('Gantry5\Loader')) {
            if ($this->app->isAdmin()) {
                $this->app->enqueueMessage(
                   
JText::sprintf('PLG_SYSTEM_GANTRY5_LIBRARY_MISSING',
JText::_('PLG_SYSTEM_GANTRY5')),
                    'warning'
                );
            }
            return;
        }

        parent::__construct($subject, $config);
    }

    /**
     * Return global configuration for Gantry5.
     */
    public function onGantryGlobalConfig(&$global)
    {
        $global = $this->params->toArray();
    }

    public function onAfterRoute()
    {
        if ($this->app->isSite()) {
            $this->onAfterRouteSite();

        } elseif ($this->app->isAdmin()) {
            $this->onAfterRouteAdmin();
        }
    }

    public function onAfterRender()
    {
        if ($this->app->isSite() &&
class_exists('Gantry\Framework\Gantry')) {
            $this->onAfterRenderSite();

        } elseif ($this->app->isAdmin()) {
            $this->onAfterRenderAdmin();
        }
    }

    /**
     * @param object $module
     * @param array $attribs
     */
    public function onRenderModule(&$module, &$attribs)
    {
        if (!$this->app->isSite() ||
!class_exists('Gantry\Framework\Gantry')) {
            return;
        }

        $gantry = \Gantry\Framework\Gantry::instance();
        $outline = $gantry['configuration'];

        // Do not render modules assigned to menu items in error and
offline page.
        if (isset($module->menuid) && $module->menuid > 0
&& in_array($outline, array('_error',
'_offline'))) {
            $module = null;
        }

        // TODO: This event allows more diverse module assignment
conditions.
    }

    /**
     * Serve particle AJAX requests in
'index.php?option=com_ajax&plugin=particle&format=json'.
     *
     * @return array|string|null
     */
    public function onAjaxParticle()
    {
        if (!$this->app->isSite() ||
!class_exists('Gantry\Framework\Gantry')) {
            return null;
        }

        $input = $this->app->input;
        $format = $input->getCmd('format', 'html');

        if (!in_array($format, ['json', 'raw',
'debug'])) {
            throw new
RuntimeException(JText::_('JERROR_PAGE_NOT_FOUND'), 404);
        }

        $props = $_GET;
        unset($props['option'], $props['plugin'],
$props['format'], $props['id'],
$props['Itemid']);

        $identifier = $input->getCmd('id');

        if (strpos($identifier, 'module-') === 0) {
            preg_match('`-([\d]+)$`',
$input->getCmd('id'), $matches);

            if (!isset($matches[1])) {
                throw new
RuntimeException(JText::_('JERROR_PAGE_NOT_FOUND'), 404);
            }

            $id = $matches[1];

            require_once JPATH_ROOT .
'/modules/mod_gantry5_particle/helper.php';

            return ModGantry5ParticleHelper::ajax($id, $props, $format);
        }

        $gantry = \Gantry\Framework\Gantry::instance();

        /** @var \Gantry\Framework\Theme $theme */
        $theme = $gantry['theme'];
        $layout = $theme->loadLayout();
        $html = '';

        if ($identifier === 'main-particle') {
            $type = $identifier;
            $menu = $this->app->getMenu();
            $menuItem = $menu->getActive();
            $params = $menuItem ? $menuItem->getParams() : new
JRegistry;

            /** @var object $params */
            $data = json_decode($params->get('particle'),
true);
            if ($data && $theme->hasContent()) {
                $context = [
                    'gantry' => $gantry,
                    'noConfig' => true,
                    'inContent' => true,
                    'ajax' => $props,
                    'segment' => [
                        'id' => $identifier,
                        'type' => $data['type'],
                        'classes' =>
$params->get('pageclass_sfx'),
                        'subtype' =>
$data['particle'],
                        'attributes' =>
$data['options']['particle'],
                    ]
                ];

                $html =
trim($theme->render("@nucleus/content/particle.html.twig",
$context));
            }
        } else {
            $particle = $layout->find($identifier);
            if (!isset($particle->type) || $particle->type !==
'particle') {
                throw new
RuntimeException(JText::_('JERROR_PAGE_NOT_FOUND'), 404);
            }

            $context = array(
                'gantry' => $gantry,
                'inContent' => false,
                'ajax' => $props,
            );

            $block = $theme->getContent($particle, $context);
            $type = $particle->type . '.' .
$particle->subtype;
            $html = (string) $block;
        }

        if ($format === 'raw') {
            return $html;
        }

        return ['code' => 200, 'type' => $type,
'id' => $identifier, 'props' => (object) $props,
'html' => $html];
    }

    /**
     * Load Gantry framework before dispatching to the component.
     */
    private function onAfterRouteSite()
    {
        $input = $this->app->input;

        $templateName = $this->app->getTemplate();

        if (!$this->isGantryTemplate($templateName)) {
            return;
        }

        $gantryPath = JPATH_THEMES .
"/{$templateName}/includes/gantry.php";

        if (is_file($gantryPath)) {
            // Manually setup Gantry 5 Framework from the template.
            $gantry = include $gantryPath;

            if (!$gantry) {
                throw new \RuntimeException(
                   
JText::sprintf("GANTRY5_THEME_LOADING_FAILED", $templateName,
JText::_('GANTRY5_THEME_INCLUDE_FAILED')),
                    500
                );
            }

        } else {

            // Setup Gantry 5 Framework or throw exception.
            Gantry5\Loader::setup();

            // Get Gantry instance.
            $gantry = Gantry\Framework\Gantry::instance();

            // Initialize the template.
            $gantry['theme.path'] = JPATH_THEMES .
"/{$templateName}";
            $gantry['theme.name'] = $templateName;

            $themePath = $gantry['theme.path'] .
'/includes/theme.php';

            include_once $themePath;
        }

        GANTRY_DEBUGGER && \Gantry\Debugger::addMessage("Using
Gantry 5 template {$templateName}");

        /** @var Gantry\Framework\Theme $theme */
        $theme = $gantry['theme'];

        $assignments = new \Gantry\Framework\Assignments();

        if (GANTRY_DEBUGGER) {
            \Gantry\Debugger::addMessage('Selecting outline (rules,
matches, scores):', 'debug');
            \Gantry\Debugger::addMessage($assignments->getPage(),
'debug');
           
\Gantry\Debugger::addMessage($assignments->loadAssignments(),
'debug');
            \Gantry\Debugger::addMessage($assignments->matches(),
'debug');
            \Gantry\Debugger::addMessage($assignments->scores(),
'debug');
        }

        $theme->setLayout($assignments->select());

        if ($this->params->get('asset_timestamps', 1)) {
            $age = (int)
($this->params->get('asset_timestamps_period', 7) * 86400);
            Gantry\Framework\Document::$timestamp_age = $age > 0 ? $age
: PHP_INT_MAX;
        } else {
            Gantry\Framework\Document::$timestamp_age = 0;
        }
    }

    /**
     * Re-route Gantry templates to Gantry Administration component.
     */
    private function onAfterRouteAdmin()
    {
        $input = $this->app->input;

        $option = $input->getCmd('option');
        $task   = $input->getCmd('task');

        if (in_array($option, array('com_templates',
'com_advancedtemplates'))) {
            JLoader::register('JFormFieldWarning', __DIR__ .
'/fields/warning.php');
            class_exists(JFormFieldWarning::class, true);

            if ($task && strpos($task, 'style') === 0
&& $this->params->get('use_assignments', true)) {
                // Get all ids.
                $cid = $input->post->get('cid',
(array)$input->getInt('id'), 'array');

                if ($cid) {
                    $styles = $this->getStyles();
                    $selected = array_intersect_key($styles,
array_flip($cid));

                    // If no Gantry templates were selected, just let
com_templates deal with the request.
                    if (!$selected) {
                        return;
                    }

                    // Special handling for tasks coming from com_template.
                    if ($task === 'style.edit') {
                        $theme = reset($selected);
                        $id = key($selected);
                        $token = JSession::getFormToken();
                       
$this->app->redirect("index.php?option=com_gantry5&view=configurations/{$id}/styles&theme={$theme}&{$token}=1");
                    }
                }
            }
        }
    }

    /**
     * Convert all stream uris into proper links.
     */
    private function onAfterRenderSite()
    {
        $gantry = \Gantry\Framework\Gantry::instance();

        $html = $this->app->getBody();

        // Only filter our streams. If there's an error (bad UTF8),
fallback with original output.
       
$this->app->setBody($gantry['document']->urlFilter($html,
false, 0, true) ?: $html);
    }

    /**
     * Convert links in com_templates to point into Gantry Administrator
component.
     */
    private function onAfterRenderAdmin()
    {
        $document = JFactory::getDocument();
        $type   = $document->getType();

        $option =
$this->app->input->getString('option');
        $view   = $this->app->input->getString('view',
'g5');
        $task   = $this->app->input->getString('task');

        if (in_array($option, array('com_templates',
'com_advancedtemplates')) && ($view == 'g5' ||
$view == 'styles') && !$task && $type ==
'html') {
            $this->styles = $this->getStyles();

            $body =
preg_replace_callback('/(<a\s[^>]*href=")([^"]*)("[^>]*>)(.*)(<\/a>)/siU',
array($this, 'appendHtml'), $this->app->getBody());

            $this->app->setBody($body);
        }

        if (($option == 'com_modules' || $option ==
'com_advancedmodules') && (($view == 'g5' ||
$view == 'modules') || empty($view)) && $type ==
'html') {
            $db    = JFactory::getDBO();
            $query = $db->getQuery(true);
            $query->select('id, title, params');
            $query->from('#__modules');
            $query->where('module = ' .
$db->quote('mod_gantry5_particle'));
            $db->setQuery($query);
            $data = $db->loadObjectList();

            if (count($data) > 0) {
                $this->modules = array();
                $body = $this->app->getBody();

                foreach ($data as $module) {
                    $params   = json_decode($module->params);
                    $particle = isset($params->particle) ?
json_decode($params->particle) : '';
                    $title = isset($particle->title) ?
$particle->title : (isset($particle->particle) ?
$particle->particle : '');
                    $type = isset($particle->particle) ?
$particle->particle : '';

                    $this->modules[$module->id] = $particle;

                    $body =
preg_replace_callback('/(<a\s[^>]*href=")([^"]*)("[^>]*>)(.*)(<\/a>)/siU',
function($matches) use ($title, $type) {
                        return $this->appendHtml($matches, $title,
$type);
                    }, $body);
                }


                $this->app->setBody($body);
            }
        }
    }

    /**
     * Save plugin parameters and trigger the save events.
     *
     * @param array $data
     * @return bool
     * @see JModelAdmin::save()
     */
    public function onGantry5SaveConfig(array $data)
    {
        $name = 'plg_' . $this->_type . '_' .
$this->_name;

        // Initialise variables;
        $dispatcher = JEventDispatcher::getInstance();
        $table = JTable::getInstance('Extension');

        // Include the content plugins for the on save events.
        JPluginHelper::importPlugin('extension');

        // Load the row if saving an existing record.
        $table->load(array('type'=>'plugin',
'folder'=>$this->_type,
'element'=>$this->_name));

        $params = new Joomla\Registry\Registry($table->params);
        $params->loadArray($data);

        $table->params = $params->toString();

        // Check the data.
        if (!$table->check()) {
            throw new RuntimeException($table->getError());
        }

        // Trigger the onContentBeforeSave event.
        $result =
$dispatcher->trigger('onExtensionBeforeSave', array($name,
$table, false));
        if (in_array(false, $result, true)) {
            throw new RuntimeException($table->getError());
        }

        // Store the data.
        if (!$table->store()) {
            throw new RuntimeException($table->getError());
        }

        // Clean the cache.
        \Gantry\Joomla\CacheHelper::cleanPlugin();

        // Update plugin settings.
        $this->params = $params;

        // Trigger the onExtensionAfterSave event.
        $dispatcher->trigger('onExtensionAfterSave',
array($name, $table, false));

        return true;
    }

    public function onContentBeforeSave($context, $table, $isNew)
    {
        if ($context !== 'com_menus.item') {
            return;
        }
    }

    public function onContentAfterSave($context, $table, $isNew)
    {
        if ($context !== 'com_menus.item') {
            return;
        }
    }

    public function onContentBeforeDelete($context, $table)
    {
        if ($context !== 'com_menus.item') {
            return;
        }
    }

    public function onContentAfterDelete($context, $table)
    {
        if ($context !== 'com_menus.item') {
            return;
        }
    }

    public function onExtensionBeforeSave($context, $table, $isNew)
    {
        if ($context === 'com_config.component' && $table
&& $table->type === 'component' &&
$table->name === 'com_gantry5') {
            $name = 'plg_' . $this->_type . '_' .
$this->_name;

            $params = new Joomla\Registry\Registry($table->params);

            $data = (array) $params->get($name);

            Gantry5\Loader::setup();

            $this->onGantry5SaveConfig($data);

            // Do not save anything into the component itself (Joomla
cannot handle it).
            $table->params = '';

            return;
        }
    }

    public function onExtensionAfterSave($context, $table, $isNew)
    {
        if ($context === 'com_config.component' && $table
&& $table->type === 'component' &&
$table->name === 'com_gantry5') {

        }

        if ($context !== 'com_templates.style' ||
$table->client_id || !$this->isGantryTemplate($table->template)) {
            return;
        }

        if (!$isNew) {
            return;
        }

        $template = $table->template;

        $this->load($template);
        $registry = new Joomla\Registry\Registry($table->params);
        $old = (int) $registry->get('configuration', 0);
        $new = (int) $table->id;

        if ($old && $old !== $new) {
            Gantry\Joomla\StyleHelper::copy($table, $old, $new);
        }
    }

    public function onExtensionBeforeDelete($context, $table)
    {
        if ($context !== 'com_templates.style' ||
$table->client_id || !$this->isGantryTemplate($table->template)) {
            return true;
        }

        $template = $table->template;

        $gantry = $this->load($template);

        /** @var \Gantry\Framework\Outlines $outlines */
        $outlines = $gantry['outlines'];

        try {
            $outlines->delete($table->id, false);
        } catch (Exception $e) {
            $this->app->enqueueMessage($e->getMessage(),
'error');
            return false;
        }

        return true;
    }

    public function onContentPrepareData($context, $data)
    {
        $name = 'plg_' . $this->_type . '_' .
$this->_name;

        // Check that we are manipulating a valid form.
        switch ($context) {
            case 'com_menus.item':
                break;
        }

        return true;
    }

    public function onContentPrepareForm($form, $data)
    {
        // Check that we are manipulating a valid form.
        if (!($form instanceof JForm)) {
            $this->_subject->setError('JERROR_NOT_A_FORM');

            return false;
        }

        $name = 'plg_' . $this->_type . '_' .
$this->_name;

        switch ($form->getName()) {
            case 'com_config.component':
                // If we are editing configuration from Gantry component,
add missing fields from system plugin.
                $rules = $form->getField('rules');
                if ($rules &&
$rules->getAttribute('component') == 'com_gantry5')
{
                    $this->loadLanguage("{$name}.sys");
                    // Add plugin fields to the form under plg_type_name.
                    $file =
file_get_contents(__DIR__."/{$this->_name}.xml");
                    $file = preg_replace('/
name="params"/', " name=\"{$name}\"",
$file);
                    $form->load($file, false,
'/extension/config');

                    // Joomla seems to be missing support for component
data manipulation so do it manually here.
                    $form->bind([$name =>
$this->params->toArray()]);
                }
                break;

            case 'com_menus.items.filter':
                break;

            case 'com_menus.item':
                break;
        }

        return true;
    }

    /**
     * @param array  $matches
     * @param string $content
     *
     * @param string $type
     *
     * @return string
     */
    private function appendHtml(array $matches, $content = 'Gantry
5', $type = '')
    {
        $html = $matches[0];

        if (strpos($matches[2], 'task=style.edit') ||
strpos($matches[2], 'task=module.edit')) {
            $uri = new JUri($matches[2]);
            $id = (int) $uri->getVar('id');

            if ($id &&
in_array($uri->getVar('option'),
array('com_templates', 'com_advancedtemplates',
'com_modules', 'com_advancedmodules')) &&
(isset($this->styles[$id]) || isset($this->modules[$id]))) {
                $html = $matches[1] . $uri . $matches[3] . $matches[4] .
$matches[5];
                $colors = $content ? 'background:#439a86;' :
'background:#f17f48;';
                $content = $content ?: 'No Particle Selected';
                $title = $type ? ' title="Particle Type: ' .
$type . '"' : '';

                $html .= ' <span class="label" ' .
$title . ' style="' . $colors .
'color:#fff;">' . $content . '</span>';

                if (isset($this->modules[$id])) {
unset($this->modules[$id]); }
                else { unset($this->styles[$id]); }
            }
        }

        return $html;
    }

    /**
     * @return array
     */
    private function getStyles()
    {
        static $list;

        if ($list === null) {
            // Load styles
            $db = JFactory::getDbo();
            $query = $db
                ->getQuery(true)
                ->select('s.id, s.template')
                ->from('#__template_styles as s')
                ->where('s.client_id = 0')
                ->where('e.enabled = 1')
                ->leftJoin('#__extensions as e ON
e.element=s.template AND e.type=' .
$db->quote('template') . ' AND
e.client_id=s.client_id');

            $db->setQuery($query);
            $templates = (array)$db->loadObjectList();

            $list = array();

            foreach ($templates as $template) {
                if ($this->isGantryTemplate($template->template)) {
                    $list[$template->id] = $template->template;
                }
            }
        }

        return $list;
    }

    private function isGantryTemplate($name)
    {
        return file_exists(JPATH_SITE .
"/templates/{$name}/gantry/theme.yaml");
    }

    protected function load($name)
    {
        Gantry5\Loader::setup();

        $gantry = \Gantry\Framework\Gantry::instance();

        if (!isset($gantry['theme.name']) || $name !==
$gantry['theme.name']) {
            // Restart Gantry and initialize it.
            $gantry = Gantry\Framework\Gantry::restart();
            $gantry['theme.name'] = $name;
            $gantry['streams']->register();

            $patform = $gantry['platform'];
            $locator = $gantry['locator'];

            // Initialize theme stream.
            $details = new Gantry\Component\Theme\ThemeDetails($name);
            $locator->addPath('gantry-theme', '',
$details->getPaths(), false, true);

            // Initialize theme cache stream.
            $cachePath = $patform->getCachePath() . '/' .
$name;
            Gantry\Component\FileSystem\Folder::create($cachePath);
            $locator->addPath('gantry-cache',
'theme', array($cachePath), true, true);

            \Gantry\Component\File\CompiledYamlFile::$defaultCachePath =
$locator->findResource('gantry-cache://theme/compiled/yaml',
true, true);
            \Gantry\Component\File\CompiledYamlFile::$defaultCaching =
$gantry['global']->get('compile_yaml', 1);
        }

        return $gantry;
    }
}
PK�X�[�T����gantry5/gantry5.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"
standalone="no"?>
<extension version="3.4" type="plugin"
group="system" method="upgrade">
    <name>plg_system_gantry5</name>
    <version>5.4.37</version>
    <creationDate>January 25, 2021</creationDate>
    <author>RocketTheme, LLC</author>
    <authorEmail>support@rockettheme.com</authorEmail>
    <authorUrl>http://www.rockettheme.com</authorUrl>
    <copyright>(C) 2005 - 2019 RocketTheme, LLC. All rights
reserved.</copyright>
    <license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPLv2</license>
    <description>PLG_SYSTEM_GANTRY5_DESCRIPTION</description>

    <files>
        <filename
plugin="gantry5">gantry5.php</filename>
        <filename>MD5SUMS</filename>
        <folder>fields</folder>
        <folder>language</folder>
    </files>

    <config>
        <fields name="params">
            <fieldset name="basic"
label="PLG_SYSTEM_GANTRY5">
                <field name="production"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="0"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_PRODUCTION_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_PRODUCTION_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>

                <field name="use_assignments"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="1"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_USE_ASSIGNMENTS_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_USE_ASSIGNMENTS_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>

                <field name="use_media_folder"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="0"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_USE_MEDIA_FOLDER_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_USE_MEDIA_FOLDER_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>

                <field name="asset_timestamps"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="1"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>

                <field name="asset_timestamps_period"
                       type="text"
                       default="7"
                       filter="float"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_PERIOD_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_PERIOD_LABEL"/>

                <field name="compile_yaml"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="1"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_COMPILE_YAML_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_COMPILE_YAML_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>

                <field name="compile_twig"
                       type="radio"
                       class="btn-group btn-group-yesno"
                       default="1"
                      
description="PLG_SYSTEM_GANTRY5_FIELD_COMPILE_TWIG_DESC"
                      
label="PLG_SYSTEM_GANTRY5_FIELD_COMPILE_TWIG_LABEL">
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>
            </fieldset>
        </fields>
    </config>
</extension>
PK�X�[�H��7gantry5/language/en-GB/en-GB.plg_system_gantry5.sys.ininu�[���PLG_SYSTEM_GANTRY5="System
- Gantry 5"
PLG_SYSTEM_GANTRY5_DESCRIPTION="Gantry 5 system plugin. Needs to be
enabled at all times."
PLG_SYSTEM_GANTRY5_LIBRARY_MISSING="%s: Gantry 5 Library is
missing!"

GANTRY5_THEME_LOADING_FAILED="Failed to load '%s' template:
%s"
GANTRY5_THEME_INCLUDE_FAILED="Include failed"

PLG_SYSTEM_GANTRY5_FIELD_PRODUCTION_LABEL="Production Mode"
PLG_SYSTEM_GANTRY5_FIELD_PRODUCTION_DESC="Production mode makes Gantry
faster by more aggressive caching and ignoring changed files in the
filesystem. Most changes made from administration should still be detected,
but changes made in filesystem or database will be ignored."
PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_LABEL="Asset
Timestamps"
PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_DESC="Adds timestamps on
changed asset files, like images, css and js. The option makes browser to
get fresh assets without forcing reload on the page."
PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_PERIOD_LABEL="Timestamp
Period"
PLG_SYSTEM_GANTRY5_FIELD_ASSET_TIMESTAMPS_PERIOD_DESC="Number of days
which timestamp is kept after updating the file. Accepts also decimal
numbers, eg. 0.5 = 12 hours. Set to 0 to add timestamps on every single
asset file."
PLG_SYSTEM_GANTRY5_FIELD_COMPILE_YAML_LABEL="Compile YAML"
PLG_SYSTEM_GANTRY5_FIELD_COMPILE_YAML_DESC="Compile YAML configuration
files into PHP, making page loads significantly faster."
PLG_SYSTEM_GANTRY5_FIELD_COMPILE_TWIG_LABEL="Compile Twig"
PLG_SYSTEM_GANTRY5_FIELD_COMPILE_TWIG_DESC="Compile Twig template
files into PHP, making page loads significantly faster."
PLG_SYSTEM_GANTRY5_FIELD_USE_MEDIA_FOLDER_LABEL="Use Joomla Images
Folder"
PLG_SYSTEM_GANTRY5_FIELD_USE_MEDIA_FOLDER_DESC="By default Gantry
media picker saves all files into the theme. If you want to save files into
<pre>JROOT/images</pre> folder instead, please select this
option. Files in the old location can still be used, but are overridden by
the files in the selected folder."
PLG_SYSTEM_GANTRY5_FIELD_USE_ASSIGNMENTS_LABEL="Use Gantry 5
Assignments"
PLG_SYSTEM_GANTRY5_FIELD_USE_ASSIGNMENTS_DESC="By default Gantry uses
it's own assignemnts. If you're using custom extension for
template assignments, please turn off this setting."
PK�X�[|���gantry5/MD5SUMSnu�[���language/en-GB/en-GB.plg_system_gantry5.sys.ini	4085ea91c3246231ce7d885f60ff18d2
gantry5.xml	73e87d1b600832e4a521b763f7870790
MD5SUMS	d41d8cd98f00b204e9800998ecf8427e
gantry5.php	8913cd10534e0620858db10c43e3b144
fields/warning.php	a9b6d9355ac87cef3f57ef11fec04d90
PK�X�[rwxI''%hdpreplyviaemail/hdpreplyviaemail.phpnu�[���<?php
/**
 * @version        4.3.0
 * @package        Joomla
 * @subpackage     helpdeskpro Pro
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2013 - 2021 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */

use Ddeboer\Imap\Search\Date\Since;
use Ddeboer\Imap\Search\Flag\Unanswered;
use Ddeboer\Imap\SearchExpression;
use Ddeboer\Imap\Server;
use EmailReplyParser\Parser\EmailParser;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Plugin\CMSPlugin;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskproHelper;

defined('_JEXEC') or die;

class plgSystemHDPReplyViaEmail extends CMSPlugin
{
	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 */
	protected $app;

	/**
	 * Database object.
	 *
	 * @var    JDatabaseDriver
	 */
	protected $db;

	/**
	 * Constructor
	 *
	 * @param   object  &$subject  The object to observe
	 * @param   array    $config
	 */
	public function __construct(&$subject, $config = array())
	{
		if (!file_exists(JPATH_ROOT .
'/components/com_helpdeskpro/helpdeskpro.php'))
		{
			return;
		}

		parent::__construct($subject, $config);
	}

	/**
	 * Protect access to articles
	 *
	 * @return void
	 * @throws Exception
	 */
	public function onAfterRoute()
	{
		if (version_compare(PHP_VERSION, '7.2.0', '<'))
		{
			$this->app->enqueueMessage('Reply Via Email Only Works With
PHP 7.2.0+');

			return;
		}

		if (!$this->canRun())
		{
			return;
		}


		//Store last run time
		$db = $this->db;
		$this->params->set('last_run', time());
		$params = $this->params->toString();

		$query = $db->getQuery(true)
			->update('#__extensions')
			->set('params = ' . $db->quote($params))
			->where($db->quoteName('element') . '=' .
$db->quote($this->_name))
			->where($db->quoteName('folder') . '=' .
$db->quote('system'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risk continuing
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();
			$this->clearCacheGroups(array('com_plugins'), array(0,
1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		$this->fetNewEmails();
	}

	/**
	 * Fetch emails and create ticket
	 *
	 * @throws Exception
	 */
	private function fetNewEmails()
	{
		require_once JPATH_ROOT .
'/plugins/system/hdpreplyviaemail/lib/vendor/autoload.php';

		$host     = $this->params->get('host');
		$port     = $this->params->get('port', 993);
		$username = $this->params->get('username');
		$password = $this->params->get('password');

		$requiredParams = [$host, $username, $password];

		// Make sure all required parameters are provided before processing it
further
		foreach ($requiredParams as $param)
		{
			if (!strlen(trim($param)))
			{
				return;
			}
		}

		// Attempt to connect to the mailbox
		try
		{
			// $server = new Server('mail.joomdonation.com', 993,
'/imap/ssl/novalidate-cert');
			$server = new Server($host, $port, $this->buildFlags());
			// $connection is instance of \Ddeboer\Imap\Connection
			// $connection =
$server->authenticate('tickets@joomdonation.com',
'#$$A%u^tet*d*');
			$connection = $server->authenticate($username, $password);
		}
		catch (Exception $e)
		{
			$this->logData($e->getMessage());

			// Log the error here
			return;
		}

		$mailbox = $connection->getMailbox('INBOX');

		// Search for emails from yesterday only

		$today     = new DateTimeImmutable();
		$yesterday = $today->sub(new DateInterval('P10D'));

		$date = JFactory::getDate('Now',
JFactory::getConfig()->get('offset'));
		$date->modify('-1 day');

		$search = new SearchExpression();
		$search->addCondition(new Unanswered());
		$search->addCondition(new Since($yesterday));

		$messages = $mailbox->getMessages($search, \SORTDATE);

		// Bootstrap the component
		require_once JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/init.php';

		// Get component config data
		$config = require JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/config.php';

		// Creating component container
		$container =
\OSL\Container\Container::getInstance('com_helpdeskpro',
$config);
		$db        = $container->db;
		$query     = $db->getQuery(true);

		$config = HelpdeskproHelper::getConfig();

		$allowedFileTypes = explode('|',
$config->allowed_file_types);

		for ($i = 0, $n = count($allowedFileTypes); $i < $n; $i++)
		{
			$allowedFileTypes[$i] = trim(strtoupper($allowedFileTypes[$i]));
		}

		$ticketIdRegex = '/#(\d+)/';

		/** @var  \OSSolution\HelpdeskPro\Admin\Model\Ticket $model */

		$model = $container->factory->createModel('Ticket', [],
'admin');

		foreach ($messages as $message)
		{
			$subject   = $message->getSubject();
			$body      = $message->getBodyText();
			$fromName  = $message->getFrom()->getName();
			$fromEmail = $message->getFrom()->getAddress();

			$email = (new EmailParser())->parse($body);

			$body = $email->getVisibleText() ?: $body;

			if (preg_match($ticketIdRegex, $subject, $matches))
			{
				$ticketId = (int) $matches[1];
			}
			else
			{
				$ticketId = 0;
			}

			$attachmentsPath = JPATH_ROOT .
'/media/com_helpdeskpro/attachments';
			$attachments     = [];

			foreach ($message->getAttachments() as $attachment)
			{
				$filename                        = $attachment->getFilename();
				$attachments['original_names'][] = $filename;
				$filename                        = File::makeSafe($filename);
				$fileExt                         =
strtoupper(File::getExt($filename));

				if (in_array($fileExt, $allowedFileTypes))
				{
					if (File::exists($attachmentsPath . '/' . $filename))
					{
						$filename = File::stripExt($filename) . '_' . uniqid() .
'.' . $fileExt;
					}

					file_put_contents($attachmentsPath . '/' . $filename,
$attachment->getDecodedContent());

					$attachments['names'][] = $filename;
				}
			}

			$data = [];

			if ($ticketId)
			{
				// Add comment
				$data['ticket_id'] = $ticketId;
				$data['message']   = $body;

				// Try to get user id from email
				$query->clear()
					->select('id')
					->from('#__users')
					->where('email = ' . $db->quote($fromEmail));
				$db->setQuery($query);
				$data['user_id'] = (int) $db->loadResult();

				$model->addTicketComment($data, $attachments);
			}
			elseif ($this->params->get('new_ticket_category_id'))
			{
				// Add a new ticket
				$data['name']        = $fromName;
				$data['email']       = $fromEmail;
				$data['subject']     = $subject;
				$data['message']     = $body;
				$data['category_id'] =
$this->params->get('new_ticket_category_id');

				$model->addNewTicket($data, $attachments);
			}

			// Mark the message as ANSWERED so that it won't be processed next
time
			$message->setFlag('\\ANSWERED');
		}
	}

	/**
	 * Build the flags used for imap connection from plugin parameters
	 *
	 * @return string
	 */
	private function buildFlags()
	{
		$encryption          = $this->params->get('encryption',
'ssl');
		$validateCertificate =
$this->params->get('validate_certificate', 1);

		$flags = ['imap'];

		if ($encryption)
		{
			$flags[] = $encryption;
		}

		if ($validateCertificate)
		{
			$flags[] = 'validate-cert';
		}
		else
		{
			$flags[] = 'novalidate-cert';
		}

		return '/' . implode('/', $flags);
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to
clean
	 *
	 * @return  void
	 *
	 * @since   2.0.4
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = JFactory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => ($client_id) ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache'),
					);
					$cache   = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}

	/**
	 * Helper method to write data to a log file, for debuging purpose
	 *
	 * @param   string  $logFile
	 * @param   array   $data
	 * @param   string  $message
	 */
	private function logData($data = [], $message = null)
	{
		$text = '[' . gmdate('m/d/Y g:i A') . '] -
';

		foreach ($data as $key => $value)
		{
			$text .= "$key=$value, ";
		}

		$text .= $message;

		$fp = fopen(__DIR__ . '/logs.txt', 'a');
		fwrite($fp, $text . "\n\n");
		fclose($fp);
	}

	/**
	 * Method to check if the plugin could be run
	 *
	 * @return bool
	 */
	protected function canRun()
	{
		// If trigger secret_code is set, usually from cron-job request, we will
process email-queues immediately
		if (trim($this->params->get('secret_code')))
		{
			if ($this->params->get('secret_code') ==
$this->app->input->getString('secret_code'))
			{
				return true;
			}

			return false;
		}

		$lastRun   = (int) $this->params->get('last_run', 0);
		$now       = time();
		$cacheTime = 1200; // Every 20 minutes

		if (($now - $lastRun) < $cacheTime)
		{
			return false;
		}

		return true;
	}
}
PK�X�[
a�1U
U
%hdpreplyviaemail/hdpreplyviaemail.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9.0" type="plugin"
group="system" method="upgrade">
    <name>System - Helpdeskpro Reply Via Email</name>
    <author>Tuan Pham Ngoc</author>
    <authorEmail>tuanpn@joomdonation.com</authorEmail>
    <authorUrl>http://www.joomdonation.com</authorUrl>
    <copyright>Copyright (C) 2013 - 2021 Ossolution
Team</copyright>
    <license>GNU General Public License version 3, or
later</license>
    <creationDate>May 2021</creationDate>
    <version>4.3.0</version>
    <description>Enable and Configure this plugin to allow reply
ticket via email.</description>
    <files>
        <filename
plugin="hdpreplyviaemail">hdpreplyviaemail.php</filename>
        <folder>lib</folder>
    </files>
    <config>
        <fields name="params"
addfieldpath="/administrator/components/com_helpdeskpro/fields">
            <fieldset name="basic">
                <field name="last_run" label="Last Run
Time" type="hidden" readonly="true"
size="30"
                       description="Store Last Run Time of the
plugin"/>
                <field name="new_ticket_category_id"
type="hdpcategory" category_type="1" label="New
Ticket Category"
                       description="Select the category which new
ticket will be created" default="0"/>
                <field name="host" label="Host"
type="text" default="localhost"/>
                <field name="port" label="Port"
type="text" default="993"/>
                <field name="encryption" type="list"
label="Encryption" default="ssl">
                    <option value="ssl">ssl</option>
                    <option value="tls">tls</option>
                    <option
value="notls">notls</option>
                </field>
                <field
                        name="validate_certificate"
                        type="radio"
                        label="Validate Certificates"
                        class="btn-group btn-group-yesno"
                        default="1"
                >
                    <option value="1">JYES</option>
                    <option value="0">JNO</option>
                </field>
                <field name="username"
label="Username" type="text"/>
                <field name="password"
label="Password" type="password"/>
                <field name="secret_code"
type="text" value="" label="Secret Code"
description="Secret Code which is used to compare with the secret_code
variable from the request to determine of the process should be processed.
Usually uses with cron job"/>
            </fieldset>
        </fields>
    </config>
</extension>PK�X�[����}}"hdpreplyviaemail/lib/composer.jsonnu�[���{
  "require": {
    "php": ">=7.3.0",
    "ddeboer/imap": "1.11.0",
    "willdurand/email-reply-parser": "2.9.0"
  }
}PK�X�[�����"hdpreplyviaemail/lib/composer.locknu�[���{
    "_readme": [
        "This file locks the dependencies of your project to a known
state",
        "Read more about it at
https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash":
"80b24dc22e1bb3829c47171aa96ddcf6",
    "packages": [
        {
            "name": "ddeboer/imap",
            "version": "1.11.0",
            "source": {
                "type": "git",
                "url":
"https://github.com/ddeboer/imap.git",
                "reference":
"a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
            },
            "dist": {
                "type": "zip",
                "url":
"https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
                "reference":
"a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
                "shasum": ""
            },
            "require": {
                "ext-iconv": "*",
                "ext-imap": "*",
                "ext-mbstring": "*",
                "php": "^7.3 || ^8.0"
            },
            "require-dev": {
                "friendsofphp/php-cs-fixer":
"^2.16.7",
                "laminas/laminas-mail": "^2.12.3",
                "phpstan/phpstan": "^0.12.57",
                "phpstan/phpstan-phpunit": "^0.12.16",
                "phpstan/phpstan-strict-rules":
"^0.12.5",
                "phpunit/phpunit": "^9.4.3"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Ddeboer\\Imap\\": "src/"
                }
            },
            "notification-url":
"https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "David de Boer",
                    "email": "david@ddeboer.nl"
                },
                {
                    "name": "Filippo Tessarotto",
                    "email": "zoeslam@gmail.com"
                },
                {
                    "name": "Community contributors",
                    "homepage":
"https://github.com/ddeboer/imap/graphs/contributors"
                }
            ],
            "description": "Object-oriented IMAP for
PHP",
            "keywords": [
                "email",
                "imap",
                "mail"
            ],
            "funding": [
                {
                    "url":
"https://github.com/Slamdunk",
                    "type": "github"
                },
                {
                    "url":
"https://github.com/ddeboer",
                    "type": "github"
                }
            ],
            "time": "2020-11-30T14:52:49+00:00"
        },
        {
            "name": "willdurand/email-reply-parser",
            "version": "2.9.0",
            "source": {
                "type": "git",
                "url":
"https://github.com/willdurand/EmailReplyParser.git",
                "reference":
"642bec19af70c2bf2f2611301349107fe2e6dd08"
            },
            "dist": {
                "type": "zip",
                "url":
"https://api.github.com/repos/willdurand/EmailReplyParser/zipball/642bec19af70c2bf2f2611301349107fe2e6dd08",
                "reference":
"642bec19af70c2bf2f2611301349107fe2e6dd08",
                "shasum": ""
            },
            "require": {
                "php": ">=5.6.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^4.8.35|^5.7"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.8-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "EmailReplyParser\\":
"src/EmailReplyParser"
                }
            },
            "notification-url":
"https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "William Durand",
                    "email": "will+git@drnd.me"
                }
            ],
            "description": "Port of the cool GitHub's
EmailReplyParser library in PHP",
            "keywords": [
                "email",
                "reply-parser"
            ],
            "time": "2020-03-24T16:04:10+00:00"
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": {
        "php": ">=7.3.0"
    },
    "platform-dev": [],
    "plugin-api-version": "1.1.0"
}
PK�X�[Ά�f��(hdpreplyviaemail/lib/vendor/autoload.phpnu�[���<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return
ComposerAutoloaderInit29cf158d4ae02e703ea9cc9d1ec80b34::getLoader();
PK�X�[�����:hdpreplyviaemail/lib/vendor/composer/autoload_classmap.phpnu�[���<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
);
PK�X�[ܛ'?��<hdpreplyviaemail/lib/vendor/composer/autoload_namespaces.phpnu�[���<?php

// autoload_namespaces.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
);
PK�X�[����CC6hdpreplyviaemail/lib/vendor/composer/autoload_psr4.phpnu�[���<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'EmailReplyParser\\' => array($vendorDir .
'/willdurand/email-reply-parser/src/EmailReplyParser'),
    'Ddeboer\\Imap\\' => array($vendorDir .
'/ddeboer/imap/src'),
);
PK�X�[���WW6hdpreplyviaemail/lib/vendor/composer/autoload_real.phpnu�[���<?php

// autoload_real.php @generated by Composer

class ComposerAutoloaderInit29cf158d4ae02e703ea9cc9d1ec80b34
{
    private static $loader;

    public static function loadClassLoader($class)
    {
        if ('Composer\Autoload\ClassLoader' === $class) {
            require __DIR__ . '/ClassLoader.php';
        }
    }

    /**
     * @return \Composer\Autoload\ClassLoader
     */
    public static function getLoader()
    {
        if (null !== self::$loader) {
            return self::$loader;
        }

       
spl_autoload_register(array('ComposerAutoloaderInit29cf158d4ae02e703ea9cc9d1ec80b34',
'loadClassLoader'), true, true);
        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
       
spl_autoload_unregister(array('ComposerAutoloaderInit29cf158d4ae02e703ea9cc9d1ec80b34',
'loadClassLoader'));

        $useStaticLoader = PHP_VERSION_ID >= 50600 &&
!defined('HHVM_VERSION') &&
(!function_exists('zend_loader_file_encoded') ||
!zend_loader_file_encoded());
        if ($useStaticLoader) {
            require_once __DIR__ . '/autoload_static.php';

           
call_user_func(\Composer\Autoload\ComposerStaticInit29cf158d4ae02e703ea9cc9d1ec80b34::getInitializer($loader));
        } else {
            $map = require __DIR__ . '/autoload_namespaces.php';
            foreach ($map as $namespace => $path) {
                $loader->set($namespace, $path);
            }

            $map = require __DIR__ . '/autoload_psr4.php';
            foreach ($map as $namespace => $path) {
                $loader->setPsr4($namespace, $path);
            }

            $classMap = require __DIR__ .
'/autoload_classmap.php';
            if ($classMap) {
                $loader->addClassMap($classMap);
            }
        }

        $loader->register(true);

        return $loader;
    }
}
PK�X�[5�LUU8hdpreplyviaemail/lib/vendor/composer/autoload_static.phpnu�[���<?php

// autoload_static.php @generated by Composer

namespace Composer\Autoload;

class ComposerStaticInit29cf158d4ae02e703ea9cc9d1ec80b34
{
    public static $prefixLengthsPsr4 = array (
        'E' => 
        array (
            'EmailReplyParser\\' => 17,
        ),
        'D' => 
        array (
            'Ddeboer\\Imap\\' => 13,
        ),
    );

    public static $prefixDirsPsr4 = array (
        'EmailReplyParser\\' => 
        array (
            0 => __DIR__ . '/..' .
'/willdurand/email-reply-parser/src/EmailReplyParser',
        ),
        'Ddeboer\\Imap\\' => 
        array (
            0 => __DIR__ . '/..' .
'/ddeboer/imap/src',
        ),
    );

    public static function getInitializer(ClassLoader $loader)
    {
        return \Closure::bind(function () use ($loader) {
            $loader->prefixLengthsPsr4 =
ComposerStaticInit29cf158d4ae02e703ea9cc9d1ec80b34::$prefixLengthsPsr4;
            $loader->prefixDirsPsr4 =
ComposerStaticInit29cf158d4ae02e703ea9cc9d1ec80b34::$prefixDirsPsr4;

        }, null, ClassLoader::class);
    }
}
PK�X�[Q�YP6P64hdpreplyviaemail/lib/vendor/composer/ClassLoader.phpnu�[���<?php

/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <naderman@naderman.de>
 *     Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Composer\Autoload;

/**
 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
 *
 *     $loader = new \Composer\Autoload\ClassLoader();
 *
 *     // register classes with namespaces
 *     $loader->add('Symfony\Component',
__DIR__.'/component');
 *     $loader->add('Symfony',          
__DIR__.'/framework');
 *
 *     // activate the autoloader
 *     $loader->register();
 *
 *     // to enable searching the include path (eg. for PEAR packages)
 *     $loader->setUseIncludePath(true);
 *
 * In this example, if you try to use a class in the Symfony\Component
 * namespace or one of its children (Symfony\Component\Console for
instance),
 * the autoloader will first look for the class under the component/
 * directory, and it will then fallback to the framework/ directory if not
 * found before giving up.
 *
 * This class is loosely based on the Symfony UniversalClassLoader.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @see    http://www.php-fig.org/psr/psr-0/
 * @see    http://www.php-fig.org/psr/psr-4/
 */
class ClassLoader
{
    // PSR-4
    private $prefixLengthsPsr4 = array();
    private $prefixDirsPsr4 = array();
    private $fallbackDirsPsr4 = array();

    // PSR-0
    private $prefixesPsr0 = array();
    private $fallbackDirsPsr0 = array();

    private $useIncludePath = false;
    private $classMap = array();
    private $classMapAuthoritative = false;
    private $missingClasses = array();
    private $apcuPrefix;

    public function getPrefixes()
    {
        if (!empty($this->prefixesPsr0)) {
            return call_user_func_array('array_merge',
$this->prefixesPsr0);
        }

        return array();
    }

    public function getPrefixesPsr4()
    {
        return $this->prefixDirsPsr4;
    }

    public function getFallbackDirs()
    {
        return $this->fallbackDirsPsr0;
    }

    public function getFallbackDirsPsr4()
    {
        return $this->fallbackDirsPsr4;
    }

    public function getClassMap()
    {
        return $this->classMap;
    }

    /**
     * @param array $classMap Class to filename map
     */
    public function addClassMap(array $classMap)
    {
        if ($this->classMap) {
            $this->classMap = array_merge($this->classMap,
$classMap);
        } else {
            $this->classMap = $classMap;
        }
    }

    /**
     * Registers a set of PSR-0 directories for a given prefix, either
     * appending or prepending to the ones previously set for this prefix.
     *
     * @param string       $prefix  The prefix
     * @param array|string $paths   The PSR-0 root directories
     * @param bool         $prepend Whether to prepend the directories
     */
    public function add($prefix, $paths, $prepend = false)
    {
        if (!$prefix) {
            if ($prepend) {
                $this->fallbackDirsPsr0 = array_merge(
                    (array) $paths,
                    $this->fallbackDirsPsr0
                );
            } else {
                $this->fallbackDirsPsr0 = array_merge(
                    $this->fallbackDirsPsr0,
                    (array) $paths
                );
            }

            return;
        }

        $first = $prefix[0];
        if (!isset($this->prefixesPsr0[$first][$prefix])) {
            $this->prefixesPsr0[$first][$prefix] = (array) $paths;

            return;
        }
        if ($prepend) {
            $this->prefixesPsr0[$first][$prefix] = array_merge(
                (array) $paths,
                $this->prefixesPsr0[$first][$prefix]
            );
        } else {
            $this->prefixesPsr0[$first][$prefix] = array_merge(
                $this->prefixesPsr0[$first][$prefix],
                (array) $paths
            );
        }
    }

    /**
     * Registers a set of PSR-4 directories for a given namespace, either
     * appending or prepending to the ones previously set for this
namespace.
     *
     * @param string       $prefix  The prefix/namespace, with trailing
'\\'
     * @param array|string $paths   The PSR-4 base directories
     * @param bool         $prepend Whether to prepend the directories
     *
     * @throws \InvalidArgumentException
     */
    public function addPsr4($prefix, $paths, $prepend = false)
    {
        if (!$prefix) {
            // Register directories for the root namespace.
            if ($prepend) {
                $this->fallbackDirsPsr4 = array_merge(
                    (array) $paths,
                    $this->fallbackDirsPsr4
                );
            } else {
                $this->fallbackDirsPsr4 = array_merge(
                    $this->fallbackDirsPsr4,
                    (array) $paths
                );
            }
        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
            // Register directories for a new namespace.
            $length = strlen($prefix);
            if ('\\' !== $prefix[$length - 1]) {
                throw new \InvalidArgumentException("A non-empty PSR-4
prefix must end with a namespace separator.");
            }
            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
            $this->prefixDirsPsr4[$prefix] = (array) $paths;
        } elseif ($prepend) {
            // Prepend directories for an already registered namespace.
            $this->prefixDirsPsr4[$prefix] = array_merge(
                (array) $paths,
                $this->prefixDirsPsr4[$prefix]
            );
        } else {
            // Append directories for an already registered namespace.
            $this->prefixDirsPsr4[$prefix] = array_merge(
                $this->prefixDirsPsr4[$prefix],
                (array) $paths
            );
        }
    }

    /**
     * Registers a set of PSR-0 directories for a given prefix,
     * replacing any others previously set for this prefix.
     *
     * @param string       $prefix The prefix
     * @param array|string $paths  The PSR-0 base directories
     */
    public function set($prefix, $paths)
    {
        if (!$prefix) {
            $this->fallbackDirsPsr0 = (array) $paths;
        } else {
            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
        }
    }

    /**
     * Registers a set of PSR-4 directories for a given namespace,
     * replacing any others previously set for this namespace.
     *
     * @param string       $prefix The prefix/namespace, with trailing
'\\'
     * @param array|string $paths  The PSR-4 base directories
     *
     * @throws \InvalidArgumentException
     */
    public function setPsr4($prefix, $paths)
    {
        if (!$prefix) {
            $this->fallbackDirsPsr4 = (array) $paths;
        } else {
            $length = strlen($prefix);
            if ('\\' !== $prefix[$length - 1]) {
                throw new \InvalidArgumentException("A non-empty PSR-4
prefix must end with a namespace separator.");
            }
            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
            $this->prefixDirsPsr4[$prefix] = (array) $paths;
        }
    }

    /**
     * Turns on searching the include path for class files.
     *
     * @param bool $useIncludePath
     */
    public function setUseIncludePath($useIncludePath)
    {
        $this->useIncludePath = $useIncludePath;
    }

    /**
     * Can be used to check if the autoloader uses the include path to
check
     * for classes.
     *
     * @return bool
     */
    public function getUseIncludePath()
    {
        return $this->useIncludePath;
    }

    /**
     * Turns off searching the prefix and fallback directories for classes
     * that have not been registered with the class map.
     *
     * @param bool $classMapAuthoritative
     */
    public function setClassMapAuthoritative($classMapAuthoritative)
    {
        $this->classMapAuthoritative = $classMapAuthoritative;
    }

    /**
     * Should class lookup fail if not found in the current class map?
     *
     * @return bool
     */
    public function isClassMapAuthoritative()
    {
        return $this->classMapAuthoritative;
    }

    /**
     * APCu prefix to use to cache found/not-found classes, if the
extension is enabled.
     *
     * @param string|null $apcuPrefix
     */
    public function setApcuPrefix($apcuPrefix)
    {
        $this->apcuPrefix = function_exists('apcu_fetch')
&& filter_var(ini_get('apc.enabled'),
FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
    }

    /**
     * The APCu prefix in use, or null if APCu caching is not enabled.
     *
     * @return string|null
     */
    public function getApcuPrefix()
    {
        return $this->apcuPrefix;
    }

    /**
     * Registers this instance as an autoloader.
     *
     * @param bool $prepend Whether to prepend the autoloader or not
     */
    public function register($prepend = false)
    {
        spl_autoload_register(array($this, 'loadClass'), true,
$prepend);
    }

    /**
     * Unregisters this instance as an autoloader.
     */
    public function unregister()
    {
        spl_autoload_unregister(array($this, 'loadClass'));
    }

    /**
     * Loads the given class or interface.
     *
     * @param  string    $class The name of the class
     * @return bool|null True if loaded, null otherwise
     */
    public function loadClass($class)
    {
        if ($file = $this->findFile($class)) {
            includeFile($file);

            return true;
        }
    }

    /**
     * Finds the path to the file where the class is defined.
     *
     * @param string $class The name of the class
     *
     * @return string|false The path if found, false otherwise
     */
    public function findFile($class)
    {
        // class map lookup
        if (isset($this->classMap[$class])) {
            return $this->classMap[$class];
        }
        if ($this->classMapAuthoritative ||
isset($this->missingClasses[$class])) {
            return false;
        }
        if (null !== $this->apcuPrefix) {
            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
            if ($hit) {
                return $file;
            }
        }

        $file = $this->findFileWithExtension($class, '.php');

        // Search for Hack files if we are running on HHVM
        if (false === $file && defined('HHVM_VERSION'))
{
            $file = $this->findFileWithExtension($class,
'.hh');
        }

        if (null !== $this->apcuPrefix) {
            apcu_add($this->apcuPrefix.$class, $file);
        }

        if (false === $file) {
            // Remember that this class does not exist.
            $this->missingClasses[$class] = true;
        }

        return $file;
    }

    private function findFileWithExtension($class, $ext)
    {
        // PSR-4 lookup
        $logicalPathPsr4 = strtr($class, '\\',
DIRECTORY_SEPARATOR) . $ext;

        $first = $class[0];
        if (isset($this->prefixLengthsPsr4[$first])) {
            $subPath = $class;
            while (false !== $lastPos = strrpos($subPath, '\\'))
{
                $subPath = substr($subPath, 0, $lastPos);
                $search = $subPath . '\\';
                if (isset($this->prefixDirsPsr4[$search])) {
                    $pathEnd = DIRECTORY_SEPARATOR .
substr($logicalPathPsr4, $lastPos + 1);
                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
                        if (file_exists($file = $dir . $pathEnd)) {
                            return $file;
                        }
                    }
                }
            }
        }

        // PSR-4 fallback dirs
        foreach ($this->fallbackDirsPsr4 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
$logicalPathPsr4)) {
                return $file;
            }
        }

        // PSR-0 lookup
        if (false !== $pos = strrpos($class, '\\')) {
            // namespaced class name
            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
                . strtr(substr($logicalPathPsr4, $pos + 1), '_',
DIRECTORY_SEPARATOR);
        } else {
            // PEAR-like class name
            $logicalPathPsr0 = strtr($class, '_',
DIRECTORY_SEPARATOR) . $ext;
        }

        if (isset($this->prefixesPsr0[$first])) {
            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs)
{
                if (0 === strpos($class, $prefix)) {
                    foreach ($dirs as $dir) {
                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR
. $logicalPathPsr0)) {
                            return $file;
                        }
                    }
                }
            }
        }

        // PSR-0 fallback dirs
        foreach ($this->fallbackDirsPsr0 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
$logicalPathPsr0)) {
                return $file;
            }
        }

        // PSR-0 include paths.
        if ($this->useIncludePath && $file =
stream_resolve_include_path($logicalPathPsr0)) {
            return $file;
        }

        return false;
    }
}

/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 */
function includeFile($file)
{
    include $file;
}
PK�X�[.�q##3hdpreplyviaemail/lib/vendor/composer/installed.jsonnu�[���[
    {
        "name": "ddeboer/imap",
        "version": "1.11.0",
        "version_normalized": "1.11.0.0",
        "source": {
            "type": "git",
            "url":
"https://github.com/ddeboer/imap.git",
            "reference":
"a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
        },
        "dist": {
            "type": "zip",
            "url":
"https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
            "reference":
"a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
            "shasum": ""
        },
        "require": {
            "ext-iconv": "*",
            "ext-imap": "*",
            "ext-mbstring": "*",
            "php": "^7.3 || ^8.0"
        },
        "require-dev": {
            "friendsofphp/php-cs-fixer": "^2.16.7",
            "laminas/laminas-mail": "^2.12.3",
            "phpstan/phpstan": "^0.12.57",
            "phpstan/phpstan-phpunit": "^0.12.16",
            "phpstan/phpstan-strict-rules": "^0.12.5",
            "phpunit/phpunit": "^9.4.3"
        },
        "time": "2020-11-30T14:52:49+00:00",
        "type": "library",
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Ddeboer\\Imap\\": "src/"
            }
        },
        "notification-url":
"https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "David de Boer",
                "email": "david@ddeboer.nl"
            },
            {
                "name": "Filippo Tessarotto",
                "email": "zoeslam@gmail.com"
            },
            {
                "name": "Community contributors",
                "homepage":
"https://github.com/ddeboer/imap/graphs/contributors"
            }
        ],
        "description": "Object-oriented IMAP for PHP",
        "keywords": [
            "email",
            "imap",
            "mail"
        ],
        "funding": [
            {
                "url": "https://github.com/Slamdunk",
                "type": "github"
            },
            {
                "url": "https://github.com/ddeboer",
                "type": "github"
            }
        ]
    },
    {
        "name": "willdurand/email-reply-parser",
        "version": "2.9.0",
        "version_normalized": "2.9.0.0",
        "source": {
            "type": "git",
            "url":
"https://github.com/willdurand/EmailReplyParser.git",
            "reference":
"642bec19af70c2bf2f2611301349107fe2e6dd08"
        },
        "dist": {
            "type": "zip",
            "url":
"https://api.github.com/repos/willdurand/EmailReplyParser/zipball/642bec19af70c2bf2f2611301349107fe2e6dd08",
            "reference":
"642bec19af70c2bf2f2611301349107fe2e6dd08",
            "shasum": ""
        },
        "require": {
            "php": ">=5.6.0"
        },
        "require-dev": {
            "phpunit/phpunit": "^4.8.35|^5.7"
        },
        "time": "2020-03-24T16:04:10+00:00",
        "type": "library",
        "extra": {
            "branch-alias": {
                "dev-master": "2.8-dev"
            }
        },
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "EmailReplyParser\\":
"src/EmailReplyParser"
            }
        },
        "notification-url":
"https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "William Durand",
                "email": "will+git@drnd.me"
            }
        ],
        "description": "Port of the cool GitHub's
EmailReplyParser library in PHP",
        "keywords": [
            "email",
            "reply-parser"
        ]
    }
]
PK�X�[�P�[CC,hdpreplyviaemail/lib/vendor/composer/LICENSEnu�[���
Copyright (c) Nils Adermann, Jordi Boggiano

Permission is hereby granted, free of charge, to any person obtaining a
copy
of this software and associated documentation files (the
"Software"), to deal
in the Software without restriction, including without limitation the
rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

PK�X�[%$(�,�,�5hdpreplyviaemail/lib/vendor/ddeboer/imap/CHANGELOG.mdnu�[���#
Changelog

## [1.11.0](https://github.com/ddeboer/imap/tree/1.11.0) (2020-11-30)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.1...1.11.0)

**Implemented enhancements:**

- PHP 8 Compatibility [\#481](https://github.com/ddeboer/imap/issues/481)
- \[GA\] PHP 8 compatibility fix
[\#483](https://github.com/ddeboer/imap/pull/483)
([Slamdunk](https://github.com/Slamdunk))
- Support PHP 8.0, require PHP 7.3
[\#482](https://github.com/ddeboer/imap/pull/482)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Fix: Outlook date format
[\#480](https://github.com/ddeboer/imap/pull/480)
([gajosadrian](https://github.com/gajosadrian))

**Closed issues:**

- Closing Connection [\#479](https://github.com/ddeboer/imap/issues/479)
- Problem with charset of message part / DataPartInfo
[\#475](https://github.com/ddeboer/imap/issues/475)
- Unsupported charset "X-UNKNOWN"
[\#425](https://github.com/ddeboer/imap/issues/425)

## [1.10.1](https://github.com/ddeboer/imap/tree/1.10.1) (2020-08-26)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.0...1.10.1)

**Fixed bugs:**

- getThread and getMessageSequence not using with the same id
[\#469](https://github.com/ddeboer/imap/issues/469)
- imap\_thread: use absolude ids
[\#474](https://github.com/ddeboer/imap/pull/474)
([Slamdunk](https://github.com/Slamdunk))

**Closed issues:**

- How to get a message by Message-ID
[\#472](https://github.com/ddeboer/imap/issues/472)
- Mail with e-sign [\#467](https://github.com/ddeboer/imap/issues/467)
- Duplicate method definition in MessageInterface
[\#455](https://github.com/ddeboer/imap/issues/455)
- Missed errors in search method
[\#444](https://github.com/ddeboer/imap/issues/444)

**Merged pull requests:**

- Subtype not always present
[\#473](https://github.com/ddeboer/imap/pull/473)
([Piskvor](https://github.com/Piskvor))
- Improved error handling for message search method
[\#445](https://github.com/ddeboer/imap/pull/445)
([ikarol](https://github.com/ikarol))

## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0)

**Implemented enhancements:**

- Handle comments \(CFWS\) in Date header + not-valid formats
[\#439](https://github.com/ddeboer/imap/pull/439)
([pupaxxo](https://github.com/pupaxxo))
- Support PHP 7.4, require PHP 7.2
[\#433](https://github.com/ddeboer/imap/pull/433)
([Slamdunk](https://github.com/Slamdunk))

**Closed issues:**

- Invalid Date header when trying to fetching date on not RFC compliant
emails [\#438](https://github.com/ddeboer/imap/issues/438)

**Merged pull requests:**

- Clear the last used mailbox cache when closing a connection
[\#447](https://github.com/ddeboer/imap/pull/447)
([dhzavann](https://github.com/dhzavann))
- README: update PHP version to match composer.json
[\#441](https://github.com/ddeboer/imap/pull/441)
([Slamdunk](https://github.com/Slamdunk))
- Typo [\#440](https://github.com/ddeboer/imap/pull/440)
([OskarStark](https://github.com/OskarStark))

## [1.9.0](https://github.com/ddeboer/imap/tree/1.9.0) (2019-11-25)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.8.0...1.9.0)

**Implemented enhancements:**

- Quota: let's also test the numbers
[\#431](https://github.com/ddeboer/imap/pull/431)
([Slamdunk](https://github.com/Slamdunk))
- Add getQuota method using imap\_get\_quotaroot to Connection class
[\#430](https://github.com/ddeboer/imap/pull/430)
([arkadiusjonczek](https://github.com/arkadiusjonczek))

**Closed issues:**

- markAsSeen\(\)  not work
[\#415](https://github.com/ddeboer/imap/issues/415)

**Merged pull requests:**

- CS Fix: strip redundant php docs
[\#428](https://github.com/ddeboer/imap/pull/428)
([Slamdunk](https://github.com/Slamdunk))
- Fix: Variable name [\#412](https://github.com/ddeboer/imap/pull/412)
([localheinz](https://github.com/localheinz))

## [1.8.0](https://github.com/ddeboer/imap/tree/1.8.0) (2019-04-15)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.2...1.8.0)

**Implemented enhancements:**

- Add phpstan-strict-rules, expose PartiInterface::getDescription\(\)
[\#409](https://github.com/ddeboer/imap/pull/409)
([Slamdunk](https://github.com/Slamdunk))

## [1.7.2](https://github.com/ddeboer/imap/tree/1.7.2) (2019-04-12)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.1...1.7.2)

**Fixed bugs:**

- Handle message/rfc822 when content-disposition is missing
[\#410](https://github.com/ddeboer/imap/pull/410)
([Daredzik](https://github.com/Daredzik))

## [1.7.1](https://github.com/ddeboer/imap/tree/1.7.1) (2019-03-18)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.0...1.7.1)

**Fixed bugs:**

- Encoding problem with 1.7
[\#405](https://github.com/ddeboer/imap/issues/405)
- imap\_search/imap\_sort: default params must not be passed if unspecified
[\#406](https://github.com/ddeboer/imap/pull/406)
([Slamdunk](https://github.com/Slamdunk))

## [1.7.0](https://github.com/ddeboer/imap/tree/1.7.0) (2019-03-04)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.6.0...1.7.0)

**Implemented enhancements:**

- Docker and Travis differs in handling new message eols
[\#404](https://github.com/ddeboer/imap/pull/404)
([Slamdunk](https://github.com/Slamdunk))
- Update PHP-CS-Fixer rules
[\#403](https://github.com/ddeboer/imap/pull/403)
([Slamdunk](https://github.com/Slamdunk))
- Add charset for imap\_search or imap\_sort
[\#402](https://github.com/ddeboer/imap/pull/402)
([Slamdunk](https://github.com/Slamdunk))
- PHPStan clean ups [\#400](https://github.com/ddeboer/imap/pull/400)
([Slamdunk](https://github.com/Slamdunk))
- Adding an undelete\(\) message method
[\#386](https://github.com/ddeboer/imap/pull/386)
([C-Duv](https://github.com/C-Duv))

**Closed issues:**

- Convert from GBK \(X-GBK\) to UTF-8 Issue
[\#395](https://github.com/ddeboer/imap/issues/395)

**Merged pull requests:**

- Add new ResourceCheckFailureException to handle imap\_check\(\) false
[\#399](https://github.com/ddeboer/imap/pull/399)
([pyatnitsev](https://github.com/pyatnitsev))
- Remove GBK -\> X-GBK Alias and add X-GBK -\> GBK
[\#396](https://github.com/ddeboer/imap/pull/396)
([pyatnitsev](https://github.com/pyatnitsev))
- Add Feature Requests to README.md
[\#394](https://github.com/ddeboer/imap/pull/394)
([Slamdunk](https://github.com/Slamdunk))

## [1.6.0](https://github.com/ddeboer/imap/tree/1.6.0) (2018-12-04)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.5...1.6.0)

**Implemented enhancements:**

- Require PHP ^7.1 [\#257](https://github.com/ddeboer/imap/issues/257)
- Require PHP ^7.1 [\#383](https://github.com/ddeboer/imap/pull/383)
([Slamdunk](https://github.com/Slamdunk))
- Add ability to pass options and retries to imap\_open
[\#382](https://github.com/ddeboer/imap/pull/382)
([Slamdunk](https://github.com/Slamdunk))
- Docker setup for running tests
[\#374](https://github.com/ddeboer/imap/pull/374)
([LeadTechVisas](https://github.com/LeadTechVisas))
- Get messages by UID sequence
[\#373](https://github.com/ddeboer/imap/pull/373)
([LeadTechVisas](https://github.com/LeadTechVisas))

**Fixed bugs:**

- Undeliverable mail: attachment parsing error
[\#334](https://github.com/ddeboer/imap/issues/334)
- imap\_getmailboxes returns false;
[\#134](https://github.com/ddeboer/imap/issues/134)
- Fix mailbox name as only numbers
[\#381](https://github.com/ddeboer/imap/pull/381)
([Slamdunk](https://github.com/Slamdunk))
- Gracefully handle possible non-array return value of imap\_getmailboxes
[\#372](https://github.com/ddeboer/imap/pull/372)
([Slamdunk](https://github.com/Slamdunk))

**Closed issues:**

- \[AUTHENTICATIONFAILED\] Authentication failed - Too many login failures
[\#368](https://github.com/ddeboer/imap/issues/368)
- last folder in list [\#353](https://github.com/ddeboer/imap/issues/353)
- Caching IMAP server connections
[\#88](https://github.com/ddeboer/imap/issues/88)

## [1.5.5](https://github.com/ddeboer/imap/tree/1.5.5) (2018-08-21)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.4...1.5.5)

**Fixed bugs:**

- Plain text attachments are not identified as Attachment parts
[\#341](https://github.com/ddeboer/imap/issues/341)
- Handle plain/text attachments without Content-Type header
[\#367](https://github.com/ddeboer/imap/pull/367)
([Slamdunk](https://github.com/Slamdunk))

## [1.5.4](https://github.com/ddeboer/imap/tree/1.5.4) (2018-08-19)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.3...1.5.4)

**Fixed bugs:**

- Very long filename, result of getFilename\(\) = NULL?
[\#365](https://github.com/ddeboer/imap/issues/365)
- Support RFC2231 attachment filenames
[\#366](https://github.com/ddeboer/imap/pull/366)
([Slamdunk](https://github.com/Slamdunk))

## [1.5.3](https://github.com/ddeboer/imap/tree/1.5.3) (2018-07-20)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.2...1.5.3)

**Fixed bugs:**

- Dates: handle UT timezone
[\#361](https://github.com/ddeboer/imap/pull/361)
([Slamdunk](https://github.com/Slamdunk))

## [1.5.2](https://github.com/ddeboer/imap/tree/1.5.2) (2018-07-10)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.1...1.5.2)

**Fixed bugs:**

- Fails to load Message Headers
[\#358](https://github.com/ddeboer/imap/issues/358)
- Handle invalid headers [\#359](https://github.com/ddeboer/imap/pull/359)
([Slamdunk](https://github.com/Slamdunk))

## [1.5.1](https://github.com/ddeboer/imap/tree/1.5.1) (2018-05-04)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.0...1.5.1)

**Fixed bugs:**

- getContent\(\) method returns wrong content part
[\#342](https://github.com/ddeboer/imap/issues/342)
- Fix handle of attachment messages with attachments
[\#343](https://github.com/ddeboer/imap/pull/343)
([Slamdunk](https://github.com/Slamdunk))

## [1.5.0](https://github.com/ddeboer/imap/tree/1.5.0) (2018-03-26)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.1...1.5.0)

**Implemented enhancements:**

- ImapResource: cache last opened mailbox
[\#328](https://github.com/ddeboer/imap/pull/328)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- AbstractPart::isAttachment\(\) handle unknown part type
[\#302](https://github.com/ddeboer/imap/pull/302)
([Slamdunk](https://github.com/Slamdunk))

## [1.4.1](https://github.com/ddeboer/imap/tree/1.4.1) (2018-03-22)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.0...1.4.1)

**Fixed bugs:**

- Return value of
Ddeboer\\Imap\\Message\\AbstractPart::getDecodedContent\(\) must be of the
type string, boolean returned
[\#284](https://github.com/ddeboer/imap/issues/284)
- base64\_decode may return false in PHP \< 7.1
[\#324](https://github.com/ddeboer/imap/pull/324)
([Slamdunk](https://github.com/Slamdunk))

**Merged pull requests:**

- Add entry in README about Mailbox::addMessage
[\#325](https://github.com/ddeboer/imap/pull/325)
([soywod](https://github.com/soywod))

## [1.4.0](https://github.com/ddeboer/imap/tree/1.4.0) (2018-03-19)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.1...1.4.0)

**Implemented enhancements:**

- Lazy load Message [\#320](https://github.com/ddeboer/imap/pull/320)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Invalid argument supplied for foreach\(\) in Parameters.php line 52
[\#317](https://github.com/ddeboer/imap/issues/317)
- Message "11964" does not exist: imap\_fetchstructure\(\): Bad
message number [\#310](https://github.com/ddeboer/imap/issues/310)
- imap\_mime\_header\_decode may return false
[\#322](https://github.com/ddeboer/imap/pull/322)
([Slamdunk](https://github.com/Slamdunk))

## [1.3.1](https://github.com/ddeboer/imap/tree/1.3.1) (2018-03-09)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.0...1.3.1)

**Implemented enhancements:**

- Allow empty port [\#312](https://github.com/ddeboer/imap/pull/312)
([Slamdunk](https://github.com/Slamdunk))

**Closed issues:**

- getServerString\(\) with no port
[\#311](https://github.com/ddeboer/imap/issues/311)

## [1.3.0](https://github.com/ddeboer/imap/tree/1.3.0) (2018-02-28)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.3...1.3.0)

**Implemented enhancements:**

- Implement bulk-move [\#306](https://github.com/ddeboer/imap/pull/306)
([particleflux](https://github.com/particleflux))

**Closed issues:**

- feature: Bulk move [\#305](https://github.com/ddeboer/imap/issues/305)

**Merged pull requests:**

- README.md: add `Unknown search criterion: OR` note
[\#304](https://github.com/ddeboer/imap/pull/304)
([Slamdunk](https://github.com/Slamdunk))

## [1.2.3](https://github.com/ddeboer/imap/tree/1.2.3) (2018-02-09)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.2...1.2.3)

**Fixed bugs:**

- $part-\>type can be 9
[\#301](https://github.com/ddeboer/imap/issues/301)

**Merged pull requests:**

- README.md: code-coverage has higher priority than Scrutinizer
[\#300](https://github.com/ddeboer/imap/pull/300)
([Slamdunk](https://github.com/Slamdunk))

## [1.2.2](https://github.com/ddeboer/imap/tree/1.2.2) (2018-02-05)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.1...1.2.2)

**Implemented enhancements:**

- Allow PHPUnit ^7.0 [\#296](https://github.com/ddeboer/imap/pull/296)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Attachment-\>getFilename return null
[\#297](https://github.com/ddeboer/imap/issues/297)
- Don't handle multiplart as an attachment
[\#298](https://github.com/ddeboer/imap/pull/298)
([Slamdunk](https://github.com/Slamdunk))

## [1.2.1](https://github.com/ddeboer/imap/tree/1.2.1) (2018-01-29)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.0...1.2.1)

**Implemented enhancements:**

- Introduce strict comparison
[\#289](https://github.com/ddeboer/imap/pull/289)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Invalid Date header found: "Thur, 04 Jan 2018 06:44:23 +0400"
[\#293](https://github.com/ddeboer/imap/issues/293)
- MessageIterator::current\(\) fails when there are no messages
[\#288](https://github.com/ddeboer/imap/issues/288)
- Remove weekday while parsing date header
[\#294](https://github.com/ddeboer/imap/pull/294)
([Slamdunk](https://github.com/Slamdunk))
- MessageIterator: forbid raw calls
[\#290](https://github.com/ddeboer/imap/pull/290)
([Slamdunk](https://github.com/Slamdunk))

## [1.2.0](https://github.com/ddeboer/imap/tree/1.2.0) (2018-01-15)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.2...1.2.0)

**Implemented enhancements:**

- Make imap\_append\(\) optional arguments reachable
[\#280](https://github.com/ddeboer/imap/pull/280)
([Slamdunk](https://github.com/Slamdunk))
- PHPStan: introduce static analysis
[\#276](https://github.com/ddeboer/imap/pull/276)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- getAttachments\(\) problem when mixin inline and attachment
[\#281](https://github.com/ddeboer/imap/issues/281)
- UnexpectedEncodingException: Cannot decode "5"
[\#278](https://github.com/ddeboer/imap/issues/278)
- Handle correctly multiple nested attachments
[\#283](https://github.com/ddeboer/imap/pull/283)
([Slamdunk](https://github.com/Slamdunk))
- Manageable UnexpectedEncodingException
[\#282](https://github.com/ddeboer/imap/pull/282)
([Slamdunk](https://github.com/Slamdunk))

**Closed issues:**

- Appending mail with options
[\#279](https://github.com/ddeboer/imap/issues/279)

## [1.1.2](https://github.com/ddeboer/imap/tree/1.1.2) (2017-12-12)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.1...1.1.2)

**Fixed bugs:**

- Unsupported charset "134": mb\_convert\_encoding\(\): Illegal
character encoding specified
[\#270](https://github.com/ddeboer/imap/issues/270)
- Support Microsoft charset values
[\#271](https://github.com/ddeboer/imap/pull/271)
([Slamdunk](https://github.com/Slamdunk))

## [1.1.1](https://github.com/ddeboer/imap/tree/1.1.1) (2017-11-10)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.0...1.1.1)

**Implemented enhancements:**

- Transcoder: expand charset aliases list
[\#267](https://github.com/ddeboer/imap/pull/267)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Charset aliases: fix to lowercase search
[\#266](https://github.com/ddeboer/imap/pull/266)
([Slamdunk](https://github.com/Slamdunk))

**Merged pull requests:**

- README.md: add timeout note
[\#263](https://github.com/ddeboer/imap/pull/263)
([Slamdunk](https://github.com/Slamdunk))

## [1.1.0](https://github.com/ddeboer/imap/tree/1.1.0) (2017-11-06)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.8...1.1.0)

**Implemented enhancements:**

- Deprecate MessageInterface::maskAsSeen\(\) in favour of
MessageInterface::markAsSeen\(\)
[\#255](https://github.com/ddeboer/imap/pull/255)
([Slamdunk](https://github.com/Slamdunk))
- Lazy load structured Headers
[\#250](https://github.com/ddeboer/imap/pull/250)
([Slamdunk](https://github.com/Slamdunk))
- Implement imap\_thread [\#249](https://github.com/ddeboer/imap/pull/249)
([Slamdunk](https://github.com/Slamdunk))
- Require ext-iconv [\#248](https://github.com/ddeboer/imap/pull/248)
([Slamdunk](https://github.com/Slamdunk))
- Message Part: expose $partNumber
[\#244](https://github.com/ddeboer/imap/pull/244)
([wujku](https://github.com/wujku))
- Add Mockability helpers and documentation
[\#236](https://github.com/ddeboer/imap/pull/236)
([Slamdunk](https://github.com/Slamdunk))
- Add missing interface change for \#225
[\#233](https://github.com/ddeboer/imap/pull/233)
([Slamdunk](https://github.com/Slamdunk))
- Connection: check if the connection is still active with `imap\_ping`
[\#232](https://github.com/ddeboer/imap/pull/232)
([wujku](https://github.com/wujku))
- Message: add `References` and `In-Reply-To` headers shortcuts
[\#230](https://github.com/ddeboer/imap/pull/230)
([wujku](https://github.com/wujku))
- Added bulk set / clear flags functionality for mailbox messages
[\#225](https://github.com/ddeboer/imap/pull/225)
([wujku](https://github.com/wujku))

**Merged pull requests:**

- make docs more obvious [\#252](https://github.com/ddeboer/imap/pull/252)
([lgg](https://github.com/lgg))
- README.md: add Table of Contents with Travis checker
[\#234](https://github.com/ddeboer/imap/pull/234)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.8](https://github.com/ddeboer/imap/tree/1.0.8) (2017-10-27)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.7...1.0.8)

**Implemented enhancements:**

- Headers: no catchable exception
[\#246](https://github.com/ddeboer/imap/issues/246)
- imap\_thread [\#113](https://github.com/ddeboer/imap/issues/113)

**Fixed bugs:**

- \[TypeError\] Return value of
Ddeboer\Imap\Message\AbstractMessage::getId\(\) must be of the type string,
null returned [\#253](https://github.com/ddeboer/imap/issues/253)
- BasicMessageInterface::getId\(\) can be null
[\#254](https://github.com/ddeboer/imap/pull/254)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.7](https://github.com/ddeboer/imap/tree/1.0.7) (2017-10-16)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.6...1.0.7)

**Fixed bugs:**

- Problem with a IMAP resource stream
[\#245](https://github.com/ddeboer/imap/issues/245)
- IMAP resource must be checked at every call for mailbox context
[\#247](https://github.com/ddeboer/imap/pull/247)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.6](https://github.com/ddeboer/imap/tree/1.0.6) (2017-10-12)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.5...1.0.6)

**Fixed bugs:**

- \[TypeError\] Return value of AbstractMessage::getFrom\(\) must be an
instance of EmailAddress, null returned
[\#241](https://github.com/ddeboer/imap/issues/241)
- Message: Date header can be absent
[\#243](https://github.com/ddeboer/imap/pull/243)
([Slamdunk](https://github.com/Slamdunk))
- Message: From header can be absent
[\#242](https://github.com/ddeboer/imap/pull/242)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.5](https://github.com/ddeboer/imap/tree/1.0.5) (2017-10-12)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.4...1.0.5)

**Fixed bugs:**

- Use set\_error\_handler with late exception
[\#240](https://github.com/ddeboer/imap/pull/240)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.4](https://github.com/ddeboer/imap/tree/1.0.4) (2017-10-11)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.3...1.0.4)

**Implemented enhancements:**

- Avoid \(set|restor\)\_error\_handler
[\#239](https://github.com/ddeboer/imap/pull/239)
([Slamdunk](https://github.com/Slamdunk))

**Fixed bugs:**

- Current Transcoder class does not support all charsets. 
[\#237](https://github.com/ddeboer/imap/issues/237)
- Relay also iconv during decoding
[\#238](https://github.com/ddeboer/imap/pull/238)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.3](https://github.com/ddeboer/imap/tree/1.0.3) (2017-10-11)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.2...1.0.3)

**Fixed bugs:**

- Attachment::getFilename\(\) may be null on inline-att, widen return type
[\#235](https://github.com/ddeboer/imap/pull/235)
([wujku](https://github.com/wujku))

## [1.0.2](https://github.com/ddeboer/imap/tree/1.0.2) (2017-10-06)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.1...1.0.2)

**Fixed bugs:**

- Issue with saving XML attachments
[\#228](https://github.com/ddeboer/imap/issues/228)
- Do not charset-decode attachments
[\#231](https://github.com/ddeboer/imap/pull/231)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.1](https://github.com/ddeboer/imap/tree/1.0.1) (2017-10-05)

[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.0...1.0.1)

**Fixed bugs:**

- Error with attachment charset
[\#226](https://github.com/ddeboer/imap/issues/226)
- If charset is not specified defaults to "us-ascii"
[\#227](https://github.com/ddeboer/imap/pull/227)
([Slamdunk](https://github.com/Slamdunk))

## [1.0.0](https://github.com/ddeboer/imap/tree/1.0.0) (2017-10-04)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.2...1.0.0)

**Implemented enhancements:**

- Need getAll for headers
[\#200](https://github.com/ddeboer/imap/issues/200)
- Tests: implement @covers to avoid false positive on code-coverage
[\#188](https://github.com/ddeboer/imap/issues/188)
- Remove commented code
[\#174](https://github.com/ddeboer/imap/issues/174)
- Regex in SearchExpressions
[\#157](https://github.com/ddeboer/imap/issues/157)
- How do I get unread messages count?
[\#98](https://github.com/ddeboer/imap/issues/98)
- Add mocking ability through Interfaces
[\#221](https://github.com/ddeboer/imap/pull/221)
([Slamdunk](https://github.com/Slamdunk))
- Wrap imap resource to periodically check its status
[\#220](https://github.com/ddeboer/imap/pull/220)
([Slamdunk](https://github.com/Slamdunk))
- Add more coding-standard rules
[\#218](https://github.com/ddeboer/imap/pull/218)
([Slamdunk](https://github.com/Slamdunk))
- Always keep unseen: remove keepUnseen, add markAsSeen
[\#217](https://github.com/ddeboer/imap/pull/217)
([Slamdunk](https://github.com/Slamdunk))
- Embedded messages: refactor \#106
[\#216](https://github.com/ddeboer/imap/pull/216)
([Slamdunk](https://github.com/Slamdunk))
- Headers now extends \ArrayIterator
[\#215](https://github.com/ddeboer/imap/pull/215)
([Slamdunk](https://github.com/Slamdunk))
- Implement imap\_mail\_copy
[\#214](https://github.com/ddeboer/imap/pull/214)
([Slamdunk](https://github.com/Slamdunk))
- Imap sort [\#213](https://github.com/ddeboer/imap/pull/213)
([Slamdunk](https://github.com/Slamdunk))
- Increased code-coverage [\#211](https://github.com/ddeboer/imap/pull/211)
([Slamdunk](https://github.com/Slamdunk))
- Update to PHPUnit ^6.2 [\#209](https://github.com/ddeboer/imap/pull/209)
([Slamdunk](https://github.com/Slamdunk))
- Use specific exceptions to ease user catches
[\#208](https://github.com/ddeboer/imap/pull/208)
([Slamdunk](https://github.com/Slamdunk))
- Wrap Exception on invalid Date header
[\#205](https://github.com/ddeboer/imap/pull/205)
([Slamdunk](https://github.com/Slamdunk))
- Add tests for \#144 set flags functionalities
[\#203](https://github.com/ddeboer/imap/pull/203)
([Slamdunk](https://github.com/Slamdunk))
- Add imap\_fetchheader\(\) functionality to get raw headers
[\#202](https://github.com/ddeboer/imap/pull/202)
([Slamdunk](https://github.com/Slamdunk))
- Parse all email type headers
[\#199](https://github.com/ddeboer/imap/pull/199)
([Slamdunk](https://github.com/Slamdunk))
- Test search conditions [\#198](https://github.com/ddeboer/imap/pull/198)
([Slamdunk](https://github.com/Slamdunk))
- Mailbox: get status [\#192](https://github.com/ddeboer/imap/pull/192)
([Slamdunk](https://github.com/Slamdunk))
- SearchExpression is a Search\ConditionInterface
[\#191](https://github.com/ddeboer/imap/pull/191)
([Slamdunk](https://github.com/Slamdunk))
- SearchCondition: \_\_toString\(\) -\> toString\(\)
[\#187](https://github.com/ddeboer/imap/pull/187)
([Slamdunk](https://github.com/Slamdunk))
- Retain imap\_getmailboxes\(\) results
[\#184](https://github.com/ddeboer/imap/pull/184)
([Slamdunk](https://github.com/Slamdunk))
- Add type hints and return types
[\#183](https://github.com/ddeboer/imap/pull/183)
([Slamdunk](https://github.com/Slamdunk))
- Exception: increase verbosity with imap\_alerts\(\) and imap\_errors\(\)
[\#182](https://github.com/ddeboer/imap/pull/182)
([Slamdunk](https://github.com/Slamdunk))
- Add coding-standards [\#181](https://github.com/ddeboer/imap/pull/181)
([Slamdunk](https://github.com/Slamdunk))
- Travis: re-enable code-coverage on scrutinizer
[\#177](https://github.com/ddeboer/imap/pull/177)
([Slamdunk](https://github.com/Slamdunk))
- Add .gitattributes to remove from releases unneded files
[\#173](https://github.com/ddeboer/imap/pull/173)
([Slamdunk](https://github.com/Slamdunk))
- Travis: use local Dovecot installation
[\#170](https://github.com/ddeboer/imap/pull/170)
([Slamdunk](https://github.com/Slamdunk))
- Need all Headers in string format
[\#149](https://github.com/ddeboer/imap/pull/149)
([FlashWS](https://github.com/FlashWS))
- Get raw mail [\#146](https://github.com/ddeboer/imap/pull/146)
([styxit](https://github.com/styxit))
- add getBcc\(\), Set, Clear Flag\(\Seen, \Answered, \Flagged, \Deleted,
and \Draft\), getHeadersRaw\(\)
[\#144](https://github.com/ddeboer/imap/pull/144)
([trungpv93](https://github.com/trungpv93))

**Fixed bugs:**

- Search\Condition needs charset escaping/indication
[\#190](https://github.com/ddeboer/imap/issues/190)
- imap\_utf7\_\(encode|decode\) -\> mb\_convert\_encoding
[\#185](https://github.com/ddeboer/imap/issues/185)
- España [\#176](https://github.com/ddeboer/imap/issues/176)
- getHeaders\(\) decode broke information
[\#171](https://github.com/ddeboer/imap/issues/171)
- Date format for date search condition
[\#168](https://github.com/ddeboer/imap/issues/168)
- Error when trying fetch messages from container
[\#167](https://github.com/ddeboer/imap/issues/167)
- Attachment encoding error
[\#158](https://github.com/ddeboer/imap/issues/158)
- getFilename\(\) is empty and no attachment, even when there is an
attachment. [\#142](https://github.com/ddeboer/imap/issues/142)
- Encoding issues [\#136](https://github.com/ddeboer/imap/issues/136)
- URGENT: The timezone could not be found in the database
[\#135](https://github.com/ddeboer/imap/issues/135)
- Incorrect transcoding of text attachments
[\#132](https://github.com/ddeboer/imap/issues/132)
- Undefined offset  [\#123](https://github.com/ddeboer/imap/issues/123)
- ICS file not supported as attachment
[\#120](https://github.com/ddeboer/imap/issues/120)
- Should iconv be a requirement?
[\#115](https://github.com/ddeboer/imap/issues/115)
- KeepUnseen doen't work
[\#92](https://github.com/ddeboer/imap/issues/92)
- PHP Fatal error Failed to parse time string in
ddeboer/imap/src/Message.php
[\#89](https://github.com/ddeboer/imap/issues/89)
- encoding issue [\#85](https://github.com/ddeboer/imap/issues/85)
- keepUnseen not working correctly with Hotmail
[\#84](https://github.com/ddeboer/imap/issues/84)
- Iconv Exception [\#78](https://github.com/ddeboer/imap/issues/78)
- $message-\>getAttachments\(\) doesn't recognize some attachments
[\#74](https://github.com/ddeboer/imap/issues/74)
- Message::move\(\) doesn't work.
[\#73](https://github.com/ddeboer/imap/issues/73)
- Message\Part: part number must distinguish original message
[\#223](https://github.com/ddeboer/imap/pull/223)
([Slamdunk](https://github.com/Slamdunk))
- Recursive Embedded email body bug
[\#222](https://github.com/ddeboer/imap/pull/222)
([Slamdunk](https://github.com/Slamdunk))
- Exclude HTML from allowed attachment subtype
[\#212](https://github.com/ddeboer/imap/pull/212)
([Slamdunk](https://github.com/Slamdunk))
- Fix imap\_mail\_move behaviour and test it
[\#207](https://github.com/ddeboer/imap/pull/207)
([Slamdunk](https://github.com/Slamdunk))
- Undefined encoding: throw exception
[\#197](https://github.com/ddeboer/imap/pull/197)
([Slamdunk](https://github.com/Slamdunk))
- Message charset: mb\_convert\_encoding + aliases
[\#196](https://github.com/ddeboer/imap/pull/196)
([Slamdunk](https://github.com/Slamdunk))
- Mailbox: only UTF-8 names
[\#193](https://github.com/ddeboer/imap/pull/193)
([Slamdunk](https://github.com/Slamdunk))
- Search\Date\AbstractDate: fix format to RFC-3501
[\#189](https://github.com/ddeboer/imap/pull/189)
([Slamdunk](https://github.com/Slamdunk))
- Travis: fix failing tests
[\#172](https://github.com/ddeboer/imap/pull/172)
([Slamdunk](https://github.com/Slamdunk))
- Return body of single-part HTML message as HTML, not text
[\#101](https://github.com/ddeboer/imap/pull/101)
([joker806](https://github.com/joker806))
- Implement "undisclosed recipients" addresses
[\#86](https://github.com/ddeboer/imap/pull/86)
([darit](https://github.com/darit))

**Closed issues:**

- Potential memory issue with attachments
[\#195](https://github.com/ddeboer/imap/issues/195)
- Explain Message::delete
[\#175](https://github.com/ddeboer/imap/issues/175)
- Get raw message [\#161](https://github.com/ddeboer/imap/issues/161)
- Composer install problem
[\#160](https://github.com/ddeboer/imap/issues/160)
- Transcoder not exist [\#154](https://github.com/ddeboer/imap/issues/154)
- The library doesn't support using sort by
[\#151](https://github.com/ddeboer/imap/issues/151)
- Office 365 - Array to string conversion error
[\#131](https://github.com/ddeboer/imap/issues/131)
- Is there a method to turn a seen message into an "unseen" one ?
[\#130](https://github.com/ddeboer/imap/issues/130)
- Create mailbox [\#126](https://github.com/ddeboer/imap/issues/126)
- Move and Delete Message not working
[\#112](https://github.com/ddeboer/imap/issues/112)
- Problem on production server
[\#111](https://github.com/ddeboer/imap/issues/111)
- Authentication failed for a Gmail account
[\#109](https://github.com/ddeboer/imap/issues/109)
- A method to run IMAP commands?
[\#83](https://github.com/ddeboer/imap/issues/83)

**Merged pull requests:**

- Update README.md to latest develop changes
[\#224](https://github.com/ddeboer/imap/pull/224)
([Slamdunk](https://github.com/Slamdunk))
- Add Filippo Tessarotto as an author of the package
[\#219](https://github.com/ddeboer/imap/pull/219)
([Slamdunk](https://github.com/Slamdunk))
- README.md: call Connection::expunge after move and delete
[\#210](https://github.com/ddeboer/imap/pull/210)
([Slamdunk](https://github.com/Slamdunk))
- Remove misleading Mailbox::expunge\(\)
[\#206](https://github.com/ddeboer/imap/pull/206)
([Slamdunk](https://github.com/Slamdunk))
- Add CHANGELOG.md [\#194](https://github.com/ddeboer/imap/pull/194)
([Slamdunk](https://github.com/Slamdunk))
- README.md updates [\#178](https://github.com/ddeboer/imap/pull/178)
([Slamdunk](https://github.com/Slamdunk))

## [0.5.2](https://github.com/ddeboer/imap/tree/0.5.2) (2015-12-03)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.1...0.5.2)

**Closed issues:**

- $message-\>getAttachments\(\) returns null if message has no
attachments [\#80](https://github.com/ddeboer/imap/issues/80)
- Email objects visibility
[\#76](https://github.com/ddeboer/imap/issues/76)

**Merged pull requests:**

- Fixed the keepUnseen method
[\#95](https://github.com/ddeboer/imap/pull/95)
([aeyoll](https://github.com/aeyoll))
- Mark Mailbox as countable, fix doc comments
[\#91](https://github.com/ddeboer/imap/pull/91)
([krzysiekpiasecki](https://github.com/krzysiekpiasecki))
- Message::getAttachments confirm to signature
[\#82](https://github.com/ddeboer/imap/pull/82)
([boekkooi](https://github.com/boekkooi))
- Added hasMailbox to Connection
[\#81](https://github.com/ddeboer/imap/pull/81)
([boekkooi](https://github.com/boekkooi))
- Make sure imap connection are reopened
[\#79](https://github.com/ddeboer/imap/pull/79)
([joserobleda](https://github.com/joserobleda))

## [0.5.1](https://github.com/ddeboer/imap/tree/0.5.1) (2015-02-01)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.0...0.5.1)

**Closed issues:**

- imap\_open error  [\#72](https://github.com/ddeboer/imap/issues/72)
- $message-\>getAttachments\(\) does not return anything, even though a
message has at least one attachment
[\#71](https://github.com/ddeboer/imap/issues/71)
- Prepare docs for 1.0 [\#69](https://github.com/ddeboer/imap/issues/69)
- "date" header is not reliable
[\#63](https://github.com/ddeboer/imap/issues/63)
- File Attachments don't show up
[\#55](https://github.com/ddeboer/imap/issues/55)

**Merged pull requests:**

- Add support for attachments without content disposition
[\#70](https://github.com/ddeboer/imap/pull/70)
([ddeboer](https://github.com/ddeboer))

## [0.5.0](https://github.com/ddeboer/imap/tree/0.5.0) (2015-01-24)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.4.0...0.5.0)

**Closed issues:**

- Use utf8\_encode\(\) function to encode content
[\#66](https://github.com/ddeboer/imap/issues/66)
- Please add function order by date
[\#59](https://github.com/ddeboer/imap/issues/59)
- mb\_convert\_encoding breaks code
[\#57](https://github.com/ddeboer/imap/issues/57)
- How get I getMessages but newest first ...
[\#11](https://github.com/ddeboer/imap/issues/11)

## [0.4.0](https://github.com/ddeboer/imap/tree/0.4.0) (2015-01-04)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.1...0.4.0)

**Closed issues:**

- Please add 6th parameter to imap\_open call
[\#62](https://github.com/ddeboer/imap/issues/62)
- Should Message::delete\(\) use the Message UID?
[\#46](https://github.com/ddeboer/imap/issues/46)
- mb\_convert\_encoding\(\): Illegal character encoding specified
[\#35](https://github.com/ddeboer/imap/issues/35)
- Deleting a message isn't working
[\#30](https://github.com/ddeboer/imap/issues/30)
- imap\_header doesn't work with message uid
[\#26](https://github.com/ddeboer/imap/issues/26)

**Merged pull requests:**

- Added basic requirement [\#61](https://github.com/ddeboer/imap/pull/61)
([nikoskip](https://github.com/nikoskip))
- FIX: PHP error: "Cannot declare class Ddeboer\Imap\Search\Text\Text
..." [\#58](https://github.com/ddeboer/imap/pull/58)
([racztiborzoltan](https://github.com/racztiborzoltan))
- Message::delete sets the FT\_UID flag.  Fixes \#30 Fixes \#46
[\#54](https://github.com/ddeboer/imap/pull/54)
([ctalbot](https://github.com/ctalbot))
- Allow binary-encoded part content
[\#48](https://github.com/ddeboer/imap/pull/48)
([joker806](https://github.com/joker806))
- Fix CS [\#47](https://github.com/ddeboer/imap/pull/47)
([xelan](https://github.com/xelan))
- fixed typo [\#45](https://github.com/ddeboer/imap/pull/45)
([xelan](https://github.com/xelan))

## [0.3.1](https://github.com/ddeboer/imap/tree/0.3.1) (2014-08-11)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.0...0.3.1)

**Merged pull requests:**

- \imap\_header dosen't work with UID
[\#44](https://github.com/ddeboer/imap/pull/44)
([ysramirez](https://github.com/ysramirez))

## [0.3.0](https://github.com/ddeboer/imap/tree/0.3.0) (2014-08-10)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.2...0.3.0)

**Closed issues:**

- please remove useless wiki
[\#42](https://github.com/ddeboer/imap/issues/42)
- Travis tests allways fail?
[\#40](https://github.com/ddeboer/imap/issues/40)
- Garbled e-mail body encoding
[\#27](https://github.com/ddeboer/imap/issues/27)
- Improve docs [\#25](https://github.com/ddeboer/imap/issues/25)
- "undisclosed-recipients" throws error
[\#23](https://github.com/ddeboer/imap/issues/23)

**Merged pull requests:**

- correct minor typo [\#43](https://github.com/ddeboer/imap/pull/43)
([cordoval](https://github.com/cordoval))
- Utf-8 encode body content.
[\#39](https://github.com/ddeboer/imap/pull/39)
([cmoralesweb](https://github.com/cmoralesweb))
- Fix regex parsing the date header \(allowing multiple brackets\)
[\#38](https://github.com/ddeboer/imap/pull/38)
([joker806](https://github.com/joker806))
- Allow empty connection flags
[\#34](https://github.com/ddeboer/imap/pull/34)
([joker806](https://github.com/joker806))
- Fixed typo [\#32](https://github.com/ddeboer/imap/pull/32)
([abhinavkumar940](https://github.com/abhinavkumar940))

## [0.2](https://github.com/ddeboer/imap/tree/0.2) (2013-11-24)

[Full Changelog](https://github.com/ddeboer/imap/compare/0.1...0.2)

## [0.1](https://github.com/ddeboer/imap/tree/0.1) (2013-11-22)

[Full
Changelog](https://github.com/ddeboer/imap/compare/c02d49cdb9246901bb00d211a0f2aba208f6fab6...0.1)

**Closed issues:**

- Prevent setting SEEN flag
[\#20](https://github.com/ddeboer/imap/issues/20)
- Add tests [\#18](https://github.com/ddeboer/imap/issues/18)
- delete messages [\#9](https://github.com/ddeboer/imap/issues/9)
- README is missing basic usage
[\#7](https://github.com/ddeboer/imap/issues/7)
- Subject and other texts are decoded incorrectly 
[\#3](https://github.com/ddeboer/imap/issues/3)

**Merged pull requests:**

- also fetch inline attachments
[\#24](https://github.com/ddeboer/imap/pull/24)
([kaiserlos](https://github.com/kaiserlos))
- since leading slash is always needed
[\#22](https://github.com/ddeboer/imap/pull/22)
([huglester](https://github.com/huglester))
- Added missed createMailbox\($name\) function
[\#19](https://github.com/ddeboer/imap/pull/19)
([burci](https://github.com/burci))
- Added move and delete function to message + expunge function
[\#17](https://github.com/ddeboer/imap/pull/17)
([burci](https://github.com/burci))
- Clean up some unused variable
[\#16](https://github.com/ddeboer/imap/pull/16)
([burci](https://github.com/burci))
- Fixed mailbox encoding [\#15](https://github.com/ddeboer/imap/pull/15)
([burci](https://github.com/burci))
- Create new mailbox [\#14](https://github.com/ddeboer/imap/pull/14)
([burci](https://github.com/burci))
- Fixed bug in getDecodedContent with 'format=flowed' email
[\#13](https://github.com/ddeboer/imap/pull/13)
([burci](https://github.com/burci))
- Fixed date parsing for some imap servers
[\#12](https://github.com/ddeboer/imap/pull/12)
([thelfensdrfer](https://github.com/thelfensdrfer))
- Add support for more complex search expressions.
[\#10](https://github.com/ddeboer/imap/pull/10)
([jamesiarmes](https://github.com/jamesiarmes))
- Allow user to change server connection flags
[\#6](https://github.com/ddeboer/imap/pull/6)
([mvar](https://github.com/mvar))
- Improvements in EmailAddress class
[\#4](https://github.com/ddeboer/imap/pull/4)
([mvar](https://github.com/mvar))



\* *This Changelog was automatically generated by
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
PK�X�[~�6L6hdpreplyviaemail/lib/vendor/ddeboer/imap/composer.jsonnu�[���{
    "name": "ddeboer/imap",
    "description": "Object-oriented IMAP for PHP",
    "keywords": [
        "email",
        "mail",
        "imap"
    ],
    "license": "MIT",
    "authors": [
        {
            "name": "David de Boer",
            "email": "david@ddeboer.nl"
        },
        {
            "name": "Filippo Tessarotto",
            "email": "zoeslam@gmail.com"
        },
        {
            "name": "Community contributors",
            "homepage":
"https://github.com/ddeboer/imap/graphs/contributors"
        }
    ],
    "require": {
        "php": "^7.3 || ^8.0",
        "ext-iconv": "*",
        "ext-imap": "*",
        "ext-mbstring": "*"
    },
    "require-dev": {
        "friendsofphp/php-cs-fixer": "^2.16.7",
        "laminas/laminas-mail": "^2.12.3",
        "phpstan/phpstan": "^0.12.57",
        "phpstan/phpstan-phpunit": "^0.12.16",
        "phpstan/phpstan-strict-rules": "^0.12.5",
        "phpunit/phpunit": "^9.4.3"
    },
    "config": {
        "platform": {
            "php": "7.3"
        }
    },
    "autoload": {
        "psr-4": {
            "Ddeboer\\Imap\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Ddeboer\\Imap\\Tests\\": "tests/"
        }
    }
}
PK�X�[�s��EE0hdpreplyviaemail/lib/vendor/ddeboer/imap/LICENSEnu�[���Copyright
(C) 2013 David de Boer <david@ddeboer.nl>

Permission is hereby granted, free of charge, to any person obtaining a
copy of
this software and associated documentation files (the
"Software"), to deal in
the Software without restriction, including without limitation the rights
to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of
the Software, and to permit persons to whom the Software is furnished to do
so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
SOFTWARE.PK�X�[�@�H*H*2hdpreplyviaemail/lib/vendor/ddeboer/imap/README.mdnu�[���#
IMAP library

[![Latest Stable
Version](https://img.shields.io/packagist/v/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
[![Downloads](https://img.shields.io/packagist/dt/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
[![Integrate](https://github.com/ddeboer/imap/workflows/Integrate/badge.svg?branch=master)](https://github.com/ddeboer/imap/actions)
[![Code
Coverage](https://codecov.io/gh/ddeboer/imap/coverage.svg?branch=master)](https://codecov.io/gh/ddeboer/imap?branch=master)

A PHP 7.3+ library to read and process e-mails over IMAP.

This library requires
[IMAP](https://secure.php.net/manual/en/book.imap.php),
[iconv](https://secure.php.net/manual/en/book.iconv.php) and
[Multibyte String](https://secure.php.net/manual/en/book.mbstring.php)
extensions installed.

## Table of Contents

1. [Feature Requests](#feature-requests)
1. [Installation](#installation)
1. [Usage](#usage)
    1. [Connect and Authenticate](#connect-and-authenticate)
    1. [Mailboxes](#mailboxes)
    1. [Messages](#messages)
        1. [Searching for Messages](#searching-for-messages)
        1. [Unknown search criterion: OR](#unknown-search-criterion-or)
        1. [Message Properties and
Operations](#message-properties-and-operations)
    1. [Message Attachments](#message-attachments)
    1. [Embedded Messages](#embedded-messages)
    1. [Timeouts](#timeouts)
1. [Mock the library](#mock-the-library)
1. [Running the Tests](#running-the-tests)
    1. [Running Tests using Docker](#running-tests-using-docker)

## Feature Requests

[![Feature
Requests](https://feathub.com/ddeboer/imap?format=svg)](https://feathub.com/ddeboer/imap)

## Installation

The recommended way to install the IMAP library is through
[Composer](https://getcomposer.org):

```bash
$ composer require ddeboer/imap
```

This command requires you to have Composer installed globally, as
explained
in the [installation chapter](https://getcomposer.org/doc/00-intro.md)
of the Composer documentation.

## Usage

### Connect and Authenticate

```php
use Ddeboer\Imap\Server;

$server = new Server('imap.gmail.com');

// $connection is instance of \Ddeboer\Imap\Connection
$connection = $server->authenticate('my_username',
'my_password');
```

You can specify port, [flags and
parameters](https://secure.php.net/manual/en/function.imap-open.php)
to the server:

```php
$server = new Server(
    $hostname, // required
    $port,     // defaults to '993'
    $flags,    // defaults to '/imap/ssl/validate-cert'
    $parameters
);
```

### Mailboxes

Retrieve mailboxes (also known as mail folders) from the mail server and
iterate
over them:

```php
$mailboxes = $connection->getMailboxes();

foreach ($mailboxes as $mailbox) {
    // Skip container-only mailboxes
    // @see
https://secure.php.net/manual/en/function.imap-getmailboxes.php
    if ($mailbox->getAttributes() & \LATT_NOSELECT) {
        continue;
    }

    // $mailbox is instance of \Ddeboer\Imap\Mailbox
    printf('Mailbox "%s" has %s messages',
$mailbox->getName(), $mailbox->count());
}
```

Or retrieve a specific mailbox:

```php
$mailbox = $connection->getMailbox('INBOX');
```

Delete a mailbox:

```php
$connection->deleteMailbox($mailbox);
```

You can bulk set, or clear, any
[flag](https://secure.php.net/manual/en/function.imap-setflag-full.php) of
mailbox messages (by UIDs):

```php
$mailbox->setFlag('\\Seen \\Flagged', ['1:5',
'7', '9']);
$mailbox->setFlag('\\Seen', '1,3,5,6:8');

$mailbox->clearFlag('\\Flagged', '1,3');
```

**WARNING** You must retrieve new Message instances in case of bulk modify
flags to refresh the single Messages flags.

### Messages

Retrieve messages (e-mails) from a mailbox and iterate over them:

```php
$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    // $message is instance of \Ddeboer\Imap\Message
}
```

To insert a new message (that just has been sent) into the Sent mailbox and
flag it as seen:

```php
$mailbox = $connection->getMailbox('Sent');
$mailbox->addMessage($messageMIME, '\\Seen');
```

Note that the message should be a string at MIME format (as described in
the [RFC2045](https://tools.ietf.org/html/rfc2045)).

#### Searching for Messages

```php
use Ddeboer\Imap\SearchExpression;
use Ddeboer\Imap\Search\Email\To;
use Ddeboer\Imap\Search\Text\Body;

$search = new SearchExpression();
$search->addCondition(new To('me@here.com'));
$search->addCondition(new Body('contents'));

$messages = $mailbox->getMessages($search);
```

**WARNING** We are currently unable to have both spaces _and_
double-quotes
escaped together. Only spaces are currently escaped correctly.
You can use `Ddeboer\Imap\Search\RawExpression` to write the complete
search
condition by yourself.

Messages can also be retrieved sorted as per
[imap_sort](https://secure.php.net/manual/en/function.imap-sort.php)
function:

```php
$today = new DateTimeImmutable();
$thirtyDaysAgo = $today->sub(new DateInterval('P30D'));

$messages = $mailbox->getMessages(
    new Ddeboer\Imap\Search\Date\Since($thirtyDaysAgo),
    \SORTDATE, // Sort criteria
    true // Descending order
);
```

#### Unknown search criterion: OR

Note that PHP imap library relies on the `c-client` library available at
https://www.washington.edu/imap/
which doesn't fully support some IMAP4 search criteria like `OR`. If
you want those unsupported criteria,
you need to manually patch the latest version (`imap-2007f` of 23-Jul-2011
at the time of this commit)
and recompile PHP onto your patched `c-client` library.

By the way most of the common search criteria are available and
functioning, browse them in `./src/Search`.

References:

1.
https://stackoverflow.com/questions/36356715/imap-search-unknown-search-criterion-or
1. imap-2007f.tar.gz: `./src/c-client/mail.c` and `./docs/internal.txt`

#### Message Properties and Operations

Get message number and unique [message
id](https://en.wikipedia.org/wiki/Message-ID)
in the form <...>:

```php
$message->getNumber();
$message->getId();
```

Get other message properties:

```php
$message->getSubject();
$message->getFrom();    // Message\EmailAddress
$message->getTo();      // array of Message\EmailAddress
$message->getDate();    // DateTimeImmutable
$message->isAnswered();
$message->isDeleted();
$message->isDraft();
$message->isSeen();
```

Get message headers as a
[\Ddeboer\Imap\Message\Headers](/src/Ddeboer/Imap/Message/Headers.php)
object:

```php
$message->getHeaders();
```

Get message body as HTML or plain text:

```php
$message->getBodyHtml();    // Content of text/html part, if present
$message->getBodyText();    // Content of text/plain part, if present
```

Reading the message body keeps the message as unseen.
If you want to mark the message as seen:

```php
$message->markAsSeen();
```

Or you can set, or clear, any
[flag](https://secure.php.net/manual/en/function.imap-setflag-full.php):

```php
$message->setFlag('\\Seen \\Flagged');
$message->clearFlag('\\Flagged');
```

Move a message to another mailbox:

```php
$mailbox = $connection->getMailbox('another-mailbox');
$message->move($mailbox);
$connection->expunge();
```

Deleting messages:

```php
$mailbox->getMessage(1)->delete();
$mailbox->getMessage(2)->delete();
$connection->expunge();
```

### Message Attachments

Get message attachments (both inline and attached) and iterate over them:

```php
$attachments = $message->getAttachments();

foreach ($attachments as $attachment) {
    // $attachment is instance of \Ddeboer\Imap\Message\Attachment
}
```

Download a message attachment to a local file:

```php
// getDecodedContent() decodes the attachment’s contents automatically:
file_put_contents(
    '/my/local/dir/' . $attachment->getFilename(),
    $attachment->getDecodedContent()
);
```

### Embedded Messages

Check if attachment is embedded message and get it:

```php
$attachments = $message->getAttachments();

foreach ($attachments as $attachment) {
    if ($attachment->isEmbeddedMessage()) {
        $embeddedMessage = $attachment->getEmbeddedMessage();
        // $embeddedMessage is instance of
\Ddeboer\Imap\Message\EmbeddedMessage
    }
}
```

An EmbeddedMessage has the same API as a normal Message, apart from flags
and operations like copy, move or delete.

### Timeouts

The IMAP extension provides the
[imap_timeout](https://secure.php.net/manual/en/function.imap-timeout.php)
function to adjust the timeout seconds for various operations.

However the extension's implementation doesn't link the
functionality to a
specific context or connection, instead they are global. So in order to
not
affect functionalities outside this library, we had to choose whether wrap
every `imap_*` call around an optional user-provided timeout or leave this
task to the user.

Because of the heterogeneous world of IMAP servers and the high complexity
burden cost for such a little gain of the former, we chose the latter.

## Mock the library

Mockability is granted by interfaces present for each API.
Dig into [MockabilityTest](tests/MockabilityTest.php) for an example of a
mocked workflow.

## Running the Tests

This library is functionally tested on [Travis
CI](https://travis-ci.org/ddeboer/imap)
against a local Dovecot server.

If you have your own IMAP (test) account, you can run the tests locally by
providing your IMAP credentials:

```bash
$ composer install
$ IMAP_SERVER_NAME="my.imap.server.com"
IMAP_SERVER_PORT="60993" IMAP_USERNAME="johndoe"
IMAP_PASSWORD="p4ssword" vendor/bin/phpunit
```

You can also copy `phpunit.xml.dist` file to a custom `phpunit.xml` and
put
these environment variables in it:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
    bootstrap="./vendor/autoload.php"
    colors="true"
    verbose="true"
>
    <testsuites>
        <testsuite name="ddeboer/imap">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory
suffix=".php">./src</directory>
        </whitelist>
    </filter>
    <php>
        <env name="IMAP_SERVER_NAME"
value="my.imap.server.com" />
        <env name="IMAP_SERVER_PORT" value="60993"
/>
        <env name="IMAP_USERNAME" value="johndoe"
/>
        <env name="IMAP_PASSWORD" value="p4ssword"
/>
    </php>
</phpunit>
```

**WARNING** Tests create new mailboxes without removing them.

### Running Tests using Docker

If you have Docker installed you can run the tests locally with the
following command:

```
$ docker-compose run tests
```
PK�X�[8B!��;hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Connection.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use Ddeboer\Imap\Exception\CreateMailboxException;
use Ddeboer\Imap\Exception\DeleteMailboxException;
use Ddeboer\Imap\Exception\ImapGetmailboxesException;
use Ddeboer\Imap\Exception\ImapNumMsgException;
use Ddeboer\Imap\Exception\ImapQuotaException;
use Ddeboer\Imap\Exception\InvalidResourceException;
use Ddeboer\Imap\Exception\MailboxDoesNotExistException;

/**
 * A connection to an IMAP server that is authenticated for a user.
 */
final class Connection implements ConnectionInterface
{
    /**
     * @var ImapResourceInterface
     */
    private $resource;

    /**
     * @var string
     */
    private $server;

    /**
     * @var null|array
     */
    private $mailboxes;

    /**
     * @var null|array
     */
    private $mailboxNames;

    /**
     * Constructor.
     *
     * @throws \InvalidArgumentException
     */
    public function __construct(ImapResourceInterface $resource, string
$server)
    {
        $this->resource = $resource;
        $this->server   = $server;
    }

    /**
     * Get IMAP resource.
     */
    public function getResource(): ImapResourceInterface
    {
        return $this->resource;
    }

    /**
     * Delete all messages marked for deletion.
     */
    public function expunge(): bool
    {
        return \imap_expunge($this->resource->getStream());
    }

    /**
     * Close connection.
     */
    public function close(int $flag = 0): bool
    {
        $this->resource->clearLastMailboxUsedCache();

        return \imap_close($this->resource->getStream(), $flag);
    }

    /**
     * Get Mailbox quota.
     */
    public function getQuota(string $root = 'INBOX'): array
    {
        $errorMessage = null;
        $errorNumber  = 0;
        \set_error_handler(static function ($nr, $message) use
(&$errorMessage, &$errorNumber): bool {
            $errorMessage = $message;
            $errorNumber = $nr;

            return true;
        });

        $return = \imap_get_quotaroot($this->resource->getStream(),
$root);

        \restore_error_handler();

        if (false === $return || null !== $errorMessage) {
            throw new ImapQuotaException(
                \sprintf(
                    'IMAP Quota request failed for
"%s"%s',
                    $root,
                    null !== $errorMessage ? ': ' . $errorMessage
: ''
                ),
                $errorNumber
            );
        }

        return $return;
    }

    /**
     * Get a list of mailboxes (also known as folders).
     *
     * @return MailboxInterface[]
     */
    public function getMailboxes(): array
    {
        $this->initMailboxNames();

        if (null === $this->mailboxes) {
            $this->mailboxes = [];
            foreach ($this->mailboxNames as $mailboxName =>
$mailboxInfo) {
                $this->mailboxes[(string) $mailboxName] =
$this->getMailbox((string) $mailboxName);
            }
        }

        return $this->mailboxes;
    }

    /**
     * Check that a mailbox with the given name exists.
     *
     * @param string $name Mailbox name
     */
    public function hasMailbox(string $name): bool
    {
        $this->initMailboxNames();

        return isset($this->mailboxNames[$name]);
    }

    /**
     * Get a mailbox by its name.
     *
     * @param string $name Mailbox name
     *
     * @throws MailboxDoesNotExistException If mailbox does not exist
     */
    public function getMailbox(string $name): MailboxInterface
    {
        if (false === $this->hasMailbox($name)) {
            throw new MailboxDoesNotExistException(\sprintf('Mailbox
name "%s" does not exist', $name));
        }

        return new Mailbox($this->resource, $name,
$this->mailboxNames[$name]);
    }

    /**
     * Count number of messages not in any mailbox.
     *
     * @return int
     */
    public function count()
    {
        $return = \imap_num_msg($this->resource->getStream());

        if (false === $return) {
            throw new ImapNumMsgException('imap_num_msg
failed');
        }

        return $return;
    }

    /**
     * Check if the connection is still active.
     *
     * @throws InvalidResourceException If connection was closed
     */
    public function ping(): bool
    {
        return \imap_ping($this->resource->getStream());
    }

    /**
     * Create mailbox.
     *
     * @throws CreateMailboxException
     */
    public function createMailbox(string $name): MailboxInterface
    {
        if (false ===
\imap_createmailbox($this->resource->getStream(), $this->server .
\mb_convert_encoding($name, 'UTF7-IMAP', 'UTF-8'))) {
            throw new CreateMailboxException(\sprintf('Can not create
"%s" mailbox at "%s"', $name, $this->server));
        }

        $this->mailboxNames = $this->mailboxes = null;
        $this->resource->clearLastMailboxUsedCache();

        return $this->getMailbox($name);
    }

    /**
     * Create mailbox.
     *
     * @throws DeleteMailboxException
     */
    public function deleteMailbox(MailboxInterface $mailbox): void
    {
        if (false ===
\imap_deletemailbox($this->resource->getStream(),
$mailbox->getFullEncodedName())) {
            throw new DeleteMailboxException(\sprintf('Mailbox
"%s" could not be deleted', $mailbox->getName()));
        }

        $this->mailboxes = $this->mailboxNames = null;
        $this->resource->clearLastMailboxUsedCache();
    }

    /**
     * Get mailbox names.
     */
    private function initMailboxNames(): void
    {
        if (null !== $this->mailboxNames) {
            return;
        }

        $this->mailboxNames = [];
        $mailboxesInfo      =
\imap_getmailboxes($this->resource->getStream(), $this->server,
'*');
        if (!\is_array($mailboxesInfo)) {
            throw new ImapGetmailboxesException('imap_getmailboxes
failed');
        }

        foreach ($mailboxesInfo as $mailboxInfo) {
            $name                      =
\mb_convert_encoding(\str_replace($this->server, '',
$mailboxInfo->name), 'UTF-8', 'UTF7-IMAP');
            \assert(\is_string($name));
            $this->mailboxNames[$name] = $mailboxInfo;
        }
    }
}
PK�X�[�	�M��Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/ConnectionInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

/**
 * A connection to an IMAP server that is authenticated for a user.
 */
interface ConnectionInterface extends \Countable
{
    /**
     * Get IMAP resource.
     */
    public function getResource(): ImapResourceInterface;

    /**
     * Delete all messages marked for deletion.
     */
    public function expunge(): bool;

    /**
     * Close connection.
     */
    public function close(int $flag = 0): bool;

    /**
     * Check if the connection is still active.
     */
    public function ping(): bool;

    /**
     * Get Mailbox quota.
     */
    public function getQuota(string $root = 'INBOX'): array;

    /**
     * Get a list of mailboxes (also known as folders).
     *
     * @return MailboxInterface[]
     */
    public function getMailboxes(): array;

    /**
     * Check that a mailbox with the given name exists.
     *
     * @param string $name Mailbox name
     */
    public function hasMailbox(string $name): bool;

    /**
     * Get a mailbox by its name.
     *
     * @param string $name Mailbox name
     */
    public function getMailbox(string $name): MailboxInterface;

    /**
     * Create mailbox.
     */
    public function createMailbox(string $name): MailboxInterface;

    /**
     * Delete mailbox.
     */
    public function deleteMailbox(MailboxInterface $mailbox): void;
}
PK�X�[�`�J44Lhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/AbstractException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

abstract class AbstractException extends \RuntimeException
{
    /**
     * @var array
     */
    private static $errorLabels = [
        \E_ERROR                => 'E_ERROR',
        \E_WARNING              => 'E_WARNING',
        \E_PARSE                => 'E_PARSE',
        \E_NOTICE               => 'E_NOTICE',
        \E_CORE_ERROR           => 'E_CORE_ERROR',
        \E_CORE_WARNING         => 'E_CORE_WARNING',
        \E_COMPILE_ERROR        => 'E_COMPILE_ERROR',
        \E_COMPILE_WARNING      => 'E_COMPILE_WARNING',
        \E_USER_ERROR           => 'E_USER_ERROR',
        \E_USER_WARNING         => 'E_USER_WARNING',
        \E_USER_NOTICE          => 'E_USER_NOTICE',
        \E_STRICT               => 'E_STRICT',
        \E_RECOVERABLE_ERROR    => 'E_RECOVERABLE_ERROR',
        \E_DEPRECATED           => 'E_DEPRECATED',
        \E_USER_DEPRECATED      => 'E_USER_DEPRECATED',
    ];

    /**
     * @param string     $message  The exception message
     * @param int        $code     The exception code
     * @param \Throwable $previous The previous exception
     */
    final public function __construct(string $message, int $code = 0,
\Throwable $previous = null)
    {
        $errorType = '';
        if (isset(self::$errorLabels[$code])) {
            $errorType = \sprintf('[%s] ',
self::$errorLabels[$code]);
        }

        $joinString      = "\n- ";
        $alerts          = \imap_alerts();
        $errors          = \imap_errors();
        $completeMessage = \sprintf(
            "%s%s\nimap_alerts (%s):%s\nimap_errors (%s):%s",
            $errorType,
            $message,
            false !== $alerts ? \count($alerts) : 0,
            false !== $alerts ? $joinString . \implode($joinString,
$alerts) : '',
            false !== $errors ? \count($errors) : 0,
            false !== $errors ? $joinString . \implode($joinString,
$errors) : ''
        );

        parent::__construct($completeMessage, $code, $previous);
    }
}
PK�X�[�>��Xhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/AuthenticationFailedException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class AuthenticationFailedException extends AbstractException
{
}
PK�X�[2�Ŏ�Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/CreateMailboxException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class CreateMailboxException extends AbstractException
{
}
PK�X�[�+��Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/DeleteMailboxException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class DeleteMailboxException extends AbstractException
{
}
PK�X�[��@���Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapFetchbodyException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapFetchbodyException extends AbstractException
{
}
PK�X�[�=����Shdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapFetchheaderException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapFetchheaderException extends AbstractException
{
}
PK�X�[;=�U��Thdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapGetmailboxesException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapGetmailboxesException extends AbstractException
{
}
PK�X�[e
�W��Mhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapMsgnoException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapMsgnoException extends AbstractException
{
}
PK�X�[�����Nhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapNumMsgException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapNumMsgException extends AbstractException
{
}
PK�X�[�/uъ�Mhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapQuotaException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapQuotaException extends AbstractException
{
}
PK�X�[x����Nhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapStatusException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ImapStatusException extends AbstractException
{
}
PK�X�[�å%��Uhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidDateHeaderException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class InvalidDateHeaderException extends AbstractException
{
}
PK�X�[�7��Rhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidHeadersException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class InvalidHeadersException extends AbstractException
{
}
PK�X�[ӸHh��Shdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidResourceException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class InvalidResourceException extends AbstractException
{
}
PK�X�[��]��Yhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidSearchCriteriaException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class InvalidSearchCriteriaException extends AbstractException
{
}
PK�X�[����Whdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MailboxDoesNotExistException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MailboxDoesNotExistException extends AbstractException
{
}
PK�X�[�4Cq��Ohdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageCopyException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageCopyException extends AbstractException
{
}
PK�X�[ݓ#���Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageDeleteException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageDeleteException extends AbstractException
{
}
PK�X�[H�s��Whdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageDoesNotExistException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageDoesNotExistException extends AbstractException
{
}
PK�X�[Q���Ohdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageMoveException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageMoveException extends AbstractException
{
}
PK�X�[��U>��Thdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageStructureException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageStructureException extends AbstractException
{
}
PK�X�[#����Shdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageUndeleteException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class MessageUndeleteException extends AbstractException
{
}
PK�X�[����Vhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/NotEmbeddedMessageException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class NotEmbeddedMessageException extends AbstractException
{
}
PK�X�[��Ohdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/OutOfBoundsException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class OutOfBoundsException extends AbstractException
{
}
PK�X�[_�٨��Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ReopenMailboxException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ReopenMailboxException extends AbstractException
{
}
PK�X�[I�ܕ�Xhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ResourceCheckFailureException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class ResourceCheckFailureException extends AbstractException
{
}
PK�X�[x����Vhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/UnexpectedEncodingException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class UnexpectedEncodingException extends AbstractException
{
}
PK�X�[	e=h��Vhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/UnsupportedCharsetException.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Exception;

final class UnsupportedCharsetException extends AbstractException
{
}
PK�X�[�N�
�
=hdpreplyviaemail/lib/vendor/ddeboer/imap/src/ImapResource.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use Ddeboer\Imap\Exception\InvalidResourceException;
use Ddeboer\Imap\Exception\ReopenMailboxException;

/**
 * An imap resource stream.
 */
final class ImapResource implements ImapResourceInterface
{
    /**
     * @var mixed
     */
    private $resource;

    /**
     * @var null|MailboxInterface
     */
    private $mailbox;

    /**
     * @var null|string
     */
    private static $lastMailboxUsedCache;

    /**
     * Constructor.
     *
     * @param resource $resource
     */
    public function __construct($resource, MailboxInterface $mailbox =
null)
    {
        $this->resource = $resource;
        $this->mailbox  = $mailbox;
    }

    /**
     * Get IMAP resource stream.
     *
     * @throws InvalidResourceException
     *
     * @return resource
     */
    public function getStream()
    {
        if (false === \is_resource($this->resource) || 'imap'
!== \get_resource_type($this->resource)) {
            throw new InvalidResourceException('Supplied resource is
not a valid imap resource');
        }

        $this->initMailbox();

        return $this->resource;
    }

    /**
     * Clear last mailbox used cache.
     */
    public function clearLastMailboxUsedCache(): void
    {
        self::$lastMailboxUsedCache = null;
    }

    /**
     * If connection is not currently in this mailbox, switch it to this
mailbox.
     */
    private function initMailbox(): void
    {
        if (null === $this->mailbox ||
self::isMailboxOpen($this->mailbox, $this->resource)) {
            return;
        }

        \imap_reopen($this->resource,
$this->mailbox->getFullEncodedName());

        if (self::isMailboxOpen($this->mailbox, $this->resource)) {
            return;
        }

        throw new ReopenMailboxException(\sprintf('Cannot reopen
mailbox "%s"', $this->mailbox->getName()));
    }

    /**
     * Check whether the current mailbox is open.
     *
     * @param mixed $resource
     */
    private static function isMailboxOpen(MailboxInterface $mailbox,
$resource): bool
    {
        $currentMailboxName = $mailbox->getFullEncodedName();
        if ($currentMailboxName === self::$lastMailboxUsedCache) {
            return true;
        }

        self::$lastMailboxUsedCache = null;
        $check                      = \imap_check($resource);
        $return                     = false !== $check &&
$check->Mailbox === $currentMailboxName;

        if (true === $return) {
            self::$lastMailboxUsedCache = $currentMailboxName;
        }

        return $return;
    }
}
PK�X�[�!��QQFhdpreplyviaemail/lib/vendor/ddeboer/imap/src/ImapResourceInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

interface ImapResourceInterface
{
    /**
     * Get IMAP resource stream.
     *
     * @return resource
     */
    public function getStream();

    /**
     * Clear last mailbox used cache.
     */
    public function clearLastMailboxUsedCache(): void;
}
PK�X�[�7Y�*%*%8hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Mailbox.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use DateTimeInterface;
use Ddeboer\Imap\Exception\ImapNumMsgException;
use Ddeboer\Imap\Exception\ImapStatusException;
use Ddeboer\Imap\Exception\InvalidSearchCriteriaException;
use Ddeboer\Imap\Exception\MessageCopyException;
use Ddeboer\Imap\Exception\MessageMoveException;
use Ddeboer\Imap\Search\ConditionInterface;
use Ddeboer\Imap\Search\LogicalOperator\All;

/**
 * An IMAP mailbox (commonly referred to as a 'folder').
 */
final class Mailbox implements MailboxInterface
{
    /**
     * @var ImapResourceInterface
     */
    private $resource;

    /**
     * @var string
     */
    private $name;

    /**
     * @var \stdClass
     */
    private $info;

    /**
     * Constructor.
     *
     * @param ImapResourceInterface $resource IMAP resource
     * @param string                $name     Mailbox decoded name
     * @param \stdClass             $info     Mailbox info
     */
    public function __construct(ImapResourceInterface $resource, string
$name, \stdClass $info)
    {
        $this->resource = new ImapResource($resource->getStream(),
$this);
        $this->name     = $name;
        $this->info     = $info;
    }

    /**
     * Get mailbox decoded name.
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * Get mailbox encoded path.
     */
    public function getEncodedName(): string
    {
        /** @var string $name */
        $name = $this->info->name;

        return (string) \preg_replace('/^{.+}/', '',
$name);
    }

    /**
     * Get mailbox encoded full name.
     */
    public function getFullEncodedName(): string
    {
        return $this->info->name;
    }

    /**
     * Get mailbox attributes.
     */
    public function getAttributes(): int
    {
        return $this->info->attributes;
    }

    /**
     * Get mailbox delimiter.
     */
    public function getDelimiter(): string
    {
        return $this->info->delimiter;
    }

    /**
     * Get number of messages in this mailbox.
     *
     * @return int
     */
    public function count()
    {
        $return = \imap_num_msg($this->resource->getStream());

        if (false === $return) {
            throw new ImapNumMsgException('imap_num_msg
failed');
        }

        return $return;
    }

    /**
     * Get Mailbox status.
     */
    public function getStatus(int $flags = null): \stdClass
    {
        $return = \imap_status($this->resource->getStream(),
$this->getFullEncodedName(), $flags ?? \SA_ALL);

        if (false === $return) {
            throw new ImapStatusException('imap_status failed');
        }

        return $return;
    }

    /**
     * Bulk Set Flag for Messages.
     *
     * @param string                       $flag    \Seen, \Answered,
\Flagged, \Deleted, and \Draft
     * @param array|MessageIterator|string $numbers Message numbers
     */
    public function setFlag(string $flag, $numbers): bool
    {
        return \imap_setflag_full($this->resource->getStream(),
$this->prepareMessageIds($numbers), $flag, \ST_UID);
    }

    /**
     * Bulk Clear Flag for Messages.
     *
     * @param string                       $flag    \Seen, \Answered,
\Flagged, \Deleted, and \Draft
     * @param array|MessageIterator|string $numbers Message numbers
     */
    public function clearFlag(string $flag, $numbers): bool
    {
        return \imap_clearflag_full($this->resource->getStream(),
$this->prepareMessageIds($numbers), $flag, \ST_UID);
    }

    /**
     * Get message ids.
     *
     * @param ConditionInterface $search Search expression (optional)
     */
    public function getMessages(ConditionInterface $search = null, int
$sortCriteria = null, bool $descending = false, string $charset = null):
MessageIteratorInterface
    {
        if (null === $search) {
            $search = new All();
        }
        $query = $search->toString();

        if (\PHP_VERSION_ID < 80000) {
            $descending = (int) $descending;
        }

        // We need to clear the stack to know whether imap_last_error()
        // is related to this imap_search
        \imap_errors();

        if (null !== $sortCriteria) {
            $params = [
                $this->resource->getStream(),
                $sortCriteria,
                $descending,
                \SE_UID,
                $query,
            ];
            if (null !== $charset) {
                $params[] = $charset;
            }
            $messageNumbers = \imap_sort(...$params);
        } else {
            $params = [
                $this->resource->getStream(),
                $query,
                \SE_UID,
            ];
            if (null !== $charset) {
                $params[] = $charset;
            }
            $messageNumbers = \imap_search(...$params);
        }
        if (false !== \imap_last_error()) {
            // this way all errors occurred during search will be reported
            throw new InvalidSearchCriteriaException(
                \sprintf('Invalid search criteria [%s]', $query)
            );
        }
        if (false === $messageNumbers) {
            // imap_search can also return false
            $messageNumbers = [];
        }

        return new MessageIterator($this->resource, $messageNumbers);
    }

    /**
     * Get message iterator for a sequence.
     *
     * @param string $sequence Message numbers
     */
    public function getMessageSequence(string $sequence):
MessageIteratorInterface
    {
        \imap_errors();

        $overview =
\imap_fetch_overview($this->resource->getStream(), $sequence,
\FT_UID);
        if (false !== \imap_last_error()) {
            throw new InvalidSearchCriteriaException(
                \sprintf('Invalid sequence [%s]', $sequence)
            );
        }
        if (\is_array($overview) && [] !== $overview) {
            $messageNumbers = \array_column($overview, 'uid');
        } else {
            $messageNumbers = [];
        }

        return new MessageIterator($this->resource, $messageNumbers);
    }

    /**
     * Get a message by message number.
     *
     * @param int $number Message number
     */
    public function getMessage(int $number): MessageInterface
    {
        return new Message($this->resource, $number);
    }

    /**
     * Get messages in this mailbox.
     */
    public function getIterator(): MessageIteratorInterface
    {
        return $this->getMessages();
    }

    /**
     * Add a message to the mailbox.
     */
    public function addMessage(string $message, string $options = null,
DateTimeInterface $internalDate = null): bool
    {
        $arguments = [
            $this->resource->getStream(),
            $this->getFullEncodedName(),
            $message,
        ];
        if (null !== $options) {
            $arguments[] = $options;
            if (null !== $internalDate) {
                $arguments[] = $internalDate->format('d-M-Y H:i:s
O');
            }
        }

        return \imap_append(...$arguments);
    }

    /**
     * Returns a tree of threaded message for the current Mailbox.
     */
    public function getThread(): array
    {
        \set_error_handler(static function (): bool {
            return true;
        });

        /** @var array|false $tree */
        $tree = \imap_thread($this->resource->getStream(), \SE_UID);

        \restore_error_handler();

        return false !== $tree ? $tree : [];
    }

    /**
     * Bulk move messages.
     *
     * @param array|MessageIterator|string $numbers Message numbers
     * @param MailboxInterface             $mailbox Destination Mailbox to
move the messages to
     *
     * @throws \Ddeboer\Imap\Exception\MessageMoveException
     */
    public function move($numbers, MailboxInterface $mailbox): void
    {
        if (!\imap_mail_move($this->resource->getStream(),
$this->prepareMessageIds($numbers), $mailbox->getEncodedName(),
\CP_UID)) {
            throw new MessageMoveException(\sprintf('Messages cannot
be moved to "%s"', $mailbox->getName()));
        }
    }

    /**
     * Bulk copy messages.
     *
     * @param array|MessageIterator|string $numbers Message numbers
     * @param MailboxInterface             $mailbox Destination Mailbox to
copy the messages to
     *
     * @throws \Ddeboer\Imap\Exception\MessageCopyException
     */
    public function copy($numbers, MailboxInterface $mailbox): void
    {
        if (!\imap_mail_copy($this->resource->getStream(),
$this->prepareMessageIds($numbers), $mailbox->getEncodedName(),
\CP_UID)) {
            throw new MessageCopyException(\sprintf('Messages cannot
be copied to "%s"', $mailbox->getName()));
        }
    }

    /**
     * Prepare message ids for the use with bulk functions.
     *
     * @param array|MessageIterator|string $messageIds Message numbers
     */
    private function prepareMessageIds($messageIds): string
    {
        if ($messageIds instanceof MessageIterator) {
            $messageIds = $messageIds->getArrayCopy();
        }

        if (\is_array($messageIds)) {
            $messageIds = \implode(',', $messageIds);
        }

        return $messageIds;
    }
}
PK�X�[�&T��Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/MailboxInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use DateTimeInterface;
use Ddeboer\Imap\Search\ConditionInterface;

/**
 * An IMAP mailbox (commonly referred to as a 'folder').
 */
interface MailboxInterface extends \Countable, \IteratorAggregate
{
    /**
     * Get mailbox decoded name.
     */
    public function getName(): string;

    /**
     * Get mailbox encoded path.
     */
    public function getEncodedName(): string;

    /**
     * Get mailbox encoded full name.
     */
    public function getFullEncodedName(): string;

    /**
     * Get mailbox attributes.
     */
    public function getAttributes(): int;

    /**
     * Get mailbox delimiter.
     */
    public function getDelimiter(): string;

    /**
     * Get Mailbox status.
     */
    public function getStatus(int $flags = null): \stdClass;

    /**
     * Bulk Set Flag for Messages.
     *
     * @param string                       $flag    \Seen, \Answered,
\Flagged, \Deleted, and \Draft
     * @param array|MessageIterator|string $numbers Message numbers
     */
    public function setFlag(string $flag, $numbers): bool;

    /**
     * Bulk Clear Flag for Messages.
     *
     * @param string                       $flag    \Seen, \Answered,
\Flagged, \Deleted, and \Draft
     * @param array|MessageIterator|string $numbers Message numbers
     */
    public function clearFlag(string $flag, $numbers): bool;

    /**
     * Get message ids.
     *
     * @param ConditionInterface $search Search expression (optional)
     */
    public function getMessages(ConditionInterface $search = null, int
$sortCriteria = null, bool $descending = false, string $charset = null):
MessageIteratorInterface;

    /**
     * Get message iterator for a sequence.
     *
     * @param string $sequence Message numbers
     */
    public function getMessageSequence(string $sequence):
MessageIteratorInterface;

    /**
     * Get a message by message number.
     *
     * @param int $number Message number
     */
    public function getMessage(int $number): MessageInterface;

    /**
     * Get messages in this mailbox.
     */
    public function getIterator(): MessageIteratorInterface;

    /**
     * Add a message to the mailbox.
     */
    public function addMessage(string $message, string $options = null,
DateTimeInterface $internalDate = null): bool;

    /**
     * Returns a tree of threaded message for the current Mailbox.
     */
    public function getThread(): array;

    /**
     * Bulk move messages.
     *
     * @param array|MessageIterator|string $numbers Message numbers
     * @param MailboxInterface             $mailbox Destination Mailbox to
move the messages to
     *
     * @throws \Ddeboer\Imap\Exception\MessageMoveException
     */
    public function move($numbers, self $mailbox): void;

    /**
     * Bulk copy messages.
     *
     * @param array|MessageIterator|string $numbers Message numbers
     * @param MailboxInterface             $mailbox Destination Mailbox to
copy the messages to
     *
     * @throws \Ddeboer\Imap\Exception\MessageCopyException
     */
    public function copy($numbers, self $mailbox): void;
}
PK�X�[�w�\\Hhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

use Ddeboer\Imap\Exception\InvalidDateHeaderException;

abstract class AbstractMessage extends AbstractPart
{
    /**
     * @var null|array
     */
    private $attachments;

    /**
     * Get message headers.
     */
    abstract public function getHeaders(): Headers;

    /**
     * Get message id.
     *
     * A unique message id in the form <...>
     */
    final public function getId(): ?string
    {
        return $this->getHeaders()->get('message_id');
    }

    /**
     * Get message sender (from headers).
     */
    final public function getFrom(): ?EmailAddress
    {
        $from = $this->getHeaders()->get('from');

        return null !== $from ? $this->decodeEmailAddress($from[0]) :
null;
    }

    /**
     * Get To recipients.
     *
     * @return EmailAddress[] Empty array in case message has no To:
recipients
     */
    final public function getTo(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('to')
?: []);
    }

    /**
     * Get Cc recipients.
     *
     * @return EmailAddress[] Empty array in case message has no CC:
recipients
     */
    final public function getCc(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('cc')
?: []);
    }

    /**
     * Get Bcc recipients.
     *
     * @return EmailAddress[] Empty array in case message has no BCC:
recipients
     */
    final public function getBcc(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('bcc')
?: []);
    }

    /**
     * Get Reply-To recipients.
     *
     * @return EmailAddress[] Empty array in case message has no Reply-To:
recipients
     */
    final public function getReplyTo(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('reply_to')
?: []);
    }

    /**
     * Get Sender.
     *
     * @return EmailAddress[] Empty array in case message has no Sender:
recipients
     */
    final public function getSender(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('sender')
?: []);
    }

    /**
     * Get Return-Path.
     *
     * @return EmailAddress[] Empty array in case message has no
Return-Path: recipients
     */
    final public function getReturnPath(): array
    {
        return
$this->decodeEmailAddresses($this->getHeaders()->get('return_path')
?: []);
    }

    /**
     * Get date (from headers).
     */
    final public function getDate(): ?\DateTimeImmutable
    {
        /** @var null|string $dateHeader */
        $dateHeader = $this->getHeaders()->get('date');
        if (null === $dateHeader) {
            return null;
        }

        $alteredValue = $dateHeader;
        $alteredValue = \str_replace(',', '',
$alteredValue);
        $alteredValue = (string) \preg_replace('/^[a-zA-Z]+ ?/',
'', $alteredValue);
        $alteredValue = (string) \preg_replace('/\(.*\)/',
'', $alteredValue);
        $alteredValue = (string) \preg_replace('/\<.*\>/',
'', $alteredValue);
        $alteredValue = (string) \preg_replace('/\bUT\b/',
'UTC', $alteredValue);
        if (0 === \preg_match('/\d\d:\d\d:\d\d.*
[\+\-]\d\d:?\d\d/', $alteredValue)) {
            $alteredValue .= ' +0000';
        }
        // Handle numeric months
        $alteredValue = (string) \preg_replace('/^(\d\d) (\d\d)
(\d\d(?:\d\d)?) /', '$3-$2-$1 ', $alteredValue);

        try {
            $date = new \DateTimeImmutable($alteredValue);
        } catch (\Throwable $ex) {
            throw new InvalidDateHeaderException(\sprintf('Invalid
Date header found: "%s"', $dateHeader), 0, $ex);
        }

        return $date;
    }

    /**
     * Get message size (from headers).
     *
     * @return null|int|string
     */
    final public function getSize()
    {
        return $this->getHeaders()->get('size');
    }

    /**
     * Get message subject (from headers).
     */
    final public function getSubject(): ?string
    {
        return $this->getHeaders()->get('subject');
    }

    /**
     * Get message In-Reply-To (from headers).
     */
    final public function getInReplyTo(): array
    {
        $inReplyTo =
$this->getHeaders()->get('in_reply_to');

        return null !== $inReplyTo ? \explode(' ', $inReplyTo) :
[];
    }

    /**
     * Get message References (from headers).
     */
    final public function getReferences(): array
    {
        $references =
$this->getHeaders()->get('references');

        return null !== $references ? \explode(' ', $references)
: [];
    }

    /**
     * Get body HTML.
     */
    final public function getBodyHtml(): ?string
    {
        $iterator = new \RecursiveIteratorIterator($this,
\RecursiveIteratorIterator::SELF_FIRST);
        foreach ($iterator as $part) {
            if (self::SUBTYPE_HTML === $part->getSubtype()) {
                return $part->getDecodedContent();
            }
        }

        // If message has no parts and is HTML, return content of message
itself.
        if (self::SUBTYPE_HTML === $this->getSubtype()) {
            return $this->getDecodedContent();
        }

        return null;
    }

    /**
     * Get body text.
     */
    final public function getBodyText(): ?string
    {
        $iterator = new \RecursiveIteratorIterator($this,
\RecursiveIteratorIterator::SELF_FIRST);
        foreach ($iterator as $part) {
            if (self::SUBTYPE_PLAIN === $part->getSubtype()) {
                return $part->getDecodedContent();
            }
        }

        // If message has no parts, return content of message itself.
        if (self::SUBTYPE_PLAIN === $this->getSubtype()) {
            return $this->getDecodedContent();
        }

        return null;
    }

    /**
     * Get attachments (if any) linked to this e-mail.
     *
     * @return AttachmentInterface[]
     */
    final public function getAttachments(): array
    {
        if (null === $this->attachments) {
            $this->attachments = self::gatherAttachments($this);
        }

        return $this->attachments;
    }

    private static function gatherAttachments(PartInterface $part): array
    {
        $attachments = [];
        foreach ($part->getParts() as $childPart) {
            if ($childPart instanceof Attachment) {
                $attachments[] = $childPart;
            }
            if ($childPart->hasChildren()) {
                $attachments = \array_merge($attachments,
self::gatherAttachments($childPart));
            }
        }

        return $attachments;
    }

    /**
     * Does this message have attachments?
     */
    final public function hasAttachments(): bool
    {
        return \count($this->getAttachments()) > 0;
    }

    /**
     * @param \stdClass[] $addresses
     */
    private function decodeEmailAddresses(array $addresses): array
    {
        $return = [];
        foreach ($addresses as $address) {
            if (isset($address->mailbox)) {
                $return[] = $this->decodeEmailAddress($address);
            }
        }

        return $return;
    }

    private function decodeEmailAddress(\stdClass $value): EmailAddress
    {
        return new EmailAddress($value->mailbox, $value->host,
$value->personal);
    }
}
PK�X�[VW��5�5Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AbstractPart.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

use Ddeboer\Imap\Exception\ImapFetchbodyException;
use Ddeboer\Imap\Exception\UnexpectedEncodingException;
use Ddeboer\Imap\ImapResourceInterface;
use Ddeboer\Imap\Message;

/**
 * A message part.
 */
abstract class AbstractPart implements PartInterface
{
    /**
     * @var ImapResourceInterface
     */
    protected $resource;

    /**
     * @var bool
     */
    private $structureParsed = false;

    /**
     * @var array
     */
    private $parts = [];

    /**
     * @var string
     */
    private $partNumber;

    /**
     * @var int
     */
    private $messageNumber;

    /**
     * @var \stdClass
     */
    private $structure;

    /**
     * @var Parameters
     */
    private $parameters;

    /**
     * @var null|string
     */
    private $type;

    /**
     * @var null|string
     */
    private $subtype;

    /**
     * @var null|string
     */
    private $encoding;

    /**
     * @var null|string
     */
    private $disposition;

    /**
     * @var null|string
     */
    private $description;

    /**
     * @var null|string
     */
    private $bytes;

    /**
     * @var null|string
     */
    private $lines;

    /**
     * @var null|string
     */
    private $content;

    /**
     * @var null|string
     */
    private $decodedContent;

    /**
     * @var int
     */
    private $key = 0;

    /**
     * @var array
     */
    private static $typesMap = [
        \TYPETEXT        => self::TYPE_TEXT,
        \TYPEMULTIPART   => self::TYPE_MULTIPART,
        \TYPEMESSAGE     => self::TYPE_MESSAGE,
        \TYPEAPPLICATION => self::TYPE_APPLICATION,
        \TYPEAUDIO       => self::TYPE_AUDIO,
        \TYPEIMAGE       => self::TYPE_IMAGE,
        \TYPEVIDEO       => self::TYPE_VIDEO,
        \TYPEMODEL       => self::TYPE_MODEL,
        \TYPEOTHER       => self::TYPE_OTHER,
    ];

    /**
     * @var array
     */
    private static $encodingsMap = [
        \ENC7BIT            => self::ENCODING_7BIT,
        \ENC8BIT            => self::ENCODING_8BIT,
        \ENCBINARY          => self::ENCODING_BINARY,
        \ENCBASE64          => self::ENCODING_BASE64,
        \ENCQUOTEDPRINTABLE => self::ENCODING_QUOTED_PRINTABLE,
    ];

    /**
     * @var array
     */
    private static $attachmentKeys = [
        'name'      => true,
        'filename'  => true,
        'name*'     => true,
        'filename*' => true,
    ];

    /**
     * Constructor.
     *
     * @param ImapResourceInterface $resource      IMAP resource
     * @param int                   $messageNumber Message number
     * @param string                $partNumber    Part number
     * @param \stdClass             $structure     Part structure
     */
    public function __construct(
        ImapResourceInterface $resource,
        int $messageNumber,
        string $partNumber,
        \stdClass $structure
    ) {
        $this->resource      = $resource;
        $this->messageNumber = $messageNumber;
        $this->partNumber    = $partNumber;
        $this->setStructure($structure);
    }

    /**
     * Get message number (from headers).
     */
    final public function getNumber(): int
    {
        $this->assertMessageExists($this->messageNumber);

        return $this->messageNumber;
    }

    /**
     * Ensure message exists.
     */
    protected function assertMessageExists(int $messageNumber): void
    {
    }

    /**
     * @param \stdClass $structure Part structure
     */
    final protected function setStructure(\stdClass $structure): void
    {
        $this->structure = $structure;
    }

    /**
     * Part structure.
     */
    final public function getStructure(): \stdClass
    {
        $this->lazyLoadStructure();

        return $this->structure;
    }

    /**
     * Lazy load structure.
     */
    protected function lazyLoadStructure(): void
    {
    }

    /**
     * Part parameters.
     */
    final public function getParameters(): Parameters
    {
        $this->lazyParseStructure();

        return $this->parameters;
    }

    /**
     * Part charset.
     */
    final public function getCharset(): ?string
    {
        $this->lazyParseStructure();

        return $this->parameters->get('charset') ?: null;
    }

    /**
     * Part type.
     */
    final public function getType(): ?string
    {
        $this->lazyParseStructure();

        return $this->type;
    }

    /**
     * Part subtype.
     */
    final public function getSubtype(): ?string
    {
        $this->lazyParseStructure();

        return $this->subtype;
    }

    /**
     * Part encoding.
     */
    final public function getEncoding(): ?string
    {
        $this->lazyParseStructure();

        return $this->encoding;
    }

    /**
     * Part disposition.
     */
    final public function getDisposition(): ?string
    {
        $this->lazyParseStructure();

        return $this->disposition;
    }

    /**
     * Part description.
     */
    final public function getDescription(): ?string
    {
        $this->lazyParseStructure();

        return $this->description;
    }

    /**
     * Part bytes.
     *
     * @return null|int|string
     */
    final public function getBytes()
    {
        $this->lazyParseStructure();

        return $this->bytes;
    }

    /**
     * Part lines.
     */
    final public function getLines(): ?string
    {
        $this->lazyParseStructure();

        return $this->lines;
    }

    /**
     * Get raw part content.
     */
    final public function getContent(): string
    {
        if (null === $this->content) {
            $this->content =
$this->doGetContent($this->getContentPartNumber());
        }

        return $this->content;
    }

    /**
     * Get content part number.
     */
    protected function getContentPartNumber(): string
    {
        return $this->partNumber;
    }

    /**
     * Get part number.
     */
    final public function getPartNumber(): string
    {
        return $this->partNumber;
    }

    /**
     * Get decoded part content.
     */
    final public function getDecodedContent(): string
    {
        if (null === $this->decodedContent) {
            if (self::ENCODING_UNKNOWN === $this->getEncoding()) {
                throw new UnexpectedEncodingException('Cannot decode a
content with an uknown encoding');
            }

            $content = $this->getContent();
            if (self::ENCODING_BASE64 === $this->getEncoding()) {
                $content = \base64_decode($content, false);
            } elseif (self::ENCODING_QUOTED_PRINTABLE ===
$this->getEncoding()) {
                $content = \quoted_printable_decode($content);
            }

            if (false === $content) {
                throw new UnexpectedEncodingException('Cannot decode
content');
            }

            // If this part is a text part, convert its charset to UTF-8.
            // We don't want to decode an attachment's charset.
            if (!$this instanceof Attachment && null !==
$this->getCharset() && self::TYPE_TEXT === $this->getType())
{
                $content = Transcoder::decode($content,
$this->getCharset());
            }

            $this->decodedContent = $content;
        }

        return $this->decodedContent;
    }

    /**
     * Get raw message content.
     */
    final protected function doGetContent(string $partNumber): string
    {
        $return = \imap_fetchbody(
            $this->resource->getStream(),
            $this->getNumber(),
            $partNumber,
            \FT_UID | \FT_PEEK
        );

        if (false === $return) {
            throw new ImapFetchbodyException('imap_fetchbody
failed');
        }

        return $return;
    }

    /**
     * Get an array of all parts for this message.
     *
     * @return PartInterface[]
     */
    final public function getParts(): array
    {
        $this->lazyParseStructure();

        return $this->parts;
    }

    /**
     * Get current child part.
     *
     * @return mixed
     */
    final public function current()
    {
        $this->lazyParseStructure();

        return $this->parts[$this->key];
    }

    /**
     * Get current child part.
     *
     * @return \RecursiveIterator
     */
    final public function getChildren()
    {
        return $this->current();
    }

    /**
     * Get current child part.
     *
     * @return bool
     */
    final public function hasChildren()
    {
        $this->lazyParseStructure();

        return \count($this->parts) > 0;
    }

    /**
     * Get current part key.
     *
     * @return int
     */
    final public function key()
    {
        return $this->key;
    }

    /**
     * Move to next part.
     *
     * @return void
     */
    final public function next()
    {
        ++$this->key;
    }

    /**
     * Reset part key.
     *
     * @return void
     */
    final public function rewind()
    {
        $this->key = 0;
    }

    /**
     * Check if current part is a valid one.
     *
     * @return bool
     */
    final public function valid()
    {
        $this->lazyParseStructure();

        return isset($this->parts[$this->key]);
    }

    /**
     * Parse part structure.
     */
    private function lazyParseStructure(): void
    {
        if (true === $this->structureParsed) {
            return;
        }
        $this->structureParsed = true;

        $this->lazyLoadStructure();

        $this->type = self::$typesMap[$this->structure->type] ??
self::TYPE_UNKNOWN;

        // In our context, \ENCOTHER is as useful as an unknown encoding
        $this->encoding =
self::$encodingsMap[$this->structure->encoding] ??
self::ENCODING_UNKNOWN;
        if (isset($this->structure->subtype)) {
            $this->subtype = $this->structure->subtype;
        }

        if (isset($this->structure->bytes)) {
            $this->bytes = $this->structure->bytes;
        }
        if ($this->structure->ifdisposition) {
            $this->disposition = $this->structure->disposition;
        }
        if ($this->structure->ifdescription) {
            $this->description = $this->structure->description;
        }

        $this->parameters = new Parameters();
        if ($this->structure->ifparameters) {
           
$this->parameters->add($this->structure->parameters);
        }

        if ($this->structure->ifdparameters) {
           
$this->parameters->add($this->structure->dparameters);
        }

        // When the message is not multipart and the body is the attachment
content
        // Prevents infinite recursion
        if (self::isAttachment($this->structure) && !$this
instanceof Attachment) {
            $this->parts[] = new Attachment($this->resource,
$this->getNumber(), '1', $this->structure);
        }

        if (isset($this->structure->parts)) {
            $parts = $this->structure->parts;
            //
https://secure.php.net/manual/en/function.imap-fetchbody.php#89002
            if ($this instanceof Attachment &&
$this->isEmbeddedMessage() && 1 === \count($parts) &&
\TYPEMULTIPART === $parts[0]->type) {
                $parts = $parts[0]->parts;
            }
            foreach ($parts as $key => $partStructure) {
                $partNumber = (!$this instanceof Message) ?
$this->partNumber . '.' : '';
                $partNumber .= (string) ($key + 1);

                $newPartClass = self::isAttachment($partStructure)
                    ? Attachment::class
                    : SimplePart::class
                ;

                $this->parts[] = new $newPartClass($this->resource,
$this->getNumber(), $partNumber, $partStructure);
            }
        }
    }

    /**
     * Check if the given part is an attachment.
     */
    private static function isAttachment(\stdClass $part): bool
    {
        if (isset(self::$typesMap[$part->type]) &&
self::TYPE_MULTIPART === self::$typesMap[$part->type]) {
            return false;
        }

        // Attachment with correct Content-Disposition header
        if ($part->ifdisposition) {
            if ('attachment' ===
\strtolower($part->disposition)) {
                return true;
            }

            if (
                    'inline' ===
\strtolower($part->disposition)
                && self::SUBTYPE_PLAIN !==
\strtoupper($part->subtype)
                && self::SUBTYPE_HTML !==
\strtoupper($part->subtype)
            ) {
                return true;
            }
        }

        // Attachment without Content-Disposition header
        if ($part->ifparameters) {
            foreach ($part->parameters as $parameter) {
                if
(isset(self::$attachmentKeys[\strtolower($parameter->attribute)])) {
                    return true;
                }
            }
        }

        /*
        if ($part->ifdparameters) {
            foreach ($part->dparameters as $parameter) {
                if
(isset(self::$attachmentKeys[\strtolower($parameter->attribute)])) {
                    return true;
                }
            }
        }
         */

        if (self::SUBTYPE_RFC822 === \strtoupper($part->subtype)) {
            return true;
        }

        return false;
    }
}
PK�X�[�%�8##Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Attachment.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

use Ddeboer\Imap\Exception\NotEmbeddedMessageException;

/**
 * An e-mail attachment.
 */
final class Attachment extends AbstractPart implements AttachmentInterface
{
    /**
     * Get attachment filename.
     */
    public function getFilename(): ?string
    {
        return $this->getParameters()->get('filename')
            ?: $this->getParameters()->get('name');
    }

    /**
     * Get attachment file size.
     *
     * @return null|int Number of bytes
     */
    public function getSize()
    {
        $size = $this->getParameters()->get('size');
        if (\is_numeric($size)) {
            $size = (int) $size;
        }

        return $size;
    }

    /**
     * Is this attachment also an Embedded Message?
     */
    public function isEmbeddedMessage(): bool
    {
        return self::TYPE_MESSAGE === $this->getType();
    }

    /**
     * Return embedded message.
     *
     * @throws NotEmbeddedMessageException
     */
    public function getEmbeddedMessage(): EmbeddedMessageInterface
    {
        if (!$this->isEmbeddedMessage()) {
            throw new NotEmbeddedMessageException(\sprintf(
                'Attachment "%s" in message "%s"
is not embedded message',
                $this->getPartNumber(),
                $this->getNumber()
            ));
        }

        return new EmbeddedMessage($this->resource,
$this->getNumber(), $this->getPartNumber(),
$this->getStructure()->parts[0]);
    }
}
PK�X�[Y�a���Lhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

/**
 * An e-mail attachment.
 */
interface AttachmentInterface extends PartInterface
{
    /**
     * Get attachment filename.
     */
    public function getFilename(): ?string;

    /**
     * Get attachment file size.
     *
     * @return null|int Number of bytes
     */
    public function getSize();

    /**
     * Is this attachment also an Embedded Message?
     */
    public function isEmbeddedMessage(): bool;

    /**
     * Return embedded message.
     */
    public function getEmbeddedMessage(): EmbeddedMessageInterface;
}
PK�X�[�
+��Nhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

interface BasicMessageInterface extends PartInterface
{
    /**
     * Get raw message headers.
     */
    public function getRawHeaders(): string;

    /**
     * Get the raw message, including all headers, parts, etc. unencoded
and unparsed.
     *
     * @return string the raw message
     */
    public function getRawMessage(): string;

    /**
     * Get message headers.
     */
    public function getHeaders(): Headers;

    /**
     * Get message id.
     *
     * A unique message id in the form <...>
     */
    public function getId(): ?string;

    /**
     * Get message sender (from headers).
     */
    public function getFrom(): ?EmailAddress;

    /**
     * Get To recipients.
     *
     * @return EmailAddress[] Empty array in case message has no To:
recipients
     */
    public function getTo(): array;

    /**
     * Get Cc recipients.
     *
     * @return EmailAddress[] Empty array in case message has no CC:
recipients
     */
    public function getCc(): array;

    /**
     * Get Bcc recipients.
     *
     * @return EmailAddress[] Empty array in case message has no BCC:
recipients
     */
    public function getBcc(): array;

    /**
     * Get Reply-To recipients.
     *
     * @return EmailAddress[] Empty array in case message has no Reply-To:
recipients
     */
    public function getReplyTo(): array;

    /**
     * Get Sender.
     *
     * @return EmailAddress[] Empty array in case message has no Sender:
recipients
     */
    public function getSender(): array;

    /**
     * Get Return-Path.
     *
     * @return EmailAddress[] Empty array in case message has no
Return-Path: recipients
     */
    public function getReturnPath(): array;

    /**
     * Get date (from headers).
     */
    public function getDate(): ?\DateTimeImmutable;

    /**
     * Get message size (from headers).
     *
     * @return null|int|string
     */
    public function getSize();

    /**
     * Get message subject (from headers).
     */
    public function getSubject(): ?string;

    /**
     * Get message In-Reply-To (from headers).
     */
    public function getInReplyTo(): array;

    /**
     * Get message References (from headers).
     */
    public function getReferences(): array;

    /**
     * Get body HTML.
     *
     * @return null|string Null if message has no HTML message part
     */
    public function getBodyHtml(): ?string;

    /**
     * Get body text.
     */
    public function getBodyText(): ?string;

    /**
     * Get attachments (if any) linked to this e-mail.
     *
     * @return AttachmentInterface[]
     */
    public function getAttachments(): array;

    /**
     * Does this message have attachments?
     */
    public function hasAttachments(): bool;
}
PK�X�[u
ڧEhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmailAddress.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

/**
 * An e-mail address.
 */
final class EmailAddress
{
    /**
     * @var string
     */
    private $mailbox;

    /**
     * @var null|string
     */
    private $hostname;

    /**
     * @var null|string
     */
    private $name;

    /**
     * @var null|string
     */
    private $address;

    public function __construct(string $mailbox, string $hostname = null,
string $name = null)
    {
        $this->mailbox  = $mailbox;
        $this->hostname = $hostname;
        $this->name     = $name;

        if (null !== $hostname) {
            $this->address = $mailbox . '@' . $hostname;
        }
    }

    /**
     * @return null|string
     */
    public function getAddress()
    {
        return $this->address;
    }

    /**
     * Returns address with person name.
     */
    public function getFullAddress(): string
    {
        $address = \sprintf('%s@%s', $this->mailbox,
$this->hostname);
        if (null !== $this->name) {
            $address = \sprintf('"%s" <%s>',
\addcslashes($this->name, '"'), $address);
        }

        return $address;
    }

    public function getMailbox(): string
    {
        return $this->mailbox;
    }

    /**
     * @return null|string
     */
    public function getHostname()
    {
        return $this->hostname;
    }

    /**
     * @return null|string
     */
    public function getName()
    {
        return $this->name;
    }
}
PK�X�[���Hhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

final class EmbeddedMessage extends AbstractMessage implements
EmbeddedMessageInterface
{
    /**
     * @var null|Headers
     */
    private $headers;

    /**
     * @var null|string
     */
    private $rawHeaders;

    /**
     * @var null|string
     */
    private $rawMessage;

    /**
     * Get message headers.
     */
    public function getHeaders(): Headers
    {
        if (null === $this->headers) {
            $this->headers = new
Headers(\imap_rfc822_parse_headers($this->getRawHeaders()));
        }

        return $this->headers;
    }

    /**
     * Get raw message headers.
     */
    public function getRawHeaders(): string
    {
        if (null === $this->rawHeaders) {
            $rawHeaders       = \explode("\r\n\r\n",
$this->getRawMessage(), 2);
            $this->rawHeaders = \current($rawHeaders);
        }

        return $this->rawHeaders;
    }

    /**
     * Get the raw message, including all headers, parts, etc. unencoded
and unparsed.
     *
     * @return string the raw message
     */
    public function getRawMessage(): string
    {
        if (null === $this->rawMessage) {
            $this->rawMessage =
$this->doGetContent($this->getPartNumber());
        }

        return $this->rawMessage;
    }

    /**
     * Get content part number.
     */
    protected function getContentPartNumber(): string
    {
        $partNumber = $this->getPartNumber();
        if (0 === \count($this->getParts())) {
            $partNumber .= '.1';
        }

        return $partNumber;
    }
}
PK�X�[��w��Qhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessageInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

interface EmbeddedMessageInterface extends BasicMessageInterface
{
}
PK�X�[�U&t��@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Headers.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

/**
 * Collection of message headers.
 */
final class Headers extends Parameters
{
    /**
     * Constructor.
     */
    public function __construct(\stdClass $headers)
    {
        parent::__construct();

        // Store all headers as lowercase
        $headers = \array_change_key_case((array) $headers);

        foreach ($headers as $key => $value) {
            $this[$key] = $this->parseHeader($key, $value);
        }
    }

    /**
     * Get header.
     *
     * @return mixed
     */
    public function get(string $key)
    {
        return parent::get(\strtolower($key));
    }

    /**
     * Parse header.
     *
     * @param mixed $value
     *
     * @return mixed
     */
    private function parseHeader(string $key, $value)
    {
        switch ($key) {
            case 'msgno':
                return (int) $value;
            case 'from':
            case 'to':
            case 'cc':
            case 'bcc':
            case 'reply_to':
            case 'sender':
            case 'return_path':
                /** @var \stdClass $address */
                foreach ($value as $address) {
                    if (isset($address->mailbox)) {
                        $address->host     = $address->host ?? null;
                        $address->personal =
isset($address->personal) ? $this->decode($address->personal) :
null;
                    }
                }

                return $value;
            case 'date':
            case 'subject':
                return $this->decode($value);
        }

        return $value;
    }
}
PK�X�[W����Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Parameters.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

class Parameters extends \ArrayIterator
{
    /**
     * @var array
     */
    private static $attachmentCustomKeys = [
        'name*'     => 'name',
        'filename*' => 'filename',
    ];

    public function __construct(array $parameters = [])
    {
        parent::__construct();

        $this->add($parameters);
    }

    public function add(array $parameters = []): void
    {
        foreach ($parameters as $parameter) {
            $key = \strtolower($parameter->attribute);
            if (isset(self::$attachmentCustomKeys[$key])) {
                $key = self::$attachmentCustomKeys[$key];
            }
            $value      = $this->decode($parameter->value);
            $this[$key] = $value;
        }
    }

    /**
     * @return mixed
     */
    public function get(string $key)
    {
        return $this[$key] ?? null;
    }

    /**
     * Decode value.
     */
    final protected function decode(string $value): string
    {
        $parts = \imap_mime_header_decode($value);
        if (!\is_array($parts)) {
            return $value;
        }

        $decoded = '';
        foreach ($parts as $part) {
            $text = $part->text;
            if ('default' !== $part->charset) {
                $text = Transcoder::decode($text, $part->charset);
            }
            // RFC2231
            if (1 ===
\preg_match('/^(?<encoding>[^\']+)\'[^\']*?\'(?<urltext>.+)$/',
$text, $matches)) {
                $hasInvalidChars = 1 ===
\preg_match('#[^%a-zA-Z0-9\-_\.\+]#',
$matches['urltext']);
                $hasEscapedChars = 1 ===
\preg_match('#%[a-zA-Z0-9]{2}#', $matches['urltext']);
                if (!$hasInvalidChars && $hasEscapedChars) {
                    $text =
Transcoder::decode(\urldecode($matches['urltext']),
$matches['encoding']);
                }
            }

            $decoded .= $text;
        }

        return $decoded;
    }
}
PK�X�[M�^�

Fhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/PartInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

/**
 * A message part.
 */
interface PartInterface extends \RecursiveIterator
{
    public const TYPE_TEXT          = 'text';
    public const TYPE_MULTIPART     = 'multipart';
    public const TYPE_MESSAGE       = 'message';
    public const TYPE_APPLICATION   = 'application';
    public const TYPE_AUDIO         = 'audio';
    public const TYPE_IMAGE         = 'image';
    public const TYPE_VIDEO         = 'video';
    public const TYPE_MODEL         = 'model';
    public const TYPE_OTHER         = 'other';
    public const TYPE_UNKNOWN       = 'unknown';

    public const ENCODING_7BIT              = '7bit';
    public const ENCODING_8BIT              = '8bit';
    public const ENCODING_BINARY            = 'binary';
    public const ENCODING_BASE64            = 'base64';
    public const ENCODING_QUOTED_PRINTABLE  =
'quoted-printable';
    public const ENCODING_UNKNOWN           = 'unknown';

    public const SUBTYPE_PLAIN  = 'PLAIN';
    public const SUBTYPE_HTML   = 'HTML';
    public const SUBTYPE_RFC822 = 'RFC822';

    /**
     * Get message number (from headers).
     */
    public function getNumber(): int;

    /**
     * Part charset.
     */
    public function getCharset(): ?string;

    /**
     * Part type.
     */
    public function getType(): ?string;

    /**
     * Part subtype.
     */
    public function getSubtype(): ?string;

    /**
     * Part encoding.
     */
    public function getEncoding(): ?string;

    /**
     * Part disposition.
     */
    public function getDisposition(): ?string;

    /**
     * Part description.
     */
    public function getDescription(): ?string;

    /**
     * Part bytes.
     *
     * @return null|int|string
     */
    public function getBytes();

    /**
     * Part lines.
     */
    public function getLines(): ?string;

    /**
     * Part parameters.
     */
    public function getParameters(): Parameters;

    /**
     * Get raw part content.
     */
    public function getContent(): string;

    /**
     * Get decoded part content.
     */
    public function getDecodedContent(): string;

    /**
     * Part structure.
     */
    public function getStructure(): \stdClass;

    /**
     * Get part number.
     */
    public function getPartNumber(): string;

    /**
     * Get an array of all parts for this message.
     *
     * @return PartInterface[]
     */
    public function getParts(): array;
}
PK�X�[̇�g��Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/SimplePart.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

/**
 * A message part.
 */
final class SimplePart extends AbstractPart
{
}
PK�X�[4���<�<Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Transcoder.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Message;

use Ddeboer\Imap\Exception\UnsupportedCharsetException;

final class Transcoder
{
    /**
     * @var array
     *
     * @see https://encoding.spec.whatwg.org/#encodings
     * @see
https://dxr.mozilla.org/mozilla-central/source/dom/encoding/labelsencodings.properties
     * @see
https://dxr.mozilla.org/mozilla1.9.1/source/intl/uconv/src/charsetalias.properties
     * @see https://msdn.microsoft.com/en-us/library/cc194829.aspx
     */
    private static $charsetAliases = [
        '128'                       => 'Shift_JIS',
        '129'                       => 'EUC-KR',
        '134'                       => 'GB2312',
        '136'                       => 'Big5',
        '161'                       =>
'windows-1253',
        '162'                       =>
'windows-1254',
        '177'                       =>
'windows-1255',
        '178'                       =>
'windows-1256',
        '186'                       =>
'windows-1257',
        '204'                       =>
'windows-1251',
        '222'                       =>
'windows-874',
        '238'                       =>
'windows-1250',
        '5601'                      => 'EUC-KR',
        '646'                       => 'us-ascii',
        '850'                       => 'IBM850',
        '852'                       => 'IBM852',
        '855'                       => 'IBM855',
        '857'                       => 'IBM857',
        '862'                       => 'IBM862',
        '864'                       => 'IBM864',
        '864i'                      => 'IBM864i',
        '866'                       => 'IBM866',
        'ansi-1251'                 =>
'windows-1251',
        'ansi_x3.4-1968'            => 'us-ascii',
        'arabic'                    =>
'ISO-8859-6',
        'ascii'                     => 'us-ascii',
        'asmo-708'                  =>
'ISO-8859-6',
        'big5-hkscs'                => 'Big5',
        'chinese'                   => 'GB2312',
        'cn-big5'                   => 'Big5',
        'cns11643'                  => 'x-euc-tw',
        'cp-866'                    => 'IBM866',
        'cp1250'                    =>
'windows-1250',
        'cp1251'                    =>
'windows-1251',
        'cp1252'                    =>
'windows-1252',
        'cp1253'                    =>
'windows-1253',
        'cp1254'                    =>
'windows-1254',
        'cp1255'                    =>
'windows-1255',
        'cp1256'                    =>
'windows-1256',
        'cp1257'                    =>
'windows-1257',
        'cp1258'                    =>
'windows-1258',
        'cp819'                     =>
'ISO-8859-1',
        'cp850'                     => 'IBM850',
        'cp852'                     => 'IBM852',
        'cp855'                     => 'IBM855',
        'cp857'                     => 'IBM857',
        'cp862'                     => 'IBM862',
        'cp864'                     => 'IBM864',
        'cp864i'                    => 'IBM864i',
        'cp866'                     => 'IBM866',
        'cp932'                     => 'Shift_JIS',
        'csbig5'                    => 'Big5',
        'cseucjpkdfmtjapanese'      => 'EUC-JP',
        'cseuckr'                   => 'EUC-KR',
        'cseucpkdfmtjapanese'       => 'EUC-JP',
        'csgb2312'                  => 'GB2312',
        'csibm850'                  => 'IBM850',
        'csibm852'                  => 'IBM852',
        'csibm855'                  => 'IBM855',
        'csibm857'                  => 'IBM857',
        'csibm862'                  => 'IBM862',
        'csibm864'                  => 'IBM864',
        'csibm864i'                 => 'IBM864i',
        'csibm866'                  => 'IBM866',
        'csiso103t618bit'           => 'T.61-8bit',
        'csiso111ecmacyrillic'      =>
'ISO-IR-111',
        'csiso2022jp'               =>
'ISO-2022-JP',
        'csiso2022jp2'              =>
'ISO-2022-JP',
        'csiso2022kr'               =>
'ISO-2022-KR',
        'csiso58gb231280'           => 'GB2312',
        'csiso88596e'               =>
'ISO-8859-6-E',
        'csiso88596i'               =>
'ISO-8859-6-I',
        'csiso88598e'               =>
'ISO-8859-8-E',
        'csiso88598i'               =>
'ISO-8859-8-I',
        'csisolatin1'               =>
'ISO-8859-1',
        'csisolatin2'               =>
'ISO-8859-2',
        'csisolatin3'               =>
'ISO-8859-3',
        'csisolatin4'               =>
'ISO-8859-4',
        'csisolatin5'               =>
'ISO-8859-9',
        'csisolatin6'               =>
'ISO-8859-10',
        'csisolatin9'               =>
'ISO-8859-15',
        'csisolatinarabic'          =>
'ISO-8859-6',
        'csisolatincyrillic'        =>
'ISO-8859-5',
        'csisolatingreek'           =>
'ISO-8859-7',
        'csisolatinhebrew'          =>
'ISO-8859-8',
        'cskoi8r'                   => 'KOI8-R',
        'csksc56011987'             => 'EUC-KR',
        'csmacintosh'               =>
'x-mac-roman',
        'csshiftjis'                => 'Shift_JIS',
        'csueckr'                   => 'EUC-KR',
        'csunicode'                 => 'UTF-16BE',
        'csunicode11'               => 'UTF-16BE',
        'csunicode11utf7'           => 'UTF-7',
        'csunicodeascii'            => 'UTF-16BE',
        'csunicodelatin1'           => 'UTF-16BE',
        'csviqr'                    => 'VIQR',
        'csviscii'                  => 'VISCII',
        'cyrillic'                  =>
'ISO-8859-5',
        'dos-874'                   =>
'windows-874',
        'ecma-114'                  =>
'ISO-8859-6',
        'ecma-118'                  =>
'ISO-8859-7',
        'ecma-cyrillic'             =>
'ISO-IR-111',
        'elot_928'                  =>
'ISO-8859-7',
        'gb_2312'                   => 'GB2312',
        'gb_2312-80'                => 'GB2312',
        'greek'                     =>
'ISO-8859-7',
        'greek8'                    =>
'ISO-8859-7',
        'hebrew'                    =>
'ISO-8859-8',
        'ibm-864'                   => 'IBM864',
        'ibm-864i'                  => 'IBM864i',
        'ibm819'                    =>
'ISO-8859-1',
        'ibm874'                    =>
'windows-874',
        'iso-10646'                 => 'UTF-16BE',
        'iso-10646-j-1'             => 'UTF-16BE',
        'iso-10646-ucs-2'           => 'UTF-16BE',
        'iso-10646-ucs-4'           => 'UTF-32BE',
        'iso-10646-ucs-basic'       => 'UTF-16BE',
        'iso-10646-unicode-latin1'  => 'UTF-16BE',
        'iso-2022-cn-ext'           =>
'ISO-2022-CN',
        'iso-2022-jp-2'             =>
'ISO-2022-JP',
        'iso-8859-8i'               =>
'ISO-8859-8-I',
        'iso-ir-100'                =>
'ISO-8859-1',
        'iso-ir-101'                =>
'ISO-8859-2',
        'iso-ir-103'                => 'T.61-8bit',
        'iso-ir-109'                =>
'ISO-8859-3',
        'iso-ir-110'                =>
'ISO-8859-4',
        'iso-ir-126'                =>
'ISO-8859-7',
        'iso-ir-127'                =>
'ISO-8859-6',
        'iso-ir-138'                =>
'ISO-8859-8',
        'iso-ir-144'                =>
'ISO-8859-5',
        'iso-ir-148'                =>
'ISO-8859-9',
        'iso-ir-149'                => 'EUC-KR',
        'iso-ir-157'                =>
'ISO-8859-10',
        'iso-ir-58'                 => 'GB2312',
        'iso8859-1'                 =>
'ISO-8859-1',
        'iso8859-10'                =>
'ISO-8859-10',
        'iso8859-11'                =>
'ISO-8859-11',
        'iso8859-13'                =>
'ISO-8859-13',
        'iso8859-14'                =>
'ISO-8859-14',
        'iso8859-15'                =>
'ISO-8859-15',
        'iso8859-2'                 =>
'ISO-8859-2',
        'iso8859-3'                 =>
'ISO-8859-3',
        'iso8859-4'                 =>
'ISO-8859-4',
        'iso8859-5'                 =>
'ISO-8859-5',
        'iso8859-6'                 =>
'ISO-8859-6',
        'iso8859-7'                 =>
'ISO-8859-7',
        'iso8859-8'                 =>
'ISO-8859-8',
        'iso8859-9'                 =>
'ISO-8859-9',
        'iso88591'                  =>
'ISO-8859-1',
        'iso885910'                 =>
'ISO-8859-10',
        'iso885911'                 =>
'ISO-8859-11',
        'iso885912'                 =>
'ISO-8859-12',
        'iso885913'                 =>
'ISO-8859-13',
        'iso885914'                 =>
'ISO-8859-14',
        'iso885915'                 =>
'ISO-8859-15',
        'iso88592'                  =>
'ISO-8859-2',
        'iso88593'                  =>
'ISO-8859-3',
        'iso88594'                  =>
'ISO-8859-4',
        'iso88595'                  =>
'ISO-8859-5',
        'iso88596'                  =>
'ISO-8859-6',
        'iso88597'                  =>
'ISO-8859-7',
        'iso88598'                  =>
'ISO-8859-8',
        'iso88599'                  =>
'ISO-8859-9',
        'iso_8859-1'                =>
'ISO-8859-1',
        'iso_8859-15'               =>
'ISO-8859-15',
        'iso_8859-1:1987'           =>
'ISO-8859-1',
        'iso_8859-2'                =>
'ISO-8859-2',
        'iso_8859-2:1987'           =>
'ISO-8859-2',
        'iso_8859-3'                =>
'ISO-8859-3',
        'iso_8859-3:1988'           =>
'ISO-8859-3',
        'iso_8859-4'                =>
'ISO-8859-4',
        'iso_8859-4:1988'           =>
'ISO-8859-4',
        'iso_8859-5'                =>
'ISO-8859-5',
        'iso_8859-5:1988'           =>
'ISO-8859-5',
        'iso_8859-6'                =>
'ISO-8859-6',
        'iso_8859-6:1987'           =>
'ISO-8859-6',
        'iso_8859-7'                =>
'ISO-8859-7',
        'iso_8859-7:1987'           =>
'ISO-8859-7',
        'iso_8859-8'                =>
'ISO-8859-8',
        'iso_8859-8:1988'           =>
'ISO-8859-8',
        'iso_8859-9'                =>
'ISO-8859-9',
        'iso_8859-9:1989'           =>
'ISO-8859-9',
        'koi'                       => 'KOI8-R',
        'koi8'                      => 'KOI8-R',
        'koi8-ru'                   => 'KOI8-U',
        'koi8_r'                    => 'KOI8-R',
        'korean'                    => 'EUC-KR',
        'ks_c_5601-1987'            => 'EUC-KR',
        'ks_c_5601-1989'            => 'EUC-KR',
        'ksc5601'                   => 'EUC-KR',
        'ksc_5601'                  => 'EUC-KR',
        'l1'                        =>
'ISO-8859-1',
        'l2'                        =>
'ISO-8859-2',
        'l3'                        =>
'ISO-8859-3',
        'l4'                        =>
'ISO-8859-4',
        'l5'                        =>
'ISO-8859-9',
        'l6'                        =>
'ISO-8859-10',
        'l9'                        =>
'ISO-8859-15',
        'latin1'                    =>
'ISO-8859-1',
        'latin2'                    =>
'ISO-8859-2',
        'latin3'                    =>
'ISO-8859-3',
        'latin4'                    =>
'ISO-8859-4',
        'latin5'                    =>
'ISO-8859-9',
        'latin6'                    =>
'ISO-8859-10',
        'logical'                   =>
'ISO-8859-8-I',
        'mac'                       =>
'x-mac-roman',
        'macintosh'                 =>
'x-mac-roman',
        'ms932'                     => 'Shift_JIS',
        'ms_kanji'                  => 'Shift_JIS',
        'shift-jis'                 => 'Shift_JIS',
        'sjis'                      => 'Shift_JIS',
        'sun_eu_greek'              =>
'ISO-8859-7',
        't.61'                      => 'T.61-8bit',
        'tis620'                    => 'TIS-620',
        'unicode-1-1-utf-7'         => 'UTF-7',
        'unicode-1-1-utf-8'         => 'UTF-8',
        'unicode-2-0-utf-7'         => 'UTF-7',
        'visual'                    =>
'ISO-8859-8',
        'windows-31j'               => 'Shift_JIS',
        'windows-949'               => 'EUC-KR',
        'x-cp1250'                  =>
'windows-1250',
        'x-cp1251'                  =>
'windows-1251',
        'x-cp1252'                  =>
'windows-1252',
        'x-cp1253'                  =>
'windows-1253',
        'x-cp1254'                  =>
'windows-1254',
        'x-cp1255'                  =>
'windows-1255',
        'x-cp1256'                  =>
'windows-1256',
        'x-cp1257'                  =>
'windows-1257',
        'x-cp1258'                  =>
'windows-1258',
        'x-euc-jp'                  => 'EUC-JP',
        'x-gbk'                     => 'gbk',
        'x-iso-10646-ucs-2-be'      => 'UTF-16BE',
        'x-iso-10646-ucs-2-le'      => 'UTF-16LE',
        'x-iso-10646-ucs-4-be'      => 'UTF-32BE',
        'x-iso-10646-ucs-4-le'      => 'UTF-32LE',
        'x-sjis'                    => 'Shift_JIS',
        'x-unicode-2-0-utf-7'       => 'UTF-7',
        'x-x-big5'                  => 'Big5',
        'zh_cn.euc'                 => 'GB2312',
        'zh_tw-big5'                => 'Big5',
        'zh_tw-euc'                 => 'x-euc-tw',
    ];

    /**
     * Decode text to UTF-8.
     *
     * @param string $text        Text to decode
     * @param string $fromCharset Original charset
     */
    public static function decode(string $text, string $fromCharset):
string
    {
        static $utf8Aliases = [
            'unicode-1-1-utf-8' => true,
            'utf8'              => true,
            'utf-8'             => true,
            'UTF8'              => true,
            'UTF-8'             => true,
        ];

        if (isset($utf8Aliases[$fromCharset])) {
            return $text;
        }

        $originalFromCharset  = $fromCharset;
        $lowercaseFromCharset = \strtolower($fromCharset);
        if (isset(self::$charsetAliases[$lowercaseFromCharset])) {
            $fromCharset = self::$charsetAliases[$lowercaseFromCharset];
        }

        \set_error_handler(static function (): bool {
            return true;
        });

        $iconvDecodedText = \iconv($fromCharset, 'UTF-8',
$text);
        if (false === $iconvDecodedText) {
            $iconvDecodedText = \iconv($originalFromCharset,
'UTF-8', $text);
        }

        \restore_error_handler();

        if (false !== $iconvDecodedText) {
            return $iconvDecodedText;
        }

        $errorMessage = null;
        $errorNumber  = 0;
        \set_error_handler(static function ($nr, $message) use
(&$errorMessage, &$errorNumber): bool {
            $errorMessage = $message;
            $errorNumber = $nr;

            return true;
        });

        $decodedText = '';

        try {
            $decodedText = \mb_convert_encoding($text, 'UTF-8',
$fromCharset);
        } catch (\Error $error) {
            $errorMessage = $error->getMessage();
        }

        \restore_error_handler();

        if (null !== $errorMessage) {
            throw new UnsupportedCharsetException(\sprintf(
                'Unsupported charset "%s"%s: %s',
                $originalFromCharset,
                ($fromCharset !== $originalFromCharset) ? \sprintf('
(alias found: "%s")', $fromCharset) : '',
                $errorMessage
            ), $errorNumber);
        }

        return $decodedText;
    }
}
PK�X�[h"��E'E'8hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use Ddeboer\Imap\Exception\ImapFetchheaderException;
use Ddeboer\Imap\Exception\InvalidHeadersException;
use Ddeboer\Imap\Exception\MessageCopyException;
use Ddeboer\Imap\Exception\MessageDeleteException;
use Ddeboer\Imap\Exception\MessageDoesNotExistException;
use Ddeboer\Imap\Exception\MessageMoveException;
use Ddeboer\Imap\Exception\MessageStructureException;
use Ddeboer\Imap\Exception\MessageUndeleteException;

/**
 * An IMAP message (e-mail).
 */
final class Message extends Message\AbstractMessage implements
MessageInterface
{
    /**
     * @var bool
     */
    private $messageNumberVerified = false;

    /**
     * @var int
     */
    private $imapMsgNo = 0;

    /**
     * @var bool
     */
    private $structureLoaded = false;

    /**
     * @var null|Message\Headers
     */
    private $headers;

    /**
     * @var null|string
     */
    private $rawHeaders;

    /**
     * @var null|string
     */
    private $rawMessage;

    /**
     * Constructor.
     *
     * @param ImapResourceInterface $resource      IMAP resource
     * @param int                   $messageNumber Message number
     */
    public function __construct(ImapResourceInterface $resource, int
$messageNumber)
    {
        parent::__construct($resource, $messageNumber, '1', new
\stdClass());
    }

    /**
     * Lazy load structure.
     */
    protected function lazyLoadStructure(): void
    {
        if (true === $this->structureLoaded) {
            return;
        }
        $this->structureLoaded = true;

        $messageNumber = $this->getNumber();

        $errorMessage = null;
        $errorNumber  = 0;
        \set_error_handler(static function ($nr, $message) use
(&$errorMessage, &$errorNumber): bool {
            $errorMessage = $message;
            $errorNumber = $nr;

            return true;
        });

        $structure = \imap_fetchstructure(
            $this->resource->getStream(),
            $messageNumber,
            \FT_UID
        );

        \restore_error_handler();

        if (!$structure instanceof \stdClass) {
            throw new MessageStructureException(\sprintf(
                'Message "%s" structure is empty: %s',
                $messageNumber,
                $errorMessage
            ), $errorNumber);
        }

        $this->setStructure($structure);
    }

    /**
     * Ensure message exists.
     */
    protected function assertMessageExists(int $messageNumber): void
    {
        if (true === $this->messageNumberVerified) {
            return;
        }
        $this->messageNumberVerified = true;

        $msgno = null;
        \set_error_handler(static function (): bool {
            return true;
        });

        $msgno = \imap_msgno($this->resource->getStream(),
$messageNumber);

        \restore_error_handler();

        if (\is_numeric($msgno) && $msgno > 0) {
            $this->imapMsgNo = $msgno;

            return;
        }

        throw new MessageDoesNotExistException(\sprintf(
            'Message "%s" does not exist',
            $messageNumber
        ));
    }

    private function getMsgNo(): int
    {
        // Triggers assertMessageExists()
        $this->getNumber();

        return $this->imapMsgNo;
    }

    /**
     * Get raw message headers.
     */
    public function getRawHeaders(): string
    {
        if (null === $this->rawHeaders) {
            $rawHeaders =
\imap_fetchheader($this->resource->getStream(),
$this->getNumber(), \FT_UID);

            if (false === $rawHeaders) {
                throw new ImapFetchheaderException('imap_fetchheader
failed');
            }

            $this->rawHeaders = $rawHeaders;
        }

        return $this->rawHeaders;
    }

    /**
     * Get the raw message, including all headers, parts, etc. unencoded
and unparsed.
     *
     * @return string the raw message
     */
    public function getRawMessage(): string
    {
        if (null === $this->rawMessage) {
            $this->rawMessage = $this->doGetContent('');
        }

        return $this->rawMessage;
    }

    /**
     * Get message headers.
     */
    public function getHeaders(): Message\Headers
    {
        if (null === $this->headers) {
            // imap_headerinfo is much faster than imap_fetchheader
            // imap_headerinfo returns only a subset of all mail headers,
            // but it does include the message flags.
            $headers = \imap_headerinfo($this->resource->getStream(),
$this->getMsgNo());
            if (false === $headers) {
                // @see https://github.com/ddeboer/imap/issues/358
                throw new InvalidHeadersException(\sprintf('Message
"%s" has invalid headers', $this->getNumber()));
            }
            $this->headers = new Message\Headers($headers);
        }

        return $this->headers;
    }

    /**
     * Clearmessage headers.
     */
    private function clearHeaders(): void
    {
        $this->headers = null;
    }

    /**
     * Get message recent flag value (from headers).
     */
    public function isRecent(): ?string
    {
        return $this->getHeaders()->get('recent');
    }

    /**
     * Get message unseen flag value (from headers).
     */
    public function isUnseen(): bool
    {
        return 'U' ===
$this->getHeaders()->get('unseen');
    }

    /**
     * Get message flagged flag value (from headers).
     */
    public function isFlagged(): bool
    {
        return 'F' ===
$this->getHeaders()->get('flagged');
    }

    /**
     * Get message answered flag value (from headers).
     */
    public function isAnswered(): bool
    {
        return 'A' ===
$this->getHeaders()->get('answered');
    }

    /**
     * Get message deleted flag value (from headers).
     */
    public function isDeleted(): bool
    {
        return 'D' ===
$this->getHeaders()->get('deleted');
    }

    /**
     * Get message draft flag value (from headers).
     */
    public function isDraft(): bool
    {
        return 'X' ===
$this->getHeaders()->get('draft');
    }

    /**
     * Has the message been marked as read?
     */
    public function isSeen(): bool
    {
        return 'N' !==
$this->getHeaders()->get('recent') && 'U'
!== $this->getHeaders()->get('unseen');
    }

    /**
     * Mark message as seen.
     *
     * @deprecated since version 1.1, to be removed in 2.0
     */
    public function maskAsSeen(): bool
    {
        \trigger_error(\sprintf('%s is deprecated and will be removed
in 2.0. Use %s::markAsSeen instead.', __METHOD__, __CLASS__),
\E_USER_DEPRECATED);

        return $this->markAsSeen();
    }

    /**
     * Mark message as seen.
     */
    public function markAsSeen(): bool
    {
        return $this->setFlag('\\Seen');
    }

    /**
     * Move message to another mailbox.
     *
     * @throws MessageCopyException
     */
    public function copy(MailboxInterface $mailbox): void
    {
        // 'deleted' header changed, force to reload headers,
would be better to set deleted flag to true on header
        $this->clearHeaders();

        if (!\imap_mail_copy($this->resource->getStream(), (string)
$this->getNumber(), $mailbox->getEncodedName(), \CP_UID)) {
            throw new MessageCopyException(\sprintf('Message
"%s" cannot be copied to "%s"',
$this->getNumber(), $mailbox->getName()));
        }
    }

    /**
     * Move message to another mailbox.
     *
     * @throws MessageMoveException
     */
    public function move(MailboxInterface $mailbox): void
    {
        // 'deleted' header changed, force to reload headers,
would be better to set deleted flag to true on header
        $this->clearHeaders();

        if (!\imap_mail_move($this->resource->getStream(), (string)
$this->getNumber(), $mailbox->getEncodedName(), \CP_UID)) {
            throw new MessageMoveException(\sprintf('Message
"%s" cannot be moved to "%s"',
$this->getNumber(), $mailbox->getName()));
        }
    }

    /**
     * Delete message.
     *
     * @throws MessageDeleteException
     */
    public function delete(): void
    {
        // 'deleted' header changed, force to reload headers,
would be better to set deleted flag to true on header
        $this->clearHeaders();

        if (!\imap_delete($this->resource->getStream(), (string)
$this->getNumber(), \FT_UID)) {
            throw new MessageDeleteException(\sprintf('Message
"%s" cannot be deleted', $this->getNumber()));
        }
    }

    /**
     * Undelete message.
     *
     * @throws MessageUndeleteException
     */
    public function undelete(): void
    {
        // 'deleted' header changed, force to reload headers,
would be better to set deleted flag to false on header
        $this->clearHeaders();
        if (!\imap_undelete($this->resource->getStream(), (string)
$this->getNumber(), \FT_UID)) {
            throw new MessageUndeleteException(\sprintf('Message
"%s" cannot be undeleted', $this->getNumber()));
        }
    }

    /**
     * Set Flag Message.
     *
     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and
\Draft
     */
    public function setFlag(string $flag): bool
    {
        $result = \imap_setflag_full($this->resource->getStream(),
(string) $this->getNumber(), $flag, \ST_UID);

        $this->clearHeaders();

        return $result;
    }

    /**
     * Clear Flag Message.
     *
     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and
\Draft
     */
    public function clearFlag(string $flag): bool
    {
        $result = \imap_clearflag_full($this->resource->getStream(),
(string) $this->getNumber(), $flag, \ST_UID);

        $this->clearHeaders();

        return $result;
    }
}
PK�X�[���F 
Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

/**
 * An IMAP message (e-mail).
 */
interface MessageInterface extends Message\BasicMessageInterface
{
    /**
     * Get raw part content.
     */
    public function getContent(): string;

    /**
     * Get message recent flag value (from headers).
     */
    public function isRecent(): ?string;

    /**
     * Get message unseen flag value (from headers).
     */
    public function isUnseen(): bool;

    /**
     * Get message flagged flag value (from headers).
     */
    public function isFlagged(): bool;

    /**
     * Get message answered flag value (from headers).
     */
    public function isAnswered(): bool;

    /**
     * Get message deleted flag value (from headers).
     */
    public function isDeleted(): bool;

    /**
     * Get message draft flag value (from headers).
     */
    public function isDraft(): bool;

    /**
     * Has the message been marked as read?
     */
    public function isSeen(): bool;

    /**
     * Mark message as seen.
     *
     * @deprecated since version 1.1, to be removed in 2.0
     */
    public function maskAsSeen(): bool;

    /**
     * Mark message as seen.
     */
    public function markAsSeen(): bool;

    /**
     * Move message to another mailbox.
     */
    public function copy(MailboxInterface $mailbox): void;

    /**
     * Move message to another mailbox.
     */
    public function move(MailboxInterface $mailbox): void;

    /**
     * Delete message.
     */
    public function delete(): void;

    /**
     * Undelete message.
     */
    public function undelete(): void;

    /**
     * Set Flag Message.
     *
     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and
\Draft
     */
    public function setFlag(string $flag): bool;

    /**
     * Clear Flag Message.
     *
     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and
\Draft
     */
    public function clearFlag(string $flag): bool;
}
PK�X�[��ĵFF@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageIterator.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

final class MessageIterator extends \ArrayIterator implements
MessageIteratorInterface
{
    /**
     * @var ImapResourceInterface
     */
    private $resource;

    /**
     * Constructor.
     *
     * @param ImapResourceInterface $resource       IMAP resource
     * @param array                 $messageNumbers Array of message
numbers
     */
    public function __construct(ImapResourceInterface $resource, array
$messageNumbers)
    {
        $this->resource = $resource;

        parent::__construct($messageNumbers);
    }

    /**
     * Get current message.
     */
    public function current(): MessageInterface
    {
        $current = parent::current();
        if (!\is_int($current)) {
            throw new Exception\OutOfBoundsException(\sprintf(
                'The current value "%s" isn\'t an
integer and doesn\'t represent a message;'
                . ' try to cycle this "%s" with a native php
function like foreach or with the method getArrayCopy(),'
                . ' or check it by calling the methods
valid().',
                \is_object($current) ? \get_class($current) :
\gettype($current),
                static::class
            ));
        }

        return new Message($this->resource, $current);
    }
}
PK�X�[��٪��Ihdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

interface MessageIteratorInterface extends \Iterator
{
    /**
     * Get current message.
     */
    public function current(): MessageInterface;
}
PK�X�[۶1�Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/AbstractDate.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search;

use DateTimeInterface;

/**
 * Represents a date condition.
 */
abstract class AbstractDate implements ConditionInterface
{
    /**
     * Format for dates to be sent to the IMAP server.
     *
     * @var string
     */
    private $dateFormat;

    /**
     * The date to be used for the condition.
     *
     * @var DateTimeInterface
     */
    private $date;

    /**
     * Constructor.
     *
     * @param DateTimeInterface $date optional date for the condition
     */
    public function __construct(DateTimeInterface $date, string $dateFormat
= 'j-M-Y')
    {
        $this->date       = $date;
        $this->dateFormat = $dateFormat;
    }

    /**
     * Converts the condition to a string that can be sent to the IMAP
server.
     */
    final public function toString(): string
    {
        return \sprintf('%s "%s"',
$this->getKeyword(), $this->date->format($this->dateFormat));
    }

    /**
     * Returns the keyword that the condition represents.
     */
    abstract protected function getKeyword(): string;
}
PK�X�[)g��Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/AbstractText.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search;

/**
 * Represents a text based condition. Text based conditions use a contains
 * restriction.
 */
abstract class AbstractText implements ConditionInterface
{
    /**
     * Text to be used for the condition.
     *
     * @var string
     */
    private $text;

    /**
     * Constructor.
     *
     * @param string $text optional text for the condition
     */
    public function __construct(string $text)
    {
        $this->text = $text;
    }

    /**
     * Converts the condition to a string that can be sent to the IMAP
server.
     */
    final public function toString(): string
    {
        return \sprintf('%s "%s"',
$this->getKeyword(), $this->text);
    }

    /**
     * Returns the keyword that the condition represents.
     */
    abstract protected function getKeyword(): string;
}
PK�X�[6tDDJhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/ConditionInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search;

/**
 * Represents a condition that can be used in a search expression.
 */
interface ConditionInterface
{
    /**
     * Converts the condition to a string that can be sent to the IMAP
server.
     */
    public function toString(): string;
}
PK�X�[&��\��Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/Before.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Date;

use Ddeboer\Imap\Search\AbstractDate;

/**
 * Represents a date before condition. Messages must have a date before
the
 * specified date in order to match the condition.
 */
final class Before extends AbstractDate
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'BEFORE';
    }
}
PK�X�[U��W��?hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/On.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Date;

use Ddeboer\Imap\Search\AbstractDate;

/**
 * Represents a date on condition. Messages must have a date matching the
 * specified date in order to match the condition.
 */
final class On extends AbstractDate
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'ON';
    }
}
PK�X�[�䷅��Bhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/Since.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Date;

use Ddeboer\Imap\Search\AbstractDate;

/**
 * Represents a date after condition. Messages must have a date after the
 * specified date in order to match the condition.
 */
final class Since extends AbstractDate
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'SINCE';
    }
}
PK�X�[��i
��Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/Bcc.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Email;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a "Bcc" email address condition. Messages must have
been addressed
 * to the specified recipient (along with any others) in order to match
the
 * condition.
 */
final class Bcc extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'BCC';
    }
}
PK�X�[�G���@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/Cc.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Email;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a "Cc" email address condition. Messages must have
been addressed
 * to the specified recipient (along with any others) in order to match
the
 * condition.
 */
final class Cc extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'CC';
    }
}
PK�X�[��|���Bhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/From.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Email;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a "From" email address condition. Messages must
have been sent
 * from the specified email address in order to match the condition.
 */
final class From extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'FROM';
    }
}
PK�X�[oV���@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/To.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Email;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a "To" email address condition. Messages must have
been addressed
 * to the specified recipient (along with any others) in order to match
the
 * condition.
 */
final class To extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'TO';
    }
}
PK�X�[�Ԍ��Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Answered.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an ANSWERED flag condition. Messages must have the \\ANSWERED
flag
 * set in order to match the condition.
 */
final class Answered implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'ANSWERED';
    }
}
PK�X�[�h���Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Flagged.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents a FLAGGED flag condition. Messages must have the \\FLAGGED
flag
 * (i.e. urgent or important) set in order to match the condition.
 */
final class Flagged implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'FLAGGED';
    }
}
PK�X�[IC���Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Recent.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an RECENT flag condition. Messages must have the \\RECENT
flag
 * set in order to match the condition.
 */
final class Recent implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'RECENT';
    }
}
PK�X�[��KJ��Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Seen.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an SEEN flag condition. Messages must have the \\SEEN flag
 * set in order to match the condition.
 */
final class Seen implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'SEEN';
    }
}
PK�X�[�dq���Ghdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unanswered.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an UNANSWERED flag condition. Messages must not have the
 * \\ANSWERED flag set in order to match the condition.
 */
final class Unanswered implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'UNANSWERED';
    }
}
PK�X�[������Fhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unflagged.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents a UNFLAGGED flag condition. Messages must no have the
\\FLAGGED
 * flag (i.e. urgent or important) set in order to match the condition.
 */
final class Unflagged implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'UNFLAGGED';
    }
}
PK�X�[�ȕS��Chdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unseen.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Flag;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an UNSEEN flag condition. Messages must not have the \\SEEN
flag
 * set in order to match the condition.
 */
final class Unseen implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'UNSEEN';
    }
}
PK�X�[/J���Khdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/All.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\LogicalOperator;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an ALL operator. Messages must match all conditions following
this
 * operator in order to match the expression.
 */
final class All implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'ALL';
    }
}
PK�X�[��Thdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\LogicalOperator;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an OR operator. Messages only need to match one of the
conditions
 * after this operator to match the expression.
 */
final class OrConditions implements ConditionInterface
{
    /**
     * The conditions that together represent the expression.
     *
     * @var array
     */
    private $conditions = [];

    public function __construct(array $conditions)
    {
        foreach ($conditions as $condition) {
            $this->addCondition($condition);
        }
    }

    /**
     * Adds a new condition to the expression.
     *
     * @param ConditionInterface $condition the condition to be added
     */
    private function addCondition(ConditionInterface $condition)
    {
        $this->conditions[] = $condition;
    }

    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        $conditions = \array_map(static function (ConditionInterface
$condition): string {
            return $condition->toString();
        }, $this->conditions);

        return \sprintf('( %s )', \implode(' OR ',
$conditions));
    }
}
PK�X�[���99Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/RawExpression.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search;

/**
 * Represents a raw expression.
 */
final class RawExpression implements ConditionInterface
{
    /**
     * Text to be used for the condition.
     *
     * @var string
     */
    private $expression;

    /**
     * @param string $expression text for the condition
     */
    public function __construct(string $expression)
    {
        $this->expression = $expression;
    }

    public function toString(): string
    {
        return $this->expression;
    }
}
PK�X�[!����Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Deleted.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\State;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents a DELETED condition. Messages must have been marked for
deletion
 * but not yet expunged in order to match the condition.
 */
final class Deleted implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'DELETED';
    }
}
PK�X�[,�嵩�Hhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/NewMessage.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\State;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents a NEW condition. Only new messages will match this
condition.
 */
final class NewMessage implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'NEW';
    }
}
PK�X�[����Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Old.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\State;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents an OLD condition. Only old messages will match this
condition.
 */
final class Old implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'OLD';
    }
}
PK�X�[�^
��Ghdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Undeleted.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\State;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Represents a UNDELETED condition. Messages must not have been marked
for
 * deletion in order to match the condition.
 */
final class Undeleted implements ConditionInterface
{
    /**
     * Returns the keyword that the condition represents.
     */
    public function toString(): string
    {
        return 'UNDELETED';
    }
}
PK�X�[��^��Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Body.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Text;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a body text contains condition. Messages must have a body
 * containing the specified text in order to match the condition.
 */
final class Body extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'BODY';
    }
}
PK�X�[�9���Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Keyword.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Text;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a keyword text contains condition. Messages must have a
keyword
 * matching the specified text in order to match the condition.
 */
final class Keyword extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'KEYWORD';
    }
}
PK�X�[iY5���Dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Subject.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Text;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a subject contains condition. Messages must have a subject
 * containing the specified text in order to match the condition.
 */
final class Subject extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'SUBJECT';
    }
}
PK�X�[,���Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Text.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Text;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a message text contains condition. Messages must contain the
 * specified text in order to match the condition.
 */
final class Text extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'TEXT';
    }
}
PK�X�[`5���Fhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Unkeyword.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Search\Text;

use Ddeboer\Imap\Search\AbstractText;

/**
 * Represents a keyword text does not contain condition. Messages must not
have
 * a keyword matching the specified text in order to match the condition.
 */
final class Unkeyword extends AbstractText
{
    /**
     * Returns the keyword that the condition represents.
     */
    protected function getKeyword(): string
    {
        return 'UNKEYWORD';
    }
}
PK�X�[2�{//Ahdpreplyviaemail/lib/vendor/ddeboer/imap/src/SearchExpression.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use Ddeboer\Imap\Search\ConditionInterface;

/**
 * Defines a search expression that can be used to look up email messages.
 */
final class SearchExpression implements ConditionInterface
{
    /**
     * The conditions that together represent the expression.
     *
     * @var array
     */
    private $conditions = [];

    /**
     * Adds a new condition to the expression.
     *
     * @param ConditionInterface $condition the condition to be added
     */
    public function addCondition(ConditionInterface $condition): self
    {
        $this->conditions[] = $condition;

        return $this;
    }

    /**
     * Converts the expression to a string that can be sent to the IMAP
server.
     */
    public function toString(): string
    {
        $conditions = \array_map(static function (ConditionInterface
$condition): string {
            return $condition->toString();
        }, $this->conditions);

        return \implode(' ', $conditions);
    }
}
PK�X�[��cc7hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Server.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

use Ddeboer\Imap\Exception\AuthenticationFailedException;
use Ddeboer\Imap\Exception\ResourceCheckFailureException;

/**
 * An IMAP server.
 */
final class Server implements ServerInterface
{
    /**
     * @var string Internet domain name or bracketed IP address of server
     */
    private $hostname;

    /**
     * @var string TCP port number
     */
    private $port;

    /**
     * @var string Optional flags
     */
    private $flags;

    /**
     * @var array
     */
    private $parameters;

    /**
     * @var int Connection options
     */
    private $options;

    /**
     * @var int Retries number
     */
    private $retries;

    /**
     * Constructor.
     *
     * @param string $hostname   Internet domain name or bracketed IP
address
     *                           of server
     * @param string $port       TCP port number
     * @param string $flags      Optional flags
     * @param array  $parameters Connection parameters
     * @param int    $options    Connection options
     * @param int    $retries    Retries number
     */
    public function __construct(
        string $hostname,
        string $port = '993',
        string $flags = '/imap/ssl/validate-cert',
        array $parameters = [],
        int $options = 0,
        int $retries = 1
    ) {
        if (!\function_exists('imap_open')) {
            throw new \RuntimeException('IMAP extension must be
enabled');
        }

        $this->hostname   = $hostname;
        $this->port       = $port;
        $this->flags      = '' !== $flags ? '/' .
\ltrim($flags, '/') : '';
        $this->parameters = $parameters;
        $this->options    = $options;
        $this->retries    = $retries;
    }

    /**
     * Authenticate connection.
     *
     * @param string $username Username
     * @param string $password Password
     *
     * @throws AuthenticationFailedException
     */
    public function authenticate(string $username, string $password):
ConnectionInterface
    {
        $errorMessage = null;
        $errorNumber  = 0;
        \set_error_handler(static function ($nr, $message) use
(&$errorMessage, &$errorNumber): bool {
            $errorMessage = $message;
            $errorNumber = $nr;

            return true;
        });

        $resource = \imap_open(
            $this->getServerString(),
            $username,
            $password,
            $this->options,
            $this->retries,
            $this->parameters
        );

        \restore_error_handler();

        if (false === $resource || null !== $errorMessage) {
            throw new AuthenticationFailedException(\sprintf(
                'Authentication failed for user
"%s"%s',
                $username,
                null !== $errorMessage ? ': ' . $errorMessage :
''
            ), $errorNumber);
        }

        $check = \imap_check($resource);

        if (false === $check) {
            throw new ResourceCheckFailureException('Resource check
failure');
        }

        $mailbox       = $check->Mailbox;
        $connection    = $mailbox;
        $curlyPosition = \strpos($mailbox, '}');
        if (false !== $curlyPosition) {
            $connection = \substr($mailbox, 0, $curlyPosition + 1);
        }

        // These are necessary to get rid of PHP throwing IMAP errors
        \imap_errors();
        \imap_alerts();

        return new Connection(new ImapResource($resource), $connection);
    }

    /**
     * Glues hostname, port and flags and returns result.
     */
    private function getServerString(): string
    {
        return \sprintf(
            '{%s%s%s}',
            $this->hostname,
            '' !== $this->port ? ':' .
$this->port : '',
            $this->flags
        );
    }
}
PK�X�[����hh@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/ServerInterface.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap;

/**
 * An IMAP server.
 */
interface ServerInterface
{
    /**
     * Authenticate connection.
     *
     * @param string $username Username
     * @param string $password Password
     */
    public function authenticate(string $username, string $password):
ConnectionInterface;
}
PK�X�[��9��Hhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.phpnu�[���<?php

declare(strict_types=1);

namespace Ddeboer\Imap\Test;

use Ddeboer\Imap\MessageInterface;
use Ddeboer\Imap\MessageIteratorInterface;

/**
 * A MessageIterator to be used in a mocked environment.
 */
final class RawMessageIterator extends \ArrayIterator implements
MessageIteratorInterface
{
    public function current(): MessageInterface
    {
        return parent::current();
    }
}
PK�X�[�⸁Dhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/.gitignorenu�[���vendor/
composer.lock
PK�X�[��`���Ehdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/.travis.ymlnu�[���language:
php
sudo: required
dist: trusty
group: edge

php:
    - 5.6
    - 7.0
    - 7.1
    - 7.2
    - hhvm-3.9
    - hhvm-3.18

before_script:
    - composer install

script: ./vendor/bin/phpunit --coverage-text
PK�X�[
O�Ghdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/composer.jsonnu�[���{
    "name": "willdurand/email-reply-parser",
    "type": "library",
    "description": "Port of the cool GitHub's
EmailReplyParser library in PHP",
    "keywords": ["email", "reply-parser"],
    "license": "MIT",
    "authors": [
        {
            "name": "William Durand",
            "email": "will+git@drnd.me"
        }
    ],
    "require": {
        "php": ">=5.6.0"
    },
    "autoload": {
        "psr-4": { "EmailReplyParser\\":
"src/EmailReplyParser" }
    },
    "autoload-dev": {
        "psr-4": { "EmailReplyParser\\Tests\\":
"tests/EmailReplyParser/Tests" }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "2.8-dev"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^4.8.35|^5.7"
    }
}
PK�X�[�g����Ihdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/CONTRIBUTING.mdnu�[���Contributing
============

First of all, **thank you** for contributing, **you are awesome**!

Here are a few rules to follow in order to ease code reviews, and
discussions before
maintainers accept and merge your work.

You MUST follow the [PSR-1](http://www.php-fig.org/psr/1/) and
[PSR-2](http://www.php-fig.org/psr/2/). If you don't know about any of
them, you
should really read the recommendations. Can't wait? Use the
[PHP-CS-Fixer
tool](http://cs.sensiolabs.org/).

You MUST run the test suite.

You MUST write (or update) unit tests.

You SHOULD write documentation.

Please, write [commit messages that make
sense](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
and [rebase your
branch](http://git-scm.com/book/en/Git-Branching-Rebasing)
before submitting your Pull Request.

One may ask you to [squash your
commits](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)
too. This is used to "clean" your Pull Request before merging it
(we don't want
commits such as `fix tests`, `fix 2`, `fix 3`, etc.).

Also, while creating your Pull Request on GitHub, you MUST write a
description
which gives the context and/or explains why you are creating it.

Thank you!
PK�X�[���iiAhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/LICENSEnu�[���The
MIT License

Copyright (c) GitHub, William Durand <william.durand1@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a
copy
of this software and associated documentation files (the
"Software"), to deal
in the Software without restriction, including without limitation the
rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

PK�X�[��_��Jhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/phpunit.xml.distnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
    backupStaticAttributes="false"
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    processIsolation="false"
    stopOnFailure="false"
    syntaxCheck="false"
    bootstrap="vendor/autoload.php"
    >
    <testsuites>
        <testsuite name="EmailReplyParser Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory>./src/EmailReplyParser/</directory>
        </whitelist>
    </filter>
</phpunit>
PK�X�[�))Chdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/README.mdnu�[���EmailReplyParser
================

[![Build
Status](https://secure.travis-ci.org/willdurand/EmailReplyParser.png)](http://travis-ci.org/willdurand/EmailReplyParser)
[![Total
Downloads](https://poser.pugx.org/willdurand/email-reply-parser/downloads.png)](https://packagist.org/packages/willdurand/email-reply-parser)
[![Latest Stable
Version](https://poser.pugx.org/willdurand/email-reply-parser/v/stable.png)](https://packagist.org/packages/willdurand/email-reply-parser)
![PHP7 ready](https://img.shields.io/badge/PHP7-ready-green.svg)

**EmailReplyParser** is a PHP library for parsing plain text email
content,
based on GitHub's
[email_reply_parser](http://github.com/github/email_reply_parser)
library written in Ruby.


Installation
------------

The recommended way to install EmailReplyParser is through
[Composer](http://getcomposer.org/):

``` shell
composer require willdurand/email-reply-parser
```

Usage
-----

Instantiate an `EmailParser` object and parse your email:

``` php
<?php

use EmailReplyParser\Parser\EmailParser;

$email = (new EmailParser())->parse($emailContent);
```

You get an `Email` object that contains a set of `Fragment` objects. The
`Email`
class exposes two methods:

* `getFragments()`: returns all fragments;
* `getVisibleText()`: returns a string which represents the content
considered
  as "visible".

The `Fragment` represents a part of the full email content, and has the
following API:

``` php
<?php

$fragment = current($email->getFragments());

$fragment->getContent();

$fragment->isSignature();

$fragment->isQuoted();

$fragment->isHidden();

$fragment->isEmpty();
```

Alternatively, you can rely on the `EmailReplyParser` to either parse an
email
or get its visible content in a single line of code:

``` php
$email = \EmailReplyParser\EmailReplyParser::read($emailContent);

$visibleText =
\EmailReplyParser\EmailReplyParser::parseReply($emailContent);
```


Known Issues
------------

### Quoted Headers

Quoted headers aren't picked up if there's an extra line break:

    On <date>, <author> wrote:

    > blah

Also, they're not picked up if the email client breaks it up into
multiple lines.  GMail breaks up any lines over 80 characters for you.

    On <date>, <author>
    wrote:
    > blah

The above `On ....wrote:` can be cleaned up with the following regex:

``` php
$fragment_without_date_author = preg_replace(
    '/\nOn(.*?)wrote:(.*?)$/si',
    '',
    $fragment->getContent()
);
```

Note though that we're search for "on" and
"wrote".  Therefore, it won't work
with other languages.

Possible solution: Remove "reply@reply.github.com" lines...

### Weird Signatures

Lines starting with `-` or `_` sometimes mark the beginning of
signatures:

    Hello

    --
    Rick

Not everyone follows this convention:

    Hello

    Mr Rick Olson
    Galactic President Superstar Mc Awesomeville
    GitHub

    **********************DISCLAIMER***********************************
    * Note: blah blah blah                                            *
    **********************DISCLAIMER***********************************



### Strange Quoting

Apparently, prefixing lines with `>` isn't universal either:

    Hello

    --
    Rick

    ________________________________________
    From: Bob [reply@reply.github.com]
    Sent: Monday, March 14, 2011 6:16 PM
    To: Rick


Unit Tests
----------

Setup the test suite using Composer:

    $ composer install

Run it using PHPUnit:

    $ phpunit


Contributing
------------

See CONTRIBUTING file.


Credits
-------

* GitHub
* William Durand <william.durand1@gmail.com>


License
-------

EmailReplyParser is released under the MIT License. See the bundled
LICENSE
file for details.
PK�X�[�"e��Jhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/autoload.phpnu�[���<?php

/**
 * Simple autoloader that follow the PHP Standards Recommendation #0
(PSR-0)
 * @see
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md for
more informations.
 *
 * Code inspired from the SplClassLoader RFC
 * @see https://wiki.php.net/rfc/splclassloader#example_implementation
 */
spl_autoload_register(function ($className) {
    $className = ltrim($className, '\\');
    $fileName = '';
    if ($lastNsPos = strripos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName = str_replace('\\', DIRECTORY_SEPARATOR,
$namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className .
'.php';
    if (file_exists($fileName)) {
        require $fileName;

        return true;
    }

    return false;
});
PK�X�[N���Xhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Email.phpnu�[���<?php

/**
 * This file is part of the EmailReplyParser package.
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @license    MIT License
 */

namespace EmailReplyParser;

/**
 * @author William Durand <william.durand1@gmail.com>
 */
final class Email
{
    /**
     * @var Fragment[]
     */
    private $fragments;

    /**
     * @param Fragment[] $fragments
     */
    public function __construct(array $fragments = array())
    {
        $this->fragments = $fragments;
    }

    /**
     * @return Fragment[]
     */
    public function getFragments()
    {
        return $this->fragments;
    }

    /**
     * @return string
     */
    public function getVisibleText()
    {
        $visibleFragments = array_filter($this->fragments, function
(Fragment $fragment) {
            return !$fragment->isHidden();
        });

        return rtrim(implode("\n", $visibleFragments));
    }
}
PK�X�[폲�NNchdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/EmailReplyParser.phpnu�[���<?php

/**
 * This file is part of the EmailReplyParser package.
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @license    MIT License
 */

namespace EmailReplyParser;

use EmailReplyParser\Parser\EmailParser;

/**
 * @author William Durand <william.durand1@gmail.com>
 */
class EmailReplyParser
{
    /**
     * @param string $text An email as text.
     *
     * @return Email
     */
    public static function read($text)
    {
        $parser = new EmailParser();

        return $parser->parse($text);
    }

    /**
     * @param string $text An email as text.
     *
     * @return string
     */
    public static function parseReply($text)
    {
        return static::read($text)->getVisibleText();
    }
}
PK�X�[�3K?��[hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Fragment.phpnu�[���<?php

/**
 * This file is part of the EmailReplyParser package.
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @license    MIT License
 */

namespace EmailReplyParser;

/**
 * @author William Durand <william.durand1@gmail.com>
 */
final class Fragment
{
    /**
     * @var string
     */
    private $content;

    /**
     * @var boolean
     */
    private $isHidden;

    /**
     * @var boolean
     */
    private $isSignature;

    /**
     * @var boolean
     */
    private $isQuoted;

    /**
     * @param string  $content
     * @param boolean $isHidden
     * @param boolean $isSignature
     * @param boolean $isQuoted
     */
    public function __construct($content, $isHidden, $isSignature,
$isQuoted)
    {
        $this->content     = $content;
        $this->isHidden    = $isHidden;
        $this->isSignature = $isSignature;
        $this->isQuoted    = $isQuoted;
    }

    /**
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }

    /**
     * @return boolean
     */
    public function isHidden()
    {
        return $this->isHidden;
    }

    /**
     * @return boolean
     */
    public function isSignature()
    {
        return $this->isSignature;
    }

    /**
     * @return boolean
     */
    public function isQuoted()
    {
        return $this->isQuoted;
    }

    /**
     * @return boolean
     */
    public function isEmpty()
    {
        return '' === str_replace("\n", '',
$this->getContent());
    }

    public function __toString()
    {
        return $this->getContent();
    }
}
PK�X�[q-H��ehdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Parser/EmailParser.phpnu�[���<?php

/**
 * This file is part of the EmailReplyParser package.
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @license    MIT License
 */

namespace EmailReplyParser\Parser;

use EmailReplyParser\Email;
use EmailReplyParser\Fragment;

/**
 * @author William Durand <william.durand1@gmail.com>
 */
class EmailParser
{
    const QUOTE_REGEX = '/^>+/s';

    /**
     * Regex to match signatures
     *
     * @var string
     */
    private $signatureRegex = '/(?:^\s*--|^\s*__|^-\w|^-- $)|(?:^Sent
from my (?:\s*\w+){1,4}$)|(?:^={30,}$)$/s';

    /**
     * @var string[]
     */
    private $quoteHeadersRegex = array(
       
'/^\s*(On(?:(?!^>*\s*On\b|\bwrote:).){0,1000}wrote:)$/ms', //
On DATE, NAME <EMAIL> wrote:
       
'/^\s*(Le(?:(?!^>*\s*Le\b|\bécrit:).){0,1000}écrit(\s|\xc2\xa0):)$/ms',
// Le DATE, NAME <EMAIL> a écrit :
       
'/^\s*(El(?:(?!^>*\s*El\b|\bescribió:).){0,1000}escribió:)$/ms',
// El DATE, NAME <EMAIL> escribió:
       
'/^\s*(Il(?:(?!^>*\s*Il\b|\bscritto:).){0,1000}scritto:)$/ms',
// Il DATE, NAME <EMAIL> ha scritto:
        '/^[\S\s]+ (написа(л|ла|в)+)+:$/msu', //
Everything before написал: not ending on wrote:
        '/^\s*(Op\s.+?(schreef|geschreven).+:)$/ms', // Op DATE
schreef NAME <EMAIL>:, Op DATE heeft NAME <EMAIL> het volgende
geschreven:
       
'/^\s*((W\sdniu|Dnia)\s.+?(pisze|napisał(\(a\))?):)$/msu', // W
dniu DATE, NAME <EMAIL> pisze|napisał:
        '/^\s*(Den\s.+\sskrev\s.+:)$/m', // Den DATE skrev NAME
<EMAIL>:
        '/^\s*(Am\s.+\sum\s.+\sschrieb\s.+:)$/m', // Am DATE um
TIME schrieb NAME:
        '/^(在.+写道:)$/ms', // > 在 DATE, TIME, NAME
写道:
        '/^(20[0-9]{2}\..+\s작성:)$/m', // DATE TIME NAME
작성:
        '/^(20[0-9]{2}\/.+のメッセージ:)$/m', // DATE
TIME、NAME のメッセージ:
        '/^(.+\s<.+>\sschrieb:)$/m', // NAME <EMAIL>
schrieb:
        '/^\s*(From\s?:.+\s?(\[|<).+(\]|>))/mu', //
"From: NAME <EMAIL>" OR "From : NAME
<EMAIL>" OR "From : NAME<EMAIL>"(With support
whitespace before start and before <)
        '/^\s*(发件人\s?:.+\s?(\[|<).+(\]|>))/mu', //
"发件人: NAME <EMAIL>" OR "发件人 : NAME
<EMAIL>" OR "发件人 : NAME<EMAIL>"(With
support whitespace before start and before <)
        '/^\s*(De\s?:.+\s?(\[|<).+(\]|>))/mu', // "De:
NAME <EMAIL>" OR "De : NAME <EMAIL>" OR "De
: NAME<EMAIL>"  (With support whitespace before start and before
<)
        '/^\s*(Van\s?:.+\s?(\[|<).+(\]|>))/mu', //
"Van: NAME <EMAIL>" OR "Van : NAME <EMAIL>"
OR "Van : NAME<EMAIL>"  (With support whitespace before
start and before <)
        '/^\s*(Da\s?:.+\s?(\[|<).+(\]|>))/mu', // "Da:
NAME <EMAIL>" OR "Da : NAME <EMAIL>" OR "Da
: NAME<EMAIL>"  (With support whitespace before start and before
<)
       
'/^(20[0-9]{2}\-(?:0?[1-9]|1[012])\-(?:0?[0-9]|[1-2][0-9]|3[01]|[1-9])\s[0-2]?[0-9]:\d{2}\s.+?:)$/ms',
// 20YY-MM-DD HH:II GMT+01:00 NAME <EMAIL>:
        '/^\s*([a-z]{3,4}\.\s.+\sskrev\s.+:)$/ms', // DATE skrev
NAME <EMAIL>:
    );

    /**
     * @var FragmentDTO[]
     */
    private $fragments = array();

    /**
     * Parse a text which represents an email and splits it into
fragments.
     *
     * @param string $text A text.
     *
     * @return Email
     */
    public function parse($text)
    {
        $text = str_replace(array("\r\n", "\r"),
"\n", $text);

        foreach ($this->quoteHeadersRegex as $regex) {
            if (preg_match($regex, $text, $matches)) {
                $text = str_replace($matches[1],
str_replace("\n", ' ', $matches[1]), $text);
            }
        }

        $fragment = null;
        $text_array = explode("\n", $text);
        while (($line = array_pop($text_array)) !== NULL) {
            $line = ltrim($line, "\n");

            if (!$this->isSignature($line)) {
                $line = rtrim($line);
            }

            if ($fragment) {
                $first = reset($fragment->lines);

                if ($this->isSignature($first)) {
                    $fragment->isSignature = true;
                    $this->addFragment($fragment);

                    $fragment = null;
                } elseif (empty($line) &&
$this->isQuoteHeader($first)) {
                    $fragment->isQuoted = true;
                    $this->addFragment($fragment);

                    $fragment = null;
                }
            }

            $isQuoted = $this->isQuote($line);

            if (null === $fragment || !$this->isFragmentLine($fragment,
$line, $isQuoted)) {
                if ($fragment) {
                    $this->addFragment($fragment);
                }

                $fragment = new FragmentDTO();
                $fragment->isQuoted = $isQuoted;
            }

            array_unshift($fragment->lines, $line);
        }

        if ($fragment) {
            $this->addFragment($fragment);
        }

        $email = $this->createEmail($this->fragments);

        $this->fragments = array();

        return $email;
    }

    /**
     * @return string[]
     */
    public function getQuoteHeadersRegex()
    {
        return $this->quoteHeadersRegex;
    }

    /**
     * @param string[] $quoteHeadersRegex
     *
     * @return EmailParser
     */
    public function setQuoteHeadersRegex(array $quoteHeadersRegex)
    {
        $this->quoteHeadersRegex = $quoteHeadersRegex;

        return $this;
    }

    /**
     * @return string
     * @since 2.7.0
     */
    public function getSignatureRegex()
    {
        return $this->signatureRegex;
    }

    /**
     * @param string $signatureRegex
     *
     * @return EmailParser
     * @since 2.7.0
     */
    public function setSignatureRegex($signatureRegex)
    {
        $this->signatureRegex = $signatureRegex;

        return $this;
    }

    /**
     * @param FragmentDTO[] $fragmentDTOs
     *
     * @return Email
     */
    protected function createEmail(array $fragmentDTOs)
    {
        $fragments = array();
        foreach ($fragmentDTOs as $fragment) {
            $fragments[] = new Fragment(
                preg_replace("/^\n/", '',
implode("\n", $fragment->lines)),
                $fragment->isHidden,
                $fragment->isSignature,
                $fragment->isQuoted
            );
        }

        return new Email($fragments);
    }

    private function isQuoteHeader($line)
    {
        foreach ($this->quoteHeadersRegex as $regex) {
            if (preg_match($regex, $line)) {
                return true;
            }
        }

        return false;
    }

    private function isSignature($line)
    {
        return preg_match($this->signatureRegex, $line) ? true : false;
    }

    /**
     * @param string $line
     * @return bool
     */
    private function isQuote($line)
    {
        return preg_match(static::QUOTE_REGEX, $line) ? true : false;
    }

    private function isEmpty(FragmentDTO $fragment)
    {
        return '' === implode('',
$fragment->lines);
    }

    /**
     * @param FragmentDTO $fragment
     * @param string  $line
     * @param boolean $isQuoted
     * @return bool
     */
    private function isFragmentLine(FragmentDTO $fragment, $line,
$isQuoted)
    {
        return $fragment->isQuoted === $isQuoted ||
            ($fragment->isQuoted &&
($this->isQuoteHeader($line) || empty($line)));
    }

    private function addFragment(FragmentDTO $fragment)
    {
        if ($fragment->isQuoted || $fragment->isSignature ||
$this->isEmpty($fragment)) {
            $fragment->isHidden = true;
        }

        array_unshift($this->fragments, $fragment);
    }
}
PK�X�[��w>��ehdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Parser/FragmentDTO.phpnu�[���<?php

/**
 * This file is part of the EmailReplyParser package.
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @license    MIT License
 */

namespace EmailReplyParser\Parser;

/**
 * @author William Durand <william.durand1@gmail.com>
 */
class FragmentDTO
{
    /**
     * @var string[]
     */
    public $lines = array();

    /**
     * @var boolean
     */
    public $isHidden = false;

    /**
     * @var boolean
     */
    public $isSignature = false;

    /**
     * @var boolean
     */
    public $isQuoted = false;
}
PK�X�[E �IIhighlight/highlight.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.Highlight
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * System plugin to highlight terms.
 *
 * @since  2.5
 */
class PlgSystemHighlight extends JPlugin
{
	/**
	 * Method to catch the onAfterDispatch event.
	 *
	 * This is where we setup the click-through content highlighting for.
	 * The highlighting is done with JavaScript so we just
	 * need to check a few parameters and the JHtml behavior will do the rest.
	 *
	 * @return  boolean  True on success
	 *
	 * @since   2.5
	 */
	public function onAfterDispatch()
	{
		// Check that we are in the site application.
		if (JFactory::getApplication()->isClient('administrator'))
		{
			return true;
		}

		// Set the variables.
		$input = JFactory::getApplication()->input;
		$extension = $input->get('option', '',
'cmd');

		// Check if the highlighter is enabled.
		if
(!JComponentHelper::getParams($extension)->get('highlight_terms',
1))
		{
			return true;
		}

		// Check if the highlighter should be activated in this environment.
		if ($input->get('tmpl', '', 'cmd') ===
'component' || JFactory::getDocument()->getType() !==
'html')
		{
			return true;
		}

		// Get the terms to highlight from the request.
		$terms = $input->request->get('highlight', null,
'base64');
		$terms = $terms ? json_decode(base64_decode($terms)) : null;

		// Check the terms.
		if (empty($terms))
		{
			return true;
		}

		// Clean the terms array.
		$filter     = JFilterInput::getInstance();

		$cleanTerms = array();

		foreach ($terms as $term)
		{
			$cleanTerms[] = htmlspecialchars($filter->clean($term,
'string'));
		}

		// Activate the highlighter.
		JHtml::_('behavior.highlighter', $cleanTerms);

		// Adjust the component buffer.
		$doc = JFactory::getDocument();
		$buf = $doc->getBuffer('component');
		$buf = '<br id="highlighter-start" />' . $buf .
'<br id="highlighter-end" />';
		$doc->setBuffer($buf, 'component');

		return true;
	}
}
PK�X�[�D-�KKhighlight/highlight.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_highlight</name>
	<author>Joomla! Project</author>
	<creationDate>August 2011</creationDate>
	<copyright>(C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later;
see	LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SYSTEM_HIGHLIGHT_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="highlight">highlight.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">language/en-GB/en-GB.plg_system_highlight.ini</language>
		<language
tag="en-GB">language/en-GB/en-GB.plg_system_highlight.sys.ini</language>
	</languages>
</extension>
PK�X�[D~�2gg+hikamarketoverrides/hikamarketoverrides.phpnu�[���<?php
/**
 * @package    HikaMarket for Joomla!
 * @version    3.1.1
 * @author     Obsidev S.A.R.L.
 * @copyright  (C) 2011-2020 OBSIDEV. All rights reserved.
 * @license    GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
if(!defined('DS'))
	define('DS', DIRECTORY_SEPARATOR);
jimport('joomla.plugin.plugin');
class plgSystemHikamarketoverrides extends JPlugin {
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		$this->init();
	}

	private function init() {
		static $init = null;
		if($init !== null)
			return;
		$init = true;

		$hikashopHelper =
rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php';
		$marketHelper =
rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'helpers'.DS.'helper.php';
		if(!file_exists($hikashopHelper) || !file_exists($marketHelper))
			return;

		$db = JFactory::getDBO();
		$db->setQuery('SELECT config_value FROM #__hikashop_config WHERE
config_namekey = ' . $db->Quote('version'));
		$version = $db->loadResult();

		jimport('joomla.filesystem.folder');

		$path =
rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikamarket'.DS.'overrides'.DS.$version.DS;
		if(!JFolder::exists($path))
			return;

		$allFiles = JFolder::files($path);
		if(empty($allFiles))
			return;
		include_once $hikashopHelper;
		foreach($allFiles as $oneFile) {
			if(substr($oneFile, -4) != '.php')
				continue;
			if(substr($oneFile, 0, 6) == 'class.') {
				$originalFile =
rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'classes'.DS.substr($oneFile,
6);
				if(file_exists($originalFile)) {
					include_once $originalFile;
					include_once $path . $oneFile;
				}
			} else {
				include_once $path . $oneFile;
			}
		}
	}
}
PK�X�[F����+hikamarketoverrides/hikamarketoverrides.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
method="upgrade" group="system">
	<name>HikaMarket HikaShop overrides</name>
	<creationDate>20 juillet 2020</creationDate>
	<version>3.1.1</version>
	<author>Obsidev</author>
	<authorEmail>dev@obsidev.com</authorEmail>
	<authorUrl>http://www.obsidev.com</authorUrl>
	<copyright>Copyright (C) 2012-2020 OBSIDEV SARL - All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaMarket HikaShop overrides</description>
	<files>
		<filename
plugin="hikamarketoverrides">hikamarketoverrides.php</filename>
	</files>
	<params addpath="/components/com_hikamarket/params">
	</params>
</extension>
PK�X�[�#o,,hikamarketoverrides/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[-�e		?hikashopaddreservationsession/hikashopaddreservationsession.phpnu�[���<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.36
	@build			28th March, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		hikashopaddreservationsession.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');


/***[JCBGUI.class_extends.head.1.$$$$]***/

use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Plugin\CMSPlugin;
/***[/JCBGUI$$$$]***/


/***[JCBGUI.class_extends.comment.1.$$$$]***/
/**
 * System - Hikashopaddreservationsession plugin.
 *
 * @package   Hikashopaddreservationsession
 * @since     1.0.0
 *//***[/JCBGUI$$$$]***/

class PlgSystemHikashopaddreservationsession extends CMSPlugin
{

/***[JCBGUI.joomla_plugin.main_class_code.67.$$$$]***/
  public function onAfterOrderCreate($order,$do)
  {
    $filename = __DIR__ . "/onAfterOrderCreate.log";
    // file_put_contents($filename, "order = " . print_r($order,
true) . "\n", FILE_APPEND);
    // file_put_contents($filename, "do = " . print_r($do, true)
. "\n", FILE_APPEND);
    $this->updateOrder($order);
    // add your code here
  }

  public function onAfterOrderUpdate($order,$send_email)
  {
    $filename = __DIR__ . "/onAfterOrderUpdate.log";
    // file_put_contents($filename, "order = " . print_r($order,
true) . "\n", FILE_APPEND);
    // file_put_contents($filename, "send_email = " .
print_r($send_email, true) . "\n", FILE_APPEND);
    $this->updateOrder($order);
    // add your code here
  }

  public function updateOrder($order)
  {
    
    $product_code_prefix = 'reserve';
    if ($order->order_status != 'confirmed')
      return;
    $filename = __DIR__ . "/updateOrder.log";
    // file_put_contents($filename, "order = " . print_r($order,
true) . "\n", FILE_APPEND);
   
require_once(JPATH_ADMINISTRATOR.'/components/com_hikashop/helpers/helper.php'
);
    
    $order_class = hikashop_get('class.order');

    $order_data = $order_class->get ($order->order_id);

    $db           = JFactory::getDBO();
    $query = 'SELECT a.* FROM
'.hikashop_table('order_product').' AS a WHERE
a.order_id = '.$order->order_id;
    $db->setQuery($query);
    $order_data->products = $db->loadObjectList();

    $products = $order_data->products;

    $userClass = hikashop_get('class.user');
    $user = $userClass->get($order_data->order_user_id);

    if ($products)
    {
      foreach ($products as $product)
      {
        preg_match("/$product_code_prefix\d+/",
$product->order_product_code, $matches);
        if($matches)
        {
          $product_class = hikashop_get('class.product');
          $cats = $product_class->getCategories
($product->product_id);
          if (!$cats)
          {
            $query = 'SELECT product_parent_id FROM
'.hikashop_table('product').' AS a WHERE a.product_id =
'. $db->quote ($product->product_id);
            $db->setQuery($query);
            $parent_id = $db->loadResult();
            $cats = $product_class->getCategories ($parent_id);
          }
          
          $db = JFactory::getDbo();
          $query = $db->getQuery(true);
          $query->select('id');
         
$query->from($db->quoteName('#__reservation_sick'));
          $query->where($db->quoteName('userid') .
'=' . $db->quote($user->id));
          $db->setQuery($query);
          $sick_id = $db->loadResult();
          
          $pid = substr($product->order_product_code,
strlen($product_code_prefix));
          
          $db = JFactory::getDbo();
          $query = $db->getQuery(true);
          $query->select('id');
         
$query->from($db->quoteName('#__reservation_session'));
          $query->where($db->quoteName('planid') .
'=' . $db->quote($pid));
          $query->where($db->quoteName('sickid') .
'=' . $db->quote($sick_id));
          $db->setQuery($query);
          $session_id = $db->loadResult();
          
          
          // $consultant_id = 
          
          if($session_id)
          {
            JLoader::register('ReservationModelSession',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/session.php');
            $session_model = new ReservationModelSession();
            $session = (array)$session_model->getItem($session_id);
            $session['pay'] = 1;
            $session_model->save($session);
            
            JLoader::register('ReservationModelPlan',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/plan.php');
            $plan_model = new ReservationModelPlan();
            $plan = $plan_model->getItem($pid);
            
            JLoader::register('ReservationModelConsultant',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/consultant.php');
            $consultant_model = new ReservationModelConsultant();
            $consultant =
$consultant_model->getItem($plan->consultantid);
            
            JLoader::register('ReservationModelMessage',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/message.php');
            $first_message = new ReservationModelMessage();

            $data = array(
              'message' => $session['firsttext'],
              'read'    => 0,
              'reply'   => 0,
              'seen'    => 1,
              'seid'    => $session['id'],
              'from'    => $user->id,
              'to'      =>  $consultant->userid
            );
            $first_message->save($data);
            
          }

        }
      }
    }
  }/***[/JCBGUI$$$$]***/

}
PK�X�[��<<?hikashopaddreservationsession/hikashopaddreservationsession.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="3.8"
group="system" method="upgrade">
	<name>PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION</name>
	<creationDate>28th March, 2023</creationDate>
	<author>farhad shahbazi</author>
	<authorEmail>farhad.shahbazi0010@gmail.com</authorEmail>
	<authorUrl>http://farhad.com</authorUrl>
	<copyright>Copyright (C) 2015. All Rights Reserved</copyright>
	<license>GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html</license>
	<version>1.0.0</version>
	<description>PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION_XML_DESCRIPTION</description>

	<!-- Language files -->
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_hikashopaddreservationsession.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_hikashopaddreservationsession.sys.ini</language>
	</languages>

	<!-- Plugin files -->
	<files>
		<filename
plugin="hikashopaddreservationsession">hikashopaddreservationsession.php</filename>
		<filename>index.html</filename>
		<folder>language</folder>
	</files>
</extension>PK�X�[�#o,,(hikashopaddreservationsession/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�sg�pp_hikashopaddreservationsession/language/en-GB/en-GB.plg_system_hikashopaddreservationsession.ininu�[���PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION="System
- Hikashopaddreservationsession"
PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION_XML_DESCRIPTION="<h1>System
- Hikashopaddreservationsession (v.1.0.0)</h1> <div
style='clear: both;'></div><p>Created by <a
href='http://farhad.com' target='_blank'>farhad
shahbazi</a><br /><small>Development started 1st March,
2023</small></p>"PK�X�[�sg�ppchikashopaddreservationsession/language/en-GB/en-GB.plg_system_hikashopaddreservationsession.sys.ininu�[���PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION="System
- Hikashopaddreservationsession"
PLG_SYSTEM_HIKASHOPADDRESERVATIONSESSION_XML_DESCRIPTION="<h1>System
- Hikashopaddreservationsession (v.1.0.0)</h1> <div
style='clear: both;'></div><p>Created by <a
href='http://farhad.com' target='_blank'>farhad
shahbazi</a><br /><small>Development started 1st March,
2023</small></p>"PK�X�[�#o,,7hikashopaddreservationsession/language/en-GB/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�#o,,1hikashopaddreservationsession/language/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[a��@�@'hikashopaffiliate/hikashopaffiliate.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
if(!defined('DS'))
	define('DS',DIRECTORY_SEPARATOR);
jimport('joomla.plugin.plugin');

class plgSystemHikashopaffiliate extends JPlugin {
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		if(isset($this->params))
			return;

		$plugin = JPluginHelper::getPlugin('system',
'hikashopaffiliate');
		$this->params = new JRegistry(@$plugin->params);
	}

	public function afterInitialise() {
		return $this->onAfterInitialise();
	}

	public function onAfterInitialise() {
		$do = $this->params->get('after_init','1');
		if($do)
			return $this->onAfterRoute();
		return true;
	}

	public function afterRoute() {
		return $this->onAfterRoute();
	}

	public function onAfterRoute() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;
		if(@$_REQUEST['option'] == 'com_gcalendar')
			return true;

		$key_name = $this->params->get('partner_key_name',
'partner_id');
		if(version_compare(JVERSION,'3.0','>='))
			$partner_id = $app->input->getCmd($key_name, 0);
		else
			$partner_id = JRequest::getCmd($key_name, 0);

		if(empty($partner_id))
			return true;

		static $done = false;
		if($done)
			return true;
		$done = true;

		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;
		$partner_id = hikashop_decode($partner_id,'partner');

		$userClass = hikashop_get('class.user');
		$user = $userClass->get($partner_id);

		if(empty($user->user_partner_activated))
			return true;

		$config = hikashop_config();
		$cookie = true;
		if($config->get('no_affiliation_if_cart_present')) {
			$cart_id =
$app->getUserState(HIKASHOP_COMPONENT.'.cart_id', 0,
'int');
			if($cart_id)
				$cookie = false;
		}
		$affiliation_exclude_domains =
$config->get('affiliation_exclude_domains', '');
		if(!empty($affiliation_exclude_domains)) {
			$referer = null;
			if(!empty($_SERVER['HTTP_REFERER']) &&
preg_match('#^https?://.*#i',$_SERVER['HTTP_REFERER']))
				$referer = str_replace(array('"', '<',
'>', "'"), '',
@$_SERVER['HTTP_REFERER']);
			if(!empty($referer)) {
				$exclude_referers = explode(',',
$affiliation_exclude_domains);
				foreach($exclude_referers as $ref) {
					$ref = trim($ref);
					if(strpos($referer, $ref) !== false)
						$cookie = false;
				}
			}
		}
		if($cookie)
			setcookie('hikashop_affiliate',
hikashop_encode($partner_id,'partner'), time() +
$config->get('click_validity_period', 2592000),
'/');

		$ip = hikashop_getIP();
		$clickClass = hikashop_get('class.click');
		$latest = $clickClass->getLatest($partner_id, $ip,
$config->get('click_min_delay', 86400));

		if(empty($user->user_params->user_custom_fee)) {
			$user->user_params->partner_click_fee =
$config->get('partner_click_fee',0);
			$user->user_params->partner_fee_currency =
$config->get('partner_currency',1);
		} else {
			$user->user_params->partner_click_fee =
$user->user_params->user_partner_click_fee;
		}

		if(!$config->get('allow_currency_selection',0) ||
empty($user->user_currency_id))
			$user->user_currency_id = 
$config->get('partner_currency',1);

		if(bccomp($user->user_params->partner_click_fee,0,5) &&
$user->user_currency_id!=$user->user_params->partner_fee_currency)
			$user->user_params->partner_click_fee =
$this->_convert($user->user_params->partner_click_fee,$user->user_params->partner_fee_currency,$user->user_currency_id);

		if(!empty($latest))
			$user->user_params->partner_click_fee = 0;

		$click = new stdClass();
		$click->click_partner_id = $partner_id;
		$click->click_ip = $ip;
		$click->click_partner_price =
$user->user_params->partner_click_fee;
		$click->click_partner_currency_id = $user->user_currency_id;
		$clickClass->save($click);

		return true;
	}

	public function onBeforeOrderUpdate(&$order,&$do){
		if(!empty($order->order_type) && $order->order_type !=
'sale')
			return;
		if(!empty($order->old->order_type) &&
$order->old->order_type != 'sale')
			return;

		if(!empty($order->order_partner_paid))
			return true;

		if(!isset($order->order_full_price))
			return true;

		if(!empty($order->old)) {
			if(!empty($order->old->order_partner_paid))
				return true;

			if(floatval($order->old->order_full_price) ==
floatval($order->order_full_price))
				return true;

			if(empty($order->order_partner_id))
				$order->order_partner_id = $order->old->order_partner_id;

			return $this->onBeforeOrderCreate($order, $do);
		}

		return true;
	}

	public function getPartner(&$order) {
		$config =& hikashop_config();
		if($config->get('add_partner_to_user_account', 0) &&
!empty($order->order_user_id)) {
			$class = hikashop_get('class.user');
			$user = $class->get($order->order_user_id);
			if(!empty($user->user_partner_id))
				return $user->user_partner_id;
		}
		return
hikashop_decode(hikaInput::get()->cookie->getCmd('hikashop_affiliate',
0), 'partner');
	}

	public function onBeforeOrderCreate(&$order, &$do) {
		$app = JFactory::getApplication();
		if(!empty($order->order_type) && $order->order_type !=
'sale')
			return;

		if(empty($order->order_partner_id)) {
			if(hikashop_isClient('administrator'))
				return true;

			if(!empty($order->order_discount_code)) {
				$discountClass = hikashop_get('class.discount');
				$coupon = $discountClass->load($order->order_discount_code);

				if(isset($coupon->discount_affiliate) &&
$coupon->discount_affiliate == -1) {
					return true;
				} elseif(isset($coupon->discount_affiliate) &&
$coupon->discount_affiliate) {
					$partner_id = $coupon->discount_affiliate;
					$userClass = hikashop_get('class.user');
					$user = $userClass->get($order->order_user_id);
					if($user->user_cms_id) {
						$this->addPartnerToUser($user->user_cms_id, $partner_id);
					}
				} else {
					$partner_id = $this->getPartner($order);
				}
			} else {
				$partner_id = $this->getPartner($order);
			}

			if(empty($partner_id))
				return true;

		} else {
			$partner_id = $order->order_partner_id;
		}

		$config =& hikashop_config();
		if($config->get('no_self_affiliation', 0) &&
$order->order_user_id == $partner_id)
			return true;

		$userClass = hikashop_get('class.user');
		$user = $userClass->get($partner_id);

		if(empty($user))
			return true;

		if(empty($user->user_partner_activated))
			return true;

		$order->order_partner_id = $partner_id;

		if(empty($user->user_params->user_custom_fee)) {
			$user->user_params->partner_percent_fee =
$config->get('partner_percent_fee',0);
			$user->user_params->partner_flat_fee =
$config->get('partner_flat_fee',0);
			$user->user_params->partner_fee_currency =
$config->get('partner_currency',1);
		} else {
			$user->user_params->partner_percent_fee =
$user->user_params->user_partner_percent_fee;
			$user->user_params->partner_flat_fee
=$user->user_params->user_partner_flat_fee;
		}

		if(!$config->get('allow_currency_selection',0) ||
empty($user->user_currency_id))
			$user->user_currency_id = 
$config->get('partner_currency',1);

		if(bccomp($user->user_params->partner_flat_fee,0,5) &&
$user->user_currency_id!=$user->user_params->partner_fee_currency)
			$user->user_params->partner_flat_fee =
$this->_convert($user->user_params->partner_flat_fee,$user->user_params->partner_fee_currency,$user->user_currency_id);

		if(bccomp($user->user_params->partner_percent_fee, 0, 5) ||
bccomp($user->user_params->partner_flat_fee, 0, 5)) {
			if(bccomp($user->user_params->partner_percent_fee, 0, 5)) {
				$order_price = $order->order_full_price;
				if($config->get('affiliate_fee_exclude_shipping', 0)) {
					$order_price = $order_price - $order->order_shipping_price;
				}
				$fees =
$order_price*$user->user_params->partner_percent_fee/100;
			} else {
				$fees = 0;
			}

			if($order->order_currency_id!=$user->user_currency_id)
				$fees =
$this->_convert($fees,$order->order_currency_id,$user->user_currency_id);

			$order->order_partner_price = $fees +
$user->user_params->partner_flat_fee;
			$order->order_partner_currency_id = $user->user_currency_id;
		}

		return true;
	}

	protected function _convert($amount,$src_id,$dst_id) {
		$currencyClass = hikashop_get('class.currency');
		$config =& hikashop_config();
		$setcurrencies = null;
		$main_currency = (int)$config->get('main_currency',1);
		$ids[$src_id] = $src_id;
		$ids[$dst_id] = $dst_id;
		$ids[$main_currency] = $main_currency;
		$currencies = $currencyClass->getCurrencies($ids,$setcurrencies);
		$srcCurrency = $currencies[$src_id];
		$dstCurrency = $currencies[$dst_id];
		$mainCurrency =  $currencies[$main_currency];

		if($srcCurrency->currency_id != $mainCurrency->currency_id) {
			$amount = floatval($amount) / floatval($srcCurrency->currency_rate);
			$amount += $amount * floatval($srcCurrency->currency_percent_fee) /
100.0;
		}

		if($dstCurrency->currency_id != $mainCurrency->currency_id) {
			$amount = floatval($amount) * floatval($dstCurrency->currency_rate);
			$amount += $amount *
floatval($dstCurrency->currency_percent_fee)/100.0;
		}
		return $amount;
	}

	public function onUserAfterSave($user, $isnew, $success, $msg) {
		return $this->onAfterStoreUser($user, $isnew, $success, $msg);
	}

	public function onAfterStoreUser($user, $isnew, $success, $msg){
		if($success === false)
			return false;

		$app = JFactory::getApplication();

		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if($admin || !$isnew)
			return true;

		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$partner_id =
hikaInput::get()->cookie->getCmd('hikashop_affiliate', 0);
		if(empty($partner_id))
			return true;

		$partner_id = hikashop_decode($partner_id,'partner');

		$this->addPartnerToUser($user['id'], $partner_id);

		return true;
	}

	public function onBeforeHikaUserRegistration(&$ret, $input_data,
$mode) {
		$config = hikashop_config();
		$formData = hikaInput::get()->get('data', array(),
'array');
		if($config->get('affiliate_registration', 0) &&
!empty($formData['affiliate'])) {
			$ret['userData']->user_partner_activated = 1;
			$ret['registerData']->user_partner_activated = 1;
		}
	}

	protected function addPartnerToUser($user_id, $partner_id){
		$userClass = hikashop_get('class.user');
		$partner = $userClass->get($partner_id);
		if(empty($partner->user_partner_activated))
			return true;

		$config =& hikashop_config();
		if(empty($partner->user_params->user_custom_fee)) {
			$partner->user_params->partner_lead_fee =
$config->get('partner_lead_fee',0);
			$partner->user_params->partner_fee_currency =
$config->get('partner_currency',1);
		} else {
			$partner->user_params->partner_lead_fee =
$partner->user_params->user_partner_lead_fee;
		}

		if(!$config->get('allow_currency_selection',0) ||
empty($partner->user_currency_id))
			$partner->user_currency_id =
$config->get('partner_currency',1);

		if(bccomp($partner->user_params->partner_lead_fee,0,5) &&
$partner->user_currency_id!=$partner->user_params->partner_fee_currency)
			$partner->user_params->partner_lead_fee =
$this->_convert($partner->user_params->partner_lead_fee,$partner->user_params->partner_fee_currency,$partner->user_currency_id);

		$ip = hikashop_getIP();
		$clickClass = hikashop_get('class.click');
		$latest =
$clickClass->getLatest($partner_id,$ip,$config->get('lead_min_delay',24));

		if($config->get('add_partner_to_user_account',0) ||
(empty($latest) &&
bccomp($partner->user_params->partner_lead_fee,0,5))) {
			$userDataInDb = $userClass->get($user_id,'cms');
			$userData = new stdClass();
			$userData->user_id = @$userDataInDb->user_id;
			$userData->user_cms_id = $user_id;
			$userData->user_partner_id = $partner_id;
			$userData->user_partner_price =
@$partner->user_params->partner_lead_fee;
			$userData->user_partner_currency_id = $partner->user_currency_id;
			$userClass->save($userData);
		}
	}

	public function onUserAccountDisplay(&$buttons) {
		$button =
$this->params->get('button_on_control_panel','1');
		if(!$button)
			return;
		global $Itemid;
		$url_itemid = '';
		if(!empty($Itemid))
			$url_itemid = '&Itemid=' . $Itemid;

		$buttons['affiliate'] = array(
			'link' =>
hikashop_completeLink('affiliate'.$url_itemid),
			'level' => 1,
			'image' => 'affiliate',
			'text' => JText::_('AFFILIATE'),
			'description' => JText::_('AFFILIATE_PROGRAM'),
			'fontawesome' => ''.
				'<i class="fas fa-user
fa-stack-2x"></i>'.
				'<i class="fas fa-circle fa-stack-1x fa-inverse"
style="top:30%;left:30%;"></i>'.
				'<i class="fas fa-dollar-sign fa-stack-1x"
style="top:30%;left:30%;"></i>'
		);
		return true;
	}

	public function onBeforeOrderListing($paramBase, &$extrafilters,
&$pageInfo, &$filters) {
		$app = JFactory::getApplication();
		if(!hikashop_isClient('administrator'))
			return;
		$pageInfo->filter->filter_partner =
$app->getUserStateFromRequest($paramBase.".filter_partner",'filter_partner','','int');
		$extrafilters['filter_partner'] =& $this;

		if(!empty($pageInfo->filter->filter_partner)) {
			if($pageInfo->filter->filter_partner == 1) {
				$filters[] = 'b.order_partner_id != 0';
			} else {
				$filters[] = 'b.order_partner_id = 0';
			}
		}
	}

	public function onAfterOrderListing(&$rows, &$extrafields,
$pageInfo) {
		$app = JFactory::getApplication();
		if(!hikashop_isClient('administrator'))
			return;
		$myextrafield = new stdClass();
		$myextrafield->name = JText::_('PARTNER');
		$myextrafield->obj =& $this;
		$extrafields['partner'] = $myextrafield;
	}

	public function displayFilter($name, $filter) {
		$partner = hikashop_get('type.user_partner');
		return $partner->display('filter_partner',
$filter->filter_partner, false);
	}

	public function showField($container, $name, &$row) {
		if(!bccomp($row->order_partner_price, 0, 5))
			return '';
		$ret =
$container->currencyHelper->format($row->order_partner_price,$row->order_partner_currency_id);
		if(empty($row->order_partner_paid)) {
			$ret .= JText::_('NOT_PAID');
		} else {
			$ret .= JText::_('PAID').'<img
src="'.HIKASHOP_IMAGES.'ok.png" />';
		}
		return $ret;
	}

	public function onDiscountBlocksDisplay(&$discount, &$html) {
		$options = array(
			JHTML::_('select.option', -1,
JText::_('NO_PARTNER')),
			JHTML::_('select.option', 0,
JText::_('CURRENT_CUSTOMER_PARTNER'))
		);
		$db = JFactory::getDBO();
		$db->setQuery('SELECT a.user_id, b.name, b.username FROM
#__hikashop_user AS a LEFT JOIN #__users AS b ON a.user_cms_id = b.id WHERE
a.user_partner_activated = 1 ORDER BY b.username', 0, 250);
		$partners = $db->loadObjectList();
		if(!empty($partners)) {
			foreach($partners as $partner) {
				$options[] = JHTML::_('select.option', $partner->user_id,
$partner->username.' ('.$partner->name.')');
			}
		}
		$html[] = '<dt
data-discount-display="coupon"><label>'.
JText::_('FORCE_AFFILIATION_TO')
.'</label></dt><dd
data-discount-display="coupon">'.
				JHTML::_('hikaselect.genericlist', $options,
'data[discount][discount_affiliate]' ,
'class="custom-select"', 'value',
'text', @$discount->discount_affiliate ).
				'</dd>';
	}

	function onOrderStatusListingLoad( &$orderstatus_columns,
&$rows){
		$orderstatus_columns['affiliate'] = array(
			'text' => JText::_('AFFILIATE'),
			'title' => JText::_('VALID_ORDER_STATUS'),
			'description' => JText::_('AFFILIATE_DESC'),
			'key' => 'partner_valid_status',
			'default' => 'confirmed,shipped',
			'type' => 'toggle',
			'trigger' =>
'plg.system.hikashopaffiliate.affiliateStatusUpdate'
		);
	}

	function affiliateStatusUpdate(&$controller, $elementPkey, $value,
$extra){
		return $controller->configstatus($elementPkey,$value, $extra);
	}
}
PK�X�[��<���'hikashopaffiliate/hikashopaffiliate.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>System - HikaShop Affiliate</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop System plugin to handle
affiliates</description>
	<files>
		<filename
plugin="hikashopaffiliate">hikashopaffiliate.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="partner_key_name" type="text"
label="HIKA_PARTNER_KEY_NAME"
description="PARTNER_KEY_NAME"
default="partner_id"/>
		<param name="after_init" type="radio"
label="AFTER_INITIALISATION" default="1"
description="AFFILIATE_AFTER_INITIALISATION" >
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param
			name="button_on_control_panel"
			type="radio"
			label="BUTTON_ON_CONTROL_PANEL"
			default="1"
			description="BUTTON_ON_CONTROL_PANEL" >
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field
					name="partner_key_name"
					type="text"
					label="HIKA_PARTNER_KEY_NAME"
					default="partner_id"
					description="PARTNER_KEY_NAME" />
				<field
					name="after_init"
					type="radio"
					label="AFTER_INITIALISATION"
					default="0"
					description="AFFILIATE_AFTER_INITIALISATION" >
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field
					name="button_on_control_panel"
					type="radio"
					label="BUTTON_ON_CONTROL_PANEL"
					default="1"
					description="BUTTON_ON_CONTROL_PANEL" >
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopaffiliate/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�p��]�]'hikashopanalytics/hikashopanalytics.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopanalytics extends JPlugin
{
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);

		if(isset($this->params))
			return;
		$plugin = JPluginHelper::getPlugin('system',
'hikashopanalytics');
		$this->params = new JRegistry($plugin->params);
	}

	public function onBeforeOrderCreate(&$order) {
		if(isset($order->order_type) && $order->order_type !=
'sale')
			return;
		$app = JFactory::getApplication();
		if(hikashop_isClient('administrator'))
			return;

		$ga = @$_SESSION['hikashop_analytics_ga'];
		if(!empty($_POST['checkout']['analytics']['ga']))
{
			$formData = hikaInput::get()->get('checkout', array(),
'array');
			$ga = $formData['analytics']['ga'];
		}


		if(empty($ga))
			return;

		if(!empty($order->order_payment_params) &&
is_string($order->order_payment_params))
			$order->order_payment_params =
hikashop_unserialize($order->order_payment_params);
		if(empty($order->order_payment_params))
			$order->order_payment_params = new stdClass();
		$order->order_payment_params->analytics_ga = trim($ga);
	}

	public function onAfterOrderCreate(&$order) {
		if(isset($order->order_type) && $order->order_type !=
'sale')
			return;

		return $this->checkOrder($order, true);
	}

	public function onAfterOrderUpdate(&$order) {
		if(isset($order->order_type) && $order->order_type !=
'sale')
			return;

		return $this->checkOrder($order, false);
	}


	public function afterInitialise() {
		return $this->onAfterInitialise();
	}

	public function onAfterInitialise() {
		if(empty($_POST['checkout']['analytics']['ga']))
			return;

		$app = JFactory::getApplication();
		$checkout = $app->input->get('checkout', '',
'array');
		$_SESSION['hikashop_analytics_ga'] =
$checkout['analytics']['ga'];
	}

	protected function checkOrder(&$order, $creation = false) {
		if(!hikashop_level(2))
			return true;

		if(isset($order->order_type) && $order->order_type !=
'sale')
			return true;
		if(isset($order->old->order_type) &&
$order->old->order_type != 'sale')
			return true;

		if(!isset($order->order_status))
			return true;

		$config = hikashop_config();
		$confirmed_status = $config->get('order_confirmed_status',
'confirmed');

		if( !$this->params->get('use_universal', 0) &&
$creation ) {
			$app = JFactory::getApplication();
			$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_order',
$order->order_id);
			$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_counter',
10);
		}

		if(!$this->params->get('single_submission', 0) &&
$order->order_status != $confirmed_status)
			return true;

		$invoice_statuses = explode(',',
$config->get('invoice_order_statuses','confirmed,shipped'));
		if(empty($invoice_statuses))
			$invoice_statuses = array('confirmed','shipped');
		if($this->params->get('single_submission', 0) &&
in_array($confirmed_status, $invoice_statuses) &&
!empty($order->old) &&
!empty($order->old->order_invoice_id))
			return true;

		$app = JFactory::getApplication();
		$app->setUserState(HIKASHOP_COMPONENT.'.display_ga', 1);
		$app->setUserState(HIKASHOP_COMPONENT.'.order_id',
$order->order_id);
		$app->setUserState(HIKASHOP_COMPONENT.'.error_display_ga',
0);

		$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_order',
null);
		$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_counter',
null);

		if($this->params->get('use_universal', 0)) {
			$call = false;
			if($this->params->get('universal_always_directcall',
0))
				$call = true;
			if(!$call && !hikashop_isClient('administrator')) {
				$ctrl = hikaInput::get()->getCmd('ctrl', '');
				$task = hikaInput::get()->getCmd('task', '');
				if($ctrl == 'checkout' && $task ==
'notify')
					$call = true;
			}

			if($call) {
				$ret = $this->googleProcess($order->order_id);
				if($ret === true) {
					$app->setUserState(HIKASHOP_COMPONENT.'.display_ga', 0);
				} else if($this->params->get('debug_mode')) {
					$ip = hikashop_getIP();
					$data = 'Transaction validated, postpone the
javascript'."\r\n".
						'IP: ' . $ip . "\r\n".
						'URL: ' . hikashop_currentURL();
					$this->writeToLog($data);
				}
			}
		}

		return true;
	}

	public function onAfterRender() {
		$app = JFactory::getApplication();

		$this->getUTM();

		$display_ga =
(int)$app->getUserState('com_hikashop.display_ga', 0);
		$check_counter =
(int)$app->getUserState('com_hikashop.ga_check_counter', 0);
		$check_order =
(int)$app->getUserState('com_hikashop.ga_check_order', 0);

		if(empty($display_ga) && (empty($check_counter) ||
empty($check_order)))
			return true;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;
		if(!hikashop_level(2))
			return true;

		if(!empty($display_ga)) {
			$order_id =
(int)$app->getUserState(HIKASHOP_COMPONENT.'.order_id', 0);
		} else {
			$order_id = $check_order;
			$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_counter',
$check_counter - 1);
		}

		$content = $this->googleProcess($order_id, true);
		if(!empty($content) && is_string($content)) {
			if(class_exists('JResponse'))
				$body = JResponse::getBody();
			$alternate_body = false;
			if(empty($body)) {
				$body = $app->getBody();
				$alternate_body = true;
			}

			ini_set('pcre.jit', false);
			$body = preg_replace("#<script
type=\"text/javascript\">(?:(?!<script).)*('https://ssl'
: 'http://www'\) \+
'\.|window,document,'script','//www\.)google-analytics\.com.*</script>#siU",
'', $body);

			$body = str_replace('</head>', $content .
'</head>', $body);
			if($alternate_body) {
				$app->setBody($body);
			} else {
				JResponse::setBody($body);
			}

			$app->setUserState(HIKASHOP_COMPONENT.'.display_ga', 0);
			$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_order',
null);
			$app->setUserState(HIKASHOP_COMPONENT.'.ga_check_counter',
null);
		}
		return true;
	}
	private function getUTM() {
		if(!empty($_REQUEST['utm_source']) ||
!empty($_REQUEST['utm_campaign']) ||
!empty($_REQUEST['utm_medium']) ||
!empty($_REQUEST['utm_term']) ||
!empty($_REQUEST['utm_content'])) {
			$this->storeUTMFromParameters();
		} elseif(!empty($_COOKIE['__utmz'])) {
			$this->storeUTMFromCookie();
		}
	}
	private function storeUTMFromParameters() {
		$vars = array('cn' =>
'utm_campaign','cs' =>
'utm_source','cm' =>
'utm_medium','ck' =>
'utm_term','cc' => 'utm_content');
		foreach($vars as $key => $value) {
			if(!empty($_REQUEST[$value])) {
				$_SESSION['hikashop_analytics_ga_'.$key] =
hikaInput::get()->getString($value);
			}
		}
	}
	private function storeUTMFromCookie() {
		$vars = array('cn' => 'utmccn','cs'
=> 'utmcsr','cm' =>
'utmcmd','ck' => 'utmctr');
		$parts = explode('.', $_COOKIE['__utmz']);
		$params = explode('|', end($parts));
		$data = array();
		foreach($params as $param) {
			if(!strpos($param, '='))
				continue;
			list($key, $value) = explode('=', $param, 2);
			$data[$key] = $value;
		}
		jimport('joomla.filter.filterinput');
		$filter = JFilterInput::getInstance(array(), array(), 1, 1);
		foreach($vars as $key => $value) {
			if(!empty($data[$value]) && !is_null($filter)) {
				$_SESSION['hikashop_analytics_ga_'.$key] =
$filter->clean($data[$value], 'string');
			}
		}
	}

	public function onHikashopBeforeDisplayView(&$viewObj) {
		$app = JFactory::getApplication();
		if(hikashop_isClient('administrator'))
			return;

		$viewName = $viewObj->getName();
		if($viewName != 'checkout')
			return;
		$layout = $viewObj->getLayout();
		if(!in_array($layout, array('show', 'step')))
			return;

		$account_configured = false;
		for($i = 1; $i < 6; $i++) {
			$a = $this->params->get('account_' . $i, '');
			if(!empty($a)) {
				$account_configured = true;
				break;
			}
		}
		if(!$account_configured)
			return;

		if(empty($viewObj->extra_data))
			$viewObj->extra_data = array();
		$params = array();
		$vars = array('cn', 'cs', 'cm',
'ck', 'cc');
		foreach($vars as $key) {
			if(!empty($_SESSION['hikashop_analytics_ga_'.$key]))
			$params[] = $key.':
\''.$viewObj->escape($_SESSION['hikashop_analytics_ga_'.$key]).'\',';
		}
		$viewObj->extra_data['analytics_ga'] = '
<input type="hidden"
id="hikashop_checkout_analytics_field_ga"
name="checkout[analytics][ga]"
value="'.$viewObj->escape(@$_SESSION['hikashop_analytics_ga']).'"/>
<script type="text/javascript">
window.hikashop.ready(function(){
	if(!ga || typeof(ga) != "function")
		return;
	ga(function(tracker){
		var clientId = tracker.get("clientId"),
			elem =
document.getElementById("hikashop_checkout_analytics_field_ga");
		if(elem) elem.value = JSON.stringify({
			uuid: tracker.get("clientId"),
			ua: tracker.get("navigator.userAgent"),
			'.
			implode("\r\n", $params)
			.'
			ul: tracker.get("language"),
		});
	});
});
</script>';
	}

	protected function googleProcess($order_id = 0, $render = false) {
		$accounts = array();
		$account_configured = false;
		for($i = 1; $i < 6; $i++) {
			$accounts[$i] = new stdClass();
			$accounts[$i]->account_id =
$this->params->get('account_' . $i, '');
			$accounts[$i]->currency =
$this->params->get('currency_' . $i, 0);

			if(!empty($accounts[$i]->account_id))
				$account_configured = true;
		}

		if(empty($accounts) || !$account_configured)
			return false;

		$app = JFactory::getApplication();
		if(empty($order_id))
			$order_id = hikaInput::get()->getInt('order_id');
		if(empty($order_id))
			$order_id =
$app->getUserState(HIKASHOP_COMPONENT.'.order_id');

		if(empty($order_id))
			return false;

		$config = hikashop_config();
		$confirmed_status = $config->get('order_confirmed_status',
'confirmed');

		$orderClass = hikashop_get('class.order');
		$order = $orderClass->loadFullOrder($order_id, false, false);

		if(empty($order) || $order->order_status != $confirmed_status)
			return false;

		if($order->order_type != 'sale')
			return false;

		$currencyClass = hikashop_get('class.currency');
		$null = array();
		$currencies = array(
			$order->order_currency_id => $order->order_currency_id
		);
		$currencyInfo = $currencyClass->getCurrencies($currencies, $null);
		$currencyInfo = reset($currencyInfo);

		if($this->params->get('use_universal', 0)) {
			$call =
(int)$this->params->get('universal_always_directcall', 0);
			if($call && $render)
				return true;

			if(!$call && !hikashop_isClient('administrator')) {
				$ctrl = hikaInput::get()->getCmd('ctrl', '');
				$task = hikaInput::get()->getCmd('task', '');
				if($ctrl == 'checkout' && $task ==
'notify')
					$call = true;
			}

			if($call)
				return $this->googleDirectCall($accounts, $order, $currencyInfo);
		}
		return $this->googleGetJS($accounts, $order, $currencyInfo);
	}

	protected function googleGetJS($accounts, &$order, $currencyInfo) {
		$found = false;

		$app = JFactory::getApplication();

		$to_currency = '';
		$main_currency = '';
		foreach($accounts as $acc) {
			$currencies = explode(':', $acc->currency, 2);
			$main_currency = reset($currencies);

			if($main_currency != $currencyInfo->currency_code) {
				if( count($currencies) > 1 ) {
					$from_currencies = explode(',', $currencies[1]);
					if(!in_array($currencyInfo->currency_code, $from_currencies))
						continue;
					$to_currency = $main_currency;
				} else {
					continue;
				}
			}

			if(!empty($acc->account_id)) {
				$account = $acc->account_id;
				$found = true;
				if(!preg_match('/UA-[0-9]{2,12}-[0-9]{1,3}/',$account)) {
					if(!$app->getUserState(HIKASHOP_COMPONENT.'.error_display_ga'))
{
						$app->setUserState(HIKASHOP_COMPONENT.'.error_display_ga',
1);
						$app->enqueueMessage(JText::_('GOOGLE_ACCOUNT_ID_INVALID'));
						$app->redirect(hikashop_currentUrl('', false));
					}
					return '';
				}
				break;
			}
		}

		if(empty($to_currency))
			$to_currency = $main_currency;

		if(!$found) {
			if(!$app->getUserState(HIKASHOP_COMPONENT.'.error_display_ga'))
{
				$app->setUserState(HIKASHOP_COMPONENT.'.error_display_ga',
1);
				$app->enqueueMessage(JText::_('NO_CURRENCY_FOUND_GOOGLE_ANALYTICS'));
				$app->redirect(hikashop_currentUrl('', false));
			}
			return '';
		}

		$jconf = JFactory::getConfig();
		if(HIKASHOP_J30)
			$siteName = $jconf->get('sitename');
		else
			$siteName = $jconf->getValue('config.sitename');

		$tax = ($order->order_subtotal - $order->order_subtotal_no_vat) +
$order->order_shipping_tax + $order->order_discount_tax +
$order->order_payment_tax;
		if(!empty($order->order_tax_info)) {
			$tax = 0;
			foreach($order->order_tax_info as $tax_info) {
				$tax += $tax_info->tax_amount;
			}
		}

		if($this->params->get('use_universal', 0)) {

			$extra_required = '';
			if($this->params->get('module_displayfeatures', 0))
				$extra_required .= "\r\n" . 'ga("require",
"displayfeatures");';
			if($this->params->get('module_linkid', 0))
				$extra_required .= "\r\n" . 'ga("require",
"linkid", "linkid.js");';

			$js = '
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new
Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,"script","//www.google-analytics.com/analytics.js","ga");

ga("create", "' . $account . '",
"auto");'.$extra_required.'
ga("send", "pageview");
ga("require", "ecommerce", "ecommerce.js");

ga("ecommerce:addTransaction", {
	"id": "' . $order->order_id.'",
	"affiliation": "' .
str_replace(array('\\','"'),
array('\\\\', '\\\"'), $siteName) . '",
	"revenue": "' .
round($this->convertPrices($order->order_full_price,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"shipping": "' .
round($this->convertPrices($order->order_shipping_price,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"tax": "' . round($this->convertPrices($tax,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"currency": "'.$to_currency.'"
});
';

			foreach($order->products as $product) {
				$js .= '
ga("ecommerce:addItem", {
	"id": "' . $order->order_id . '",
	"name": "' .
str_replace(array('\\','"'),
array('\\\\', '\\\"'),
strip_tags($product->order_product_name)) . '",
	"sku": "' .
str_replace(array('\\','"'),
array('\\\\', '\\\"'),
$product->order_product_code) . '",
	"category": "",
	"price": "' .
round($this->convertPrices($product->order_product_price +
$product->order_product_tax, $currencyInfo->currency_code,
$to_currency), 2). '",
	"quantity": "' .
(int)$product->order_product_quantity . '"
});
';
			}

			$js .= '
ga("ecommerce:send");
</script>
<!-- End Google Analytics -->
';

			if($this->params->get('debug_mode')) {
				$ip = hikashop_getIP();
				$data = 'Adding google UA javascript'."\r\n".
					'IP: ' . $ip . "\r\n".
					'URL: ' . hikashop_currentURL() ."\r\n\r\n".
					'<pre>' . htmlentities($js) .
'</pre>';
				$this->writeToLog($data);
			}
		} else {

			$extra_required = '';
			if($this->params->get('module_linkid', 0))
				$extra_required .= "\r\n" .
'var pluginUrl =
"//www.google-analytics.com/plugins/ga/inpage_linkid.js";
_gaq.push(["_require", "inpage_linkid",
pluginUrl]);';

			$js = '
<script type="text/javascript">
var _gaq = _gaq || [];'.$extra_required.'
_gaq.push(["_setAccount", "' . $account .
'"]);
_gaq.push(["_trackPageview"]);
_gaq.push(["_addTrans",
	"' . $order->order_id . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'), $siteName) . '",
	"' . round($this->convertPrices($order->order_full_price,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"' . round($this->convertPrices($tax,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"' .
round($this->convertPrices($order->order_shipping_price,
$currencyInfo->currency_code, $to_currency), 2) . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'),
@$order->billing_address->address_city) . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'),
@$order->billing_address->address_state) . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'),
@$order->billing_address->address_country) . '",
]);
';
			foreach($order->products as $product) {
				$js .= '
_gaq.push(["_addItem",
	"' . $order->order_id . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'),
$product->order_product_code) . '",
	"' . str_replace(array('\\','"'),
array('\\\\', '\\\"'),
strip_tags($product->order_product_name)) . '",
	"",
	"' .
round($this->convertPrices($product->order_product_price +
$product->order_product_tax, $currencyInfo->currency_code,
$to_currency), 2) . '",
	"' . $product->order_product_quantity . '"
]);
';
			}

			$file = 'ga.js';
			if($this->params->get('debug_mode'))
				$file='u/ga_debug.js';

			$js .= '
_gaq.push(["_trackTrans"]);
(function() {
	var ga = document.createElement("script"); ga.type =
"text/javascript"; ga.async = true;
	ga.src = ("https:" == document.location.protocol ?
"https://ssl" : "http://www") +
".google-analytics.com/' . $file . '";
	var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
';
		}

		return $js;
	}

	protected function convertPrices($price, $src, $dst) {
		$class = hikashop_get('class.currency');
		static $currencies = array();
		if(!isset($currencies[$src]))
			$currencies[$src] = $class->get($src);
		if(!isset($currencies[$dst]))
			$currencies[$dst] = $class->get($dst);
		return $class->convertUniquePrice($price,
$currencies[$src]->currency_id, $currencies[$dst]->currency_id);
	}

	protected function googleDirectCall($accounts, &$order, $currencyInfo)
{
		$found = false;
		$to_currency = '';
		$main_currency = '';
		foreach($accounts as $acc) {
			$currencies = explode(':', $acc->currency, 2);
			$main_currency = reset($currencies);

			if($main_currency != $currencyInfo->currency_code) {
				if( count($currencies) > 1 ) {
					$from_currencies = explode(',', $currencies[1]);
					if(!in_array($currencyInfo->currency_code, $from_currencies))
						continue;
					$to_currency = $main_currency;
				} else {
					continue;
				}
			}
			if(!empty($acc->account_id)) {
				$account = $acc->account_id;
				if(!preg_match('/UA-[0-9]{2,12}-[0-9]{1}/', $account))
					continue;
				$found = true;
				break;
			}
		}
		if(!$found)
			return false;


		if(empty($to_currency))
			$to_currency = $main_currency;

		$params = array( 'uuid' => round((rand() / getrandmax()) *
0x7fffffff));


		$order_params = (!empty($order->order_payment_params) &&
is_string($order->order_payment_params)) ?
hikashop_unserialize($order->order_payment_params) :
$order->order_payment_params;
		if(!empty($order_params->analytics_ga)){
			if(substr($order_params->analytics_ga, 0, 1) == '{')
				$params = json_decode($order_params->analytics_ga, true);
			else
				$params['uuid'] = $order_params->analytics_ga;
		}

		$jconf = JFactory::getConfig();
		if(HIKASHOP_J30)
			$siteName = $jconf->get('sitename');
		else
			$siteName = $jconf->getValue('config.sitename');


		$data = array(
			'v' => 1,
			'tid' => $account,
			'uip' => $order->order_ip,
			'cid' => @$params['uuid'], // clientId

			't' => 'transaction',
			'ti' => $order->order_id, // order_id
			'ta' => $siteName,
			'tr' =>
round($this->convertPrices($order->order_full_price,
$currencyInfo->currency_code, $to_currency), 2),
			'tt' =>
round($this->convertPrices(($order->order_subtotal -
$order->order_subtotal_no_vat) + $order->order_shipping_tax +
$order->order_discount_tax, $currencyInfo->currency_code,
$to_currency), 2),
			'ts' =>
round($this->convertPrices($order->order_shipping_price,
$currencyInfo->currency_code, $to_currency), 2),
			'cu' => $to_currency
		);

		$variables = array(
			'ua', // user-agent from browser : navigator.userAgent
			'cn', // campaignName
			'cs', // campaignSource
			'cm', // campaignMedium
			'ck', // campaignKeyword
			'cc', // campaignContent
			'ci', // campaignId
			'ul', // language
		);
		foreach($variables as $variable) {
			if(!empty($params[$variable])) {
				$data[$variable] = $params[$variable];
			}
		}

		$this->googleDirectCallHit($data);

		foreach($order->products as $product) {
			$data = array(
				'v' => 1,
				'tid' => $account,
				'cid' =>  @$params['uuid'],

				't' => 'item',
				'ti' => $order->order_id, // order_id
				'in' => strip_tags($product->order_product_name), //
name
				'ip' =>
round($this->convertPrices($product->order_product_price +
$product->order_product_tax, $currencyInfo->currency_code,
$to_currency), 2), // price
				'iq' => $product->order_product_quantity, // qty
				'ic' => $product->order_product_code, // code
				'iv' => '',
				'cu' => $to_currency
			);
			$this->googleDirectCallHit($data);
		}

		if($this->params->get('debug_mode')) {
			$data = 'Send transaction by direct call
IP: ' . $ip . '
URL: ' . hikashop_currentURL();
			$this->writeToLog($data);
		}

		return true;
	}

	protected function googleDirectCallHit($data) {
		$url = 'http://www.google-analytics.com/collect';
		$headers = array('Content-type:
application/x-www-form-urlencoded');
		$user_agent = 'HikaShopAnalyticsTracking/1.0
(http://www.hikashop.com/)';

		$serialized_data = array();
		foreach($data as $k => $v) {
			$serialized_data[] = $k . '=' . urlencode($v);
		}
		$serialized_data = implode('&', $serialized_data);

		$session = curl_init();
		curl_setopt($session, CURLOPT_HEADER,         false);
		curl_setopt($session, CURLOPT_POST,           true);
		curl_setopt($session, CURLOPT_FOLLOWLOCATION, false);
		curl_setopt($session, CURLOPT_USERAGENT,      $user_agent);
		curl_setopt($session, CURLOPT_HTTP_VERSION,   CURL_HTTP_VERSION_1_1);
		curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false);
		curl_setopt($session, CURLOPT_ENCODING,       'UTF-8');
		curl_setopt($session, CURLOPT_HTTPHEADER,     $headers);
		curl_setopt($session, CURLOPT_URL,            $url);
		curl_setopt($session, CURLOPT_POSTFIELDS,     $serialized_data);

		$result = curl_exec($session);
		$error = curl_error($session);
		curl_close($session);

		if($this->params->get('debug_mode')) {
			$data = 'Google Analytics Direct call'."\r\n".
print_r($data, true) ."\r\n".
				'result: ' .print_r(array($result, $error), true);
			$this->writeToLog($data);
		}
	}


	protected function writeToLog($data = null) {
		$dbg = ($data === null) ? ob_get_clean() : $data;
		if(empty($dbg)) {
			if($data === null)
				ob_start();
			return;
		}

		$dbg = '-- ' . date('m.d.y H:i:s') . ' --
[Google Analytics]' . "\r\n" . $dbg;

		jimport('joomla.filesystem.file');
		$config = hikashop_config();
		$file = $config->get('payment_log_file', '');
		$file = rtrim(JPath::clean(html_entity_decode($file)), DS . '
');
		if(!preg_match('#^([A-Z]:)?/.*#', $file) && (!$file[0]
== '/' || !file_exists($file))) {
			$file = JPath::clean(HIKASHOP_ROOT . DS . trim($file, DS . '
'));
		}
		if(!empty($file) && defined('FILE_APPEND')) {
			if(!file_exists(dirname($file))) {
				jimport('joomla.filesystem.folder');
				JFolder::create(dirname($file));
			}
			file_put_contents($file, $dbg, FILE_APPEND);
		}
		if($data === null)
			ob_start();
	}
}
PK�X�[�m3IOO'hikashopanalytics/hikashopanalytics.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop Google Analytics Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE / OBSIDEV SARL - All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to track your sales with Google
Analytics</description>
	<files>
		<filename
plugin="hikashopanalytics">hikashopanalytics.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="use_universal" type="radio"
default="0" label="HIKA_USE_UNIVERSAL_ANALYTICS"
description="USE_UNIVERSAL_ANALYTICS">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>

		<param name="account_1" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_1"
description="GOOGLE_ANALYTICS_ACCOUNT" />
		<param name="currency_1" type="text"
size="3" default="EUR"
label="GOOGLE_ANALYTICS_ACCOUNT_1_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

		<param name="account_2" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_2"
description="GOOGLE_ANALYTICS_ACCOUNT" />
		<param name="currency_2" type="text"
size="3" default="USD"
label="GOOGLE_ANALYTICS_ACCOUNT_2_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

		<param name="account_3" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_3"
description="GOOGLE_ANALYTICS_ACCOUNT" />
		<param name="currency_3" type="text"
size="3" default="JPY"
label="GOOGLE_ANALYTICS_ACCOUNT_3_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

		<param name="account_4" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_4"
description="GOOGLE_ANALYTICS_ACCOUNT" />
		<param name="currency_4" type="text"
size="3" default="GBP"
label="GOOGLE_ANALYTICS_ACCOUNT_4_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

		<param name="account_5" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_5"
description="GOOGLE_ANALYTICS_ACCOUNT" />
		<param name="currency_5" type="text"
size="3" default="CAD"
label="GOOGLE_ANALYTICS_ACCOUNT_5_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

		<param name="single_submission" type="radio"
default="0" label="HIKA_SINGLE_SUBMISSION"
description="SINGLE_SUBMISSION">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>

		<param name="debug_mode" type="radio"
default="0" label="ANALYTICS_DEBUG_MODE"
description="DEBUG_MODE">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>

		<param type="spacer" label="EXTRA_MODULES" />
		<param name="module_linkid" type="radio"
default="0" label="ENHANCED_LINK_ATTRIBUTION"
description="">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="module_displayfeatures" type="radio"
default="0" label="HIKA_ENABLING_DISPLAY_FEATURES"
description="ENABLING_DISPLAY_FEATURES">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="universal_always_directcall"
type="radio" default="0"
label="ALWAYS_USE_DIRECT_CALL"
description="ANALYTICS_DIRECT_CALL">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="use_universal" type="radio"
default="0" label="HIKA_USE_UNIVERSAL_ANALYTICS"
description="USE_UNIVERSAL_ANALYTICS" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>

				<field name="account_1" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_1"
description="GOOGLE_ANALYTICS_ACCOUNT" />
				<field name="currency_1" type="text"
size="3" default="EUR"
label="GOOGLE_ANALYTICS_ACCOUNT_1_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

				<field name="account_2" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_2"
description="GOOGLE_ANALYTICS_ACCOUNT" />
				<field name="currency_2" type="text"
size="3" default="USD"
label="GOOGLE_ANALYTICS_ACCOUNT_2_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

				<field name="account_3" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_3"
description="GOOGLE_ANALYTICS_ACCOUNT" />
				<field name="currency_3" type="text"
size="3" default="JPY"
label="GOOGLE_ANALYTICS_ACCOUNT_3_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

				<field name="account_4" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_4"
description="GOOGLE_ANALYTICS_ACCOUNT" />
				<field name="currency_4" type="text"
size="3" default="GBP"
label="GOOGLE_ANALYTICS_ACCOUNT_4_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

				<field name="account_5" type="text"
size="20" default=""
label="GOOGLE_ANALYTICS_ACCOUNT_5"
description="GOOGLE_ANALYTICS_ACCOUNT" />
				<field name="currency_5" type="text"
size="3" default="CAD"
label="GOOGLE_ANALYTICS_ACCOUNT_5_CURRENCY"
description="GOOGLE_ANALYTICS_ACCOUNT_CURRENCY" />

				<field name="single_submission" type="radio"
default="0" label="HIKA_SINGLE_SUBMISSION"
description="SINGLE_SUBMISSION" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>

				<field name="debug_mode" type="radio"
default="0" label="ANALYTICS_DEBUG_MODE"
description="DEBUG_MODE" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>

				<field type="spacer" label="EXTRA_MODULES"
/>
				<field name="module_linkid" type="radio"
default="0" label="ENHANCED_LINK_ATTRIBUTION"
description="" class="btn-group btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="module_displayfeatures"
type="radio" default="0"
label="HIKA_ENABLING_DISPLAY_FEATURES"
description="ENABLING_DISPLAY_FEATURES" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="universal_always_directcall"
type="radio" default="0"
label="ALWAYS_USE_DIRECT_CALL"
description="ANALYTICS_DIRECT_CALL" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopanalytics/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�[��
� +hikashopgeolocation/hikashopgeolocation.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopgeolocation extends JPlugin
{
	function __construct(&$subject, $config){
		parent::__construct($subject, $config);
		if(!isset($this->params)){
			$plugin = JPluginHelper::getPlugin('system',
'hikashopgeolocation');
			$this->params = new JRegistry($plugin->params);
		}
	}

	function onAfterOrderCreate(&$order,&$send_email){
		$app = JFactory::getApplication();
		if (hikashop_isClient('administrator') || !hikashop_level(2))
			return true;

		if(!empty($order->order_id) && !empty($order->order_ip)){
			$order_geoloc = $this->params->get('order',1);
			if($order_geoloc){
				$geo = new stdClass();
				$geo->geolocation_ref_id = $order->order_id;
				$geo->geolocation_type = 'order';
				$geo->geolocation_ip = $order->order_ip;
				$class = hikashop_get('class.geolocation');
				$class->params =& $this->params;
				$class->save($geo);
			}
		}
		return true;
	}

	public function afterInitialise() {
		return $this->onAfterInitialise();
	}

	public function afterRoute() {
		return $this->onAfterRoute();
	}

	public function onAfterInitialise() {
		$app = JFactory::getApplication();

		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if($admin)
			return;

		if(!$this->params->get('after_init', 1))
			return;

		$this->process();
	}

	public function onAfterRoute() {
		$app = JFactory::getApplication();
		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if($admin)
			return;

		if($this->params->get('after_init', 1))
			return;

		$this->process();
	}

	function process(){
		$app = JFactory::getApplication();
		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if ($admin) return true;
		$zone = 0;
		$components  =
$this->params->get('components','all');

		if($components=='all' ||
in_array($_REQUEST['option'],explode(',',$components))){
			$blocked_zones =
$this->params->get('blocked_zones','');
			$authorized_zones =
$this->params->get('authorized_zones','');

			if(!empty($blocked_zones) || !empty($authorized_zones)){
				if(!defined('DS'))
					define('DS', DIRECTORY_SEPARATOR);
				if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;

				if(!hikashop_level(2)) return true;
				$zone = $this->getZone();
				if(!empty($zone)){
					$zoneClass = hikashop_get('class.zone');
					$parents = $zoneClass->getZoneParents($zone);
					$db = JFactory::getDBO();
					$zones = array();
					foreach($parents as $parent){
						$zones[] = $db->Quote($parent);
					}
					$db->setQuery('SELECT zone_id FROM
'.hikashop_table('zone').' WHERE zone_namekey IN
('.implode(',',$zones).')');
					$zones = $db->loadColumn();

					$ok = false;
					if(!empty($authorized_zones)){
						$authorized_zones = explode(',',$authorized_zones);
						$valid_zones = array_intersect($zones,$authorized_zones);
						if(!empty($valid_zones)){
							$ok=true;
						}
					}elseif(!empty($blocked_zones)){
						$ok=true;
						$blocked_zones = explode(',',$blocked_zones);
						$invalid_zones = array_intersect($zones,$blocked_zones);
						if(!empty($invalid_zones)){
							$ok=false;
						}
					}
					if(!$ok){
						$name = 'hikashopgeolocation_restricted.php';
						$path =
JPATH_THEMES.DS.$app->getTemplate().DS.'system'.DS.$name;
						if(!file_exists($path)){
							$path = JPATH_PLUGINS
.DS.'system'.DS.'hikashopgeolocation'.DS.$name;
							if(!file_exists($path)){
								exit;
							}
						}

						require($path);
					}
				}
			}
		}

		$set_default_currency  =
$this->params->get('set_default_currency', 0);
		if(!empty($set_default_currency)) {
			$currency = $app->getUserState('com_hikashop.currency_id',
0);
			if(empty($currency)){
				if(empty($zone)){
					if(!defined('DS'))
						define('DS', DIRECTORY_SEPARATOR);
					if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;
					if(!hikashop_level(2)) return true;
					$zone = $this->getZone();
				}
				$config =& hikashop_config();
				$toSetCurrency = (int)$config->get('main_currency',1);
				if(!empty($zone)){
					$zoneClass = hikashop_get('class.zone');
					$zone_currency_id = $zoneClass->getZoneCurrency($zone);
					$currencyClass = hikashop_get('class.currency');

					if(empty($zone_currency_id) &&
!empty($this->geolocation->currencyCode)){
						$zone_currency_id = $this->geolocation->currencyCode;
					}

					if(!empty($zone_currency_id)){
						$currencyData = $currencyClass->get($zone_currency_id);
						if(!empty($currencyData) &&
($currencyData->currency_published ||
$currencyData->currency_displayed)){
							$toSetCurrency = $currencyData->currency_id;
						}
					}
				}

				$app->setUserState(
HIKASHOP_COMPONENT.'.currency_id',$toSetCurrency);
			}
		}

		$zone_id =
(int)$app->getUserState('com_hikashop.zone_id',0);
		if(empty($zone_id) && empty($zone)) {
			if(!defined('DS'))
				define('DS', DIRECTORY_SEPARATOR);
			if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;
			if(!hikashop_level(2)) return true;
			$zone = $this->getZone();
		}
		$geo_zone_id =
(int)$app->getUserState('com_hikashop.geoloc_zone_id',0);
		if(empty($geo_zone_id) && !empty($zone))
			$app->setUserState('com_hikashop.geoloc_zone_id',
(int)$zone);

		return true;
	}

	function getZone(){
		$app = JFactory::getApplication();
		$zone =
(int)$app->getUserState(HIKASHOP_COMPONENT.'.zone_id',0);
		if(!empty($zone))
			return $zone;

		$geoClass = hikashop_get('class.geolocation');
		$this->geolocation = $geoClass->getIPLocation(hikashop_getIP());
		if(empty($this->geolocation))
			return $zone;

		$geolocation_country_code = $this->geolocation->countryCode;
		$db = JFactory::getDBO();
		$db->setQuery('SELECT * FROM
'.hikashop_table('zone').' WHERE zone_code_2
='.$db->Quote($geolocation_country_code).' AND
zone_type=\'country\'  AND zone_published=1');
		$zones = $db->loadObjectList();
		if(empty($zones)) {
			$states = array();
			$countries = array();
			foreach($zones as $zone){
				if($zone->zone_type=='state'){
					$states[]=$zone;
				}else{
					$countries[]=$zone;
				}
			}
			if(!empty($states)){
				if(empty($countries)){
					$zone = $states[0]->zone_id;
				}else{
					$child_namekeys=array();
					foreach($states as $state){
						$child_namekeys[]=$db->Quote($state->zone_namekey);
					}
					$parent_namekeys=array();
					foreach($countries as $country){
						$parent_namekeys[]=$db->Quote($country->zone_namekey);
					}
					$db->setQuery('SELECT zone_child_namekey FROM
'.hikashop_table('zone_link').' WHERE
zone_parent_namekey IN
('.implode(',',$parent_namekeys).') AND
zone_child_namekey IN
('.implode(',',$child_namekeys).')');
					$link = $db->loadResult();
					if(empty($link)){
						$zone = $countries[0]->zone_id;
					}else{
						foreach($states as $state){
							if($state->zone_namekey==$link){
								$zone = $state->zone_id;
							}
						}
					}
				}
			}else{
				$zone = $countries[0]->zone_id;
			}
		}
		if(empty($zone)){
			$db->setQuery('SELECT zone_id FROM
'.hikashop_table('zone').' WHERE
zone_code_2='.$db->Quote($geolocation_country_code).' AND
zone_published=1');
			$zone = $db->loadResult();
		}
		if(!empty($zone)){
			$app->setUserState( HIKASHOP_COMPONENT.'.zone_id',
(int)$zone);
			$app->setUserState( HIKASHOP_COMPONENT.'.geoloc_zone_id',
(int)$zone);
		}

		return (int)$zone;
	}
}
PK�X�[��h-::+hikashopgeolocation/hikashopgeolocation.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop Geolocation Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to handle
geolocation</description>
	<files>
		<filename
plugin="hikashopgeolocation">hikashopgeolocation.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="geoloc_timeout" type="text"
size="10" default="10" label="TIMEOUT"
description="GEOLOCATION_TIMEOUT" />
		<param name="geoloc_service" type="radio"
default="both" label="HIKA_GEOLOCATION_SERVICE"
description="GEOLOCATION_SERVICE">
			<option
value="geoplugin">GEOLOCATION_GEOPLUGIN</option>
			<option
value="ipinfodb">GEOLOCATION_IPINFODB</option>
			<option value="both">GEOLOCATION_BOTH</option>
		</param>
		<param name="geoloc_api_key" type="textarea"
cols="30" default="" label="API_KEY"
description="GEOLOCATION_API_KEY" />
		<param name="order" type="radio"
default="1" label="HIKA_ORDERS_GEOLOCATION"
description="ORDERS_GEOLOCATION">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="user" type="radio"
default="1" label="HIKA_CUSTOMERS_GEOLOCATION"
description="CUSTOMERS_GEOLOCATION">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="set_default_currency" type="radio"
default="0" label="SET_CURRENCY"
description="GEOLOCATION_CURRENCY">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="blocked_zones" type="text"
size="52" default="" label="ZONES_BLOCKED"
description="GEOLOCATION_ZONES_BLOCKED" />
		<param name="authorized_zones" type="text"
size="52" default="" label="ZONES_AUTHORIZED"
description="GEOLOCATION_ZONES_AUTHORIZED" />
		<param name="components" type="text"
size="52" default="all"
label="COMPONENTS_CHECKED"
description="GEOLOCATION_COMPONENTS_CHECKED" />
		<param name="after_init" type="radio"
label="AFTER_INITIALISATION" default="1"
description="AFFILIATE_AFTER_INITIALISATION" >
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="geoloc_timeout" type="text"
label="TIMEOUT" size="10" default="10"
description="GEOLOCATION_TIMEOUT" />
				<field name="geoloc_service" type="radio"
default="both" label="HIKA_GEOLOCATION_SERVICE"
description="GEOLOCATION_SERVICE">
					<option
value="geoplugin">GEOLOCATION_GEOPLUGIN</option>
					<option
value="ipinfodb">GEOLOCATION_IPINFODB</option>
					<option value="both">GEOLOCATION_BOTH</option>
				</field>
				<field name="geoloc_api_key" type="textarea"
cols="30" default="" label="API_KEY"
description="GEOLOCATION_API_KEY" />
				<field name="order" type="radio"
label="HIKA_ORDERS_GEOLOCATION" default="1"
description="ORDERS_GEOLOCATION">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="user" type="radio"
label="HIKA_CUSTOMERS_GEOLOCATION" default="1"
description="CUSTOMERS_GEOLOCATION">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="set_default_currency" type="radio"
default="0" label="SET_CURRENCY"
description="GEOLOCATION_CURRENCY" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="blocked_zones" type="text"
size="52" default="" label="ZONES_BLOCKED"
description="GEOLOCATION_ZONES_BLOCKED" />
				<field name="authorized_zones" type="text"
size="52" default="" label="ZONES_AUTHORIZED"
description="GEOLOCATION_ZONES_AUTHORIZED" />
				<field name="components" type="text"
size="52" default="all"
label="COMPONENTS_CHECKED"
description="GEOLOCATION_COMPONENTS_CHECKED" />
				<field name="after_init" type="radio"
label="AFTER_INITIALISATION" default="1"
description="AFFILIATE_AFTER_INITIALISATION" >
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�i7�GG6hikashopgeolocation/hikashopgeolocation_restricted.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><html>
	<head>
<?php
	$doc = JFactory::getDocument();
	$head = $doc->loadRenderer('head');
	if(HIKASHOP_J30)
		echo $head->render('');
	else
		echo $head->render();
?>
	</head>
	<body>
		<?php echo
hikashop_display(JText::_('RESSOURCE_NOT_ALLOWED'),'error');
?>
	</body>
</html>
<?php exit;
PK�X�[�#o,,hikashopgeolocation/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[����c�c)hikashopmassaction/hikashopmassaction.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
if(!defined('DS'))
	define('DS',DIRECTORY_SEPARATOR);
jimport('joomla.plugin.plugin');

class plgSystemHikashopmassaction extends JPlugin {

	function __construct(&$subject, $config){
		parent::__construct($subject, $config);
		if(!isset($this->params)){
			$plugin = JPluginHelper::getPlugin('system',
'hikashopmassaction');
			$this->params = new JRegistry(@$plugin->params);
		}
	}

	function onMassactionTableTriggersLoad(&$table, &$triggers,
&$triggers_html, &$loadedData) {
		$triggers['onHikashopCronTriggerMinutes']=JText::_('EVERY_MINUTES');
		$triggers['onHikashopCronTriggerHours']=JText::_('EVERY_HOURS');
		$triggers['onHikashopCronTriggerDays']=JText::_('EVERY_DAYS');
		$triggers['onHikashopCronTriggerWeeks']=JText::_('EVERY_WEEKS');
		$triggers['onHikashopCronTriggerMonths']=JText::_('EVERY_MONTHS');
		$triggers['onHikashopCronTriggerYears']=JText::_('EVERY_YEARS');
	}

	function
onMassactionTableFiltersLoad(&$table,&$filters,&$filters_html,&$loadedData){
		$db = JFactory::getDBO();
		$operators = hikashop_get('type.operators');
		$cid = hikashop_getCID();
		$tables = array();
		$custom = '';
		$type = 'filter';
		$massactionClass = hikashop_get('class.massaction');
		if(empty($loadedData->massaction_filters)){
			$loadedData->massaction_filters = array();
		}

		if(!HIKASHOP_J30){
			$fieldsTable = $db->getTableFields('#__hikashop_user');
			$hkUsers = reset($fieldsTable);
			$fieldsTable = $db->getTableFields('#__users');
			$jUsers = reset($fieldsTable);
		} else {
			$hkUsers = $db->getTableColumns('#__hikashop_user');
			$jUsers = $db->getTableColumns('#__users');
		}
		ksort($hkUsers);
		ksort($jUsers);

		if($table->table == 'address')
			$tables = array('address','user');
		if($table->table == 'category')
			$tables = array('category','parent_category');
		if($table->table == 'order')
			$tables =
array('order','order_product','address','user');
		if($table->table == 'product')
			$tables =
array('product','price','category','characteristic','product_related','product_option');
		if($table->table == 'user')
			$tables = array('user','address');
		$loadedData->massaction_filters['__num__'] = new
stdClass();
		$loadedData->massaction_filters['__num__']->type =
$table->table;
		$loadedData->massaction_filters['__num__']->data =
array();
		$loadedData->massaction_filters['__num__']->data['type']
= '';
		$loadedData->massaction_filters['__num__']->data['operator']
= '';
		$loadedData->massaction_filters['__num__']->data['value']
= '';
		$loadedData->massaction_filters['__num__']->name =
'';
		$loadedData->massaction_filters['__num__']->html =
'';

		foreach($loadedData->massaction_filters as $key => &$value) {
			if(!isset($value->data['type']))
				$value->data['type'] = '';
			if(!isset($value->data['operator']))
				$value->data['operator'] = '=';
			if(!isset($value->data['value']))
				$value->data['value'] = '';
			if(!isset($value->data['address']))
				$value->data['address'] = '';

			if(!empty($tables)){
				if(!is_array($tables)) $tables = array($tables);
				foreach($tables as $relatedTable){
					$column = $relatedTable.'Column';
					$loadedData->massaction_filters['__num__']->name =
$column;
					$filters[$column]=JText::_(''.strtoupper($relatedTable).'_COLUMN');
					if($relatedTable == 'product_option') $relatedTable =
'product_related';
					if($relatedTable == 'parent_category') $relatedTable =
'category';
					if(!HIKASHOP_J30){
						$fieldsTable =
$db->getTableFields('#__hikashop_'.$relatedTable);
						$fields = reset($fieldsTable);
					} else {
						$fields =
$db->getTableColumns('#__hikashop_'.$relatedTable);
					}
					ksort($fields);
					$typeField = array();
					if(!empty($fields)) {
						foreach($fields as $oneField => $fieldType){
							$typeField[] =
JHTML::_('select.option',$oneField,$oneField);
						}
					}
					$user = '<select class="custom-select chzn-done
not-processed"
name="filter['.$table->table.']['.$key.'][userColumn][type]"
onchange="countresults(\''.$table->table.'\','.$key.')"
>';
						$user .='<optgroup label="HIKA_USER">';
							foreach($hkUsers as $key2 => $hkUser){
								$tmpVal =
str_replace('hk_user.','',$value->data['type']);
								if($key2 == $tmpVal)
									$user .= '<option
value="hk_user.'.$key2.'"
selected="selected">'.$key2.'</option>';
								else
									$user .= '<option
value="hk_user.'.$key2.'">'.$key2.'</option>';
							}
						$user .= '</optgroup>';
						$user .='<optgroup label="JOOMLA_USER">';
							foreach($jUsers as $key2 => $jUser){
								$tmpVal =
str_replace('joomla_user.','',$value->data['type']);
								if($key2 == $tmpVal)
									$user .= '<option
value="joomla_user.'.$key2.'"
selected="selected">'.$key2.'</option>';
								else
									$user .= '<option
value="joomla_user.'.$key2.'">'.$key2.'</option>';
							}
						$user .= '</optgroup>';
					$user .= '</select>';
					switch($table->table){
						case 'product':
							if($relatedTable == 'characteristic'){
								$db->setQuery('SELECT * FROM
'.hikashop_table('characteristic').' WHERE
characteristic_parent_id = 0');
								$characteristics = $db->loadObjectList();
								if(is_array($characteristics)){
									$custom = '<select class="custom-select chzn-done
not-processed"
name="filter['.$table->table.']['.$key.'][characteristicColumn][type]"
onchange="countresults('.$table->table.','.$key.')"
>';
									foreach($characteristics as $charact){
										$selected = '';
										if($charact->characteristic_value ==
$value->data['type']) $selected =
'selected="selected"';
										$custom .= '<option
value="'.$charact->characteristic_value.'"
'.$selected.'>'.$charact->characteristic_value.'</option>';
									}
									$custom .= '</select>';
								}
							}
							elseif(in_array($relatedTable,
array('product_related','product_option'))){
								if(!HIKASHOP_J30){
									$fieldsTable =
$db->getTableFields('#__hikashop_product');
									$fields = reset($fieldsTable);
								} else {
									$fields =
$db->getTableColumns('#__hikashop_product');
								}
								ksort($fields);
								$typeField = array();
								if(!empty($fields)) {
									foreach($fields as $oneField => $fieldType){
										$typeField[] =
JHTML::_('select.option',$oneField,$oneField);
									}
								}
								$custom = JHTML::_('select.genericlist', $typeField,
"filter[".$table->table."][$key][".$column."][type]",
'class="custom-select chzn-done not-processed"
onchange="countresults(\''.$table->table.'\','.$key.')"
size="1"', 'value',
'text',$value->data['type']);
							}else{
								$custom = '';
							}
							break;
						case 'category':
							$custom = '';
							break;
						case 'order':
							if($relatedTable == 'address'){
								$datas = array('both' =>
'DISPLAY_BOTH','bill' =>
'HIKASHOP_BILLING_ADDRESS','ship' =>
'HIKASHOP_SHIPPING_ADDRESS');
								$custom = '<select class="custom-select chzn-done
not-processed"
onchange="countresults(\''.$table->table.'\','.$key.')"
name="filter['.$table->table.']['.$key.'][addressColumn][address]"
>';
								foreach($datas as $k => $data){
									$selected = '';
									if($k == $value->data['address']) $selected =
'selected="selected"';
									$custom .= '<option value="'.$k.'"
'.$selected.'>'.JText::sprintf(''.$data.'').'</option>';
								}
								$custom .= '</select>';
							}elseif($relatedTable == 'user'){
								$custom = $user;
							}else{
								$custom = '';
							}
							break;
						case 'user':
							if($relatedTable == 'user'){
								$custom = $user;
							}else{
								$custom = '';
							}
							break;
						case 'address':
							if($relatedTable == 'user'){
								$custom = $user;
							}else{
								$custom = '';
							}
							break;
					}
					if($value->name != $column || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;

					$value->type = $relatedTable;
					$output = $custom;
					if(!in_array($relatedTable,
array('characteristic','product_related','user'))){
						$output .= JHTML::_('select.genericlist', $typeField,
"filter[".$table->table."][".$key."][".$column."][type]",
'class="custom-select chzn-done not-processed"
onchange="countresults(\''.$table->table.'\',\''.$key.'\')"
size="1"', 'value', 'text',
$value->data['type']);
					}
					$operators->extra =
'onchange="countresults(\''.$table->table.'\',\''.$key.'\')"';
					$output .=
$operators->display('filter['.$table->table.']['.$key.']['.$column.'][operator]',$value->data['operator'],
"chzn-done not-processed");
					$output .= ' <input class="inputbox"
type="text"
name="filter['.$table->table.']['.$key.']['.$column.'][value]"
size="50"
value="'.htmlspecialchars($value->data['value'],
ENT_COMPAT, 'UTF-8').'"
onchange="countresults(\''.$table->table.'\',\''.$key.'\')"
/>';

					$filters_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}
			}
		}

				$loadedData->massaction_filters['__num__'] = new
stdClass();
				$loadedData->massaction_filters['__num__']->name =
'limit';
				$loadedData->massaction_filters['__num__']->type =
$table->table;
				$loadedData->massaction_filters['__num__']->data =
array();
				$loadedData->massaction_filters['__num__']->data['start']
= '0';
				$loadedData->massaction_filters['__num__']->data['value']
= '500';
				$loadedData->massaction_filters['__num__']->html =
'';

				foreach($loadedData->massaction_filters as $key => &$value)
{
					if($value->name != 'limit' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;

					$value->type = $table->table;
					if(!isset($value->data['start']))
$value->data['start'] = 0;
					if(!isset($value->data['value']))
$value->data['value'] = 500;
					$output = '<div
id="'.$table->table.'filter'.$key.'limit">'.JText::_('HIKA_START').'
: <input type="text"
name="filter['.$table->table.']['.$key.'][limit][start]"
value="'.$value->data['start'].'" />
'.JText::_('VALUE').' : <input type="text"
name="filter['.$table->table.']['.$key.'][limit][value]"
value="'.$value->data['value'].'"/>'.'</div>';
					$filters_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}

				$filters['ordering']=JText::_('ORDERING');
				$loadedData->massaction_filters['__num__'] = new
stdClass();
				$loadedData->massaction_filters['__num__']->name =
'ordering';
				$loadedData->massaction_filters['__num__']->type =
$table->table;
				$loadedData->massaction_filters['__num__']->data =
array();
				$loadedData->massaction_filters['__num__']->data['value']
= '';
				$loadedData->massaction_filters['__num__']->html =
'';

				foreach($loadedData->massaction_filters as $key => &$value)
{
					if($value->name != 'ordering' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;

					$value->type = $table->table;
					if(!isset($value->data['value']))
$value->data['value'] = $table->table.'_id';

					if(!HIKASHOP_J30) {
						$fieldsTable =
$db->getTableFields('#__hikashop_'.$table->table);
						$fields = reset($fieldsTable);
					} else {
						$fields =
$db->getTableColumns('#__hikashop_'.$table->table);
					}
					ksort($fields);
					if(!isset($value->data['value']))
$value->data['value'] = $table->table.'_id';
					$output = '<div
id="'.$table->table.'filter'.$key.'ordering">'.JText::_('VALUE').'
: ';
					$output .= '<select class="custom-select chzn-done
not-processed"
name="filter['.$table->table.']['.$key.'][ordering][value]">';
					foreach($fields as $field => $fieldType){
					$selected = '';
						if($value->data['value'] == $field)
							$selected = 'selected="selected"';
						$output .= '<option value="'.$field.'"
'.$selected.'>'.$field.'</option>';
					}
					$output .= '</select></div>';
					$filters_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}

				$filters['direction']=JText::_('MASSACTION_ORDERING_DIRECTION');
				$loadedData->massaction_filters['__num__'] = new
stdClass();
				$loadedData->massaction_filters['__num__']->name =
'direction';
				$loadedData->massaction_filters['__num__']->type =
$table->table;
				$loadedData->massaction_filters['__num__']->data =
array();
				$loadedData->massaction_filters['__num__']->data['value']
= '';
				$loadedData->massaction_filters['__num__']->html =
'';

				foreach($loadedData->massaction_filters as $key => &$value)
{
					if($value->name != 'direction' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;

					$value->type = $table->table;
					if(!isset($value->data['value']))
$value->data['value'] = 'ASC';
					$output = '<div
id="'.$table->table.'filter'.$key.'direction">'.JText::_('VALUE').'
: <select class="custom-select chzn-done not-processed"
name="filter['.$table->table.']['.$key.'][direction][value]">';
					$values = array('ASC','DESC');
					foreach($values as $oneValue){
						$selected = '';
						if($value->data['value'] == $oneValue)
							$selected = 'selected="selected"';
						$output .= '<option value="'.$oneValue.'"
'.$selected.'>'.$oneValue.'</option>';
					}
					$output .= '</select>'.'</div>';
					$filters_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}

			if(hikashop_level(2)){
				if(in_array($table->table,array('product','category'))){
					$filters['accessLevel']=JText::_('ACCESS_LEVEL');
				}else{
					$filters['accessLevel']=JText::_('USER_WITH_ACL');
				}
				$loadedData->massaction_filters['__num__'] = new
stdClass();
				$loadedData->massaction_filters['__num__']->name =
'accessLevel';
				$loadedData->massaction_filters['__num__']->type =
$table->table;
				$loadedData->massaction_filters['__num__']->data =
array();
				$loadedData->massaction_filters['__num__']->data['type']
= '';
				$loadedData->massaction_filters['__num__']->data['group']
= '';
				$loadedData->massaction_filters['__num__']->html =
'';

				$db = JFactory::getDBO();
				$db->setQuery('SELECT a.*, a.title as text, a.id as value  FROM
#__usergroups AS a ORDER BY a.lft ASC');
				$groups = $db->loadObjectList('id');
				foreach($groups as $id => $group){
					if(isset($groups[$group->parent_id])){
						$groups[$id]->level =
intval(@$groups[$group->parent_id]->level) + 1;
						$groups[$id]->text = str_repeat('- -
',$groups[$id]->level).$groups[$id]->text;
					}
				}

				$inoperator = hikashop_get('type.operatorsin');
				foreach($loadedData->massaction_filters as $key => &$value)
{
					if($value->name != 'accessLevel' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;

					$value->type = $table->table;
					$inoperator->js =
'onchange="countresults(\''.$table->table.'\','.$key.')"';
					$output =
$inoperator->display("filter[".$table->table."][$key][accessLevel][type]",$value->data['type'],
'chzn-done not-processed').'
'.JHTML::_('select.genericlist',   $groups,
"filter[".$table->table."][$key][accessLevel][group]",
'class="custom-select chzn-done not-processed"
size="1"
onchange="countresults(\''.$table->table.'\','.$key.')"',
'value', 'text',$value->data['group']);

					$filters_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}
			}
?>
<script type="text/javascript">
	function hikashop_verifycsvcolumns(k){
		var target = "productfilter"+k+"csvImport_verify";
		var url = "<?php echo
hikashop_completeLink('massaction&task=displayassociate&tmpl=component',false,false,true);
?>";
		var data = "cid=<?php echo hikashop_getCID();
?>&current_filter="+k+"&csv_path=" +
encodeURIComponent(document.getElementById("productfilter"+k+"csvImport_path_value").value);
		if(data != ""){
			window.Oby.xRequest(url, {update: target, mode: "POST", data:
data});
		}
	}
	function hikashop_switchmode(el,k) {
		var d = document, v = el.value, modes =
['upload','path'], e = null;
		for(var i = 0; i < modes.length; i++) {
			mode = modes[i];
			e =
d.getElementById('productfilter'+k+'csvImport_'+mode);
			if(!e) continue;
			if(v == mode) {
				e.style.display = '';
			} else {
				e.style.display = 'none';
			}
			if(v != 'upload'){
				d.getElementById('productfilter'+k+'csvImport_path').style.display
= '';
				d.getElementById('productfilter'+k+'csvImport_upload').style.display
= 'none';
			}else{
				d.getElementById('productfilter'+k+'csvImport_path').style.display
= 'none';
				d.getElementById('productfilter'+k+'csvImport_upload').style.display
= '';
			}
		}
	}
</script>
<?php
	}

	function
onMassactionTableActionsLoad(&$table,&$actions,&$actions_html,&$loadedData){
		$db = JFactory::getDBO();
		$dispTables = array();
		$updTables = array();
		$customCheckboxes = '';
		$database = JFactory::getDBO();
		$type = 'action';
		if(empty($loadedData->massaction_filters)){
			$loadedData->massaction_filters = array();
		}
		$massactionClass = hikashop_get('class.massaction');
		$nameboxType = hikashop_get('type.namebox');
		$actions['displayResults']=JText::_('DISPLAY_RESULTS');
		$actions['exportCsv']=JText::_('EXPORT_CSV');
		$actions['updateValues']=JText::_('UPDATE_VALUES');
		$actions['deleteElements']=JText::_('DELETE_ELEMENTS');
		$actions['sendEmail']=JText::_('MASS_SEND_EMAIL');
		switch($table->table){
			case 'product':
				$dispTables =
array('product','price','category');
				$updTables = array('product','price');

				$actions['updateCategories']=JText::_('UPDATE_CATEGORIES');
				$actions['updateRelateds']=JText::_('UPDATE_RELATEDS');
				$actions['updateOptions']=JText::_('UPDATE_OPTIONS');
				$actions['updateCharacteristics']=JText::_('UPDATE_CHARACTERISTICS');
				$actions['setCanonical']=JText::_('HK_SET_CANONICAL');

				break;
			case 'category':
				$dispTables = array('category');
				$updTables = array('category');
				break;
			case 'order':
				$dispTables =
array('order','order_product','address','user','joomla_users');
				$updTables = array('order','order_product');
				$actions['changeStatus']=JText::_('CHANGE_STATUS');
				$actions['addProduct']=JText::_('ADD_EXISTING_PRODUCT');
				$actions['changeGroup']=JText::_('CHANGE_USER_GROUP');
				break;
			case 'user':
				$dispTables =
array('user','joomla_users','address');
				$updTables = array('user','joomla_users');
				$actions['changeGroup']=JText::_('CHANGE_USER_GROUP');
				break;
			case 'address':
				$dispTables =
array('address','user','joomla_users');
				$updTables = array('address');
				break;
			case 'user':
				$dispTables =
array('user','joomla_users','address');
				$updTables = array('user','joomla_users');
			default:
				return false;
			break;
		}



			$actions['mysqlQuery']=JText::_('RUN_MYSQL_QUERY');
			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->data =
array('type' => '','value' =>
'','operation' => '');
			$loadedData->massaction_actions['__num__']->name =
'mysqlQuery';
			$loadedData->massaction_actions['__num__']->html =
'';
			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'mysqlQuery' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
					continue;
				$output = ' <textarea
name="action['.$table->table.']['.$key.'][mysqlQuery][query]"
rows="15" cols="100">'.
htmlspecialchars(@$value->data['query'], ENT_COMPAT,
'UTF-8').'</textarea>';
				$actions_html[$value->name] = 
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
			}

		if(is_array($dispTables)){

			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->data =
array();
			$loadedData->massaction_actions['__num__']->name =
'displayResults';
			$loadedData->massaction_actions['__num__']->html =
'';

			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'displayResults' || ($table->table
!= $loadedData->massaction_table && is_int($key)))
					continue;

				$value->type = $dispTables[0];

				$margin = '';
				$output = '';
				$customCheckboxes='';
				foreach($dispTables as $relatedTable){
					if(!HIKASHOP_J30){
						if(preg_match('/joomla_/',$relatedTable)) $fieldsTable =
$db->getTableFields('#__'.str_replace('joomla_','',$relatedTable));
						else $fieldsTable =
$db->getTableFields('#__hikashop_'.$relatedTable);
						$fields = reset($fieldsTable);
					} else {
						if(preg_match('/joomla_/',$relatedTable)) $fields =
$db->getTableColumns('#__'.str_replace('joomla_','',$relatedTable));
						else $fields =
$db->getTableColumns('#__hikashop_'.$relatedTable);
					}
					if(!empty($fields)) {
						$output .= '<div
id="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_div"
class="hika_massaction_checkbox"> <a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a>
<br/>';

						foreach($fields as $key2 => $field){
							if($key2 == 'address_state'){
								$fields['zone_state_name'] = $field;
								$fields['zone_state_name_english'] = $field;
								$fields['zone_state_code_2'] = $field;
								$fields['zone_state_code_3'] = $field;
							}elseif($key2 == 'address_country'){
								$fields['zone_country_name'] = $field;
								$fields['zone_country_name_english'] = $field;
								$fields['zone_country_code_2'] = $field;
								$fields['zone_country_code_3'] = $field;
							}
						}
						ksort($fields);
						foreach($fields as $key2 => $field){
							$checked='';
							if(isset($value->data[$relatedTable]) &&
isset($value->data[$relatedTable][$key2])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'"
name="action['.$table->table.']['.$key.'][displayResults]['.$relatedTable.']['.$key2.']"
value="'.$key2.'" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'">'.$key2.'</label><br/>';
						}
						if($relatedTable == 'order'){
							$key2 = 'order_tax_amount';
							$checked='';
							if(isset($value->data[$relatedTable]) &&
isset($value->data[$relatedTable][$key2])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'"
name="action['.$table->table.']['.$key.'][displayResults]['.$relatedTable.']['.$key2.']"
value="'.$key2.'" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'">'.$key2.'</label><br/>';
							$key2 = 'order_tax_namekey';
							$checked='';
							if(isset($value->data[$relatedTable]) &&
isset($value->data[$relatedTable][$key2])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'"
name="action['.$table->table.']['.$key.'][displayResults]['.$relatedTable.']['.$key2.']"
value="'.$key2.'" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_'.$relatedTable.'Column_'.$key2.'">'.$key2.'</label><br/>';
						}
						$output .= '</div>';
						$margin = 'margin-left: 20px;';
					}
				}

				switch($table->table){
					case 'product':
						$db->setQuery('SELECT * FROM
'.hikashop_table('characteristic').' WHERE
characteristic_parent_id = 0');
						$characteristics = $db->loadObjectList();
						if(is_array($characteristics)){
							$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_displayResults_characteristicColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_characteristicColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_characteristicColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/>';
							foreach($characteristics as $characteristic){
								$checked='';
								if(isset($value->data['characteristic'][$characteristic->characteristic_value])){
									$checked='checked="checked"';
								}
								$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_characteristicColumn_'.$characteristic->characteristic_value.'"
name="action['.$table->table.']['.$key.'][displayResults][characteristic]['.$characteristic->characteristic_value.']"
value="'.$characteristic->characteristic_value.'"
/><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_characteristicColumn_'.$characteristic->characteristic_value.'">'.$characteristic->characteristic_value.'</label><br/>';
							}
							$customCheckboxes .= '</div>';
						}
						$db->setQuery('SELECT * FROM
'.hikashop_table('product_related'));
						$relateds = $db->loadObjectList();
						if(is_array($relateds)){
							$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_displayResults_relatedColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_relatedColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_displayResults_relatedColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/>';
							$displayed = array();
							foreach($relateds as $related){
								$checked='';
								if(isset($value->data['related'][$related->product_related_type])){
									$checked='checked="checked"';
								}
								if(!in_array($related->product_related_type, $displayed))
									$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_relatedColumn_'.$related->product_related_type.'"
name="action['.$table->table.']['.$key.'][displayResults][related]['.$related->product_related_type.']"
value="'.$related->product_related_type.'"
/><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_relatedColumn_'.$related->product_related_type.'">'.$related->product_related_type.'</label><br/>';
								$displayed[] = $related->product_related_type;
							}
							$customCheckboxes .= '</div>';
						}

						break;
					case 'user':
						$checked='';
						if(isset($value->data['usergroups'])){
							$checked='checked="checked"';
						}
						$customCheckboxes .= '<div
class="hika_massaction_checkbox">';
						$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_displayResults_usergroupsColumn_title"
name="action['.$table->table.']['.$key.'][displayResults][usergroups][title]"
value="usergroups" /><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_displayResults_usergroupsColumn_title">'.JText::_('GROUP_NAME').'</label><br/>';
						$customCheckboxes .= '</div>';
						break;
				}

				$output .= $customCheckboxes;
				$output .= '<div
style="clear:both;"></div>';

				$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);

			}


			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->data =
array('path'=>'');
			$loadedData->massaction_actions['__num__']->name =
'exportCsv';
			$loadedData->massaction_actions['__num__']->html =
'';
			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'exportCsv' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
					continue;
				if(!isset($value->data['formatExport']['path']))
$value->data['formatExport']['path'] =
'';
				if(!isset($value->data['formatExport']['email']))
$value->data['formatExport']['email'] =
'';
				$output='';
				$margin = '';
				$customCheckboxes='';
				foreach($dispTables as $relatedTable){
					if(!HIKASHOP_J30){
						if(preg_match('/joomla_/',$relatedTable)) $fieldsTable =
$db->getTableFields('#__'.str_replace('joomla_','',$relatedTable));
						else $fieldsTable =
$db->getTableFields('#__hikashop_'.$relatedTable);
						$fields = reset($fieldsTable);
					} else {
						if(preg_match('/joomla_/',$relatedTable)) $fields =
$db->getTableColumns('#__'.str_replace('joomla_','',$relatedTable));
						else $fields =
$db->getTableColumns('#__hikashop_'.$relatedTable);
					}
					if(!empty($fields)) {
						$output .= '<div
id="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_div"
class="hika_massaction_checkbox"> <a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a>
<br/>';

						foreach($fields as $key2 => $field){
							if($key2 == 'address_state'){
								$fields['zone_state_name'] = $field;
								$fields['zone_state_name_english'] = $field;
								$fields['zone_state_code_2'] = $field;
								$fields['zone_state_code_3'] = $field;
							}elseif($key2 == 'address_country'){
								$fields['zone_country_name'] = $field;
								$fields['zone_country_name_english'] = $field;
								$fields['zone_country_code_2'] = $field;
								$fields['zone_country_code_3'] = $field;
							}
						}
						ksort($fields);
						foreach($fields as $key2 => $field){
							$checked='';
							if(isset($value->data[$relatedTable]) &&
isset($value->data[$relatedTable][$key2])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_'.$key2.'"
name="action['.$table->table.']['.$key.'][exportCsv]['.$relatedTable.']['.$key2.']"
value="'.$key2.'" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_'.$key2.'">'.$key2.'</label><br/>';
						}

						if($relatedTable == 'order'){
							$key2 = 'order_full_tax';
							$checked='';
							if(isset($value->data[$relatedTable]) &&
isset($value->data[$relatedTable][$key2])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_'.$key2.'"
name="action['.$table->table.']['.$key.'][exportCsv]['.$relatedTable.']['.$key2.']"
value="'.$key2.'" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_'.$key2.'">'.$key2.'</label><br/>';
						}
						if($relatedTable == 'price'){
							$checked='';
							if(isset($value->data[$relatedTable]) &&
!empty($value->data[$relatedTable]['price_value_with_tax'])){
								$checked='checked="checked"';
							}
							$output .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_price_value_with_tax"
name="action['.$table->table.']['.$key.'][exportCsv]['.$relatedTable.'][price_value_with_tax]"
value="price_value_with_tax" /><label style="width:
100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_'.$relatedTable.'Column_price_value_with_tax">price_value_with_tax</label><br/>';
						}
						$output .= '</div>';
						$margin = 'margin-left: 20px;';
					}
				}

				switch($table->table){
					case 'product':
						$db->setQuery('SHOW COLUMNS FROM
'.hikashop_table('file'));
						$imageColumns = $db->loadObjectList();
						$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_exportCsv_filesColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_filesColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_filesColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/><b>'.JText::_('FILES').'</b><br/>';
						foreach($imageColumns as $imageColumn){
							$checked='';
							if(isset($value->data['files'][$imageColumn->Field])){
								$checked='checked="checked"';
							}
							$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_filesColumn_'.$imageColumn->Field.'"
name="action['.$table->table.']['.$key.'][exportCsv][files]['.$imageColumn->Field.']"
value="'.$imageColumn->Field.'" /><label
style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_filesColumn_'.$imageColumn->Field.'">'.$imageColumn->Field.'</label><br/>';
						}
						$customCheckboxes .= '</div>';

						$db->setQuery('SHOW COLUMNS FROM
'.hikashop_table('file'));
						$imageColumns = $db->loadObjectList();
						$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_exportCsv_imagesColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_imagesColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_imagesColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/><b>'.JText::_('HIKA_IMAGES').'</b><br/>';
						foreach($imageColumns as $imageColumn){
							$checked='';
							if(isset($value->data['images'][$imageColumn->Field])){
								$checked='checked="checked"';
							}
							$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_imagesColumn_'.$imageColumn->Field.'"
name="action['.$table->table.']['.$key.'][exportCsv][images]['.$imageColumn->Field.']"
value="'.$imageColumn->Field.'" /><label
style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_imagesColumn_'.$imageColumn->Field.'">'.$imageColumn->Field.'</label><br/>';
						}
						$customCheckboxes .= '</div>';

						$db->setQuery('SELECT * FROM
'.hikashop_table('characteristic').' WHERE
characteristic_parent_id = 0');
						$characteristics = $db->loadObjectList();
						if(is_array($characteristics)){
							$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_exportCsv_characteristicColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_characteristicColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_characteristicColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/>';
							foreach($characteristics as $characteristic){
								$checked='';
								if(isset($value->data['characteristic'][$characteristic->characteristic_value])){
									$checked='checked="checked"';
								}
								$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_characteristicColumn_'.$characteristic->characteristic_value.'"
name="action['.$table->table.']['.$key.'][exportCsv][characteristic]['.$characteristic->characteristic_value.']"
value="'.$characteristic->characteristic_value.'"
/><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_characteristicColumn_'.$characteristic->characteristic_value.'">'.$characteristic->characteristic_value.'</label><br/>';
							}
							$customCheckboxes .= '</div>';
						}
						$db->setQuery('SELECT * FROM
'.hikashop_table('product_related'));
						$relateds = $db->loadObjectList();
						if(is_array($relateds)){
							$customCheckboxes .= '<div
id="action_'.$table->table.'_'.$key.'_exportCsv_relatedColumn_div"
class="hika_massaction_checkbox"><a style="cursor:
pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_relatedColumn_div\',\'check\');">'.JText::_('SELECT_ALL').'</a>
/ <a style="cursor: pointer;"
onclick="checkAll(\'action_'.$table->table.'_'.$key.'_exportCsv_relatedColumn_div\',\'uncheck\');">'.JText::_('UNSELECT_ALL').'</a><br/>';
							$displayed = array();
							foreach($relateds as $related){
								$checked='';
								if(isset($value->data['related'][$related->product_related_type])){
									$checked='checked="checked"';
								}
								if(!in_array($related->product_related_type, $displayed))
									$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_relatedColumn_'.$related->product_related_type.'"
name="action['.$table->table.']['.$key.'][exportCsv][related]['.$related->product_related_type.']"
value="'.$related->product_related_type.'"
/><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_relatedColumn_'.$related->product_related_type.'">'.$related->product_related_type.'</label><br/>';
								$displayed[] = $related->product_related_type;
							}
							$customCheckboxes .= '</div>';
						}

						break;
					case 'user':
						$checked='';
						if(isset($value->data['usergroups'])){
							$checked='checked="checked"';
						}
						$customCheckboxes .= '<div
class="hika_massaction_checkbox">';
						$customCheckboxes .= '<input type="checkbox"
'.$checked.'
id="action_'.$table->table.'_'.$key.'_exportCsv_usergroupsColumn_title"
name="action['.$table->table.']['.$key.'][exportCsv][usergroups][title]"
value="usergroups" /><label style="width: 100%;"
for="action_'.$table->table.'_'.$key.'_exportCsv_usergroupsColumn_title">'.JText::_('GROUP_NAME').'</label><br/>';
						$customCheckboxes .= '</div>';
						break;
				}

				$output .= $customCheckboxes;
				$output .= '<div
style="clear:both;"></div>';
				$checked='';
				if(isset($value->data['formatExport']['format'])
&&
$value->data['formatExport']['format']=='xls')
					$checked='checked="checked"';
				$output .='<input type="radio"
id="action'.$table->table.''.$key.'exportCsvformatExportformatcsv"
name="action['.$table->table.']['.$key.'][exportCsv][formatExport][format]"
checked value="csv"> <label
for="action'.$table->table.''.$key.'exportCsvformatExportformatcsv">'.JText::_('CSV').'</label>
<input type="radio"
id="action'.$table->table.''.$key.'exportCsvformatExportformatxls"
name="action['.$table->table.']['.$key.'][exportCsv][formatExport][format]"
'.$checked.' value="xls"> <label
for="action'.$table->table.''.$key.'exportCsvformatExportformatxls">'.JText::_('XLS').'</label>';

				if($table->table == 'order') {
    				$checked='';
   
				if(isset($value->data['formatExport']['oneProductPerRow']))
    				    $checked='checked="checked"';
    			    $output .= '<br/>'.'<input
type="checkbox"
id="action'.$table->table.''.$key.'exportCsvOneProductPerRow"
name="action['.$table->table.']['.$key.'][exportCsv][formatExport][oneProductPerRow]"
'. $checked.' value="1"> <label
for="action'.$table->table.''.$key.'exportCsvOneProductPerRow">'.JText::_('ONE_PRODUCT_PER_ROW').'</label>';
				}
    			$output .=
'<br/>'.JText::_('EXPORT_PATH').': <input
type="text"
name="action['.$table->table.']['.$key.'][exportCsv][formatExport][path]"
value="'.$value->data['formatExport']['path'].'"
/>';
				$output .=
'<br/>'.JText::_('TO_ADDRESS').': <input
type="text"
name="action['.$table->table.']['.$key.'][exportCsv][formatExport][email]"
value="'.$value->data['formatExport']['email'].'"
/> '.JText::_('FILL_PATH_TO_USE_EMAIL');
				$output .= '<div
style="clear:both;"></div>';

				$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
			}


			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->data =
array('type' => '','value' =>
'','operation' => '');
			$loadedData->massaction_actions['__num__']->name =
'updateValues';
			$loadedData->massaction_actions['__num__']->html =
'';

			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'updateValues' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
					continue;

				$output='';
				$typeField = array();
				foreach($updTables as $relatedTable){
					if(!HIKASHOP_J30){
						if(preg_match('/joomla_/',$relatedTable)){
							$fieldsTable =
$db->getTableFields('#__'.str_replace('joomla_','',$relatedTable));
							$fields = reset($fieldsTable);
							foreach($fields as $key2 => $field){
								$fields[$relatedTable.'_'.$key2] = $fields[$key2];
								unset($fields[$key2]);
							}
							$fieldsTable = $fields;
						}
						else{
							$fieldsTable =
$db->getTableFields('#__hikashop_'.$relatedTable);
							$fields = reset($fieldsTable);
						}
					} else {
						if(preg_match('/joomla_/',$relatedTable)){
							$fields =
$db->getTableColumns('#__'.str_replace('joomla_','',$relatedTable));
							foreach($fields as $key2 => $field){
								$fields[$relatedTable.'_'.$key2] = $fields[$key2];
								unset($fields[$key2]);
							}
						}
						else $fields =
$db->getTableColumns('#__hikashop_'.$relatedTable);
					}
					ksort($fields);
					$typeField[] = JHTML::_('select.option',
'<OPTGROUP>',JText::_(strtoupper($relatedTable)));
					if(!empty($fields)) {
						foreach($fields as $key2 => $field){
							$typeField[] = JHTML::_('select.option',$key2,$key2);
						}
					}
					$typeField[] = JHTML::_('select.option',
'</OPTGROUP>');
				}

				$selected1='';$selected2='';$selected3='';$selected4='';
				$operations=array('int', 'float',
'string', 'operation');
				$options='';
				foreach($operations as $op){
					$selected='';
					if($op==$value->data['operation'])
						$selected='selected="selected"';
					$options .='<option '.$selected.'
value="'.$op.'">'.JText::_(strtoupper($op)).'</option>';
				}
				$output .= JHTML::_('select.genericlist', $typeField,
"action[".$table->table."][".$key."][updateValues][type]",
'class="custom-select chzn-done not-processed" 
size="1"', 'value', 'text',
$value->data['type']);
				$output .= ' = <select class="custom-select chzn-done
not-processed" onchange="if(this.value ==
\'operation\'){document.getElementById(\'updateValues_message\').style.display
= \'inline\';}"
name="action['.$table->table.']['.$key.'][updateValues][operation]">
														'.$options.'
													 </select>';
				$output .= ' <input class="inputbox"
type="text"
name="action['.$table->table.']['.$key.'][updateValues][value]"
size="50" value="'.
htmlspecialchars($value->data['value'], ENT_COMPAT,
'UTF-8').'"  />';

				$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
			}



			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->name =
'deleteElements';
			$loadedData->massaction_actions['__num__']->html =
'';

			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'deleteElements' || ($table->table
!= $loadedData->massaction_table && is_int($key)))
					continue;

				$output = JText::_('DELETE_FILTERED_ELEMENTS'); //'This
will delete all the elements returned in the filter.';
				$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);

			}


			$loadedData->massaction_actions['__num__'] = new
stdClass();
			$loadedData->massaction_actions['__num__']->type =
$table->table;
			$loadedData->massaction_actions['__num__']->data =
array('emailAddress' => '','emailSubject'
=> '','bodyData' => '');
			$loadedData->massaction_actions['__num__']->name =
'sendEmail';
			$loadedData->massaction_actions['__num__']->html =
'';

			foreach($loadedData->massaction_actions as $key => &$value) {
				if($value->name != 'sendEmail' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
					continue;
				if(!isset($value->data['emailAddress']))
$value->data['emailAddress'] = '';
				if(!isset($value->data['emailSubject']))
$value->data['emailSubject'] = '';
				if(!isset($value->data['bodyData']))
$value->data['bodyData'] = '';
				$output .=
'<br/>'.JText::_('TO_ADDRESS').': <input
type="text"
name="action['.$table->table.']['.$key.'][sendEmail][emailAddress]"
value="'.$value->data['emailAddress'].'"
/>';
				$output .=
'<br/>'.JText::_('EMAIL_SUBJECT').':
<input type="text"
name="action['.$table->table.']['.$key.'][sendEmail][emailSubject]"
value="'.$value->data['emailSubject'].'"
/>';
				$output .=
'<br/>'.JText::_('MASS_EMAIL_BODY_DATA').':
<textarea
name="action['.$table->table.']['.$key.'][sendEmail][bodyData]">'.$value->data['bodyData'].'</textarea>';
				$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);

			}

			if($loadedData->massaction_table == 'order'){

				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'changeStatus';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'notify' =>
'');

				foreach($loadedData->massaction_actions as $key => &$value)
{
					if(($value->name != 'changeStatus' || ($table->table
!= $loadedData->massaction_table && is_int($key))))
						continue;

					$db->setQuery('SELECT `orderstatus_namekey` FROM
'.hikashop_table('orderstatus'));
					$orderStatuses = $db->loadObjectList();

					$output='<div
id="'.$table->table.'action'.$key.'changeStatus">';
					$output.= JText::_('NEW_ORDER_STATUS').': <select
class="custom-select chzn-done not-processed"
id="action_'.$table->table.'_'.$key.'_changeStatus_value"
name="action['.$table->table.']['.$key.'][changeStatus][value]">';
					if(is_array($orderStatuses)){
						foreach($orderStatuses as $orderStatus){
							$orderStatus = $orderStatus->orderstatus_namekey;
							$selected='';
							if($orderStatus==@$value->data['value']){
								$selected='selected="selected"';
							}
							$output.='<option '.$selected.'
value="'.$orderStatus.'">'.hikashop_orderStatus($orderStatus).'</option>';
						}
					}
					$checked='';
					if(isset($value->data['notify']) &&
$value->data['notify']==1){
						$checked='checked="checked"';
					}
					$output.='</select><input type="checkbox"
'.$checked.' value="1"
id="action_'.$table->table.'_'.$key.'_changeStatus_notify"
name="action['.$table->table.']['.$key.'][changeStatus][notify]"/><label
for="action_'.$table->table.'_'.$key.'_changeStatus_notify">'.JText::_('SEND_NOTIFICATION_EMAIL').'</label></div>';
					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}


				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'addProduct';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'', 'quantity' => '1');

				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'addProduct' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;
					if(!isset($value->data['type']))
$value->data['type'] = 'add';
					$products=array();
					if(!empty($value->data) &&
!empty($value->data['value'])){
						hikashop_toInteger($value->data['value']);
						$query = 'SELECT product_id,product_name FROM
'.hikashop_table('product').' WHERE product_id IN
('.implode(',',$value->data['value']).')';
						$database->setQuery($query);
						$products = $database->loadColumn();
					}
					if(!isset($value->data['quantity']))
$value->data['quantity'] = '1';

					$productSelect = $nameboxType->display(
						'action['.$table->table.']['.$key.'][addProduct][value]',
						$products,
						hikashopNameboxType::NAMEBOX_MULTIPLE,
						'product',
						array(
							'delete' => true,
							'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
						)
					);

					$output ='<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_addProduct_type"
name="action['.$table->table.']['.$key.'][addProduct][type]">';
					$datas = array('add'=>'ADD',
'remove'=>'REMOVE');
					foreach($datas as $k => $data){
						$selected = '';
						if($k == $value->data['type']) $selected =
'selected="selected"';
						$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
					}
					$output .='</select>';
					$output .='<input class="inputbox"
type="text"
name="action['.$table->table.']['.$key.'][addProduct][quantity]"
size="10"
value="'.$value->data['quantity'].'" 
/> '.JText::_('PRODUCTS');
					$output .= $productSelect;
					if(isset($value->data['update'])) $checked =
'checked="checked"';
					else $checked = '';
					$output .= '<input type="checkbox"
value="update"
id="action_'.$table->table.'_'.$key.'_addProduct_update"
name="action['.$table->table.']['.$key.'][addProduct][update]"
'.$checked.'/><label
for="action_'.$table->table.'_'.$key.'_addProduct_update">'.JText::_('UPDATE_PRODUCT_STOCK').'</label>';

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}
			}

			if($loadedData->massaction_table == 'product'){


				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'updateCategories';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');

				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'updateCategories' ||
($table->table != $loadedData->massaction_table &&
is_int($key)))
						continue;

					if(empty($value->data['type']))
						$value->data['type'] = 'add';

					$categories=array();
					if(!empty($value->data) &&
!empty($value->data['value'])){
						$query = 'SELECT category_id, category_name FROM
'.hikashop_table('category').' WHERE category_id IN
('.implode($value->data['value'],',').')';
						$database->setQuery($query);
						$categories = $database->loadColumn();
					}

					$categorySelect = $nameboxType->display(
						'action['.$table->table.']['.$key.'][updateCategories][value]',
						$categories,
						hikashopNameboxType::NAMEBOX_MULTIPLE,
						'category',
						array(
							'delete' => true,
							'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
						)
					);

					$output ='<select
id="action_'.$table->table.'_'.$key.'_updateCategories_type"
class="custom-select select-listing chzn-done not-processed"
name="action['.$table->table.']['.$key.'][updateCategories][type]">';
					$datas = array('add'=>'ADD',
'replace'=>'REPLACE','remove'=>'REMOVE');
					foreach($datas as $k => $data){
						$selected = '';
						if($k == $value->data['type']) $selected =
'selected="selected"';
						$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
					}
					$output .='</select>';
					$output .= $categorySelect;

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}




				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'updateRelateds';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');


				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'updateRelateds' || ($table->table
!= $loadedData->massaction_table && is_int($key)))
						continue;

					$products=array();
					if(!empty($value->data) &&
!empty($value->data['value'])){
						hikashop_toInteger($value->data['value']);
						$query = 'SELECT product_id,product_name FROM
'.hikashop_table('product').' WHERE product_id IN
('.implode(',',$value->data['value']).')';
						$database->setQuery($query);
						$products = $database->loadColumn();
					}
					$productSelect = $nameboxType->display(
						'action['.$table->table.']['.$key.'][updateRelateds][value]',
						$products,
						hikashopNameboxType::NAMEBOX_MULTIPLE,
						'product',
						array(
							'delete' => true,
							'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
						)
					);

					$output ='<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_updateRelateds_type"
name="action['.$table->table.']['.$key.'][updateRelateds][type]">';
					$datas = array('add'=>'ADD',
'replace'=>'REPLACE');
					foreach($datas as $k => $data){
						$selected = '';
						if($k == $value->data['type']) $selected =
'selected="selected"';
						$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
					}
					$output .='</select>';
					$output .= $productSelect;

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}



				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'updateOptions';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');


				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'updateOptions' || ($table->table
!= $loadedData->massaction_table && is_int($key)))
						continue;

					$options=array();
					if(!empty($value->data) &&
!empty($value->data['value'])){
						hikashop_toInteger($value->data['value']);
						$query = 'SELECT product_id,product_name FROM
'.hikashop_table('product').' WHERE product_id IN
('.implode($value->data['value'],',').')';
						$database->setQuery($query);
						$options = $database->loadColumn();
					}
					$productSelect = $nameboxType->display(
						'action['.$table->table.']['.$key.'][updateOptions][value]',
						$options,
						hikashopNameboxType::NAMEBOX_MULTIPLE,
						'product',
						array(
							'delete' => true,
							'default_text' =>
'<em>'.JText::_('HIKA_NONE').'</em>',
						)
					);

					$output ='<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_updateOptions_type"
name="action['.$table->table.']['.$key.'][updateOptions][type]">';
					$datas = array('add'=>'ADD',
'replace'=>'REPLACE');
					foreach($datas as $k => $data){
						$selected = '';
						if($k == $value->data['type']) $selected =
'selected="selected"';
						$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
					}
					$output .='</select>';
					$output .= $productSelect;

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}



				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'updateCharacteristics';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');


				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'updateCharacteristics' ||
($table->table != $loadedData->massaction_table &&
is_int($key)))
						continue;

					$characteristics=array();
					$query = 'SELECT * FROM
'.hikashop_table('characteristic').' WHERE
characteristic_parent_id = 0';
					$database->setQuery($query);
					$characteristics = $database->loadObjectList();

					if(!empty($characteristics)){
						$output ='<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_updateCharacteristics_type"
name="action['.$table->table.']['.$key.'][updateCharacteristics][type]">';
						$datas = array('add'=>'ADD',
'delete'=>'HIKA_DELETE');
						foreach($datas as $k => $data){
							$selected = '';
							if($k == $value->data['type']) $selected =
'selected="selected"';
							$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
						}
						$output .='</select><br/><div
class="hika_massaction_checkbox" >';
						if(!isset($value->data['value']))
$value->data['value'] = '';
						if(!is_array($value->data['value']))
$value->data['value'] =
(array)$value->data['value'];
							foreach($characteristics as $characteristic){
								$checked = '';
								if(in_array($characteristic->characteristic_id,$value->data['value']))
$checked = 'checked="checked"';
								$output .= '<br/><input type="checkbox"
name="action['.$table->table.']['.$key.'][updateCharacteristics][value][]"
'.$checked.'
value="'.$characteristic->characteristic_id.'"
/>'.$characteristic->characteristic_value;
							}
						$output .= '</div>';
					}else{
						$output = '<div
class="alert">'.JText::_('MASSACTION_NO_CHARACTERISTICS').'</div>';
					}

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}


				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'setCanonical';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');

				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'setCanonical' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;
					if(!isset($value->data['value']))
$value->data['value'] = '';
					$output = '<input type="text"
id="action_'.$table->table.'_'.$key.'_setCanonical_value"
name="action['.$table->table.']['.$key.'][setCanonical][value]"
value="'.$value->data['value'].'">';
					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}

			}

			if($loadedData->massaction_table == 'order' ||
$loadedData->massaction_table == 'user'){
				$loadedData->massaction_actions['__num__'] = new
stdClass();
				$loadedData->massaction_actions['__num__']->type =
$table->table;
				$loadedData->massaction_actions['__num__']->name =
'changeGroup';
				$loadedData->massaction_actions['__num__']->html =
'';
				$loadedData->massaction_actions['__num__']->data =
array('value' => '', 'type' =>
'');


				foreach($loadedData->massaction_actions as $key => &$value)
{
					if($value->name != 'changeGroup' || ($table->table !=
$loadedData->massaction_table && is_int($key)))
						continue;
					if(!isset($value->data['type']))
$value->data['type'] = 'add';
					if(!isset($value->data['value']))
$value->data['value'] = '1';
					$query = 'SELECT * FROM
'.hikashop_table('usergroups',false);

					$database->setQuery($query);
					$groups = $database->loadObjectList();

					$output ='<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_changeGroup_type"
name="action['.$table->table.']['.$key.'][changeGroup][type]">';
					$datas = array('add'=>'ADD',
'replace'=>'REPLACE','remove'
=>'REMOVE');
					foreach($datas as $k => $data){
						$selected = '';
						if($k == $value->data['type']) $selected =
'selected="selected"';
						$output .='<option value="'.$k.'"
'.$selected.'>'.JText::_($data).'</option>';
					}
					$output .='</select>';

					$output .= '<select class="custom-select chzn-done
not-processed"
id="action_'.$table->table.'_'.$key.'_changeGroup_value"
name="action['.$table->table.']['.$key.'][changeGroup][value]">';
// categories
					foreach($groups as $group){
						$selected = '';
						if($group->id == $value->data['value']) $selected =
'selected="selected"';
						$output .='<option
value="'.$group->id.'"
'.$selected.'>'.JText::_($group->title).'</option>';
					}
					$output .= '</select>';

					$actions_html[$value->name] =
$massactionClass->initDefaultDiv($value, $key, $type, $table->table,
$loadedData, $output);
				}
			}
		}else{
			$actions_html['displayResults'] = '<div
id="'.$table->table.'action__num__displayResults"></div>';
			$actions_html['exportCsv'] = '<div
id="'.$table->table.'action__num__exportCsv"></div>';
			$actions_html['updateValues'] = '<div
id="'.$table->table.'action__num__updateValues"></div>';
		}

		$js="
			function checkAll(id, type){
				var toCheck =
document.getElementById(id).getElementsByTagName('input');
				for (i = 0 ; i < toCheck.length ; i++) {
					if (toCheck[i].type == 'checkbox') {
						if(type == 'check'){
							toCheck[i].checked = true;
						}else{
							toCheck[i].checked = false;
						}
					}
				}
			}";

		$doc = JFactory::getDocument();
		$doc->addScriptDeclaration(
"<!--\n".$js."\n//-->\n" );
	}

	function onReloadPageMassActionAfterEdition(&$reload){
		$reload['category']['category_id']='category_id';
		$reload['price']['price_product_id']='price_product_id';
		$reload['price']['price_currency_id']='price_currency_id';
		$reload['product']['product_dimension_unit']='product_dimension_unit';
		$reload['address']['address_id']='address_id';
		$reload['product'][]='';
		$reload['product'][]='';
	}

	function
onSaveEditionSquareMassAction($data,$data_id,$table,$column,$value,$id,$type){
		$database = JFactory::getDBO();
		switch($data){
			case 'product':
			$class = hikashop_get('class.product');
				switch($table){
					case 'category':
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						$query = 'SELECT category_id';
						$query .= ' FROM
'.hikashop_table('product_category');
						$query .= ' WHERE
product_id='.$database->Quote($data_id).' AND category_id
!='.$database->Quote($id);
						$database->setQuery($query);
						$tmp = $database->loadObjectList();
						$categories[$value] = $value;
						foreach($tmp as $val){
							$categories[$val->category_id] = $val->category_id;
						}
						unset($object->alias);
						$object->categories = $categories;
						$class->updateCategories($object,$data_id);
						break;
					case 'price':
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						$query = 'SELECT *';
						$query .= ' FROM '.hikashop_table('price');
						$query .= ' WHERE
price_product_id='.$database->Quote($data_id);
						$database->setQuery($query);
						$prices = $database->loadObjectList();
						foreach($prices as $price){
							if($price->price_id == $id){
								$price->$column = $value;
							}
						}
						unset($object->alias);
						$object->prices = $prices;
						$class->updatePrices($object,$data_id);
						break;
					case 'characteristic':
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						$characteristics = array();

						$query = 'SELECT c1.characteristic_id as
\'default_id\',c2.characteristic_id,c1.characteristic_parent_id,v2.ordering,c2.characteristic_value';
						$query .= ' FROM
'.hikashop_table('variant').' AS v1';
						$query .= ' INNER JOIN
'.hikashop_table('characteristic').' AS c1 ON
c1.characteristic_id = v1.variant_characteristic_id';
						$query .= ' INNER JOIN
'.hikashop_table('variant').' AS v2 ON
c1.characteristic_parent_id = v2.variant_characteristic_id';
						$query .= ' INNER JOIN
'.hikashop_table('characteristic').' AS c2 ON
c2.characteristic_parent_id = c1.characteristic_parent_id';
						$query .= ' WHERE c1.characteristic_parent_id!=0 AND
v1.variant_product_id='.$database->Quote($data_id);
						$database->setQuery($query);
						$results = $database->loadObjectList();

						foreach($results as $result){
							$test = false;
							foreach($characteristics as $charac){
								if($charac->characteristic_id ==
$result->characteristic_parent_id){
									$charac->values[$result->characteristic_id] =
$result->characteristic_value;
									if($result->characteristic_value == $value){
										$charac->default_id = $result->characteristic_id;
									}
									$test = true;
								}
							}
							if(!$test){
								$tmp = new stdClass();
								$tmp->characteristic_id = $result->characteristic_parent_id;
								$tmp->ordering = $result->ordering;
								if($result->characteristic_value == $value){
									$tmp->default_id = $result->characteristic_id;
								}else{
									$tmp->default_id = $result->default_id;
								}
								$tmp->values[$result->characteristic_id] =
$result->characteristic_value;
								$characteristics[] = $tmp;
								$object->oldCharacteristics[] =
$result->characteristic_parent_id;
							}
						}
						foreach($characteristics as $characteristic){
							foreach($characteristic->values as $v=>$k){
								if($v == $value){
									$characteristic->default_id = $value;
								}
							}
						}
						$object->characteristics = $characteristics;
						$class->updateCharacteristics($object,$data_id);
						break;
					case 'product' :
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						unset($object->alias);
						$object->$column = $value;
						$class->save($object);
						break;

					case 'related' :
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						unset($object->alias);

						$query = 'SELECT product_related_id';
						$query .= ' FROM
'.hikashop_table('product_related');
						$query .= ' WHERE
product_id='.$database->Quote($data_id).' AND
product_related_type = \'related\'';
						$database->setQuery($query);
						$results = $database->loadObjectList();
						$related = array();
						foreach($results as $result){
							if($result->product_related_id != $id){
								$related[$result->product_related_id] = new stdClass();
								$related[$result->product_related_id]->product_related_id =
$result->product_related_id;
								$related[$result->product_related_id]->product_related_ordering
= 0;
							}
						}
						$related[$value] = new stdClass();
						$related[$value]->product_related_id = $value;
						$related[$value]->product_related_ordering = 0;
						$object->related = $related;
						$class->updateRelated($object,$data_id,'related');
						break;
					case 'options' :
						if($class->getProducts($data_id)){
							$object = $class->get($data_id);
						}
						unset($object->alias);

						$query = 'SELECT product_related_id';
						$query .= ' FROM
'.hikashop_table('product_related');
						$query .= ' WHERE
product_id='.$database->Quote($data_id).' AND
product_related_type = \'options\'';
						$database->setQuery($query);
						$results = $database->loadObjectList();
						$options = array();
						foreach($results as $result){
							if($result->product_related_id != $id){
								$options[$result->product_related_id] = new stdClass();
								$options[$result->product_related_id]->product_related_id =
$result->product_related_id;
								$options[$result->product_related_id]->product_related_ordering
= 0;
							}
						}
						$options[$value] = new stdClass();
						$options[$value]->product_related_id = $value;
						$options[$value]->product_related_ordering = 0;
						$object->options = $options;
						$class->updateRelated($object,$data_id,'options');
						break;
				}
				break;

			case 'category':
				$class = hikashop_get('class.category');
				switch($table){
					case 'category':
						$object = $class->get($data_id);
						if($object){
							$object->$column = $value;
							$class->save($object);
						}
						break;
				}
				break;
			case 'user':
				$class = hikashop_get('class.user');
				switch($table){
					case 'user':
						$object = $class->get($data_id);
						foreach($object as $key=>$element){
							if(!strstr($key,'user_')){
								unset($object->$key);
							}
						}
						if($object){
							$object->$column = $value;
							$class->save($object);
						}
						break;
					case 'address':
						$address = hikashop_get('class.address');
						$object = $address->get($id);
						$object->$column = $value;
						$address->save($object);
						break;
					case 'usergroup':
						die('Never');
						break;
					case 'joomla_users':
						if($column == 'joomla_users_id'){
							$column = 'id';
						}
						$user = JFactory::getUser($id);
						if(!empty($user)){
							$user->$column = $value;
							$user->save();
						}
						break;
				}
				break;

			case 'order':
				$class = hikashop_get('class.order');
				switch($table){
					case 'address':
						$order = $class->get($data_id);
						$address = hikashop_get('class.address');
						$object = $address->get($id);
						$object->$column = $value;

						if($order->order_shipping_address_id == $id &&
$order->order_billing_address_id == $id){
							$address->save($object);
							$class->save($order);
						}else if($order->order_shipping_address_id == $id){
							$order->order_shipping_address_id =
$address->save($object,$data_id,'shipping');
							$class->save($order);
						}else if($order->order_billing_address_id == $id){
							$order->order_billing_address_id =
$address->save($object,$data_id,'billing');
							$class->save($order);
						}
						break;
					case 'order_product':
						$info = $class->get($data_id);

						$query = 'SELECT *';
						$query .= ' FROM
'.hikashop_table('order_product');
						$query .= ' WHERE
order_product_id='.$database->Quote($id);
						$database->setQuery($query);
						$row = $database->loadObject();
						$object = new stdClass();
						$object->order_id = $data_id;
						$object->product = $row;
						$object->product->$column = $value;

						$history = new stdClass();
						$history->history_reason =
JText::sprintf('MODIFICATION_USERS');
						$history->history_notified = '0';
						$history->history_type = 'modification';

						$object->history = $history;
						$class->save($object);
						break;
					case 'order' :
						$object = $class->get($data_id);
						if($object){
							if(isset($_POST['checkbox'])){
								$history->history_reason =
JText::sprintf('MODIFICATION_USERS');
								$history->history_notified = '1';
								$history->history_type = 'modification';
							}
							$object->$column = $value;
							$class->save($object);
						}
						break;
					case 'payment':
						$query = 'SELECT payment_type';
						$query .= ' FROM '.hikashop_table('payment');
						$query .= ' WHERE
payment_id='.$database->Quote($value);
						$database->setQuery($query);
						$row = $database->loadObject();

						$object = $class->get($data_id);
						$object->order_payment_id = $value;
						$object->order_payment_method = $row->payment_type;
						$history = new stdClass();
						$history->history_reason =
JText::sprintf('MODIFICATION_USERS');
						$history->history_notified = '0';
						$history->history_type = 'modification';
						$object->history = $history;
						$class->save($object);

						break;
					case 'shipping':
						$query = 'SELECT shipping_type';
						$query .= ' FROM '.hikashop_table('shipping');
						$query .= ' WHERE
shipping_id='.$database->Quote($value);
						$database->setQuery($query);
						$row = $database->loadObject();

						$object = $class->get($data_id);
						$object->order_shipping_id = $value;
						$object->order_shipping_method = $row->shipping_type;
						$history = new stdClass();
						$history->history_reason =
JText::sprintf('MODIFICATION_USERS');
						$history->history_notified = '0';
						$history->history_type = 'modification';
						$object->history = $history;
						$class->save($object);

						break;

						case 'user':
							die('Never');
							break;
						case 'joomla_users':
							die('Never');
							break;
					}
				break;

			case 'address':
				$class = hikashop_get('class.address');
				switch($table){
					case 'address':
						$object = $class->get($data_id);
						$object->$column = $value;
						$class->save($object);
						break;
					case 'user':
						$user = hikashop_get('class.user');
						$object = $user->get($id);
						foreach($object as $key=>$element){
							if(!strstr($key,'user_')){
								unset($object->$key);
							}
						}
						if($object){
							$object->$column = $value;
							$user->save($object,true);
						}

						break;

					case 'joomla_users':
						if($column == 'joomla_users_id'){
							$column = 'id';
						}
						$user = JFactory::getUser($id);
						if(!empty($user)){
							$user->$column = $value;
							$user->save();
						}
						break;
				}
				break;
		}
	}

	function
onLoadDatatMassActionBeforeEdition($data,$data_id,$table,$column,$type,$ids,&$query,&$view){
		$database = JFactory::getDBO();
		hikashop_toInteger($ids);
		switch($type){
			case 'price':
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';

				break;

			case 'joomla_users':
				if($column == 'jommla_users_id'){
					$column = 'id';
				}
				$query = 'SELECT DISTINCT '.$column.', id as
\'joomla_users_id\'';
				$query .= ' FROM '.hikashop_table('users',false);
				$query .= ' WHERE id IN
('.implode(',',$ids).')';
				break;

			case 'layout':
				$layout = hikashop_get('type.layout');
				$view->assignRef('layout',$layout);

				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				break;

			case 'method_name':

				$query = 'SELECT
'.$column.','.$table.'_id,'.$table.'_type';
				$query .= ' FROM '.hikashop_table($table);

				break;

			case 'usergroups':

				$query = 'SELECT DISTINCT title, id as
\'usergroups_id\'';
				$query .= ' FROM
'.hikashop_table('usergroups',false);

				break;
			case 'status':
				$status = hikashop_get('type.categorysub');
				$status->type = 'status';
				$view->assignRef('status',$status);


				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';

				break;
			case 'yesno':
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';

				break;
			case 'currency':
				$types = hikashop_get('type.currency');
				$view->assignRef('types',$types);

				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';

				break;
			case 'dimension':
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				break;

			case 'dimension_unit':
				$volume = hikashop_get('type.volume');
				$view->assignRef('volume',$volume);
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				break;
			case 'weight':
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				break;

			case 'weight_unit':
				$weight = hikashop_get('type.weight');
				$view->assignRef('weight',$weight);
				$query = 'SELECT
'.$column.','.$table.'_id';
				$query .= ' FROM '.hikashop_table($table);
				$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				break;

			case 'characteristic':
				$query = 'SELECT DISTINCT c1.characteristic_id,
c1.characteristic_value';
				$query .= ' FROM
'.hikashop_table('characteristic').' AS c1';
				$query .= ' INNER JOIN
'.hikashop_table('characteristic').' AS c2 ON
c1.characteristic_parent_id = c2.characteristic_id';
				$query .= ' WHERE 
c2.characteristic_value='.$database->Quote($column);
				break;
			case 'related' :
				$query = 'SELECT DISTINCT p.product_id as
\'related_id\',p.product_name';
				$query .= ' FROM '.hikashop_table('product').'
AS p';
				break;
			case 'options' :
				$query = 'SELECT DISTINCT p.product_id as
\'options_id\',p.product_name';
				$query .= ' FROM '.hikashop_table('product').'
AS p';
				break;
			case 'parent':
				$query = 'SELECT '.$column.','.$table.'_id,
'.$table.'_name';
				$query .= ' FROM '.hikashop_table($table);
				$view->assignRef('ids', $ids);
				break;
			case 'id':
				$query = 'SELECT '.$column;
				if($table != 'price' &&
$table!='address'){
					$query .= ','.$table.'_name';
				}
				$query .= ' FROM '.hikashop_table($table);
				if($table == 'category'){
					$query .= ' WHERE category_type = \'product\' ';
				}
				$view->assignRef('ids', $ids);
				break;

			case 'sub_id':
				if(strstr($column, '_')!==false){
					$a = explode("_", $column);
				}
				if(strstr($column, 'partner')===false){
					foreach($a as $k=>$chaine){
						if($chaine === $table || $chaine === 'id'){
							unset($a[$k]);
						}
					}
					$table_tmp = implode('_',$a);
				}else{
					$table_tmp = 'user';
				}
				$column_tmp = $table_tmp.'_id';
				$query = 'SELECT '.$column_tmp.' as '.$column;
				$query .= ' FROM '.hikashop_table($table_tmp);
				$view->assignRef('ids', $ids);

				$view->table = 'order';

				break;

			default:
				$joomlaTable = true;
				if(preg_match('/joomla_/',$table)){
					$table = str_replace('joomla_','',$table);
					$joomlaTable = false;
				}

				if(strpos($type,'custom_') === 0){
					$f = substr_replace($view->type,'',0,7);
					$fields = hikashop_get('class.field');
					$view->assignRef('fields',$fields);
					$query = 'SELECT *';
					$query .= ' FROM '.hikashop_table($table,$joomlaTable);
					$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
					$database->setQuery($query);
					$elements = $database->loadObjectList();

					if($elements == null){
						die('Undefined row');
					}

					$view->assignRef('elements',$elements);

					$allFields = array();
					$column_id = $view->table.'_id';
					foreach($elements as $element){
						$f =
$fields->getFields('backend',$element,$table,'user&task=state');
						if(preg_match('/joomla_users_/',$column_id)){
							$column_id =
str_replace('joomla_users_','',$column_id);
						}
						$f['id'] = $element->$column_id;
						$allFields[] = $f;
					}

					$view->assignRef('allFields',$allFields);

					$query = 'SELECT
'.$column.','.$table.'_id';
					$query .= ' FROM '.hikashop_table($table,$joomlaTable);
					$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
				}else if(!$joomlaTable){
					$query = 'SELECT '.$column.',id';
					$query .= ' FROM '.hikashop_table($table,$joomlaTable);
					$query .= ' WHERE id IN
('.implode(',',$ids).')';
					$view->assignRef('ids', $ids);
				}else{
					$query = 'SELECT
'.$column.','.$table.'_id';
					$query .= ' FROM '.hikashop_table($table);
					$query .= ' WHERE '.$table.'_id IN
('.implode(',',$ids).')';
					$view->assignRef('ids', $ids);
				}
				break;
		}
	}

	function
onLoadResultMassActionAfterEdition($data,$data_id,$table,$column,$type,$id,$value,&$query){
		$database = JFactory::getDBO();
		switch($data){
			case 'product':
				switch($table){
					case 'product':
						$query = 'SELECT
'.$column.',product_id,product_dimension_unit';
						$query .= ' FROM '.hikashop_table('product');
						$query .= ' WHERE product_id = '.$database->Quote($id);

						break;

					case 'price':
						$query = 'SELECT '.$column.',price_currency_id,
price_product_id, price_id';
						$query .= ' FROM '.hikashop_table('price');
						$query .= ' WHERE price_id ='.$database->Quote($id);

						break;

					case 'category':
						$query = 'SELECT
'.hikashop_table('category').'.'.$column.','.hikashop_table('product_category').'.product_id,'.hikashop_table('category').'.category_id';
						$query .= ' FROM '.hikashop_table('category');
						$query .= ' INNER JOIN
'.hikashop_table('product_category').' ON
'.hikashop_table('product_category').'.category_id =
'.hikashop_table('category').'.category_id';
						$query .= ' WHERE product_id = '.$database->Quote($id);

						break;

					case 'characteristic':

						$query = 'SELECT
c1.characteristic_value,c1.characteristic_id';
						$query .= ' FROM
'.hikashop_table('characteristic').' as c1';
						$query .= ' WHERE c1.characteristic_id
='.$database->Quote($value);

						break;
					case 'related':
						$query = 'SELECT p.product_id as
\'related_id\',product_name,r.product_related_type';
						$query .= ' FROM
'.hikashop_table('product').' AS p';
						$query .= ' INNER JOIN
'.hikashop_table('product_related').' AS r ON
r.product_related_id = p.product_id';
						$query .= ' WHERE r.product_id =
'.$database->Quote($data_id).' AND r.product_related_type =
\'related\'';

						$database->setQuery($query);
						$query = $database->loadObjectList();
						break;
					case 'options':
						$query = 'SELECT p.product_id as
\'options_id\',product_name,r.product_related_type';
						$query .= ' FROM
'.hikashop_table('product').' AS p';
						$query .= ' INNER JOIN
'.hikashop_table('product_related').' AS r ON
r.product_related_id = p.product_id';
						$query .= ' WHERE r.product_id =
'.$database->Quote($data_id).' AND r.product_related_type =
\'options\'';

						$database->setQuery($query);
						$query = $database->loadObjectList();
						break;
				}
				break;
			case 'user':
				switch($table){
					case 'user':
						$query = 'SELECT '.$column.',user_id';
						$query .= ' FROM '.hikashop_table('user');
						$query .= ' WHERE user_id = '.$database->Quote($id);
						break;

					case 'joomla_users':
						$query = 'SELECT DISTINCT '.$column.', id as
\'joomla_users_id\'';
						$query .= ' FROM
'.hikashop_table('users',false);
						$query .= ' WHERE id = '.$database->Quote($id);
						break;

					case 'usergroups':
						$query = 'SELECT DISTINCT usergroups.title, hk_user.user_id,
usergroups.id as \'usergroups_id\'';
						$query .= ' FROM
'.hikashop_table('usergroups',false).' AS
usergroups';
						$query .= ' INNER JOIN
'.hikashop_table('user_usergroup_map',false).' AS
user_usergroup ON usergroups.id = user_usergroup.group_id';
						$query .= ' INNER JOIN
'.hikashop_table('users',false).' AS user ON user.id =
user_usergroup.user_id';
						$query .= ' INNER JOIN
'.hikashop_table('user').' AS hk_user ON user.id =
hk_user.user_cms_id';
						$query .= ' WHERE usergroups.id =
'.$database->Quote($id);
						break;

					case 'address':
						$query = 'SELECT '.$column.', address_user_id,
address_id';
						$query .= ' FROM '.hikashop_table('address');
						$query .= ' WHERE address_id = '.$database->Quote($id);
						break;
				}
				break;
			case 'category':
				switch($table){
					case 'category':
						$query = 'SELECT '.$column.',category_id';
						$query .= ' FROM '.hikashop_table('category');
						$query .= ' WHERE category_id =
'.$database->Quote($id);
						break;
				}
			case 'order':
				switch($table){
					case 'order':
						$query = 'SELECT '.$column.',
order_id,order_currency_id,order_partner_currency_id';
						$query .= ' FROM '.hikashop_table('order');
						$query .= ' WHERE order_id = '.$database->Quote($id);
						break;
					case 'order_product':
						$query = 'SELECT '.$column.', order_id,
order_product_id';
						$query .= ' FROM
'.hikashop_table('order_product');
						$query .= ' WHERE order_id = '.$database->Quote($id);
						break;
					case 'payment':
						$query = 'SELECT o.order_id,p.payment_name, p.payment_id';
						$query .= ' FROM '.hikashop_table('order').'
as o';
						$query .= ' LEFT JOIN
'.hikashop_table('payment').' as p ON
o.order_payment_id = p.payment_id';
						$query .= ' WHERE p.payment_id =
'.$database->Quote($value);
						break;
					case 'shipping':
						$query = 'SELECT o.order_id,s.shipping_name,
s.shipping_id';
						$query .= ' FROM '.hikashop_table('order').'
as o';
						$query .= ' LEFT JOIN
'.hikashop_table('shipping').' as s ON
o.order_shipping_id = s.shipping_id';
						$query .= ' WHERE s.shipping_id =
'.$database->Quote($value);
						break;
					case 'address':
						$query = 'SELECT '.$column.', address_id';
						$query .= ' FROM '.hikashop_table('address');
						$query .= ' WHERE address_id ='.$database->Quote($id);
						break;
				}
				break;
			case 'address':
				switch($table){
					case 'user':
						$query = 'SELECT '.$column.', user_id,
address_id';
						$query .= ' FROM '.hikashop_table('user').'
AS user';
						$query .= ' INNER JOIN
'.hikashop_table('address').' AS address ON
user.user_id = address.address_user_id';
						$query .= ' WHERE user.user_id =
'.$database->Quote($id);
						break;
					case 'joomla_users':
						$query = 'SELECT user.'.$column.', id as
\'joomla_users_id\', address.address_id';
						$query .= ' FROM
'.hikashop_table('users',false).' AS user';
						$query .= ' INNER JOIN
'.hikashop_table('user').' AS hk_user ON user.id =
hk_user.user_cms_id';
						$query .= ' INNER JOIN
'.hikashop_table('address').' AS address ON
hk_user.user_id = address.address_user_id';
						$query .= ' WHERE user.id = '.$database->Quote($id);
						break;
					case 'address':
						$query = 'SELECT a.'.$column.', a.address_id';
						$query .= ' FROM
'.hikashop_table('address').' as a';
						$query .= ' WHERE a.address_id
='.$database->Quote($data_id);
						break;
				}
		}
	}

	function onBeforeMassactionUpdate(&$element){
		if(!empty($element->massaction_filters)){
			foreach($element->massaction_filters as $k => $filter){
				if($filter->name == 'csvImport'){
					if($element->massaction_filters[$k]->data['pathType']
== 'upload'){
						$importFile =
hikaInput::get()->files->getVar('filter_product_'.$k.'_csvImport_upload',
array(), 'array');
						$importHelper = hikashop_get('helper.import');
						$element->massaction_filters[$k]->data['path'] =
$importHelper->importFromFile($importFile, false);
						$element->massaction_filters[$k]->data['pathType'] =
'path';
					}
				}
			}
		}
	}

	function onHikashopCronTrigger(&$messages){
		$config =& hikashop_config();
		$periods =
array('minutes','hours','days','weeks','months','years');
		$massactionClass = hikashop_get('class.massaction');
		foreach($periods as $period){
			$last_trigger =
$config->get('massaction_last_trigger_'.$period);
			$next_trigger = strtotime('+1 '.$period,(int)$last_trigger);
			if(time()<$next_trigger) continue;
			$pref = new stdClass();
			$key = 'massaction_last_trigger_'.$period;
			$pref->$key =  time();
			$config->save($pref);
			$massactionClass->_trigger('onHikashopCronTrigger'.ucfirst($period));
		}
		if(count($massactionClass->report)) $messages =
array_merge($messages,$massactionClass->report);
	}

	function
onProcessOrderMassActionmysqlQuery(&$elements,&$action,$k) {
		$this->_processSQL($elements,$action);
	}
	function
onProcessProductMassActionmysqlQuery(&$elements,&$action,$k){
		$this->_processSQL($elements,$action);
	}
	function
onProcessAddressMassActionmysqlQuery(&$elements,&$action,$k){
		$this->_processSQL($elements,$action);
	}
	function
onProcessUserMassActionmysqlQuery(&$elements,&$action,$k){
		$this->_processSQL($elements,$action);
	}
	function
onProcessCategoryMassActionmysqlQuery(&$elements,&$action,$k){
		$this->_processSQL($elements,$action);
	}
	function _processSQL(&$elements, &$action) {
		if(!empty($action['query'])) {
			$db = JFactory::getDBO();
			foreach($elements as $e) {
				$attributes = get_object_vars($e);
				$query = $action['query'];
				foreach($attributes as $key => $value) {
					if(is_object($value) || is_array($value))
						continue;
					$query = str_replace('{'.$key.'}', $value,
$query);
				}
				$db->setQuery($query);
				$db->execute();
			}
		}
	}
}
PK�X�[�K�X��)hikashopmassaction/hikashopmassaction.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>System - HikaShop Mass Action</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop System plugin to handle mass action
triggers</description>
	<files>
		<filename
plugin="hikashopmassaction">hikashopmassaction.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopmassaction/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[N"��#hikashoppayment/hikashoppayment.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
jimport('joomla.plugin.plugin');
class plgSystemHikashoppayment extends JPlugin {

	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		if(isset($this->params))
			return;

		$plugin = JPluginHelper::getPlugin('system',
'hikashoppayment');
		$this->params = new JRegistry(@$plugin->params);
	}

	public function afterInitialise() {
		return $this->onAfterInitialise();
	}

	public function afterRoute() {
		return $this->onAfterRoute();
	}

	public function onAfterInitialise() {
		$app = JFactory::getApplication();
		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if($admin)
			return;

		if(!$this->params->get('after_init', 1))
			return;

		if(@$_REQUEST['option'] == 'com_hikashop' &&
@$_REQUEST['ctrl'] == 'checkout' &&
@$_REQUEST['task'] == 'notify')
			$this->processPaymentNotification();

		if(@$_REQUEST['option'] == 'com_hikashop' &&
@$_REQUEST['ctrl'] == 'cron')
			$this->processCronNotification();

		return;
	}

	public function onAfterRoute() {
		$app = JFactory::getApplication();
		$admin = false;
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			$admin = true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			$admin = true;
		if($admin)
			return;

		if($this->params->get('after_init', 1))
			return;

		if(@$_REQUEST['option'] == 'com_hikashop' &&
@$_REQUEST['ctrl'] == 'checkout' &&
@$_REQUEST['task'] == 'notify')
			$this->processPaymentNotification();

		if(@$_REQUEST['option'] == 'com_hikashop' &&
@$_REQUEST['ctrl'] == 'cron')
			$this->processCronNotification();

		return;
	}

	protected function processPaymentNotification() {

		if(!empty($_REQUEST['skip_system_notification']))
			return;

		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_hikashop'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php'))
			return;

		hikaInput::get()->set('hikashop_payment_notification_plugin',
true);

		ob_start();
		$payment = hikaInput::get()->getCmd('notif_payment',
@$_REQUEST['notif_payment']);
		$data = hikashop_import('hikashoppayment', $payment);

		if(!empty($data)) {
			$trans = hikashop_get('helper.translation');
			$cleaned_statuses = $trans->getStatusTrans();
			$data = $data->onPaymentNotification($cleaned_statuses);
		}
		$dbg = ob_get_clean();

		if(!empty($dbg)) {
			$config =& hikashop_config();
			jimport('joomla.filesystem.file');
			$file = $config->get('payment_log_file','');

			$file = rtrim(JPath::clean(html_entity_decode($file)),
DIRECTORY_SEPARATOR . ' ');
			if(!preg_match('#^([A-Z]:)?/.*#', $file) && (!$file[0]
== '/' || !file_exists($file))) {
				$file = JPath::clean(HIKASHOP_ROOT . DIRECTORY_SEPARATOR . trim($file,
DIRECTORY_SEPARATOR . ' '));
			}

			if(!empty($file) && defined('FILE_APPEND')) {
				if(!file_exists(dirname($file))) {
					jimport('joomla.filesystem.folder');
					JFolder::create(dirname($file));
				}
				file_put_contents($file,$dbg,FILE_APPEND);
			}
		}

		if(is_string($data) && !empty($data))
			echo $data;
		exit;
	}

	protected function processCronNotification() {
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_hikashop'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php'))
			return;

		$config =& hikashop_config();
		if($config->get('cron') == 'no') {
			hikashop_display(JText::_('CRON_DISABLED'),
'info');
			return false;
		}
		$cronHelper = hikashop_get('helper.cron');
		if(!$cronHelper)
			return false;
		$cronHelper->report = true;
		$launched = $cronHelper->cron();
		if($launched)
			$cronHelper->report();
		exit;
	}
}
PK�X�[���h��#hikashoppayment/hikashoppayment.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>HikaShop Payment Notification plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop System Payment plugin to always authorize the
payment notifications calls</description>
	<files>
		<filename
plugin="hikashoppayment">hikashoppayment.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashoppayment/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[���r33/hikashopproductinsert/hikashopproductinsert.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopproductInsert extends JPlugin {

	var $name = 0;
	var $pricetax = 0;
	var $pricedis = 0;
	var $cart = 0;
	var $quantityfield = 0;
	var $description = 0;
	var $picture = 0;
	var $link = 0;
	var $border = 0;
	var $badge = 0;
	var $price = 0;

	function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		if(isset($this->params))
			return;

		$plugin = JPluginHelper::getPlugin('system',
'hikashopproductinsert');
		if(version_compare(JVERSION,'2.5','<')){
			jimport('joomla.html.parameter');
			$this->params = new JParameter($plugin->params);
		} else {
			$this->params = new JRegistry($plugin->params);
		}
	}

	function escape($str) {
		return htmlspecialchars($str, ENT_COMPAT, 'UTF-8');
	}

	function onAfterRoute() {

		$load =
$this->params->get('load_hikashop_on_all_frontend_pages',
0);
		if(!$load)
			return;

		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$layout = $app->input->getString('layout');
			$ctrl = $app->input->getString('ctrl');
			$task = $app->input->getString('task');
			$function = $app->input->getString('function');
		} else {
			$layout = JRequest::getString('layout');
			$ctrl = JRequest::getString('ctrl');
			$task = JRequest::getString('task');
			$function = JRequest::getString('function');
		}
		if(version_compare(JVERSION,'4.0','>=')) {
			$admin = $app->isClient('administrator');
		} else {
			$admin = $app->isAdmin();
		}

		if($admin)
			return true;

		if($layout == 'edit' || $ctrl == 'plugins' &&
$task == 'trigger' && $function ==
'productDisplay')
			return true;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		JPluginHelper::importPlugin('hikashop');
	}

	function onAfterRender() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$layout = $app->input->getString('layout');
			$ctrl = $app->input->getString('ctrl');
			$task = $app->input->getString('task');
			$function = $app->input->getString('function');
		} else {
			$layout = JRequest::getString('layout');
			$ctrl = JRequest::getString('ctrl');
			$task = JRequest::getString('task');
			$function = JRequest::getString('function');
		}
		if(version_compare(JVERSION,'4.0','>=')) {
			$admin = $app->isClient('administrator');
		} else {
			$admin = $app->isAdmin();
		}

		if($admin)
			return true;

		if($layout == 'edit' || $ctrl == 'plugins' &&
$task == 'trigger' && $function ==
'productDisplay')
			return true;

		$body = null;
		if(class_exists('JResponse'))
			$body = JResponse::getBody();
		$alternate_body = false;
		if(empty($body) && method_exists($app,'getBody')) {
			$body = $app->getBody();
			$alternate_body = true;
		}

		$search_space = substr($body,strpos($body,'<body'));

		if(preg_match_all('#{hk(show|hide)
*(((not)?bought)(="([0-9a-z_]+)")?)?
*}(.*){\/hk(show|hide)}#Uis', $search_space, $matches)) {
			$this->_processShowHide($matches);
		}

		if((preg_match_all('#\{product\}(.*)\{\/product\}#Uis',
$search_space, $matches) || preg_match_all('#\{product
(.*)\}#Uis', $search_space, $matches))) {
			$this->_processProduct($matches);
		}

	}
	function _processShowHide(&$matches) {
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$productsBought = null;
		$user_id = hikashop_loadUser(false);
		if($user_id) {

			$db = JFactory::getDBO();

			$statuses = $this->params->get('statuses',
'confirmed,shipped');
			$statuses = explode(',', $statuses);
			foreach($statuses as $k => $v) {
				$statuses[$k] = $db->Quote($v);
			}

			$product_query = 'SELECT op.order_product_id,
op.order_product_name, op.order_product_code FROM #__hikashop_order AS o
LEFT JOIN #__hikashop_order_product AS op ON o.order_id=op.order_id WHERE
o.order_status IN ('.implode(',', $statuses).') AND
op.order_product_quantity > 1 AND o.order_user_id = ' . $user_id;
			$db->setQuery($product_query);
			$productsBought = $db->loadObjectList();
		}

		if(class_exists('JResponse'))
			$body = JResponse::getBody();
		$alternate_body = false;
		if(empty($body)) {
			$body = $app->getBody();
			$alternate_body = true;
		}
		$search_space = $new_search_space =
substr($body,strpos($body,'<body'));

		if(!empty($matches) && count($matches[0])) {
			foreach($matches[0] as $k => $match) {

				$show = ($matches[1][$k] == 'show');
				$hasProduct = !empty($matches[5][$k]);
				$bought = ($matches[3][$k] == 'bought');
				$product = $matches[6][$k];
				$content = $matches[7][$k];

				if($hasProduct) {
					$productHasBeenBought = false;
					if(!empty($productsBought)) {
						foreach($productsBought as $p) {
							if($p->order_product_id == $product || $p->order_product_name
== $product || $p->order_product_code == $product)
								$productHasBeenBought = true;
						}
					}
				} else {
					$productHasBeenBought = count($productsBought) > 0;
				}

				if(($productHasBeenBought && $bought) ||
(!$productHasBeenBought && !$bought)) {
				} else {
					$show = ! $show;
				}

				if(!$show)
					$content = '';
				$new_search_space = str_replace($match, $content, $new_search_space);
			}
		}

		$body = str_replace($search_space,$new_search_space,$body);

		if($alternate_body) {
			$app->setBody($body);
		} else {
			JResponse::setBody($body);
		}
	}

	function _processProduct(&$matches) {
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		JPluginHelper::importPlugin('hikashop');

		$db = JFactory::getDBO();
		$currencyClass = hikashop_get('class.currency');
		$this->image = hikashop_get('helper.image');
		$this->classbadge = hikashop_get('class.badge');
		$para = array();
		$nbtag = count($matches[1]);
		for($i = 0; $i < $nbtag; $i++) {
			$para[$i] = explode('|', $matches[1][$i]);
		}

		$k = 0;
		$ids = array();
		for($i = 0; $i < $nbtag; $i++) {
			for($u = 0; $u < count($para[$i]); $u++) {
				if(in_array($para[$i][$u], array('name',
'pricetax', 'pricedis', 'cart',
'quantityfield', 'description', 'link',
'border', 'badge', 'picture')))
					continue;

				$ids[$k]= (int)$para[$i][$u];
				$k++;
			}
		}

		$product_query = 'SELECT * FROM ' .
hikashop_table('product') . ' WHERE product_id IN (' .
implode(',', $ids) . ') AND
product_access='.$db->quote('all').' AND
product_published=1';
		$db->setQuery($product_query);
		$products = $db->loadObjectList();

		$db->setQuery('SELECT * FROM
'.hikashop_table('variant').' AS v LEFT JOIN
'.hikashop_table('characteristic').' AS c ON
v.variant_characteristic_id = c.characteristic_id WHERE variant_product_id
IN ('.implode(',',$ids).')');
		$variants = $db->loadObjectList();

		$parent_ids = array();

		foreach($products as $product) {
			$product->characteristic_name = false;

			if($product->product_type == 'variant'){
				$product->has_options = false;
				$parent_ids[] = $product->product_parent_id;
			}

			if(empty($variants))
				continue;

			foreach($variants as $variant){
				if($product->product_id == $variant->variant_product_id
&& $product->product_type == 'main') {
					$product->has_options = true;
					break;
				}
				if($product->product_id == $variant->variant_product_id
&& $product->product_type == 'variant') {
					if(empty($product->product_name)){
						$product->product_name = $variant->characteristic_value;
						$product->characteristic_name = true;
					}
					break;
				}
			}
		}


		if(!empty($parent_ids)){
			$productClass = hikashop_get('class.product');
			$productClass->getProducts($parent_ids);

			foreach($products as $product){
				if($product->product_type == 'variant' &&
isset($product->product_parent_id) &&
in_array($product->product_parent_id, $parent_ids)){
					if(!isset($productClass->products[$product->product_parent_id]))
						continue;

					if($product->characteristic_name)
						$product->product_name =
$productClass->products[$product->product_parent_id]->product_name.':
' . $product->product_name;
					if(empty($product->product_description))
						$product->product_description =
$productClass->products[$product->product_parent_id]->product_description;
					if(empty($product->product_tax_id))
						$product->product_tax_id =
$productClass->products[$product->product_parent_id]->product_tax_id;
				}
			}
		}

		$db->setQuery('SELECT product_id FROM
'.hikashop_table('product_related').' WHERE
product_related_type = '.$db->quote('options').' AND
product_id IN ('.implode(',',$ids).')');
		$options = $db->loadObjectList();
		if(!empty($options)) {
			foreach($products as $k => $product) {
				foreach($options as $option) {
					if($product->product_id == $option->product_id) {
						$products[$k]->has_options = true;
						break;
					}
				}
			}
		}

		foreach($products as $k => $product) {
			$this->classbadge->loadBadges($products[$k]);
		}

		$queryImage = 'SELECT * FROM ' .
hikashop_table('file') . ' WHERE file_ref_id IN (' .
implode(',', $ids) . ') AND file_type=\'product\'
ORDER BY file_ordering ASC, file_id ASC';
		$db->setQuery($queryImage);
		$images = $db->loadObjectList();
		$productClass = hikashop_get('class.product');
		foreach($products as $k => $row) {
			$productClass->addAlias($products[$k]);
			foreach($images as $j => $image) {
				if($row->product_id != $image->file_ref_id)
					continue;

				foreach(get_object_vars($image) as $key => $name) {
					if(!isset($products[$k]->images))
						$products[$k]->images = array();
					if(!isset($products[$k]->images[$j]))
						$products[$k]->images[$j] = new stdClass();

					$products[$k]->images[$j]->$key = $name;
				}
			}
		}

		$zone_id = hikashop_getZone();
		$currencyClass = hikashop_get('class.currency');
		$config = hikashop_config();
		$defaultParams = $config->get('default_params');
		$currencyClass->getListingPrices($products,$zone_id,hikashop_getCurrency(),$defaultParams['price_display_type']);

		$fields = array(
			'name' => 'name',
			'pricedis1' => 'pricedis',
			'pricedis2' => array('pricedis', 2),
			'pricedis3' => array('pricedis', 3),
			'pricetax1' => 'pricetax',
			'pricetax2' => array('pricetax', 2),
			'price' => 'price',
			'cart' => 'cart',
			'quantityfield' => 'quantityfield',
			'description' => 'description',
			'picture' => 'picture',
			'link' => 'link',
			'border' => 'border',
			'badge' => 'badge',
		);

		for($i = 0; $i < $nbtag; $i++) {
			$nbprodtag = count($para[$i]);

			foreach($fields as $k => $v) {
				if(is_string($v))
					$this->$v = 0;

				if(in_array($k, $para[$i])) {
					if(is_array($v))
						$this->{ $v[0] } = $v[1];
					else
						$this->$v = 1;

					$nbprodtag--;
				}
			}

			$this->menuid = 0;
			foreach($para[$i] as $key => $value){
				if(substr($value, 0, 6) == "menuid") {
					$explode = explode(':', $value);
					$this->menuid = $explode[1];
				}
			}

			$id = array();
			for($j = 0; $j < $nbprodtag; $j++) {
				$id[$j] = $para[$i][$j];
			}

			$name = 'hikashopproductinsert_view.php';
			$path =
JPATH_THEMES.DS.$app->getTemplate().DS.'system'.DS.$name;
			if(!file_exists($path)) {
				if(version_compare(JVERSION,'1.6','<'))
					$path = JPATH_PLUGINS .DS.'system'.DS.$name;
				else
					$path = JPATH_PLUGINS
.DS.'system'.DS.'hikashopproductinsert'.DS.$name;

				if(!file_exists($path))
					return true;
			}

			ob_start();
			require($path);
			$product_view = ob_get_clean();

			$pattern = '#\{product\}(.*)\{\/product\}#Uis';
			$replacement = '';

			if(class_exists('JResponse'))
				$body = JResponse::getBody();
			$alternate_body = false;
			if(empty($body)) {
				$body = $app->getBody();
				$alternate_body = true;
			}
			$search_space = substr($body,strpos($body,'<body'));
			$new_search_space = preg_replace($pattern,
str_replace('$','\$',$product_view), $search_space,
1);

			$pattern = '#\{product (.*)\}#Uis';
			$replacement = '';
			$new_search_space = preg_replace($pattern,
str_replace('$','\$',$product_view), $new_search_space,
1);

			$body = str_replace($search_space,$new_search_space,$body);

			if($alternate_body) {
				$app->setBody($body);
			} else {
				JResponse::setBody($body);
			}
		}
	}
}
PK�X�[���!/hikashopproductinsert/hikashopproductinsert.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>HikaShop Product TAG translation</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikari Software</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-3.0.html
GNU/GPL</license>
	<description>Hikashop product tag translation
plugin</description>
	<files>
		<filename
plugin="hikashopproductinsert">hikashopproductinsert.php</filename>
		<filename
plugin="hikashopproductinsert">hikashopproductinsert_view.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="itemid" type="text"
default="" label="MENU"
description="PRODUCTINSERT_MENU" />
		<param name="load_hikashop_on_all_frontend_pages"
type="radio" default="0"
label="HIKA_LOAD_HIKASHOP"
description="HIKA_LOAD_HIKASHOP_DESC" class="btn-group
btn-group-yesno">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="statuses" type="text"
default="confirmed,shipped"
label="ORDER_STATUSES_FOR_BOUGHT_TAG"
description="ORDER_STATUSES_FOR_BOUGHT_TAG_DESC" />
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="itemid" type="text"
default="" label="MENU"
description="PRODUCTINSERT_MENU" />
				<field name="load_hikashop_on_all_frontend_pages"
type="radio" default="0"
label="HIKA_LOAD_HIKASHOP"
description="HIKA_LOAD_HIKASHOP_DESC" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="statuses" type="text"
default="confirmed,shipped"
label="ORDER_STATUSES_FOR_BOUGHT_TAG"
description="ORDER_STATUSES_FOR_BOUGHT_TAG_DESC" />
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[N�i��4hikashopproductinsert/hikashopproductinsert_view.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
if(version_compare(JVERSION,'2.5','<')){
	jimport('joomla.html.parameter');
	$params = new JParameter('');
} else {
	$params = new JRegistry('');
}

$doc = JFactory::getDocument();
$app = JFactory::getApplication();
$js = '';
global $Itemid;
$config =& hikashop_config();
$custom_itemid = $this->params->get('itemid');
if($this->quantityfield == 1)
	$params->set('show_quantity_field', 1);

$productClass = hikashop_get('class.product');

$thumbnail_x = $config->get('thumbnail_x',100);
$thumbnail_y = $config->get('thumbnail_y',100);
foreach($products as $product) {
	if(in_array($product->product_id,$id)){
		echo'<div
id="hikashop_inserted_product_'.$product->product_id.'"
class="hikashop_inserted_product_'.$product->product_id.'"
style="text-align:center;">';
		$_SESSION['hikashop_product']=$product;
		if($this->border == 1 ) echo '<div
class="hikashop_subcontainer
hikashop_subcontainer_border">';
		$productClass->addAlias($product);
		$url_itemid = '';
		if(!empty($custom_itemid)){
			$url_itemid = '&Itemid='.(int)$custom_itemid;
		}
		elseif(!empty($Itemid)){
			$url_itemid = '&Itemid='.(int)$Itemid;
		}
		elseif($this->menuid != 0){
			$url_itemid = '&Itemid='.(int)$this->menuid;
		}
		$link =
hikashop_contentLink('product&task=show&cid='.$product->product_id.'&name='.$product->alias.$url_itemid,$product);
		if(!empty($product->product_canonical)){
			$link = hikashop_cleanURL($product->product_canonical);
		}
		if($this->picture == 1) {
?>
			<!-- PRODUCT IMG -->
			<div
style="position:relative;text-align:center;clear:both;width:200px;margin:auto;"
class="hikashop_product_image">
				<?php if($this->link == 1){ ?>
						<a href="<?php echo $link;?>" title="<?php
echo $this->escape($product->product_name); ?>">
				<?php }
					if(!empty($product->images)){
						$image =reset($product->images);
						$image_options = array('default' =>
true,'forcesize'=>$config->get('image_force_size',true),'scale'=>$config->get('image_scale_mode','inside'));
						$img = $this->image->getThumbnail(@$image->file_path,
array('width' => $thumbnail_x, 'height' =>
$thumbnail_y), $image_options);
						if($img->success) {
							echo '<img class="hikashop_product_tag_image"
title="'.$this->escape(@$image->file_description).'"
alt="'.$this->escape(@$image->file_name).'"
src="'.$img->url.'"/>';
						}
						if($this->badge == 1){
							if(!empty($product->badges))
								$this->classbadge->placeBadges($this->image,
$product->badges, '0', '0');
						}
					}
				if($this->link == 1){ ?>
					</a>
				<?php } ?>
			</div>
			<!-- EO PRODUCT IMG -->
<?php
		}
		if($this->pricedis != 0 || $this->pricetax != 0 || $this->price
!=0) {
?>
			<!-- PRODUCT PRICE -->
<?php
				if ($this->pricedis == 3){
					$default_params = $config->get('default_params');
					$pricediscount = @$default_params['show_discount'];
				}else $pricediscount = $this->pricedis;
				if($pricediscount == 1) $params->set('show_discount',1);
				if($pricediscount == 2) $params->set('show_discount',2);
				if($this->pricetax == 1)
$params->set('price_with_tax',3);
				if($this->pricetax == 2)
$params->set('price_with_tax',2);
				if($this->price == 1)
$params->set('price_with_tax',3);
				$price =
hikashop_getLayout('product','listing_price',$params,$js);
				echo $price;
?>
			<!-- EO PRODUCT PRICE -->
<?php
		}

		if($this->name == 1) {
?>
			<!-- PRODUCT NAME -->
			<span class="hikashop_product_name">
				<?php if($this->link == 1){ ?>
					<a href="<?php echo $link;?>">
				<?php }
					echo $product->product_name;
				if($this->link == 1){ ?>
					</a>
				<?php } ?>
			</span>
			<!-- EO PRODUCT NAME -->
<?php
		}

		if($this->description == 1) {
?>
			<!-- PRODUCT DESCRIPTION -->
			<span class="hikashop_product_description"><?php
				echo $product->product_description;
			?></span>
			<!-- EO PRODUCT DESCRIPTION -->
<?php
		}

		if($this->cart == 1) {
?>
			<!-- ADD TO CART BUTTON AREA -->
			<style type="text/css">
			.hikashop_inserted_product span.hikashop_add_to_cart table { margin: 0
auto; }
			.hikashop_inserted_product .hikashop_product_stock {
				text-align: center;
				display:block;
				margin-bottom:5px;
			}
			.hikashop_inserted_product span.hikashop_add_to_cart{
				text-align: center;
				display:block;
				margin-bottom:5px;
			}
			.hikashop_inserted_product .hikashop_product_quantity_field{
				float: none !important;
				width: 25px !important;
			}
			</style>
			<span class="hikashop_add_to_cart">
			<?php
				$params->set('price_with_tax',$config->get('price_with_tax',1));
				$params->set('add_to_cart',1);
				$params->set('main_div_name',
'hikashop_inserted_product_' . $product->product_id);
				$scripts_already = count($doc->_scripts);
				$script_already = count($doc->_script);
				$css_already = count($doc->_styleSheets);
				$add_to_cart =
hikashop_getLayout('product','add_to_cart_listing',$params,$js);
				echo $add_to_cart;

				foreach($doc->_scripts as $script => $v) {
					if($scripts_already){
						$scripts_already--;
						continue;
					}
					echo '<script src="'.$script.'"
type="text/javascript"></script>';
				}
				foreach($doc->_styleSheets as $css => $v) {
					if($css_already){
						$css_already--;
						continue;
					}
					echo '<style
type="text/css">'."\r\n@import
url(".$css.");\r\n".'</style>';
				}
				foreach($doc->_script as $script) {
					if($script_already){
						$script_already--;
						continue;
					}
					echo '<script
type="text/javascript">'."\r\n".$script."\r\n".'</script>';
				}
			?>
			</span>
			<!-- EO ADD TO CART BUTTON AREA --><?php
		}

		if($this->border == 1 ) echo '</div>';
		echo'</div>';
	}
}
PK�X�[�#o,,
hikashopproductinsert/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[G>Xz�&�&)hikashopproducttag/hikashopproducttag.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
defined('_JEXEC') or die('Restricted access');
?>
<?php

class plgSystemHikashopproducttag extends JPlugin {
	function onHikashopBeforeDisplayView(&$view){
		$option = hikaInput::get()->getString('option');
		$ctrl = hikaInput::get()->getString('ctrl');
		$task = hikaInput::get()->getString('task');

		if
($option!='com_hikashop'||$ctrl!='product'||$task!='show')
return;

		ob_start();
	}
	function onHikashopAfterDisplayView(&$view){
		$option = hikaInput::get()->getString('option');
		$ctrl = hikaInput::get()->getString('ctrl');
		$task = hikaInput::get()->getString('task');

		if
($option!='com_hikashop'||$ctrl!='product'||$task!='show')
return;

		$config =& hikashop_config();
		$default_params = $config->get('default_params');

		$product_page = ob_get_clean();

		$product_page_parts = explode('class="hikashop_product_page
', $product_page);
		if(!empty($product_page_parts[1])){

			if(!preg_match('#https://schema.org/Product#',$product_page_parts[1])){
				$product_page_parts[1] = 'itemscope
itemtype="https://schema.org/Product"
class="hikashop_product_page ' .$product_page_parts[1];
			}

			if(!preg_match('#itemprop="name"#',$product_page_parts[1])){
				$pattern='/id="hikashop_product_name_main"/';
				$replacement='id="hikashop_product_name_main"
itemprop="name"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

				$pattern='/id="hikashop_product_code_main"/';
				$replacement='id="hikashop_product_code_main"
itemprop="sku"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

				if($default_params['show_price'] == 1){
					$currency_id = hikashop_getCurrency();
					$null = null;
					$currencyClass = hikashop_get('class.currency');
					$currencies = $currencyClass->getCurrencies($currency_id,$null);
					$data=$currencies[$currency_id];

					$pattern='/<(span|div)
id="hikashop_product_price_main"
class="hikashop_product_price_main">/';
					$replacement= '<div itemprop="offers" itemscope
itemtype="https://schema.org/Offer"><$1
id="hikashop_product_price_main"
class="hikashop_product_price_main"><meta
itemprop="priceCurrency"
content="'.$data->currency_code.'" />';
					$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

					$pattern='/class="hikashop_product_price_main"(.*)class="hikashop_product_price
hikashop_product_price_0(.*)>(.*)<\/span>/msU';
					preg_match($pattern, $product_page_parts[1] , $matches);
					if(isset($matches[3])){
						$mainPrice = str_replace(array('
',$data->currency_symbol),'',preg_replace('/\((.*)\)/','',$matches[3]));

						$replacement = 'class="hikashop_product_price_main" $1
class="hikashop_product_price hikashop_product_price_0$2><span
itemprop="price" style="display:
none;">'.$mainPrice.'</span>$3</span>';
						$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
					}
				}

				$pattern='/class="hikashop_product_description_main"/';
				$replacement='class="hikashop_product_description_main"
itemprop="description"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
			}

			if(!preg_match('#https://schema.org/Review#',$product_page_parts[1])){
				$pattern='/id="hikashop_product_vote_listing"/';
				$replacement='id="hikashop_product_vote_listing"
itemscope itemtype="https://schema.org/Review"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
			}

			if($default_params['show_price'] == 1 &&
!preg_match('#itemprop="eligibleQuantity"#',$product_page_parts[1])){
				$pattern='/class="hikashop_product_price_per_unit"/';
				$replacement='class="hikashop_product_price_per_unit"
itemprop="eligibleQuantity"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
			}

			if(!preg_match('#itemprop="image"#',$product_page_parts[1])){
				$pattern='/id="hikashop_main_image"/';
				$replacement='id="hikashop_main_image"
itemprop="image"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1]);
			}

			if(!preg_match('#itemprop="width"#',$product_page_parts[1])){
				$pattern='/class="hikashop_product_width_main"/';
				$replacement='class="hikashop_product_width_main"
itemprop="width"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

				$pattern='/class="hikashop_product_height_main"/';
				$replacement='class="hikashop_product_height_main"
itemprop="height"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

				$pattern='/class="hikashop_product_length_main"/';
				$replacement='class="hikashop_product_length_main"
itemprop="depth"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

				$pattern='/class="hikashop_product_weight_main"/';
				$replacement='class="hikashop_product_weight_main"
itemprop="weight"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
			}

			if($default_params['show_price'] == 1){
				$pattern='/<(span|div)
id="(hikashop_product_weight_main|hikashop_product_width_main|hikashop_product_length_main|hikashop_product_height_main|hikashop_product_characteristics|hikashop_product_options|hikashop_product_custom_item_info|hikashop_product_price_with_options_main|hikashop_product_quantity_main)"/';
				$replacement='</div> <$1 id="$2"';
			}

			if(!preg_match('#itemtype="https://schema.org/Review"#',$product_page_parts[1])){
				if(strpos($product_page_parts[1],'class="hika_comment_listing_empty"')==false){
					$pattern='/class="ui-corner-all
hika_comment_listing"/';
					$replacement='class="ui-corner-all
hika_comment_listing" itemprop="review" itemscope
itemtype="https://schema.org/Review"';
					$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1]);
				}

				$pattern='/class="hika_comment_listing_content"/';
				$replacement='class="hika_comment_listing_content"
itemprop="description"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1]);

				$pattern='/class="hika_comment_listing_name"/';
				$replacement='class="hika_comment_listing_name"
itemprop="author" itemscope
itemtype="https://schema.org/Person"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1]);

				$pattern='/class="hika_vote_listing_username"/';
				$replacement='class="hika_vote_listing_username"
itemprop="author"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1]);
			}

			if(!preg_match('#itemprop="aggregateRating"#',$product_page_parts[1])){
				$pattern='/class="hikashop_vote_stars"/';
				$replacement='class="hikashop_vote_stars"
itemprop="aggregateRating" itemscope
itemtype="https://schema.org/AggregateRating"';
				$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
			}

			if(!preg_match('#itemprop="ratingValue"#',$product_page_parts[1])){
				$ratemax=hikaInput::get()->getVar("nb_max_star");//nbmax
				$pattern='/(<span\s+class="hikashop_total_vote")/iUs';
				if(preg_match($pattern,$product_page_parts[1])){

					preg_match('/<input type="hidden"
class="hikashop_vote_rating".*data-rate="(.*)"/U',$product_page_parts[1],$matches);
					if(isset($matches[1])){
						$replacement = '<span style="display:none"
itemprop="ratingValue">'.$matches[1].'</span><span
style="display:none"
itemprop="bestRating">'.$ratemax.'</span><span
style="display:none"
itemprop="worstRating">1</span>$1';
						$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
					}
					preg_match('/<span
class="hikashop_total_vote">.*>(.*)</U',$product_page_parts[1],$matches);
					if(isset($matches[1])){
						$replacement = '<span style="display:none"
itemprop="reviewCount">'.trim($matches[1]).'</span>$1';
						$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
					}
				}else{

					$pattern='#itemtype="https://schema.org/AggregateRating">#';
					preg_match('/class="hk-rating"
data-original-title="(.*)"/U',$product_page_parts[1],$matches);
					if(!isset($matches[1]))
						preg_match('/data-rate=".*"
data-original-title="(.*)"/U',$product_page_parts[1],$matches);
					if(isset($matches[1])){
						preg_match_all('/<strong>.*<\/strong>(.*)<br\/>/U',$matches[1],$matches);
						if(isset($matches[1][0])){
							$replacement =
'itemtype="https://schema.org/AggregateRating"><span
style="display:none"
itemprop="ratingValue">'.trim($matches[1][0]).'</span><span
style="display:none"
itemprop="bestRating">'.$ratemax.'</span><span
style="display:none"
itemprop="worstRating">1</span>$1';
							$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
						}
						if(isset($matches[1][1])){
							$replacement =
'itemtype="https://schema.org/AggregateRating"><span
style="display:none"
itemprop="reviewCount">'.trim($matches[1][1]).'</span>$1';
							$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);
						}
					}
				}
			}

			$pattern='/itemprop="keywords"/';
			$replacement='';
			$product_page_parts[1] =
preg_replace($pattern,$replacement,$product_page_parts[1],1);

		}
		foreach($product_page_parts as $parts){
			echo $parts;
		}
	}
}
PK�X�[�`�A��)hikashopproducttag/hikashopproducttag.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop Product Tag</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikari Software</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-3.0.html
GNU/GPL</license>
	<description></description>
	<files>
		<filename
plugin="hikashopproducttag">hikashopproducttag.php</filename>
	</files>
</extension>
PK�X�[�#o,,hikashopproducttag/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[����=hikashopregistrationredirect/hikashopregistrationredirect.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopregistrationredirect extends JPlugin
{
	function __construct(&$subject, $config){
		parent::__construct($subject, $config);
		if(!isset($this->params)){
			$plugin = JPluginHelper::getPlugin('system',
'hikashopregistrationredirect');
			$this->params = new JRegistry(@$plugin->params);
		}
	}


	function onAfterRoute(){
		$app = JFactory::getApplication();
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if((@$_REQUEST['option']=='com_user' &&
@$_REQUEST['view']=='register') ||
(@$_REQUEST['option']=='com_users' &&
@$_REQUEST['view']=='registration' &&
!in_array(@$_REQUEST['task'],array('remind.remind','reset.request','reset.confirm','reset.complete')))){

			if(!defined('DS'))
				define('DS', DIRECTORY_SEPARATOR);
			if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;

			$Itemid = $this->params->get('item_id');
			if(empty($Itemid)){
				global $Itemid;
				if(empty($Itemid)){
					$urlItemid = hikaInput::get()->getInt('Itemid');
					if($urlItemid){
						$Itemid = $urlItemid;
					}
				}
			}

			$menuClass = hikashop_get('class.menus');
			if(!empty($Itemid)){
				$Itemid =
$menuClass->loadAMenuItemId('','',$Itemid);
			}
			if(empty($Itemid)){
				$Itemid = $menuClass->loadAMenuItemId('','');
			}
			$url_itemid = '';
			if(!empty($Itemid)){
				$url_itemid.='&Itemid='.$Itemid;
			}

			$app->redirect(JRoute::_('index.php?option=com_hikashop&ctrl=user&task=form'.$url_itemid,
false));
		}
		return true;
	}

}
PK�X�[U���=hikashopregistrationredirect/hikashopregistrationredirect.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop Registration Redirect Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to handle redirect to HikaShop
registration page</description>
	<files>
		<filename
plugin="hikashopregistrationredirect">hikashopregistrationredirect.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="item_id" type="text"
size="5" default=""
label="HIKA_ITEMID_FOR_REGISTRATION"
description="ITEMID_FOR_REGISTRATION"/>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="item_id" type="text"
size="5" default=""
label="HIKA_ITEMID_FOR_REGISTRATION"
description="ITEMID_FOR_REGISTRATION"/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,'hikashopregistrationredirect/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[j��E77+hikashopremarketing/hikashopremarketing.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopremarketing extends JPlugin
{
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		if(isset($this->params))
			return;

		$plugin = JPluginHelper::getPlugin('system',
'hikashopremarketing');
		$this->params = new JRegistry($plugin->params);
	}

	public function onAfterRender() {
		$adwords_id = $this->params->get('adwordsid', 0);
		if (empty($adwords_id) || $adwords_id == 0)
			return true;

		$app = JFactory::getApplication();
		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if(version_compare(JVERSION,'3.0','>=')) {
			$layout = $app->input->getString('layout');
		} else {
			$layout = JRequest::getString('layout');
		}

		if ($layout == 'edit')
			return true;

		if(class_exists('JResponse'))
			$body = JResponse::getBody();
		$alternate_body = false;
		if(empty($body)) {
			$body = $app->getBody();
			$alternate_body = true;
		}

		if (!preg_match_all('#\<input (.*)\/\>#Uis', $body,
$matches))
			return true;

		$para = array();
		$matches = $matches[1];
		$nbtag = count($matches);
		for ($i = 0; $i < $nbtag; $i++) {
			if (preg_match_all('#name="product_id"#Uis',
$matches[$i], $pattern) &&
preg_match_all('#value="(.*)"#Uis', $matches[$i],
$tag)) {
				$para[ (int)$tag[1][0] ] = (int)$tag[1][0];
			}
		}

		if (count($para) == 0)
			return true;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$db = JFactory::getDBO();
		$tags = array();

		$product_query = 'SELECT * FROM ' .
hikashop_table('product') .
			' WHERE product_id IN (' . implode(',', $para) .
') AND product_access = '.$db->Quote('all').'
AND product_published = 1 AND product_type =
'.$db->Quote('main');
		$db->setQuery($product_query);
		$products = $db->loadObjectList('product_id');
		foreach($products as $k => $product) {
			$val =
$this->_additionalParameter($product,'ecomm_prodid');
			if($val)
				$tags[(int)$product->product_id] = $val;
		}

		if (count($tags) == 0)
			return true;

		$params = array('ecomm_prodid:
[\''.implode('\',\'', $tags)
.'\']', 'ecomm_pagetype: \'product\'');

		$zone_id = hikashop_getZone();
		$currencyClass = hikashop_get('class.currency');
		$config =& hikashop_config();
		$main_currency = (int)$config->get('main_currency',1);
		$price_displayed =
$this->params->get('price_displayed');
		switch($price_displayed){
			case 'expensive':
				$currencyClass->getListingPrices($products,$zone_id,$main_currency,'range');
				$tmpPrice = 0;
				foreach($products as $product){
					if(isset($product->prices[0]->price_value)){
						if(count($product->prices)>1){
							for($i=0;$i<count($product->prices);$i++){
								if($product->prices[$i]->price_value > $tmpPrice){
									$tmpPrice = $product->prices[$i]->price_value;
									$key = $i;
								}
							}
							$product->prices[0] = $product->prices[$key];
							for($i=1;$i<count($product->prices);$i++){
								unset($product->prices[$i]);
							}
						}
					}
				}
				break;
			case 'average':
				$currencyClass->getListingPrices($products,$zone_id,$main_currency,'range');
				$tmpPrice = 0;
				$tmpTaxPrice = 0;
				foreach($products as $product){
					if(isset($product->prices[0]->price_value)){
						if(count($product->prices) > 1){
							for($i=0;$i<count($product->prices);$i++){
								if($product->prices[$i]->price_value > $tmpPrice){
									$tmpPrice += $product->prices[$i]->price_value;
									$tmpTaxPrice +=
@$product->prices[$i]->price_value_with_tax;
								}
							}
							$product->prices[0]->price_value =
$tmpPrice/count($product->prices);
							$product->prices[0]->price_value_with_tax =
$tmpTaxPrice/count($product->prices);
							for($i=1;$i<count($product->prices);$i++){
								unset($product->prices[$i]);
							}
						}
					}
				}
				break;
			case 'unit':
			case 'cheapest':
			default:
				$currencyClass->getListingPrices($products,$zone_id,$main_currency,$price_displayed);
				break;
		}
		$colum = 'price_value';
		if($config->get('price_with_tax')){
			$colum = 'price_value_with_tax';
		}
		foreach($products as $product){
			if(!empty($product->prices) && count($product->prices)){
				$params[]='ecomm_totalvalue:
'.round($product->prices[0]->$colum,2);
				break;
			}
		}

		$id = trim($this->params->get('adwordsid'));
		$extraJS = '';
		if($id != (int)$id){
			$extraJS = 'alert(\'You have configured the remarketing plugin
of HikaShop with a wrong Adword ID. It should be a number. Please edit it
via the Joomla plugins manager and correct it.\');';
		}

		$js = '<!-- Google code for remarketingtag -->
<script type="text/javascript">

var google_tag_params = {'.implode(', ',$params).' };
var google_conversion_id = '.(int)$id.';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
'.$extraJS.'

</script>
<script type="text/javascript"
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1"
style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/'.(int)$id.'/?value=0&guid=ON&script=0"/>
</div>
</noscript>
';
		$body = preg_replace('#\<\/body\>#',
$js.'</body>', $body, 1);

		if($alternate_body) {
			$app->setBody($body);
		} else {
			JResponse::setBody($body);
		}
	}

	function _additionalParameter(&$product, $param) {
		static $fields = false;

		if($fields === false) {
			$fieldsClass = hikashop_get('class.field');
			$data = null;
			$fields = $fieldsClass->getFields('all', $data,
'product');
		}

		if(empty($this->params[$param])) {
			$this->params[$param] = 'product_code';
		}

		$column = $this->params[$param];

		if(empty($product->$column))
			return false;
		return $product->$column;
	}
}
PK�X�[�/Ȝ�+hikashopremarketing/hikashopremarketing.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>HikaShop Google Dynamic Remarketing (conversion
tracking)</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikari Software</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-3.0.html
GNU/GPL</license>
	<description>Hikashop Google remarketing (conversion tracking)
plugin</description>
	<files>
		<filename
plugin="hikashopremarketing">hikashopremarketing.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="adwordsid" type="text"
default="" label="HIKA_ADWORDS_ID"
description="ADWORDS_ID" />
		<param name="ecomm_prodid" type="text"
size="50" default="product_code"
label="ECOMM_PRODID_LABEL"
description="ECOMM_PRODID_DESC" />
		<param name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
			<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
			<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
			<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
			<option
value="unit">UNIT_PRICE_DISPLAYED</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="adwordsid" type="text"
default="" label="HIKA_ADWORDS_ID"
description="ADWORDS_ID" />
				<field name="ecomm_prodid" type="text"
size="50" default="product_code"
label="ECOMM_PRODID_LABEL"
description="ECOMM_PRODID_DESC" />
				<field name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
					<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
					<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
					<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
					<option
value="unit">UNIT_PRICE_DISPLAYED</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopremarketing/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�y��MM!hikashopsocial/hikashopsocial.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
jimport('joomla.plugin.plugin');
class plgSystemHikashopsocial extends JPlugin {
	var $meta = array();
	var $headScripts = array();

	function __construct(&$subject, $params) {
		parent::__construct($subject, $params);
	}

	function onAfterRender() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getVar('option');
			$ctrl = $app->input->getVar('ctrl');
			$task = $app->input->getVar('task');
		} else {
			$option = JRequest::getVar('option');
			$ctrl = JRequest::getVar('ctrl');
			$task = JRequest::getVar('task');
		}
		if(version_compare(JVERSION,'4.0','>=')) {
			$admin = $app->isClient('administrator');
		} else {
			$admin = $app->isAdmin();
		}

		if($admin || !in_array($option, array('com_hikashop',
'com_hikamarket', '')) || !in_array($ctrl,
array('product', 'category', 'vendor')) ||
!in_array($task, array('show', 'listing')))
			return;

		if(!defined('HIKASHOP_COMPONENT'))
			return;

		if(class_exists('JResponse'))
			$body = JResponse::getBody();
		$alternate_body = false;
		if(empty($body)){
			$body = $app->getBody();
			$alternate_body = true;
		}
		if(strpos($body,'{hikashop_social}') === false)
			return;

		$pluginsClass = hikashop_get('class.plugins');
		$plugin = $pluginsClass->getByName('system',
'hikashopsocial');
		if(!isset($plugin->params['position'])) {
			$default = array(
				'position' => 0,
				'display_twitter' => 1,
				'display_pinterest' => 1,
				'display_fb' => 1,
				'display_google' => 1,
				'fb_style' => 0,
				'fb_faces' => 1,
				'fb_verb' => 0,
				'fb_theme' => 0,
				'fb_font' => 0,
				'fb_type' => 0,
				'fb_mode' => 'fb-like',
				'twitter_count' => 0,
				'google_size' => 2,
				'google_count' => 1
			);

			if(empty($plugin->params))
				$plugin->params = array();
			$plugin->params = array_merge($plugin->params, $default);
		}
		if(!isset($plugin->params['fb_send']))
			$plugin->params['fb_send'] = 0;
		if(!isset($plugin->params['fb_tag']))
			$plugin->params['fb_tag'] = 'iframe';

		$html = array(
			$this->_addTwitterButton($plugin),
			$this->_addPinterestButton($plugin),
			$this->_addGoogleButton($plugin),
			$this->_addAddThisButton($plugin),
			$this->_addFacebookButton($plugin)
		);

		$styles = 'text-align:left;';
		if($plugin->params['position'] == 1) {
			$styles = 'text-align:right;';
			if(!empty($plugin->params['width']) &&
(int)$plugin->params['width'] > 0)
				$styles .=
'width:'.(int)$plugin->params['width'].'px';
			else
				$styles .= 'width:100%';
		}

		$html = implode('', $html);

		if(!empty($html))
			$html = '<div id="hikashop_social"
style="'.$styles.'">' . $html .
'</div>';

		$body = str_replace('{hikashop_social}', $html, $body);

		if(!empty($plugin->params['display_fb'])) {
			$body = str_replace('<html ', '<html
xmlns:fb="https://www.facebook.com/2008/fbml"
xmlns:og="http://ogp.me/ns# "
xmlns:fb="http://ogp.me/ns/fb#" ', $body);
			if($plugin->params['fb_tag'] == "xfbml"
&& $plugin->params['display_fb'] != 2) {
				$mainLang = JFactory::getLanguage();
				$tag = str_replace('-', '_',
$mainLang->get('tag'));
				$fb = '
<div id="fb-root"></div>
<script>
(function(d,s,id) {
	var js, fjs = d.getElementsByTagName(s)[0];
	if(d.getElementById(id)) return;
	js = d.createElement(s); js.id = id;
	js.src =
"//connect.facebook.net/'.$tag.'/all.js#xfbml=1";
	fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>';
				$body = preg_replace('#<body.*>#Us',
'$0'.$fb, $body);
			}
		}

		if(!empty($this->headScripts))
			$body = str_replace('</head>', implode("\r\n",
$this->headScripts)."\r\n".'</head>', $body);

		if(!empty($this->meta)) {
			$meta = array();
			foreach($this->meta as $k => $v) {
				if(strpos($body, $k) === false)
					$meta[] = $v;
			}
			if(!empty($meta))
				$body = str_replace('</head>',
implode("\r\n",
$meta)."\r\n".'</head>', $body);
		}
		if($alternate_body){
			$app->setBody($body);
		}else{
			JResponse::setBody($body);
		}

	}

	function _addAddThisButton(&$plugin) {
		if(empty($plugin->params['display_addThis']))
			return '';

		$var = array();
		$vars = '';
		if(!empty($plugin->params['services_exclude']))
			$var[] = 'services_exclude:
"'.$plugin->params['services_exclude'].'"';
		if(!empty($var))
			$vars = '<script type="text/javascript">var
addthis_config = { '.implode(';',$var).'
}</script>';
		$this->headScripts['addThis'] = '<script
type="text/javascript"
src="//s7.addthis.com/js/250/addthis_widget.js"></script>'.$vars;

		$class = '';
		$divClass = '';
		$atClass = '';
		$endDiv = '';

		if($plugin->params['addThis_display'] == 0)
			$atClass = 'addthis_button_compact';

		if($plugin->params['addThis_display'] == 1) {
			$atClass = 'addthis_button_compact';
			$divClass = '<div class="addthis_default_style
addthis_toolbox addthis_32x32_style">';
			$endDiv = '</div>';
		}

		if($plugin->params['addThis_display'] == 2)
			$atClass = 'addthis_counter';

		if($plugin->params['position'] == 1)
			$class = '_right';

		return '<span
class="hikashop_social_addThis'.$class.'"
>'.$divClass.'<a
class="'.$atClass.'"></a>'.$endDiv.'</span>';
	}

	function _addGoogleButton(&$plugin) {
		if(empty($plugin->params['display_google']))
			return '';

		$mainLang = JFactory::getLanguage();
		$tag = $mainLang->get('tag');
		if(!in_array($tag, array('zh-CN', 'zh-TW',
'en-GB', 'en-US', 'pt-BR',
'pt-PT')))
			$tag = strtolower(substr($tag, 0, 2));
		$lang = '{"lang": "'.$tag.'"}';
		$this->headScripts['google'] = '<script
type="text/javascript"
src="https://apis.google.com/js/plusone.js">'.$lang.'</script>';

		$count = empty($plugin->params['google_count']) ?
'false' : 'true';

		$c = 'hikashop_social_google';
		if($plugin->params['position'] == 1)
			$c = 'hikashop_social_google_right';

		$size = '';
		$sizes = array( 0 => 'standard', 1 => 'small',
2 => 'medium', 3 => 'tall' );
		if(isset($sizes[ (int)$plugin->params['google_size'] ]))
			$size = 'size="' . $sizes[
(int)$plugin->params['google_size'] ] . '"';

		return '<span class="'.$c.'"><g:plusone
'.$size.'
count="'.$count.'"></g:plusone></span>';
	}

	function _addPinterestButton(&$plugin) {
		if(empty($plugin->params['display_pinterest']))
			return '';

		$element = $this->_getElementInfo();
		$imageUrl = $this->_getImageURL($element);

		$this->headScripts['pinterest'] = '<script
type="text/javascript"
src="//assets.pinterest.com/js/pinit.js"></script>';

		$c = '';
		if($plugin->params['position'] == 1)
			$c = '_right';

		$layouts = array(0 => 'horizontal', 1 =>
'vertical', 2 => 'none');
		$count = $layouts[
(int)@$plugin->params['pinterest_display'] ];

		if(!empty($element->url_canonical))
			$url = hikashop_cleanURL($element->url_canonical);
		else
			$url = hikashop_currentURL('',false);
		$description = $this->_cleanDescription($element->description,
500);
		return '<span
class="hikashop_social_pinterest'.$c.'"><a
href="//pinterest.com/pin/create/button/?url='.urlencode($url).'&media='.urlencode($imageUrl).'&description='.rawurlencode($description).'"
class="pin-it-button"
count-layout="'.$count.'"><img
border="0"
src="//assets.pinterest.com/images/PinExt.png" title="Pin
It" /></a></span>';
	}

	function _addTwitterButton(&$plugin) {
		if(empty($plugin->params['display_twitter']))
			return '';

		$element = $this->_getElementInfo();
		if(empty($element))
			return '';

		$layouts = array(0 => 'horizontal', 1 =>
'vertical', 2 => 'none');
		$count = $layouts[ (int)$plugin->params['twitter_count'] ];

		$c = '';
		if($plugin->params['twitter_count'] == 0)
			$c .= '_horizontal';
		if($plugin->params['position'] == 1)
			$c .= '_right';

		$message = '';
		if(!empty($plugin->params['twitter_text']))
			$message = '
data-text="'.$plugin->params['twitter_text'].'"';

		$mention = '';
		if(!empty($plugin->params['twitter_mention']))
			$mention = '
data-via="'.$plugin->params['twitter_mention'].'"';

		$mainLang = JFactory::getLanguage();
		$locale = strtolower(substr($mainLang->get('tag'), 0, 2));

		$lang = '';
		if(in_array($locale, array('fr', 'de',
'es', 'it', 'ja', 'ru',
'tr', 'ko')))
			$lang = ' data-lang="'.$locale.'"';

		if (isset($_SERVER['HTTPS']) &&
!empty($_SERVER['HTTPS']) &&
(strtolower($_SERVER['HTTPS']) != 'off')) {
			$this->meta['hikashop_twitter_js_code'] = '
<script type="text/javascript">
function twitterPop(str) {
	mywindow =
window.open(\'http://twitter.com/share?url=\'+str,"Tweet_widow","channelmode=no,directories=no,location=no,menubar=no,scrollbars=no,toolbar=no,status=no,width=500,height=375,left=300,top=200");
	mywindow.focus();
}
</script>';

			if(!empty($element->url_canonical))
				$url = hikashop_cleanURL($element->url_canonical);
			else
				$url = hikashop_currentURL('',false);

			return '<span
class="hikashop_social_tw'.$c.'"><a
href="javascript:twitterPop(\''.$url.'\')"><img
src="'.HIKASHOP_IMAGES.'icons/tweet_button.jpg"></a></span>';
		}

		return '<span
class="hikashop_social_tw'.$c.'"><a
href="//twitter.com/share"
class="twitter-share-button"'.$message.'
data-count="'.$count.'"'.$mention.$lang.'>Tweet</a><script
type="text/javascript"
src="//platform.twitter.com/widgets.js"></script></span>';
	}

	function _addFacebookButton(&$plugin) {
		if(empty($plugin->params['display_fb']))
			return '';

		$element = $this->_getElementInfo();
		if(empty($element))
			return '';

		$options = array(
			'layout' => 'standard',
			'width' => 400
		);
		$xfbml_options = array();

		$classname = 'standard';
		switch((int)$plugin->params['fb_style']) {
			case 1:
				$classname = 'button_count';
				$options['layout'] = 'button_count';
				$xfbml_options['layout'] = 'button_count';
				$options['width'] = 115;
				break;
			case 2:
				$classname = 'box_count';
				$options['layout'] = 'box_count';
				$xfbml_options['layout'] = 'box_count';
				$options['width'] = 115;
				break;
			case 3:
				$classname = 'button';
				$options['layout'] = 'button';
				$xfbml_options['layout'] = 'button';
				$options['width'] = 65;
				break;
		}

		if(empty($plugin->params['fb_faces'])) {
			$options['show_faces'] = 'false';
			$xfbml_options['show-faces'] = 'false';
		} else {
			$options['show_faces'] = 'true';
			$xfbml_options['show-faces'] = 'false'; // in the
first version of the plugin, in fact is was set to "false",
so...
		}

		if(empty($plugin->params['fb_verb'])) {
			$options['action'] = 'like';
		} else {
			$options['action'] = 'recommend';
			$xfbml_options['action'] = 'recommend';
		}

		if(empty($plugin->params['fb_theme'])) {
			$options['colorscheme'] = 'light';
		} else {
			$options['colorscheme'] = 'dark';
			$xfbml_options['colorscheme'] = 'dark';
		}

		$fonts = array(
			0 => 'arial',
			1 => 'lucida%20grande',
			2 => 'segoe%20ui',
			3 => 'tahoma',
			4 => 'trebuchet%20ms',
			5 => 'verdana',
		);
		if(isset($fonts[ (int)$plugin->params['fb_font'] ])) {
			$options['font'] = $fonts[
(int)$plugin->params['fb_font'] ];
			$xfbml_options['font'] = $fonts[
(int)$plugin->params['fb_font'] ];
		}

		if(!empty($plugin->params['fb_send']))
			$xfbml_options['send'] = 'true';

		if(!empty($element->url_canonical))
			$url = hikashop_cleanURL($element->url_canonical);
		else
			$url = hikashop_currentURL('', false);

		$html = '';

		if($plugin->params['display_fb'] != 2) {
			$html = '<span class="hikashop_social_fb">';
			if($plugin->params['position'] == 1)
				$html = '<span
class="hikashop_social_fb_right">';

			$url_options = array();
			if($plugin->params['fb_tag'] == 'iframe') {

				foreach($options as $k => $v) {
					$url_options[] = $k . '=' . urlencode($v);
				}

				$html .= '<iframe '.
					'src="//www.facebook.com/plugins/like.php?href='.urlencode($url).'&amp;send=false&amp;'.implode('&amp;',
$url_options).'&amp;height=30" '.
					'scrolling="no" frameborder="0"
allowTransparency="true" '.
					'style="border:none; overflow:hidden;"
class="hikashop_social_fb_'.$classname.'"></iframe>';
			} else {
				foreach($xfbml_options as $k => $v) {
					$url_options[] = 'data-' . $k . '="' .
urlencode($v) . '"';
				}
				if(empty($plugin->params['fb_mode'])){
					$plugin->params['fb_mode'] = 'fb-like';
				}
				$html .= '<div
class="'.$plugin->params['fb_mode'].'"
data-href="'.$url.'" '.implode(' ',
$url_options).'></div>';
			}

			$html .= '</span>';
		}

		$this->meta['property="og:title"'] =
'<meta property="og:title"
content="'.htmlspecialchars($element->name,
ENT_COMPAT,'UTF-8').'"/> ';

		$types = array(
			0 => 'product',
			1 => 'album',
			2 => 'book',
			3 => 'company',
			4 => 'drink',
			5 => 'game',
			6 => 'movie',
			7 => 'song',
		);
		if(isset($types[ (int)$plugin->params['fb_type']]))
			$this->meta['property="og:type"']='<meta
property="og:type" content="'.$types[
(int)$plugin->params['fb_type']].'"/> ';

		$config =& hikashop_config();
		$uploadFolder =
ltrim(JPath::clean(html_entity_decode($config->get('uploadfolder','media/com_hikashop/upload/'))),
DS);
		$uploadFolder = rtrim($uploadFolder,DS) . DS;
		$this->uploadFolder_url = str_replace(DS, '/',
$uploadFolder);
		$this->uploadFolder = JPATH_ROOT . DS . $uploadFolder;
		$this->thumbnail = $config->get('thumbnail', 1);
		$this->thumbnail_y = $config->get('product_image_y',
$config->get('thumbnail_y'));
		$this->thumbnail_x = $config->get('product_image_x',
$config->get('thumbnail_x'));
		$this->main_thumbnail_x = $this->thumbnail_x;
		$this->main_thumbnail_y = $this->thumbnail_y;
		$this->main_uploadFolder_url = $this->uploadFolder_url;
		$this->main_uploadFolder = $this->uploadFolder;

		$imageUrl = $this->_getImageURL($element);
		if(!empty($imageUrl))
			$this->meta['property="og:image"']='<meta
property="og:image" content="'.$imageUrl.'"
/> ';

		$this->meta['property="og:url"']='<meta
property="og:url" content="'.$url.'"
/>';
		$description = $this->_cleanDescription($element->description);
		$this->meta['property="og:description"'] =
'<meta property="og:description"
content="'.$description.'"/> ';

		$jconf = JFactory::getConfig();
		if(HIKASHOP_J30)
			$siteName = $jconf->get('sitename');
		else
			$siteName = $jconf->getValue('config.sitename');
		$this->meta['property="og:site_name"'] =
'<meta property="og:site_name"
content="'.htmlspecialchars($siteName,
ENT_COMPAT,'UTF-8').'"/> ';

		if(!empty($plugin->params['admin']))
			$this->meta['property="fb:admins"'] =
'<meta property="fb:admins"
content="'.htmlspecialchars($plugin->params['admin'],
ENT_COMPAT,'UTF-8').'" />';

		return $html;
	}

	function _getElementInfo() {
		if(version_compare(JVERSION,'3.0','>=')) {
			$app = JFactory::getApplication();
			$option = $app->input->getVar('option');
			$ctrl = $app->input->getVar('ctrl');
			$task = $app->input->getVar('task');
		} else {
			$option = JRequest::getVar('option');
			$ctrl = JRequest::getVar('ctrl');
			$task = JRequest::getVar('task');
		}

		$ret = new stdClass();

		if(in_array($option, array('com_hikamarket', ''))
&& $ctrl == 'vendor' && $task ==
'show') {
			$element = $this->_getVendorInfo();
			$ret->type = 'vendor';
			$ret->id = (int)$element->vendor_id;
			$ret->name = $element->vendor_name;
			$ret->description = $element->vendor_description;
			$ret->url_canonical = @$element->vendor_canonical;
			$ret->image = $element->vendor_image;
		} else {
			$element = $this->_getProductInfo();
			$ret->type = 'product';
			$ret->id = (int)$element->product_id;
			$ret->name = $element->product_name;
			$ret->description = $element->product_description;
			$ret->url_canonical = @$element->product_canonical;
		}

		return $ret;
	}

	function _getProductInfo() {
		static $product = null;
		if($product !== null)
			return $product;

		$app = JFactory::getApplication();
		$product_id = (int)hikashop_getCID('product_id');
		$menus = $app->getMenu();
		$menu = $menus->getActive();
		if(empty($menu) && !empty($Itemid)) {
			$menus->setActive($Itemid);
			$menu = $menus->getItem($Itemid);
		}
		if(empty($product_id) && is_object($menu)) {
			jimport('joomla.html.parameter');
			$params = new JParameter($menu->params);
			$product_id = $params->get('product_id');
		}
		$product = false;
		if(!empty($product_id)) {
			$productClass = hikashop_get('class.product');
			$product = $productClass->get($product_id);
			if(!empty($product) && $product->product_type ==
'variant') {
				$product = $productClass->get($product->product_parent_id);
			}
		}
		return $product;
	}

	function _getVendorInfo() {
		static $vendor = null;
		if($vendor !== null)
			return $vendor;

		$app = JFactory::getApplication();
		$vendor_id = (int)hikashop_getCID('vendor_id');
		$menus = $app->getMenu();
		$menu = $menus->getActive();
		if(empty($menu) && !empty($Itemid)) {
			$menus->setActive($Itemid);
			$menu = $menus->getItem($Itemid);
		}
		if(empty($vendor_id) && is_object($menu) &&
!empty($menu->params)) {
			jimport('joomla.html.parameter');
			$params = new JParameter($menu->params);
			$vendor_id = $params->get('vendor_id');
		}
		$vendor = false;
		if(!empty($vendor_id)) {
			$vendorClass = hikamarket::get('class.vendor');
			$vendor = $vendorClass->get($vendor_id);
		}
		return $vendor;
	}

	function _getImageURL($element) {
		$config =& hikashop_config();
		$uploadFolder =
ltrim(JPath::clean(html_entity_decode($config->get('uploadfolder','media/com_hikashop/upload/'))),DS);
		$uploadFolder = rtrim($uploadFolder,DS).DS;
		$this->uploadFolder_url =
str_replace(DS,'/',$uploadFolder);
		$this->main_uploadFolder_url = $this->uploadFolder_url;

		$imageUrl = '';

		if($element->type == 'vendor') {
			$imageUrl = JURI::base() . $this->main_uploadFolder_url .
$element->image;
		} else {
			$product_id = (int)$element->id;

			$db = JFactory::getDBO();
			$queryImage = 'SELECT * FROM
'.hikashop_table('file').' WHERE
file_ref_id='.$product_id.'  AND file_type=\'product\'
ORDER BY file_ordering ASC, file_id ASC';
			$db->setQuery($queryImage);
			$image = $db->loadObject();
			if(empty($image)) {
				$queryImage = 'SELECT * FROM
'.hikashop_table('file').' as a LEFT JOIN
'.hikashop_table('product').' as b ON
a.file_ref_id=b.product_id  WHERE
product_parent_id='.$product_id.'  AND
file_type=\'product\' ORDER BY file_ordering ASC, file_id
ASC';
				$db->setQuery($queryImage);
				$image = $db->loadObject();
			}
			if(!empty($image))
				$imageUrl = JURI::base() . $this->main_uploadFolder_url .
$image->file_path;
		}
		return $imageUrl;
	}

	function _cleanDescription($description, $max = 0){
		$description = preg_replace('#\{(load)?(module|position|modulepos)
+[a-z_0-9]+\}#i','',$description);

		$description =
preg_replace('#\{(slider|tab|modal|tip|article|snippet)(-[a-z_0-9]+)?
+[a-z_
0-9\|]+\}.*\{\/(slider|tab|modal|tip|article|snippet)s?(-[a-z_0-9]+)?\}#Usi','',$description);

		$description = htmlspecialchars(strip_tags($description),
ENT_COMPAT,'UTF-8');

		if($max && strlen($description) > $max)
			$description = substr($description, 0, $max-4).'...';
		return $description;
	}
}
PK�X�[����6�6!hikashopsocial/hikashopsocial.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="1.5"
method="upgrade" group="system">
	<name>System - Hikashop Social Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to add a Facebook
"like" button and a Twitter button</description>
	<files>
		<filename
plugin="hikashopsocial">hikashopsocial.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="display_fb" type="radio"
default="1" label="HIKA_DISPLAY_FACEBOOK_BUTTON"
description="DISPLAY_FACEBOOK_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
			<option value="2">OPEN_GRAPH_META_ONLY</option>
		</param>
		<param name="display_twitter" type="radio"
default="1" label="HIKA_DISPLAY_TWITTER_BUTTON"
description="DISPLAY_TWITTER_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="display_google" type="radio"
default="1" label="HIKA_DISPLAY_GOOGLE_BUTTON"
description="DISPLAY_GOOGLE_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="display_pinterest" type="radio"
default="1" label="HIKA_DISPLAY_PINTEREST_BUTTON"
description="DISPLAY_PINTEREST_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="display_addThis" type="radio"
default="1" label="HIKA_DISPLAY_ADDTHIS_BUTTON"
description="DISPLAY_ADDTHIS_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="position" type="list"
default="0" label="HIKA_SOCIAL_BUTTON_POSITION"
description="SOCIAL_BUTTON_POSITION">
			<option value="0">HIKA_LEFT</option>
			<option value="1">HIKA_RIGHT</option>
		</param>
		<param name="width" type="text"
default="0" label="PRODUCT_WIDTH"
description="SOCIAL_WIDTH_DIV" />
		<param name="@spacer" type="spacer"
default="" label="" description="" />
		<param name="fb_tag" type="radio"
default="xfbml" label="HIKA_SOCIAL_TAG_TYPE"
description="SOCIAL_TAG_TYPE">
			<option
value="xfbml">SOCIAL_TAG_TYPE_XFBML</option>
			<option
value="ifram">SOCIAL_TAG_TYPE_IFRAME</option>
		</param>
		<param name="fb_style" type="list"
default="0" label="HIKA_FACEBOOK_DISPLAY_STYLE"
description="FACEBOOK_DISPLAY_STYLE">
			<option
value="0">FACEBOOK_DISPLAY_STYLE_STANDARD</option>
			<option
value="1">FACEBOOK_DISPLAY_STYLE_BUTTON_COUNT</option>
			<option
value="2">FACEBOOK_DISPLAY_STYLE_BOX_COUNT</option>
			<option
value="3">FACEBOOK_DISPLAY_STYLE_BUTTON</option>
		</param>
		<param name="fb_faces" type="radio"
default="1" label="HIKA_SHOW_FACEBOOK_FACES"
description="SHOW_FACEBOOK_FACES">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="fb_send" type="radio"
default="0" label="HIKA_SHOW_SEND_BUTTON"
description="SHOW_SEND_BUTTON">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="fb_verb" type="list"
default="0" label="HIKA_VERB_TO_DISPLAY"
description="VERB_TO_DISPLAY">
			<option value="0">SOCIAL_VERB_LIKE</option>
			<option value="1">SOCIAL_VERB_RECOMMEND</option>
		</param>
		<param name="fb_mode" type="list"
default="fb-like" label="HIKA_DISPLAY_MODE"
description="DISPLAY_MODE_FOR_XFBML">
			<option value="fb-like">HIKA_DEFAULT</option>
			<option
value="fb-share-button">SHARE_BUTTON_ONLY</option>
		</param>
		<param name="fb_theme" type="list"
default="0" label="HIKA_COLOR_THEME"
description="COLOR_THEME">
			<option value="0">THEME_LIGHT</option>
			<option value="1">tHEME_DARK</option>
		</param>
		<param name="fb_font" type="list"
default="0" label="HIKA_FACEBOOK_BUTTON_FONT"
description="FACEBOOK_BUTTON_FONT">
			<option value="0">Arial</option>
			<option value="1">Lucida grande</option>
			<option value="2">segoe ui</option>
			<option value="3">Tahoma</option>
			<option value="4">Trebuchet ms</option>
			<option value="5">Verdana</option>
		</param>
		<param name="fb_type" type="list"
default="0" label="PRODUCT_TYPE"
description="SOCIAL_PRODUCT_TYPE">
			<option
value="0">SOCIAL_PRODUCT_TYPE_PRODUCT</option>
			<option
value="1">SOCIAL_PRODUCT_TYPE_ALBUM</option>
			<option
value="2">SOCIAL_PRODUCT_TYPE_BOOK</option>
			<option
value="3">SOCIAL_PRODUCT_TYPE_COMPANY</option>
			<option
value="4">SOCIAL_PRODUCT_TYPE_DRINK</option>
			<option
value="5">SOCIAL_PRODUCT_TYPE_GAME</option>
			<option
value="6">SOCIAL_PRODUCT_TYPE_MOVIE</option>
			<option
value="7">SOCIAL_PRODUCT_TYPE_SONG</option>
		</param>
		<param name="admin" type="text"
default="" label="HIKA_FACEBOOK_ADMIN"
description="FACEBOOK_ADMIN" />
		<param name="@spacer" type="spacer"
default="" label="" description="" />
		<param name="twitter_count" type="list"
default="0" label="HIKA_TWITTER_COUNT_DISPLAY"
description="TWITTER_COUNT_DISPLAY">
			<option value="0">HORIZONTAL</option>
			<option value="1">VERTICAL</option>
			<option value="2">HIKA_NONE</option>
		</param>
		<param name="twitter_text" type="text"
default="" label="HIKA_TWEET_TEXT"
description="TWEET_TEXT" />
		<param name="twitter_mention" type="text"
default="" label="HIKA_MENTION_TO"
description="MENTION_TO" />
		<param name="@spacer" type="spacer"
default="" label="" description="" />
		<param name="google_size" type="list"
default="0" label="HIKA_GOOGLE_BUTTON_SIZE"
description="GOOGLE_BUTTON_SIZE">
			<option value="0">BUTTON_SIZE_STANDARD</option>
			<option value="1">BUTTON_SIZE_SMALL</option>
			<option value="2">BUTTON_SIZE_MEDIUM</option>
			<option value="3">BUTTON_SIZE_TALL</option>
		</param>
		<param name="google_count" type="radio"
default="1" label="HIKA_SHOW_GOOGLE_COUNT"
description="SHOW_GOOGLE_COUNT">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
		<param name="@spacer" type="spacer"
default="" label="" description="" />
		<param name="pinterest_display" type="list"
default="0" label="HIKA_PINTEREST_COUNT_DISPLAY"
description="PINTEREST_COUNT_DISPLAY">
			<option value="0">HORIZONTAL</option>
			<option value="1">VERTICAL</option>
			<option value="2">HIKA_NONE</option>
		</param>
		<param name="@spacer" type="spacer"
default="" label="" description="" />
		<param name="addThis_display" type="list"
default="0" label="HIKA_ADDTHIS_DISPLAY"
description="ADDTHIS_DISPLAY">
			<option
value="0">ADDTHIS_DISPLAY_COMPACT</option>
			<option value="1">ADDTHIS_DISPLAY_BIG</option>
			<option value="2">ADDTHIS_DISPLAY_COUNT</option>
		</param>
		<param name="services_exclude" type="text"
default="" label="HIKA_SOCIAL_SERVICES_EXCLUDE"
description="SOCIAL_SERVICES_EXCLUDE" />
	</params>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field name="display_fb" type="radio"
default="1" label="HIKA_DISPLAY_FACEBOOK_BUTTON"
description="DISPLAY_FACEBOOK_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
					<option value="2">OPEN_GRAPH_META_ONLY</option>
				</field>
				<field name="display_twitter" type="radio"
default="1" label="HIKA_DISPLAY_TWITTER_BUTTON"
description="DISPLAY_TWITTER_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="display_google" type="radio"
default="1" label="HIKA_DISPLAY_GOOGLE_BUTTON"
description="DISPLAY_GOOGLE_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="display_pinterest" type="radio"
default="1" label="HIKA_DISPLAY_PINTEREST_BUTTON"
description="DISPLAY_PINTEREST_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="display_addThis" type="radio"
default="1" label="HIKA_DISPLAY_ADDTHIS_BUTTON"
description="DISPLAY_ADDTHIS_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="position" type="list"
default="0" label="HIKA_SOCIAL_BUTTON_POSITION"
description="SOCIAL_BUTTON_POSITION">
					<option value="0">HIKA_LEFT</option>
					<option value="1">HIKA_RIGHT</option>
				</field>
				<field name="width" type="text"
default="0" label="PRODUCT_WIDTH"
description="SOCIAL_WIDTH_DIV" />
				<field name="spacer1"
type="spacer"	hr="true"/>
				<field name="fb_tag" type="radio"
default="xfbml" label="HIKA_SOCIAL_TAG_TYPE"
description="SOCIAL_TAG_TYPE">
					<option
value="xfbml">SOCIAL_TAG_TYPE_XFBML</option>
					<option
value="iframe">SOCIAL_TAG_TYPE_IFRAME</option>
				</field>
				<field name="fb_style" type="list"
default="0" label="HIKA_FACEBOOK_DISPLAY_STYLE"
description="FACEBOOK_DISPLAY_STYLE">
					<option
value="0">FACEBOOK_DISPLAY_STYLE_STANDARD</option>
					<option
value="1">FACEBOOK_DISPLAY_STYLE_BUTTON_COUNT</option>
					<option
value="2">FACEBOOK_DISPLAY_STYLE_BOX_COUNT</option>
					<option
value="3">FACEBOOK_DISPLAY_STYLE_BUTTON</option>
				</field>
				<field name="fb_faces" type="radio"
default="1" label="HIKA_SHOW_FACEBOOK_FACES"
description="SHOW_FACEBOOK_FACES" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="fb_send" type="radio"
default="0" label="HIKA_SHOW_SEND_BUTTON"
description="SHOW_SEND_BUTTON" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="fb_verb" type="list"
default="0" label="HIKA_VERB_TO_DISPLAY"
description="VERB_TO_DISPLAY">
					<option value="0">SOCIAL_VERB_LIKE</option>
					<option
value="1">SOCIAL_VERB_RECOMMEND</option>
				</field>
				<field name="fb_mode" type="list"
default="fb-like" label="HIKA_DISPLAY_MODE"
description="DISPLAY_MODE_FOR_XFBML">
					<option value="fb-like">HIKA_DEFAULT</option>
					<option
value="fb-share-button">SHARE_BUTTON_ONLY</option>
				</field>
				<field name="fb_theme" type="list"
default="0" label="HIKA_COLOR_THEME"
description="COLOR_THEME">
					<option value="0">THEME_LIGHT</option>
					<option value="1">THEME_DARK</option>
				</field>
				<field name="fb_font" type="list"
default="0" label="HIKA_FACEBOOK_BUTTON_FONT"
description="FACEBOOK_BUTTON_FONT">
					<option value="0">Arial</option>
					<option value="1">Lucida grande</option>
					<option value="2">segoe ui</option>
					<option value="3">Tahoma</option>
					<option value="4">Trebuchet ms</option>
					<option value="5">Verdana</option>
				</field>
				<field name="fb_type" type="list"
default="0" label="PRODUCT_TYPE"
description="SOCIAL_PRODUCT_TYPE">
					<option
value="0">SOCIAL_PRODUCT_TYPE_PRODUCT</option>
					<option
value="1">SOCIAL_PRODUCT_TYPE_ALBUM</option>
					<option
value="2">SOCIAL_PRODUCT_TYPE_BOOK</option>
					<option
value="3">SOCIAL_PRODUCT_TYPE_COMPANY</option>
					<option
value="4">SOCIAL_PRODUCT_TYPE_DRINK</option>
					<option
value="5">SOCIAL_PRODUCT_TYPE_GAME</option>
					<option
value="6">SOCIAL_PRODUCT_TYPE_MOVIE</option>
					<option
value="7">SOCIAL_PRODUCT_TYPE_SONG</option>
				</field>
				<field name="admin" type="text"
default="" label="HIKA_FACEBOOK_ADMIN"
description="FACEBOOK_ADMIN" />
				<field name="spacer2"
type="spacer"	hr="true"/>
				<field name="twitter_count" type="list"
default="0" label="HIKA_TWITTER_COUNT_DISPLAY"
description="TWITTER_COUNT_DISPLAY">
					<option value="0">HORIZONTAL</option>
					<option value="1">VERTICAL</option>
					<option value="2">HIKA_NONE</option>
				</field>
				<field name="twitter_text" type="text"
default="" label="HIKA_TWEET_TEXT"
description="TWEET_TEXT" />
				<field name="twitter_mention" type="text"
default="" label="HIKA_MENTION_TO"
description="MENTION_TO" />
				<field name="spacer3"
type="spacer"	hr="true"/>
				<field name="google_size" type="list"
default="0" label="HIKA_GOOGLE_BUTTON_SIZE"
description="GOOGLE_BUTTON_SIZE">
					<option value="0">BUTTON_SIZE_STANDARD</option>
					<option value="1">BUTTON_SIZE_SMALL</option>
					<option value="2">BUTTON_SIZE_MEDIUM</option>
					<option value="3">BUTTON_SIZE_TALL</option>
				</field>
				<field name="google_count" type="radio"
default="1" label="HIKA_SHOW_GOOGLE_COUNT"
description="SHOW_GOOGLE_COUNT" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
				<field name="spacer4"
type="spacer"	hr="true"/>
				<field name="pinterest_display" type="list"
default="0" label="HIKA_PINTEREST_COUNT_DISPLAY"
description="PINTEREST_COUNT_DISPLAY">
					<option value="0">HORIZONTAL</option>
					<option value="1">VERTICAL</option>
					<option value="2">HIKA_NONE</option>
				</field>
				<field name="spacer5"
type="spacer"	hr="true"/>
				<field name="addThis_display" type="list"
default="0" label="HIKA_ADDTHIS_DISPLAY"
description="ADDTHIS_DISPLAY">
					<option
value="0">ADDTHIS_DISPLAY_COMPACT</option>
					<option value="1">ADDTHIS_DISPLAY_BIG</option>
					<option
value="2">ADDTHIS_DISPLAY_COUNT</option>
				</field>
				<field name="services_exclude" type="text"
default="" label="HIKA_SOCIAL_SERVICES_EXCLUDE"
description="SOCIAL_SERVICES_EXCLUDE" />
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopsocial/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[n�_�\�\hikashopuser/hikashopuser.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
jimport('joomla.plugin.plugin');
class plgSystemHikashopuser extends JPlugin {

	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);

		if(!isset($this->params)) {
			$plugin = JPluginHelper::getPlugin('system',
'hikashopuser');
			$this->params = new JRegistry($plugin->params);
		}

		$app = JFactory::getApplication();
		$this->currency =
$app->getUserState('com_hikashop.currency_id');
		$this->entries =
$app->getUserState('com_hikashop.entries_fields');

		$jsession = JFactory::getSession();
		$this->session = $jsession->getId();

		$this->cart =
$app->getUserState('com_hikashop.cart_id');
		$this->wishlist =
$app->getUserState('com_hikashop.wishlist_id');
		$this->checkout_fields = $app->getUserState(
'com_hikashop.checkout_fields');
		$this->checkout_fields_ok = $app->getUserState(
'com_hikashop.checkout_fields_ok', 0);

	}

	public function onAfterProductCreate(&$product) {
		$app = JFactory::getApplication();
		JPluginHelper::importPlugin('finder');

		$isNew = true;
		$context = 'com_hikashop.product';
		$app->triggerEvent('onFinderAfterSave', array($context,
$product, $isNew));
	}
	public function onBeforeProductCreate(&$product, &$do) {
		$app = JFactory::getApplication();
		JPluginHelper::importPlugin('finder');

		$isNew = true;
		$context = 'com_hikashop.product';
		$app->triggerEvent('onFinderBeforeSave', array($context,
$product, $isNew));
	}
	public function onAfterProductUpdate(&$product) {
		$app = JFactory::getApplication();
		JPluginHelper::importPlugin('finder');

		$isNew = false;
		$context = 'com_hikashop.product';
		$app->triggerEvent('onFinderAfterSave', array($context,
$product, $isNew));
	}
	public function onBeforeProductUpdate(&$product) {
		$app = JFactory::getApplication();
		JPluginHelper::importPlugin('finder');

		$isNew = false;
		$context = 'com_hikashop.product';
		$app->triggerEvent('onFinderBeforeSave', array($context,
$product, $isNew));
	}
	public function onAfterProductDelete($elements) {
		$app = JFactory::getApplication();
		JPluginHelper::importPlugin('finder');
		$context = 'com_hikashop.product';

		foreach($elements as $element) {
			$app->triggerEvent('onFinderAfterDelete', array($context,
$element));
		}
	}


	public function onContentPrepareForm($form, $data) {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('site'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
!$app->isAdmin())
			return true;

		if(@$_GET['option'] == 'com_plugins' &&
@$_GET['view'] == 'plugin' &&
(@$_GET['layout'] == 'edit' || @$_GET['task']
== 'edit')) {
			$lang = JFactory::getLanguage();
			$lang->load('com_hikashop', JPATH_SITE, null, true);
		}
	}

	public function onBeforeCompileHead(){

		if(version_compare(JVERSION,'3.7','<'))
			return;

		$doc = JFactory::getDocument();
		$head = $doc->getHeadData();

		if(empty($head['scripts']))
			return;

		$js_files = array('jquery.js', 'jquery.min.js',
'jquery-noconflict.js', 'jquery.ui.core.js',
'jquery.ui.core.min.js');
		$newScripts = array();
		foreach($head['scripts'] as $file => $data) {
			foreach($js_files as $js_file) {
				if(strpos($file,'media/jui/js/'.$js_file)=== false)
					continue;
				$newScripts[$file] = $data;
			}
		}
		foreach($head['scripts'] as $file => $data){
			if(!isset($newScripts[$file]))
				$newScripts[$file] = $data;
		}
		$head['scripts'] = $newScripts;

		$doc->setHeadData($head);
	}

	public function onContentPrepare($context, &$article, &$params,
$limitstart = 0) {
		if($context == 'com_content.article')
			$this->onPrepareContent($article, $params, $limitstart);
	}

	public function onPrepareContent(&$article, &$params, $limitstart)
{
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>='))
			$tmpl = $app->input->getCmd('tmpl', '');
		else
			$tmpl = JRequest::getCmd('tmpl', '');
		if($tmpl != 'component')
			return true;

		$db = JFactory::getDBO();
		$query = 'SELECT config_value FROM #__hikashop_config WHERE
config_namekey = ' . $db->Quote('checkout_terms');
		$db->setQuery($query);
		$terms_article = (int)$db->loadResult();
		if($article->id != $terms_article)
			return true;

		$params->set('show_page_heading',false);
	}

	public function onAfterCartSave(&$cart) {
		if(!HIKASHOP_J30) return;

		$plugin = JPluginHelper::getPlugin('system',
'cache');
		$params = new JRegistry(@$plugin->params);

		$options = array(
			'defaultgroup'	=> 'page',
			'browsercache'	=> $params->get('browsercache',
false),
			'caching'		=> false,
		);

		$cache = JCache::getInstance('page', $options);
		$cache->clean();
	}

	public function onUserBeforeSave($user, $isnew, $new) {
		return $this->onBeforeStoreUser($user, $isnew);
	}
	public function onUserAfterSave($user, $isnew, $success, $msg) {
		return $this->onAfterStoreUser($user, $isnew, $success, $msg);
	}
	public function onUserAfterDelete($user, $success, $msg) {
		return $this->onAfterDeleteUser($user, $success, $msg);
	}
	public function onUserLogin($user, $options) {
		return $this->onLoginUser($user, $options);
	}

	public function onBeforeStoreUser($user, $isnew) {
		$this->oldUser = $user;
		return true;
	}

	public function onAfterUserProfileSaved(&$user, $env) {
		if(empty($user->id) || empty($user->email))
			return;
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;
		$userClass = hikashop_get('class.user');
		$hikaUser = new stdClass();
		$hikaUser->user_email = $user->email;
		$hikaUser->user_cms_id = $user->id;
		$userClass->save($hikaUser, true);
	}

	public function onAfterStoreUser($user, $isnew, $success, $msg) {
		if($success === false || !is_array($user))
			return false;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$userClass = hikashop_get('class.user');
		$hikaUser = new stdClass();
		$hikaUser->user_email = trim(strip_tags($user['email']));
		$hikaUser->user_cms_id = (int)$user['id'];
		if(!empty($hikaUser->user_cms_id)) {
			$hikaUser->user_id = $userClass->getID($hikaUser->user_cms_id,
'cms');
		}
		if(empty($hikaUser->user_id) &&
!empty($hikaUser->user_email)) {
			$hikaUser->user_id = $userClass->getID($hikaUser->user_email,
'email');
		}

		$formData = hikaInput::get()->get('data', array(),
'array');

		$in_checkout = !empty($_REQUEST['option']) &&
$_REQUEST['option'] == 'com_hikashop' &&
!empty($_REQUEST['ctrl']) &&
$_REQUEST['option'] == 'checkout';

		if(!empty($formData) && !empty($formData['user'])
&& !$in_checkout) {
			$display =
$this->params->get('fields_on_user_profile');
			if(is_null($display))
				$display = 1;
			if(empty($display) || $display=='0')
				return;
			$oldUser = null;
			$fieldsClass = hikashop_get('class.field');
			$element = $fieldsClass->getFilteredInput('user',
$oldUser);
			if(!empty($element)) {
				foreach($element as $key => $value) {
					$hikaUser->$key = $value;
				}
			}
		}

		$userClass->save($hikaUser, true);

		$session = JFactory::getSession();
		$session_id = $session->getId();
		if($isnew && strlen(trim($session_id)) > 0 &&
(int)$user['id'] > 0)
		{
			$db = JFactory::getDBO();

			$query = 'SELECT `user_id`';
			$query .= ' FROM  `#__hikashop_user` ';
			$query .= ' WHERE
'.$db->quoteName('user_cms_id').' =
'.(int)$user['id'].';';
			$db->setQuery($query);
			$user_hikashop_id = (int)$db->loadResult();

			if(!empty($user_hikashop_id)) {

				$query = 'UPDATE
'.$db->quoteName('#__hikashop_cart');
				$query .= ' SET
'.$db->quoteName('user_id').' = ' .
(int)$user_hikashop_id . '';
				$query .= ' WHERE
'.$db->quoteName('user_id').' = 0 ';
				$query .= ' AND
'.$db->quoteName('session_id').' =
'.$db->quote($session_id).';';
				$db->setQuery($query);
				$db->Query();
			}
		}
		return true;
	}

	public function onAfterDeleteUser($user, $success, $msg) {
		if($success === false || !is_array($user))
			return false;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$userClass = hikashop_get('class.user');
		$user_id =
$userClass->getID($user['email'],'email');
		if(!empty($user_id)) {
			$userClass->delete($user_id,true);
		}
		return true;
	}

	public function restoreSession(&$user_id, $options) {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		$currency = $app->getUserState('com_hikashop.currency_id');
		if(empty($currency) && !empty($this->currency))
			$app->setUserState('com_hikashop.currency_id',
$this->currency);

		$entries =
$app->getUserState('com_hikashop.entries_fields');
		if(empty($entries) && !empty($this->entries))
			$app->setUserState('com_hikashop.entries_fields',
$this->entries);

		$checkout_fields_ok =
$app->getUserState('com_hikashop.checkout_fields_ok');
		if(empty($checkout_fields_ok) &&
!empty($this->checkout_fields_ok))
			$app->setUserState('com_hikashop.checkout_fields_ok',
$this->checkout_fields_ok);

		$checkout_fields =
$app->getUserState('com_hikashop.checkout_fields');
		if(empty($checkout_fields) && !empty($this->checkout_fields))
			$app->setUserState('com_hikashop.checkout_fields',
$this->checkout_fields);
		if(!empty($this->checkout_fields)) {
			foreach($this->checkout_fields as $k => $v) {
				if(isset($_REQUEST['data']['order'][$k]))
					continue;
				$_POST['data']['order'][$k] =
$_REQUEST['data']['order'][$k] = $v;
			}
		}
	}

	public function onLoginUser($user, $options) {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		$user_id = 0;
		if(empty($user['id'])) {
			if(!empty($user['username'])) {
				jimport('joomla.user.helper');
				$instance = new JUser();
				if($id = intval(JUserHelper::getUserId($user['username']))) 
{
					$instance->load($id);
				}
				if($instance->get('block') == 0) {
					$user_id = $instance->id;
				}
			}
		} else {
			$user_id = $user['id'];
		}

		$this->restoreSession($user_id, $options);

		if(empty($user_id))
			return true;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$userClass = hikashop_get('class.user');
		$hika_user_id = $userClass->getID($user_id,'cms');
		if(empty($hika_user_id))
			return true;

		$app->setUserState(HIKASHOP_COMPONENT.'.user_id',
$hika_user_id );

		if($options !== null) {
			$this->moveCarts($hika_user_id);
		} else {
			$db = JFactory::getDBO();
			$query = 'UPDATE #__hikashop_cart SET session_id = \'\'
WHERE user_id = '.(int)$hika_user_id.' AND cart_type =
\'cart\';';
			$db->setQuery($query);
			$db->execute();
		}

		$addressClass = hikashop_get('class.address');
		$addresses = $addressClass->getByUser($hika_user_id);
		if(empty($addresses) || !count($addresses))
			return true;

		$address = reset($addresses);
		$field = 'address_country';
		if(!empty($address->address_state)) {
			$field = 'address_state';
		}
		$app->setUserState(HIKASHOP_COMPONENT.'.shipping_address',
$address->address_id );
		$app->setUserState(HIKASHOP_COMPONENT.'.billing_address',
$address->address_id );

		$zoneClass = hikashop_get('class.zone');
		$zone = $zoneClass->get($address->$field);
		if(!empty($zone)){
			$zone_id = $zone->zone_id;
			$app->setUserState(HIKASHOP_COMPONENT.'.zone_id',
$zone->zone_id );
		}
	}

	protected function moveCarts($hika_user_id) {
		if(empty($hika_user_id))
			return true;

		$db = JFactory::getDBO();

		$query = 'SELECT COUNT(*) AS `carts` FROM #__hikashop_cart WHERE
session_id = '.$db->Quote($this->session).' AND cart_type =
\'cart\';';
		$db->setQuery($query);
		$carts = (int)$db->loadResult();
		if($carts == 0)
			return;

		$query = 'UPDATE #__hikashop_cart SET cart_current = 0 WHERE user_id
= '.(int)$hika_user_id.' AND cart_type =
\'cart\';';
		$db->setQuery($query);
		$db->execute();

		$config = hikashop_config();
		if(!$config->get('enable_multicart', 1)) {
			$query = 'SELECT cart_id FROM #__hikashop_cart WHERE user_id =
'.(int)$hika_user_id.'  AND session_id !=
'.$db->Quote($this->session).' AND cart_type =
\'cart\';';
			$db->setQuery($query);
			$cart_ids = $db->loadColumn();
			if(count($cart_ids)) {
				$cartClass = hikashop_get('class.cart');
				$cartClass->delete($cart_ids, $hika_user_id);
			}
		}

		$query = 'UPDATE #__hikashop_cart SET user_id =
'.(int)$hika_user_id.
			' WHERE session_id = '.$db->Quote($this->session).'
AND cart_type = \'cart\';';
		$db->setQuery($query);
		$db->execute();

		if(!class_exists('hikashopCartClass'))
			return;
		$cartClass = hikashop_get('class.cart');
		$cartClass->get('reset_cache');

		if(!class_exists('hikashopCheckoutHelper'))
			return;
		$checkoutHelper = hikashopCheckoutHelper::get();
		$checkoutHelper->getCart(true);
	}

	public function onUserLogout($user) {
		return $this->onLogoutUser($user);
	}

	public function onLogoutUser($user) {
		$options = null;
		return $this->onLoginUser($user, $options);
	}

	public function onAfterRoute() {
		$app = JFactory::getApplication();



		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getCmd('option', '');
			$view = $app->input->getCmd('view', '');
			$task = $app->input->getCmd('task', '');
			$layout = $app->input->getCmd('layout', '');
		} else {
			$option = JRequest::getCmd('option', '');
			$view = JRequest::getCmd('view', '');
			$task = JRequest::getCmd('task', '');
			$layout = JRequest::getCmd('layout', '');
		}

		if($option == 'com_ajax') {
			if(version_compare(JVERSION,'3.0','>='))
				$group = $app->input->getCmd('group', '');
			else
				$group = JRequest::getCmd('group', '');
			if(in_array($group, array('hikashop',
'hikashopshipping', 'hikashoppayment'))) {
				if(!defined('DS'))
					define('DS', DIRECTORY_SEPARATOR);
				if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
					die('You cannot call plugins of the groups hikashop,
hikashoppayment or hikashopshipping without HikaShop on the
website.');
			}
		}

		if($option == 'com_finder') {
			$lang = JFactory::getLanguage();
			$lang->load('com_hikashop', JPATH_SITE, null, true);
		}

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if(($option != 'com_user' || $view != 'user' || $task
!= 'edit') && ($option != 'com_users' || $view
!= 'profile' || $layout != 'edit'))
			return;

		$display = $this->params->get('fields_on_user_profile');
		if(is_null($display))
			$display = 1;

		if(empty($display) || $display=='0')
			return;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$user = hikashop_loadUser(true);
		$fieldsClass = hikashop_get('class.field');
		$extraFields = array(
			'user' =>
$fieldsClass->getFields('frontcomp',$user,'user')
		);
		if(empty($extraFields['user']))
			return;

		$null = array();
		$fieldsClass->addJS($null,$null,$null);
		$fieldsClass->jsToggle($extraFields['user'],$user,0);
		$requiredFields = array();
		$validMessages = array();
		$values = array('user' => $user);
		$fieldsClass->checkFieldsForJS($extraFields, $requiredFields,
$validMessages, $values);
		$fieldsClass->addJS($requiredFields, $validMessages,
array('user'));

		foreach($extraFields['user'] as $fieldName =>
$oneExtraField) {
			$fieldsClass->display($oneExtraField, @$user->$fieldName,
'data[user]['.$fieldName.']', false,
'',false, $extraFields['user'], $user);
		}
	}

	public function onAfterRender() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getCmd('option', '');
			$view = $app->input->getCmd('view', '');
			$task = $app->input->getCmd('task', '');
			$layout = $app->input->getCmd('layout', '');
		} else {
			$option = JRequest::getCmd('option', '');
			$view = JRequest::getCmd('view', '');
			$task = JRequest::getCmd('task', '');
			$layout = JRequest::getCmd('layout', '');
		}

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if(($option != 'com_user' || $view != 'user' || $task
!= 'edit') && ($option != 'com_users' || $view
!= 'profile' || $layout != 'edit'))
			return;

		$display = $this->params->get('fields_on_user_profile');
		if(is_null($display))
			$display = 1;

		if(empty($display) || $display=='0')
			return;

		$body = '';
		if(class_exists('JResponse'))
			$body = JResponse::getBody();
		$alternate_body = false;
		if(empty($body)){
			$app = JFactory::getApplication();
			$body = $app->getBody();
			$alternate_body = true;
		}
		if(strpos($body, 'class="form-validate') === false)
			return;

		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$user = hikashop_loadUser(true);
		$fieldsClass = hikashop_get('class.field');
		$extraFields = array(
			'user' =>
$fieldsClass->getFields('frontcomp',$user,'user')
		);
		if(empty($extraFields['user']))
			return;

		$null = array();
		$fieldsClass->addJS($null,$null,$null);
		$fieldsClass->jsToggle($extraFields['user'],$user,0);
		$requiredFields = array();
		$validMessages = array();
		$values = array('user' => $user);
		$fieldsClass->checkFieldsForJS($extraFields, $requiredFields,
$validMessages, $values);
		$fieldsClass->addJS($requiredFields, $validMessages,
array('user'));

		$data = '';
		if(HIKASHOP_J30)
			$data .= '<fieldset
class="hikashop_user_edit"><legend>'.JText::_('HIKASHOP_USER_DETAILS').'</legend><dl>';
		else
			$data .= '<fieldset
class="hikashop_user_edit"><legend>'.JText::_('HIKASHOP_USER_DETAILS').'</legend>';

		foreach($extraFields['user'] as $fieldName =>
$oneExtraField) {
			if(HIKASHOP_J30)
				$data .= '<div class="control-group
hikashop_registration_' . $fieldName. '_line"
id="hikashop_user_' . $fieldName. '"><div
class="control-label"><label>'.$fieldsClass->getFieldName($oneExtraField).'</label></div><div
class="controls">';
			else
				$data .=
'<dt><label>'.$fieldsClass->getFieldName($oneExtraField).'</label></dt><dd
class="hikashop_registration_' . $fieldName. '_line"
id="hikashop_user_' . $fieldName. '">';

			$onWhat='onchange';
			if($oneExtraField->field_type=='radio')
				$onWhat='onclick';
			$data .=
$fieldsClass->display($oneExtraField,@$user->$fieldName,'data[user]['.$fieldName.']',false,'
'.$onWhat.'="window.hikashop.toggleField(this.value,\''.$fieldName.'\',\'user\',0);"',false,$extraFields['user'],$user);

			if(HIKASHOP_J30)
				$data .= '</div></div>';
			else
				$data .= '</dd>';
		}
		if(HIKASHOP_J30)
			$data .= '</dl></fieldset>';
		else
			$data .= '</fieldset>';

		$body =
preg_replace('#(<form[^>]*class="form-validate.*"[^>]*>.*</(fieldset|table)>)#Uis','$1'.$data,
$body,1);
		if($alternate_body)
			$app->setBody($body);
		else
			JResponse::setBody($body);
	}

	 public function onPreprocessMenuItems($name, &$items, $params = null,
$enabled = true) {
		if($name != 'com_menus.administrator.module' )
			return;

	 	$remove = array();
	 	foreach($items as $k => $item) {
	 		switch($item->link) {
				case 'index.php?option=com_hikashop&ctrl=update':
	 				if(!$this->_isAllowed('acl_update_about_view'))
						$remove[] = $k;
					break;
				case 'index.php?option=com_hikashop&ctrl=documentation':
	 				if(!$this->_isAllowed('acl_documentation_view'))
						$remove[] = $k;
					break;
				case 'index.php?option=com_hikashop&ctrl=discount':
	 				if(!$this->_isAllowed('acl_discount_view'))
						$remove[] = $k;
					break;
				case 'index.php?option=com_hikashop&ctrl=config':
	 				if(!$this->_isAllowed('acl_config_view'))
						$remove[] = $k;
					break;
				case
'index.php?option=com_hikashop&ctrl=order&order_type=sale&filter_partner=0':
	 				if(!$this->_isAllowed('acl_order_view'))
						$remove[] = $k;
					break;
				case
'index.php?option=com_hikashop&ctrl=user&filter_partner=0':
	 				if(!$this->_isAllowed('acl_user_view'))
						$remove[] = $k;
					break;
				case
'index.php?option=com_hikashop&ctrl=category&filter_id=product':
	 				if(!$this->_isAllowed('acl_category_view'))
						$remove[] = $k;
					break;
				case 'index.php?option=com_hikashop&ctrl=product':
	 				if(!$this->_isAllowed('acl_product_view'))
						$remove[] = $k;
					break;
				default:
					break;
			}
		}
		if(!count($remove))
			return;

		foreach($remove as $r) {
			unset($items[$r]);
		}
	}

	public function onPrivacyCollectAdminCapabilities() {
		$lang = JFactory::getLanguage();
		$lang->load('com_hikashop', JPATH_SITE, null, true);
		$capabilities = array(
			'HikaShop' => array(
				JText::_('HIKASHOP_PRIVACY_CAPABILITY_IP_ADDRESS'),
				JText::_('HIKASHOP_PRIVACY_CAPABILITY_ADDRESS'),
			),
		);
		return $capabilities;
	}
	private function _config($value, $default = 'all') {
		static $config = null;
		if(!isset($config)) {
			$query = 'SELECT * FROM #__hikashop_config WHERE config_namekey
IN(
				\'acl_update_about_view\',
				\'acl_documentation_view\',
				\'acl_discount_view\',
				\'acl_config_view\',
				\'acl_order_view\',
				\'acl_user_view\',
				\'acl_category_view\',
				\'acl_product_view\',
				\'inherit_parent_group_access\'
			)';
			$database = JFactory::getDBO();
			$database->setQuery($query);
			$config = $database->loadObjectList('config_namekey');
		}
		return (isset($config[$value]) ? $config[$value]->config_value :
$default);
	}

	private function _isAllowed($acl){
		$allowedGroups = $this->_config($acl);

		if($allowedGroups == 'all') return true;
		if($allowedGroups == 'none') return false;
		$id = null;

		if(!is_array($allowedGroups)) $allowedGroups =
explode(',',$allowedGroups);

		jimport('joomla.access.access');
		$my = JFactory::getUser($id);
		$userGroups = JAccess::getGroupsByUser($my->id,
(bool)$this->_config('inherit_parent_group_access', false));

		$inter = array_intersect($userGroups,$allowedGroups);
		if(empty($inter)) return false;
		return true;
	}
}
PK�X�[ʧ���hikashopuser/hikashopuser.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>User - HikaShop</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>HikaShop User plugin to automatically synchronise the
Joomla Users and the HikaShop ones</description>
	<files>
		<filename
plugin="hikashopuser">hikashopuser.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="fields_on_user_profile" type="radio"
default="1" label="HIKA_DISPLAY_CUSTOM_USER_FIELDS"
description="DISPLAY_CUSTOM_USER_FIELDS">
			<option value="0">HIKASHOP_NO</option>
			<option value="1">HIKASHOP_YES</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field name="fields_on_user_profile"
type="radio" default="1"
label="HIKA_DISPLAY_CUSTOM_USER_FIELDS"
description="DISPLAY_CUSTOM_USER_FIELDS" class="btn-group
btn-group-yesno">
					<option value="0">HIKASHOP_NO</option>
					<option value="1">HIKASHOP_YES</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,hikashopuser/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�"_��=languagecode/language/en-GB/en-GB.plg_system_languagecode.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

PLG_SYSTEM_LANGUAGECODE="System - Language Code"
PLG_SYSTEM_LANGUAGECODE_FIELD_DESC="Changes the language code used for
the <em>%s</em> language."
PLG_SYSTEM_LANGUAGECODE_FIELDSET_DESC="Changes the language code for
the generated HTML document. Example usage: You have installed the fr-FR
language pack and want the Search Engines to recognise the page as aimed at
French-speaking Canada. Add the tag 'fr-CA' to the corresponding
field for 'fr-FR' to resolve this."
PLG_SYSTEM_LANGUAGECODE_FIELDSET_LABEL="Language codes"
PLG_SYSTEM_LANGUAGECODE_XML_DESCRIPTION="Provides the ability to
change the language code in the generated HTML document to improve
SEO.<br />The fields will appear when the plugin is enabled and
saved."
PK�X�[��3���Alanguagecode/language/en-GB/en-GB.plg_system_languagecode.sys.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2020 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

PLG_SYSTEM_LANGUAGECODE="System - Language Code"
PLG_SYSTEM_LANGUAGECODE_XML_DESCRIPTION="Provides ability to change
the language code in the generated HTML document to improve SEO"

PK�X�[2���languagecode/languagecode.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.languagecode
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Language Code plugin class.
 *
 * @since  2.5
 */
class PlgSystemLanguagecode extends JPlugin
{
	/**
	 * Plugin that changes the language code used in the <html /> tag.
	 *
	 * @return  void
	 *
	 * @since   2.5
	 */
	public function onAfterRender()
	{
		$app = JFactory::getApplication();

		// Use this plugin only in site application.
		if ($app->isClient('site'))
		{
			// Get the response body.
			$body = $app->getBody();

			// Get the current language code.
			$code = JFactory::getDocument()->getLanguage();

			// Get the new code.
			$new_code  = $this->params->get($code);

			// Replace the old code by the new code in the <html /> tag.
			if ($new_code)
			{
				// Replace the new code in the HTML document.
				$patterns = array(
					chr(1) . '(<html.*\s+xml:lang=")(' . $code .
')(".*>)' . chr(1) . 'i',
					chr(1) . '(<html.*\s+lang=")(' . $code .
')(".*>)' . chr(1) . 'i',
				);
				$replace = array(
					'${1}' . strtolower($new_code) . '${3}',
					'${1}' . strtolower($new_code) . '${3}'
				);
			}
			else
			{
				$patterns = array();
				$replace  = array();
			}

			// Replace codes in <link hreflang="" /> attributes.
			preg_match_all(chr(1) .
'(<link.*\s+hreflang=")([0-9a-z\-]*)(".*\s+rel="alternate".*/>)'
. chr(1) . 'i', $body, $matches);

			foreach ($matches[2] as $match)
			{
				$new_code = $this->params->get(strtolower($match));

				if ($new_code)
				{
					$patterns[] = chr(1) . '(<link.*\s+hreflang=")(' .
$match . ')(".*\s+rel="alternate".*/>)' .
chr(1) . 'i';
					$replace[] = '${1}' . $new_code . '${3}';
				}
			}

			preg_match_all(chr(1) .
'(<link.*\s+rel="alternate".*\s+hreflang=")([0-9A-Za-z\-]*)(".*/>)'
. chr(1) . 'i', $body, $matches);

			foreach ($matches[2] as $match)
			{
				$new_code = $this->params->get(strtolower($match));

				if ($new_code)
				{
					$patterns[] = chr(1) .
'(<link.*\s+rel="alternate".*\s+hreflang=")(' .
$match . ')(".*/>)' . chr(1) . 'i';
					$replace[] = '${1}' . $new_code . '${3}';
				}
			}

			// Replace codes in itemprop content
			preg_match_all(chr(1) .
'(<meta.*\s+itemprop="inLanguage".*\s+content=")([0-9A-Za-z\-]*)(".*/>)'
. chr(1) . 'i', $body, $matches);

			foreach ($matches[2] as $match)
			{
				$new_code = $this->params->get(strtolower($match));

				if ($new_code)
				{
					$patterns[] = chr(1) .
'(<meta.*\s+itemprop="inLanguage".*\s+content=")('
. $match . ')(".*/>)' . chr(1) . 'i';
					$replace[] = '${1}' . $new_code . '${3}';
				}
			}

			$app->setBody(preg_replace($patterns, $replace, $body));
		}
	}

	/**
	 * Prepare form.
	 *
	 * @param   JForm  $form  The form to be altered.
	 * @param   mixed  $data  The associated data for the form.
	 *
	 * @return  boolean
	 *
	 * @since	2.5
	 */
	public function onContentPrepareForm(JForm $form, $data)
	{
		// Check we are manipulating the languagecode plugin.
		if ($form->getName() !== 'com_plugins.plugin' ||
!$form->getField('languagecodeplugin', 'params'))
		{
			return true;
		}

		// Get site languages.
		if ($languages = JLanguageHelper::getKnownLanguages(JPATH_SITE))
		{
			// Inject fields into the form.
			foreach ($languages as $tag => $language)
			{
				$form->load('
					<form>
						<fields name="params">
							<fieldset
								name="languagecode"
								label="PLG_SYSTEM_LANGUAGECODE_FIELDSET_LABEL"
								description="PLG_SYSTEM_LANGUAGECODE_FIELDSET_DESC"
							>
								<field
									name="' . strtolower($tag) . '"
									type="text"
									label="' . $tag . '"
									description="' .
htmlspecialchars(JText::sprintf('PLG_SYSTEM_LANGUAGECODE_FIELD_DESC',
$language['name']), ENT_COMPAT, 'UTF-8') . '"
									translate_description="false"
									translate_label="false"
									size="7"
									filter="cmd"
								/>
							</fieldset>
						</fields>
					</form>
				');
			}
		}

		return true;
	}
}
PK�X�[��}languagecode/languagecode.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_languagecode</name>
	<author>Joomla! Project</author>
	<creationDate>November 2011</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SYSTEM_LANGUAGECODE_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="languagecode">languagecode.php</filename>
		<folder>language</folder>
	</files>
	<languages>
		<language
tag="en-GB">language/en-GB/en-GB.plg_system_languagecode.ini</language>
		<language
tag="en-GB">language/en-GB/en-GB.plg_system_languagecode.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<field
				name="languagecodeplugin"
				type="hidden"
				default="true"
			/>
		</fields>
	</config>
</extension>
PK�X�[g
�ɚb�b!languagefilter/languagefilter.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.languagefilter
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;

JLoader::register('MenusHelper', JPATH_ADMINISTRATOR .
'/components/com_menus/helpers/menus.php');

/**
 * Joomla! Language Filter Plugin.
 *
 * @since  1.6
 */
class PlgSystemLanguageFilter extends JPlugin
{
	/**
	 * The routing mode.
	 *
	 * @var    boolean
	 * @since  2.5
	 */
	protected $mode_sef;

	/**
	 * Available languages by sef.
	 *
	 * @var    array
	 * @since  1.6
	 */
	protected $sefs;

	/**
	 * Available languages by language codes.
	 *
	 * @var    array
	 * @since  2.5
	 */
	protected $lang_codes;

	/**
	 * The current language code.
	 *
	 * @var    string
	 * @since  3.4.2
	 */
	protected $current_lang;

	/**
	 * The default language code.
	 *
	 * @var    string
	 * @since  2.5
	 */
	protected $default_lang;

	/**
	 * The logged user language code.
	 *
	 * @var    string
	 * @since  3.3.1
	 */
	private $user_lang_code;

	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.3
	 */
	protected $app;

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   1.6
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		$this->app = JFactory::getApplication();

		// Setup language data.
		$this->mode_sef     = $this->app->get('sef', 0);
		$this->sefs         = JLanguageHelper::getLanguages('sef');
		$this->lang_codes   =
JLanguageHelper::getLanguages('lang_code');
		$this->default_lang =
JComponentHelper::getParams('com_languages')->get('site',
'en-GB');

		// If language filter plugin is executed in a site page.
		if ($this->app->isClient('site'))
		{
			$levels = JFactory::getUser()->getAuthorisedViewLevels();

			foreach ($this->sefs as $sef => $language)
			{
				// @todo: In Joomla 2.5.4 and earlier access wasn't set. Non
modified Content Languages got 0 as access value
				// we also check if frontend language exists and is enabled
				if (($language->access && !in_array($language->access,
$levels))
					|| (!array_key_exists($language->lang_code,
JLanguageHelper::getInstalledLanguages(0))))
				{
					unset($this->lang_codes[$language->lang_code],
$this->sefs[$language->sef]);
				}
			}
		}
		// If language filter plugin is executed in an admin page (ex: JRoute
site).
		else
		{
			// Set current language to default site language, fallback to en-GB if
there is no content language for the default site language.
			$this->current_lang =
isset($this->lang_codes[$this->default_lang]) ?
$this->default_lang : 'en-GB';

			foreach ($this->sefs as $sef => $language)
			{
				if (!array_key_exists($language->lang_code,
JLanguageHelper::getInstalledLanguages(0)))
				{
					unset($this->lang_codes[$language->lang_code]);
					unset($this->sefs[$language->sef]);
				}
			}
		}
	}

	/**
	 * After initialise.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function onAfterInitialise()
	{
		$this->app->item_associations =
$this->params->get('item_associations', 0);

		// We need to make sure we are always using the site router, even if the
language plugin is executed in admin app.
		$router =
JApplicationCms::getInstance('site')->getRouter('site');

		// Attach build rules for language SEF.
		$router->attachBuildRule(array($this,
'preprocessBuildRule'), JRouter::PROCESS_BEFORE);
		$router->attachBuildRule(array($this, 'buildRule'),
JRouter::PROCESS_DURING);

		if ($this->mode_sef)
		{
			$router->attachBuildRule(array($this,
'postprocessSEFBuildRule'), JRouter::PROCESS_AFTER);
		}
		else
		{
			$router->attachBuildRule(array($this,
'postprocessNonSEFBuildRule'), JRouter::PROCESS_AFTER);
		}

		// Attach parse rules for language SEF.
		$router->attachParseRule(array($this, 'parseRule'),
JRouter::PROCESS_DURING);
	}

	/**
	 * After route.
	 *
	 * @return  void
	 *
	 * @since   3.4
	 */
	public function onAfterRoute()
	{
		// Add custom site name.
		if ($this->app->isClient('site') &&
isset($this->lang_codes[$this->current_lang]) &&
$this->lang_codes[$this->current_lang]->sitename)
		{
			$this->app->set('sitename',
$this->lang_codes[$this->current_lang]->sitename);
		}
	}

	/**
	 * Add build preprocess rule to router.
	 *
	 * @param   JRouter  &$router  JRouter object.
	 * @param   JUri     &$uri     JUri object.
	 *
	 * @return  void
	 *
	 * @since   3.4
	 */
	public function preprocessBuildRule(&$router, &$uri)
	{
		$lang = $uri->getVar('lang', $this->current_lang);
		$uri->setVar('lang', $lang);

		if (isset($this->sefs[$lang]))
		{
			$lang = $this->sefs[$lang]->lang_code;
			$uri->setVar('lang', $lang);
		}
	}

	/**
	 * Add build rule to router.
	 *
	 * @param   JRouter  &$router  JRouter object.
	 * @param   JUri     &$uri     JUri object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function buildRule(&$router, &$uri)
	{
		$lang = $uri->getVar('lang');

		if (isset($this->lang_codes[$lang]))
		{
			$sef = $this->lang_codes[$lang]->sef;
		}
		else
		{
			$sef = $this->lang_codes[$this->current_lang]->sef;
		}

		if ($this->mode_sef
			&& (!$this->params->get('remove_default_prefix',
0)
			|| $lang !== $this->default_lang
			|| $lang !== $this->current_lang))
		{
			$uri->setPath($uri->getPath() . '/' . $sef .
'/');
		}
	}

	/**
	 * postprocess build rule for SEF URLs
	 *
	 * @param   JRouter  &$router  JRouter object.
	 * @param   JUri     &$uri     JUri object.
	 *
	 * @return  void
	 *
	 * @since   3.4
	 */
	public function postprocessSEFBuildRule(&$router, &$uri)
	{
		$uri->delVar('lang');
	}

	/**
	 * postprocess build rule for non-SEF URLs
	 *
	 * @param   JRouter  &$router  JRouter object.
	 * @param   JUri     &$uri     JUri object.
	 *
	 * @return  void
	 *
	 * @since   3.4
	 */
	public function postprocessNonSEFBuildRule(&$router, &$uri)
	{
		$lang = $uri->getVar('lang');

		if (isset($this->lang_codes[$lang]))
		{
			$uri->setVar('lang', $this->lang_codes[$lang]->sef);
		}
	}

	/**
	 * Add parse rule to router.
	 *
	 * @param   JRouter  &$router  JRouter object.
	 * @param   JUri     &$uri     JUri object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function parseRule(&$router, &$uri)
	{
		// Did we find the current and existing language yet?
		$found = false;

		// Are we in SEF mode or not?
		if ($this->mode_sef)
		{
			$path = $uri->getPath();
			$parts = explode('/', $path);

			$sef = StringHelper::strtolower($parts[0]);

			// Do we have a URL Language Code ?
			if (!isset($this->sefs[$sef]))
			{
				// Check if remove default URL language code is set
				if ($this->params->get('remove_default_prefix', 0))
				{
					if ($parts[0])
					{
						// We load a default site language page
						$lang_code = $this->default_lang;
					}
					else
					{
						// We check for an existing language cookie
						$lang_code = $this->getLanguageCookie();
					}
				}
				else
				{
					$lang_code = $this->getLanguageCookie();
				}

				// No language code. Try using browser settings or default site
language
				if (!$lang_code &&
$this->params->get('detect_browser', 0) == 1)
				{
					$lang_code = JLanguageHelper::detectLanguage();
				}

				if (!$lang_code)
				{
					$lang_code = $this->default_lang;
				}

				if ($lang_code === $this->default_lang &&
$this->params->get('remove_default_prefix', 0))
				{
					$found = true;
				}
			}
			else
			{
				// We found our language
				$found = true;
				$lang_code = $this->sefs[$sef]->lang_code;

				// If we found our language, but its the default language and we
don't want a prefix for that, we are on a wrong URL.
				// Or we try to change the language back to the default language. We
need a redirect to the proper URL for the default language.
				if ($lang_code === $this->default_lang &&
$this->params->get('remove_default_prefix', 0))
				{
					// Create a cookie.
					$this->setLanguageCookie($lang_code);

					$found = false;
					array_shift($parts);
					$path = implode('/', $parts);
				}

				// We have found our language and the first part of our URL is the
language prefix
				if ($found)
				{
					array_shift($parts);

					// Empty parts array when "index.php" is the only part left.
					if (count($parts) === 1 && $parts[0] ===
'index.php')
					{
						$parts = array();
					}

					$uri->setPath(implode('/', $parts));
				}
			}
		}
		// We are not in SEF mode
		else
		{
			$lang_code = $this->getLanguageCookie();

			if (!$lang_code &&
$this->params->get('detect_browser', 1))
			{
				$lang_code = JLanguageHelper::detectLanguage();
			}

			if (!isset($this->lang_codes[$lang_code]))
			{
				$lang_code = $this->default_lang;
			}
		}

		$lang = $uri->getVar('lang', $lang_code);

		if (isset($this->sefs[$lang]))
		{
			// We found our language
			$found = true;
			$lang_code = $this->sefs[$lang]->lang_code;
		}

		// We are called via POST or the nolangfilter url parameter was set. We
don't care about the language
		// and simply set the default language as our current language.
		if ($this->app->input->getMethod() === 'POST'
			|| $this->app->input->get('nolangfilter', 0) == 1
			|| count($this->app->input->post) > 0
			|| count($this->app->input->files) > 0)
		{
			$found = true;

			if (!isset($lang_code))
			{
				$lang_code = $this->getLanguageCookie();
			}

			if (!$lang_code &&
$this->params->get('detect_browser', 1))
			{
				$lang_code = JLanguageHelper::detectLanguage();
			}

			if (!isset($this->lang_codes[$lang_code]))
			{
				$lang_code = $this->default_lang;
			}
		}

		// We have not found the language and thus need to redirect
		if (!$found)
		{
			// Lets find the default language for this user
			if (!isset($lang_code) || !isset($this->lang_codes[$lang_code]))
			{
				$lang_code = false;

				if ($this->params->get('detect_browser', 1))
				{
					$lang_code = JLanguageHelper::detectLanguage();

					if (!isset($this->lang_codes[$lang_code]))
					{
						$lang_code = false;
					}
				}

				if (!$lang_code)
				{
					$lang_code = $this->default_lang;
				}
			}

			if ($this->mode_sef)
			{
				// Use the current language sef or the default one.
				if ($lang_code !== $this->default_lang
					|| !$this->params->get('remove_default_prefix', 0))
				{
					$path = $this->lang_codes[$lang_code]->sef . '/' .
$path;
				}

				$uri->setPath($path);

				if (!$this->app->get('sef_rewrite'))
				{
					$uri->setPath('index.php/' . $uri->getPath());
				}

				$redirectUri = $uri->base() .
$uri->toString(array('path', 'query',
'fragment'));
			}
			else
			{
				$uri->setVar('lang',
$this->lang_codes[$lang_code]->sef);
				$redirectUri = $uri->base() . 'index.php?' .
$uri->getQuery();
			}

			// Set redirect HTTP code to "302 Found".
			$redirectHttpCode = 302;

			// If selected language is the default language redirect code is
"301 Moved Permanently".
			if ($lang_code === $this->default_lang)
			{
				$redirectHttpCode = 301;

				// We cannot cache this redirect in browser. 301 is cachable by default
so we need to force to not cache it in browsers.
				$this->app->setHeader('Expires', 'Wed, 17 Aug 2005
00:00:00 GMT', true);
				$this->app->setHeader('Last-Modified', gmdate('D,
d M Y H:i:s') . ' GMT', true);
				$this->app->setHeader('Cache-Control', 'no-store,
no-cache, must-revalidate, post-check=0, pre-check=0', false);
				$this->app->setHeader('Pragma', 'no-cache');
				$this->app->sendHeaders();
			}

			// Redirect to language.
			$this->app->redirect($redirectUri, $redirectHttpCode);
		}

		// We have found our language and now need to set the cookie and the
language value in our system
		$array = array('lang' => $lang_code);
		$this->current_lang = $lang_code;

		// Set the request var.
		$this->app->input->set('language', $lang_code);
		$this->app->set('language', $lang_code);
		$language = JFactory::getLanguage();

		if ($language->getTag() !== $lang_code)
		{
			$language_new = JLanguage::getInstance($lang_code, (bool)
$this->app->get('debug_lang'));

			foreach ($language->getPaths() as $extension => $files)
			{
				if (strpos($extension, 'plg_system') !== false)
				{
					$extension_name = substr($extension, 11);

					$language_new->load($extension, JPATH_ADMINISTRATOR)
					|| $language_new->load($extension, JPATH_PLUGINS .
'/system/' . $extension_name);

					continue;
				}

				$language_new->load($extension);
			}

			JFactory::$language = $language_new;
			$this->app->loadLanguage($language_new);
		}

		// Create a cookie.
		if ($this->getLanguageCookie() !== $lang_code)
		{
			$this->setLanguageCookie($lang_code);
		}

		return $array;
	}

	/**
	 * Reports the privacy related capabilities for this plugin to site
administrators.
	 *
	 * @return  array
	 *
	 * @since   3.9.0
	 */
	public function onPrivacyCollectAdminCapabilities()
	{
		$this->loadLanguage();

		return array(
			JText::_('PLG_SYSTEM_LANGUAGEFILTER') => array(
				JText::_('PLG_SYSTEM_LANGUAGEFILTER_PRIVACY_CAPABILITY_LANGUAGE_COOKIE'),
			)
		);
	}

	/**
	 * Before store user method.
	 *
	 * Method is called before user data is stored in the database.
	 *
	 * @param   array    $user   Holds the old user data.
	 * @param   boolean  $isnew  True if a new user is stored.
	 * @param   array    $new    Holds the new user data.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function onUserBeforeSave($user, $isnew, $new)
	{
		if (array_key_exists('params', $user) &&
$this->params->get('automatic_change', 1) == 1)
		{
			$registry = new Registry($user['params']);
			$this->user_lang_code = $registry->get('language');

			if (empty($this->user_lang_code))
			{
				$this->user_lang_code = $this->current_lang;
			}
		}
	}

	/**
	 * After store user method.
	 *
	 * Method is called after user data is stored in the database.
	 *
	 * @param   array    $user     Holds the new user data.
	 * @param   boolean  $isnew    True if a new user is stored.
	 * @param   boolean  $success  True if user was succesfully stored in the
database.
	 * @param   string   $msg      Message.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function onUserAfterSave($user, $isnew, $success, $msg)
	{
		if ($success && array_key_exists('params', $user)
&& $this->params->get('automatic_change', 1) == 1)
		{
			$registry = new Registry($user['params']);
			$lang_code = $registry->get('language');

			if (empty($lang_code))
			{
				$lang_code = $this->current_lang;
			}

			if ($lang_code === $this->user_lang_code ||
!isset($this->lang_codes[$lang_code]))
			{
				if ($this->app->isClient('site'))
				{
					$this->app->setUserState('com_users.edit.profile.redirect',
null);
				}
			}
			else
			{
				if ($this->app->isClient('site'))
				{
					$this->app->setUserState('com_users.edit.profile.redirect',
'index.php?Itemid='
						. $this->app->getMenu()->getDefault($lang_code)->id .
'&lang=' . $this->lang_codes[$lang_code]->sef
					);

					// Create a cookie.
					$this->setLanguageCookie($lang_code);
				}
			}
		}
	}

	/**
	 * Method to handle any login logic and report back to the subject.
	 *
	 * @param   array  $user     Holds the user data.
	 * @param   array  $options  Array holding options (remember,
autoregister, group).
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.5
	 */
	public function onUserLogin($user, $options = array())
	{
		$menu = $this->app->getMenu();

		if ($this->app->isClient('site'))
		{
			if ($this->params->get('automatic_change', 1))
			{
				$assoc = JLanguageAssociations::isEnabled();
				$lang_code = $user['language'];

				// If no language is specified for this user, we set it to the site
default language
				if (empty($lang_code))
				{
					$lang_code = $this->default_lang;
				}

				jimport('joomla.filesystem.folder');

				// The language has been deleted/disabled or the related content
language does not exist/has been unpublished
				// or the related home page does not exist/has been unpublished
				if (!array_key_exists($lang_code, $this->lang_codes)
					|| !array_key_exists($lang_code,
JLanguageMultilang::getSiteHomePages())
					|| !JFolder::exists(JPATH_SITE . '/language/' . $lang_code))
				{
					$lang_code = $this->current_lang;
				}

				// Try to get association from the current active menu item
				$active = $menu->getActive();

				$foundAssociation = false;

				/**
				 * Looking for associations.
				 * If the login menu item form contains an internal URL redirection,
				 * This will override the automatic change to the user preferred site
language.
				 * In that case we use the redirect as defined in the menu item.
				 *  Otherwise we redirect, when available, to the user preferred site
language.
				 */
				if ($active &&
!$active->params['login_redirect_url'])
				{
					if ($assoc)
					{
						$associations = MenusHelper::getAssociations($active->id);
					}

					// Retrieves the Itemid from a login form.
					$uri = new
JUri($this->app->getUserState('users.login.form.return'));

					if ($uri->getVar('Itemid'))
					{
						// The login form contains a menu item redirection. Try to get
associations from that menu item.
						// If any association set to the user preferred site language,
redirect to that page.
						if ($assoc)
						{
							$associations =
MenusHelper::getAssociations($uri->getVar('Itemid'));
						}

						if (isset($associations[$lang_code]) &&
$menu->getItem($associations[$lang_code]))
						{
							$associationItemid = $associations[$lang_code];
							$this->app->setUserState('users.login.form.return',
'index.php?Itemid=' . $associationItemid);
							$foundAssociation = true;
						}
					}
					elseif (isset($associations[$lang_code]) &&
$menu->getItem($associations[$lang_code]))
					{
						/**
						 * The login form does not contain a menu item redirection.
						 * The active menu item has associations.
						 * We redirect to the user preferred site language associated page.
						 */
						$associationItemid = $associations[$lang_code];
						$this->app->setUserState('users.login.form.return',
'index.php?Itemid=' . $associationItemid);
						$foundAssociation = true;
					}
					elseif ($active->home)
					{
						// We are on a Home page, we redirect to the user preferred site
language Home page.
						$item = $menu->getDefault($lang_code);

						if ($item && $item->language !== $active->language
&& $item->language !== '*')
						{
							$this->app->setUserState('users.login.form.return',
'index.php?Itemid=' . $item->id);
							$foundAssociation = true;
						}
					}
				}

				if ($foundAssociation && $lang_code !== $this->current_lang)
				{
					// Change language.
					$this->current_lang = $lang_code;

					// Create a cookie.
					$this->setLanguageCookie($lang_code);

					// Change the language code.
					JFactory::getLanguage()->setLanguage($lang_code);
				}
			}
			else
			{
				if
($this->app->getUserState('users.login.form.return'))
				{
					$this->app->setUserState('users.login.form.return',
JRoute::_($this->app->getUserState('users.login.form.return'),
false));
				}
			}
		}
	}

	/**
	 * Method to add alternative meta tags for associated menu items.
	 *
	 * @return  void
	 *
	 * @since   1.7
	 */
	public function onAfterDispatch()
	{
		$doc = JFactory::getDocument();

		if ($this->app->isClient('site') &&
$this->params->get('alternate_meta', 1) &&
$doc->getType() === 'html')
		{
			$languages             = $this->lang_codes;
			$homes                 = JLanguageMultilang::getSiteHomePages();
			$menu                  = $this->app->getMenu();
			$active                = $menu->getActive();
			$levels                =
JFactory::getUser()->getAuthorisedViewLevels();
			$remove_default_prefix =
$this->params->get('remove_default_prefix', 0);
			$server                =
JUri::getInstance()->toString(array('scheme',
'host', 'port'));
			$is_home               = false;
			$currentInternalUrl    = 'index.php?' .
http_build_query($this->app->getRouter()->getVars());

			if ($active)
			{
				$active_link  = JRoute::_($active->link . '&Itemid=' .
$active->id);
				$current_link = JRoute::_($currentInternalUrl);

				// Load menu associations
				if ($active_link === $current_link)
				{
					$associations = MenusHelper::getAssociations($active->id);
				}

				// Check if we are on the home page
				$is_home = ($active->home
					&& ($active_link === $current_link || $active_link ===
$current_link . 'index.php' || $active_link . '/' ===
$current_link));
			}

			// Load component associations.
			$option = $this->app->input->get('option');
			$cName = ucfirst(substr($option, 4)) . 'HelperAssociation';
			JLoader::register($cName, JPath::clean(JPATH_SITE .
'/components/' . $option .
'/helpers/association.php'));

			if (class_exists($cName) && is_callable(array($cName,
'getAssociations')))
			{
				$cassociations = call_user_func(array($cName,
'getAssociations'));
			}

			// For each language...
			foreach ($languages as $i => $language)
			{
				switch (true)
				{
					// Language without frontend UI || Language without specific home menu
|| Language without authorized access level
					case (!array_key_exists($i,
JLanguageHelper::getInstalledLanguages(0))):
					case (!isset($homes[$i])):
					case (isset($language->access) && $language->access
&& !in_array($language->access, $levels)):
						unset($languages[$i]);
						break;

					// Home page
					case ($is_home):
						$language->link = JRoute::_('index.php?lang=' .
$language->sef . '&Itemid=' . $homes[$i]->id);
						break;

					// Current language link
					case ($i === $this->current_lang):
						$language->link = JRoute::_($currentInternalUrl);
						break;

					// Component association
					case (isset($cassociations[$i])):
						$language->link = JRoute::_($cassociations[$i] .
'&lang=' . $language->sef);
						break;

					// Menu items association
					// Heads up! "$item = $menu" here below is an assignment,
*NOT* comparison
					case (isset($associations[$i]) && ($item =
$menu->getItem($associations[$i]))):

						$language->link = JRoute::_('index.php?Itemid=' .
$item->id . '&lang=' . $language->sef);
						break;

					// Too bad...
					default:
						unset($languages[$i]);
				}
			}

			// If there are at least 2 of them, add the rel="alternate"
links to the <head>
			if (count($languages) > 1)
			{
				// Remove the sef from the default language if "Remove URL
Language Code" is on
				if ($remove_default_prefix &&
isset($languages[$this->default_lang]))
				{
					$languages[$this->default_lang]->link
									= preg_replace('|/' .
$languages[$this->default_lang]->sef . '/|', '/',
$languages[$this->default_lang]->link, 1);
				}

				foreach ($languages as $i => $language)
				{
					$doc->addHeadLink($server . $language->link,
'alternate', 'rel', array('hreflang' =>
$i));
				}

				// Add x-default language tag
				if ($this->params->get('xdefault', 1))
				{
					$xdefault_language =
$this->params->get('xdefault_language',
$this->default_lang);
					$xdefault_language = ($xdefault_language === 'default') ?
$this->default_lang : $xdefault_language;

					if (isset($languages[$xdefault_language]))
					{
						// Use a custom tag because addHeadLink is limited to one URI per tag
						$doc->addCustomTag('<link href="' . $server .
$languages[$xdefault_language]->link . '"
rel="alternate" hreflang="x-default" />');
					}
				}
			}
		}
	}

	/**
	 * Set the language cookie
	 *
	 * @param   string  $languageCode  The language code for which we want to
set the cookie
	 *
	 * @return  void
	 *
	 * @since   3.4.2
	 */
	private function setLanguageCookie($languageCode)
	{
		// If is set to use language cookie for a year in plugin params, save the
user language in a new cookie.
		if ((int) $this->params->get('lang_cookie', 0) === 1)
		{
			// Create a cookie with one year lifetime.
			$this->app->input->cookie->set(
				JApplicationHelper::getHash('language'),
				$languageCode,
				time() + 365 * 86400,
				$this->app->get('cookie_path', '/'),
				$this->app->get('cookie_domain', ''),
				$this->app->isHttpsForced(),
				true
			);
		}
		// If not, set the user language in the session (that is already saved in
a cookie).
		else
		{
			JFactory::getSession()->set('plg_system_languagefilter.language',
$languageCode);
		}
	}

	/**
	 * Get the language cookie
	 *
	 * @return  string
	 *
	 * @since   3.4.2
	 */
	private function getLanguageCookie()
	{
		// Is is set to use a year language cookie in plugin params, get the user
language from the cookie.
		if ((int) $this->params->get('lang_cookie', 0) === 1)
		{
			$languageCode =
$this->app->input->cookie->get(JApplicationHelper::getHash('language'));
		}
		// Else get the user language from the session.
		else
		{
			$languageCode =
JFactory::getSession()->get('plg_system_languagefilter.language');
		}

		// Let's be sure we got a valid language code. Fallback to null.
		if (!array_key_exists($languageCode, $this->lang_codes))
		{
			$languageCode = null;
		}

		return $languageCode;
	}
}
PK�X�[ցq��!languagefilter/languagefilter.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_languagefilter</name>
	<author>Joomla! Project</author>
	<creationDate>July 2010</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SYSTEM_LANGUAGEFILTER_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="languagefilter">languagefilter.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_languagefilter.ini</language>
		<language
tag="en-GB">en-GB.plg_system_languagefilter.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="detect_browser"
					type="list"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_DESC"
					default="0"
					filter="integer"
					>
					<option
value="0">PLG_SYSTEM_LANGUAGEFILTER_SITE_LANGUAGE</option>
					<option
value="1">PLG_SYSTEM_LANGUAGEFILTER_BROWSER_SETTINGS</option>
				</field>

				<field
					name="automatic_change"
					type="radio"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="item_associations"
					type="radio"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="alternate_meta"
					type="radio"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="xdefault"
					type="radio"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					showon="alternate_meta:1"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="xdefault_language"
					type="contentlanguage"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_LANGUAGE_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_LANGUAGE_DESC"
					default="default"
					showon="alternate_meta:1[AND]xdefault:1"
					>
					<option
value="default">PLG_SYSTEM_LANGUAGEFILTER_OPTION_DEFAULT_LANGUAGE</option>
				</field>

				<field
					name="remove_default_prefix"
					type="radio"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_DESC"
					default="0"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="lang_cookie"
					type="list"
					label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_LABEL"
					description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_DESC"
					default="0"
					filter="integer"
					>
					<option
value="1">PLG_SYSTEM_LANGUAGEFILTER_OPTION_YEAR</option>
					<option
value="0">PLG_SYSTEM_LANGUAGEFILTER_OPTION_SESSION</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>PK�X�[�!F�log/log.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.log
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Joomla! System Logging Plugin.
 *
 * @since  1.5
 */
class PlgSystemLog extends JPlugin
{
	/**
	 * Called if user fails to be logged in.
	 *
	 * @param   array  $response  Array of response data.
	 *
	 * @return  void
	 *
	 * @since   1.5
	 */
	public function onUserLoginFailure($response)
	{
		$errorlog = array();

		switch ($response['status'])
		{
			case JAuthentication::STATUS_SUCCESS:
				$errorlog['status']  = $response['type'] . '
CANCELED: ';
				$errorlog['comment'] = $response['error_message'];
				break;

			case JAuthentication::STATUS_FAILURE:
				$errorlog['status']  = $response['type'] . '
FAILURE: ';

				if ($this->params->get('log_username', 0))
				{
					$errorlog['comment'] = $response['error_message']
. ' ("' . $response['username'] .
'")';
				}
				else
				{
					$errorlog['comment'] = $response['error_message'];
				}
				break;

			default:
				$errorlog['status']  = $response['type'] . '
UNKNOWN ERROR: ';
				$errorlog['comment'] = $response['error_message'];
				break;
		}

		JLog::addLogger(array(), JLog::INFO);

		try
		{
			JLog::add($errorlog['comment'], JLog::INFO,
$errorlog['status']);
		}
		catch (Exception $e)
		{
			// If the log file is unwriteable during login then we should not go to
the error page
			return;
		}
	}
}
PK�X�[��;��log/log.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_log</name>
	<author>Joomla! Project</author>
	<creationDate>April 2007</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_LOG_XML_DESCRIPTION</description>
	<files>
		<filename plugin="log">log.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_log.ini</language>
		<language
tag="en-GB">en-GB.plg_system_log.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="log_username"
					type="radio"
					label="PLG_SYSTEM_LOG_FIELD_LOG_USERNAME_LABEL"
					description="PLG_SYSTEM_LOG_FIELD_LOG_USERNAME_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�V�!loginasuser/assets/css/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[����&loginasuser/assets/css/loginasuser.cssnu�[���/*
CSS Style for Login as User link. */
table td.login_as_user {
    margin: 0 0 20px 0;
    text-align: left;
}
table td.login_as_user:last-child {
    margin-bottom: 0;
}
table td.login_as_user a {
    display: inline-block;
    padding: 5px;
    margin: 0px !important;
    border: 1px dotted #ccc;
}
/*for demo only */
/* table th.login_as_user {
	position: relative;
}

table th.login_as_user .arrow-down-bg-icon {
	display: block;
	background: transparent
url('https://temp.web357.com/arrow-down.png')
		no-repeat left center;
	position: absolute;
	width: 64px;
	height: 64px;
	top: -60px;
	left: 10px;
} */

.login_as_user_edit {
    display: inline-block;
    margin: 5px 0 20px 0;
    border: 1px solid #ccc;
    padding: 9px 15px;
}
PK�X�[�V�loginasuser/assets/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[$�
���5loginasuser/assets/js/loginasuser-communitybuilder.jsnu�[���var
jQueryWeb357LoginAsUserCommunityBuilder = jQuery.noConflict();
jQueryWeb357LoginAsUserCommunityBuilder(function ($) {
    /**
    Community Builder: User Management
    */
    // Login as user button
    $(
        "body.com_comprofiler.view-showusers
form[action='index.php'] table.table tbody"
    )
        .find('tr')
        .each(function () {
            var email = $(this).find('td').eq(7).text().trim();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(7)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        email +
                        '</span></td>'
                );
        });

    // Column
    $(
        "body.com_comprofiler.view-showusers
form[action='index.php'] table.table thead"
    )
        .find('th')
        .eq(7)
        .after('<th>Login as User</th>');
});
PK�X�[�~�
�
-loginasuser/assets/js/loginasuser-hikashop.jsnu�[���var
jQueryWeb357LoginAsUserHikashop = jQuery.noConflict();
jQueryWeb357LoginAsUserHikashop(function ($) {
    // Users
    $('#hikashop_user_listing')
        .find('tr')
        .each(function () {
            var name = $(this).find('td').eq(3).text();
            var username = $(this).find('td').eq(4).text();
            var email = $(this).find('td').eq(5).text();
            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email
            );

            $(this).find('th').eq(5).after('<th>Login
as User</th>'); // 5 = the fifth column which is the E-mail
table column
            if (name.length > 0 && username.length > 0) {
                $(this)
                    .find('td')
                    .eq(5)
                    .after(
                        '<td><a target="_blank"
class="btn" href="' +
                            build_login_as_user_url +
                            '">Login as <span
class="loginasuser-username"
style="font-weight:bold">' +
                            name +
                            ' (' +
                            username +
                            ')' +
                            '</span></td>'
                    );
            } else {
                $(this).find('td').eq(5).after('<td>No
user exists</td>');
            }
        });

    // Orders
    $('#hikashop_order_listing')
        .find('tbody tr')
        .each(function (i) {
            var username = $('td.hikashop_order_customer_value')
                .find('br')
                .get(i).previousSibling.nodeValue;
            var userExists = /[\(\)]/.test(username);

            var email =
$('td.hikashop_order_customer_value').find('br').get(i)
                .nextSibling.nodeValue;
            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                $.trim(email)
            );

            $(this)
                .find('th.hikashop_order_customer_title')
                .after('<th>Login as User</th>'); //
5 = the fifth column which is the E-mail table column

            if (userExists) {
                $(this)
                    .find('td.hikashop_order_customer_value')
                    .after(
                        '<td><a target="_blank"
class="btn" href="' +
                            build_login_as_user_url +
                            '">Login as <span
class="loginasuser-username"
style="font-weight:bold">' +
                            username +
                            '</span></td>'
                    );
            } else {
                $(this)
                    .find('td.hikashop_order_customer_value')
                    .after('<td>No user
exists.</td>');
            }
        });
});
PK�X�[�-f�GG,loginasuser/assets/js/loginasuser-j2store.jsnu�[���var
jQueryWeb357LoginAsUserJ2Store = jQuery.noConflict();
jQueryWeb357LoginAsUserJ2Store(function ($) {
    /**
    J2Store Orders page
    */
    // Login as user button
    $(
        "body.com_j2store.view-orders
form[action='index.php?option=com_j2store&view=orders']
table.table tbody"
    )
        .find('tr')
        .each(function () {
            var email =
$(this).find('td').eq(5).find('small').text().trim();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(5)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        email +
                        '</span></td>'
                );
        });

    // Column
    $(
        "body.com_j2store.view-orders
form[action='index.php?option=com_j2store&view=orders']
table.table thead"
    )
        .find('th')
        .eq(8)
        .after('<th>Login as User</th>');

    /**
    J2Store Order page
    */
    // Login as user button
    var billingAddress = $(this)
        .find(
            "body.com_j2store.view-order
form[action='index.php'] table.table.addresses tbody tr td"
        )
        .eq(0);

    if (billingAddress.length) {
        const getOnlyEmail = billingAddress
            .text()
            .trim()
            .match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi);
        const email = getOnlyEmail[0].trim();

        var build_login_as_user_url = login_as_user_url.replace(
            '{{email}}',
            email
        );

        billingAddress.append(
            '<div style="margin: 15px 0"><a
target="_blank" class="btn" href="' +
                build_login_as_user_url +
                '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                email +
                '</span></div>'
        );
    }

    /**
    J2Store Customers page
    */
    // Login as user button
    $(
        "body.com_j2store.view-customers
form[action='index.php'] table.table tbody"
    )
        .find('tr')
        .each(function () {
            var email = $(this).find('td').eq(2).text().trim();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(2)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        email +
                        '</span></td>'
                );
        });

    // Column
    $(
        "body.com_j2store.view-customers
form[action='index.php'] table.table thead"
    )
        .find('th')
        .eq(2)
        .after('<th>Login as User</th>');
});
PK�X�[l>�
�
1loginasuser/assets/js/loginasuser-osmembership.jsnu�[���var
jQueryWeb357LoginAsUserMembershipPro = jQuery.noConflict();
jQueryWeb357LoginAsUserMembershipPro(function ($) {
    /**
    Membership pro Orders' page
    */
    // Login as user button
    $(
       
"form[action='index.php?option=com_osmembership&view=subscriptions']
table.adminlist tbody"
    )
        .find('tr')
        .each(function () {
            var last_name_col = $(this).find('td').eq(3).text();
            var last_name_col_clean = last_name_col.trim();
            var username = last_name_col_clean.substring(
                last_name_col_clean.indexOf('(') + 1,
                last_name_col_clean.indexOf(')')
            );

            var build_login_as_user_url =
                login_as_user_with_username_url.replace(
                    '{{osm_username}}',
                    username.trim()
                );

            if (username.length === 0) {
               
$(this).find('td').eq(3).after('<td>---</td>');
            } else {
                $(this)
                    .find('td')
                    .eq(3)
                    .after(
                        '<td><a target="_blank"
class="btn" href="' +
                            build_login_as_user_url +
                            '">Login as <span
class="loginasuser-username"
style="font-weight:bold">' +
                            username +
                            '</span></td>'
                    );
            }
        });

    // Column
    $(
       
"form[action='index.php?option=com_osmembership&view=subscriptions']
table.adminlist thead"
    )
        .find('th')
        .eq(3)
        .after('<th>Login as User</th>');

    /**
    Membership pro Subscribers' page
    */
    // Login as user button
    $(
       
"form[action='index.php?option=com_osmembership&view=subscribers']
table.adminlist tbody"
    )
        .find('tr')
        .each(function () {
            var email = $(this).find('td').eq(3).text();

            var build_login_as_user_url =
login_as_user_with_email_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(3)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-username"
style="font-weight:bold">' +
                        email +
                        '</span></td>'
                );
        });

    // Column
    $(
       
"form[action='index.php?option=com_osmembership&view=subscribers']
table.adminlist thead"
    )
        .find('th')
        .eq(3)
        .after('<th>Login as User</th>');
});
PK�X�[�y����.loginasuser/assets/js/loginasuser-phocacart.jsnu�[���var
jQueryWeb357LoginAsUserPhocaCart = jQuery.noConflict();
jQueryWeb357LoginAsUserPhocaCart(function ($) {
    /**
    Phocacart - Users' page
    */
    // Login as user button
    $(
       
"form[action='/administrator/index.php?option=com_phocacart&view=phocacartusers']
table tbody"
    )
        .find('tr')
        .each(function () {
            var name = $(this).find('td').eq(2).text();
            var phocaEmailCol = $(this).find('td').eq(9).text();

            const getOnlyEmail = phocaEmailCol
                .trim()
               
.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi);
            const email = getOnlyEmail[0].trim();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(9)
                .after(
                    '<td><a target="_blank"
class="btn button btn-primary" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        name +
                        '</span></td>'
                );
        });

    // Column
    $(
       
"form[action='/administrator/index.php?option=com_phocacart&view=phocacartusers']
table thead"
    )
        .find('th')
        .eq(9)
        .after('<th>Login as User</th>');
    /**
    Phocacart - Orders' page
    */
    // Login as user button
    $(
       
"form[action='/administrator/index.php?option=com_phocacart&view=phocacartorders']
table tbody"
    )
        .find('tr')
        .each(function () {
            var last_name_col = $(this).find('td').eq(3).text();
            var last_name_col_clean = last_name_col.trim();
            var username = last_name_col_clean.substring(
                last_name_col_clean.indexOf('(') + 1,
                last_name_col_clean.indexOf(')')
            );

            var build_login_as_user_url =
                login_as_user_with_username_url.replace(
                    '{{phoca_username}}',
                    username.trim()
                );

            console.log(build_login_as_user_url);
            if (username.length === 0) {
               
$(this).find('td').eq(3).after('<td>---</td>');
            } else {
                $(this)
                    .find('td')
                    .eq(3)
                    .after(
                        '<td><a target="_blank"
class="btn button btn-primary" href="' +
                            build_login_as_user_url +
                            '">Login as <span
class="loginasuser-username"
style="font-weight:bold">' +
                            username +
                            '</span></td>'
                    );
            }
        });

    // Column
    $(
       
"form[action='/administrator/index.php?option=com_phocacart&view=phocacartusers']
table thead"
    )
        .find('th')
        .eq(9)
        .after('<th>Login as User</th>');
});
PK�X�[��33/loginasuser/assets/js/loginasuser-virtuemart.jsnu�[���var
jQueryWeb357LoginAsUserVirtueMart = jQuery.noConflict();
jQueryWeb357LoginAsUserVirtueMart(function ($) {
    /**
    VirtueMart's Users' page
    */
    // Login as user button
    $(
        ".admin.com_virtuemart.view-user
form[action='/administrator/index.php?option=com_virtuemart&view=user']
table tbody, .admin.com_virtuemart.view-user .virtuemart-admin-area
form[name='adminForm'] table tbody"
    )
        .find('tr')
        .each(function () {
            var username = $(this).find('td').eq(1).text();
            var name = $(this).find('td').eq(2).text();
            var email = $(this).find('td').eq(3).text();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email.trim()
            );

            $(this)
                .find('td')
                .eq(3)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        name +
                        ' (' +
                        username +
                        ')' +
                        '</span></td>'
                );
        });

    // Column
    $(
        ".admin.com_virtuemart.view-user
form[action='/administrator/index.php?option=com_virtuemart&view=user']
table tbody, .admin.com_virtuemart.view-user .virtuemart-admin-area
form[name='adminForm'] table thead"
    )
        .find('th')
        .eq(3)
        .after('<th>Login as User</th>');

    /**
    VirtueMart's Orders page
    */
    // Login as user button
    $(
        ".admin.com_virtuemart.view-orders
form[action='index.php?option=com_virtuemart&view=orders']
table.adminlist tbody, .admin.com_virtuemart.view-orders
form[action='index.php?option=com_virtuemart&view=orders']
table.uk-table tbody"
    )
        .find('tr')
        .each(function () {
            var name = $(this).find('td').eq(2).html();

            const getOnlyEmail = name
                .trim()
               
.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi);
            const email = getOnlyEmail[0].trim();

            var build_login_as_user_url = login_as_user_url.replace(
                '{{email}}',
                email
            );

            $(this)
                .find('td')
                .eq(2)
                .after(
                    '<td><a target="_blank"
class="btn" href="' +
                        build_login_as_user_url +
                        '">Login as <span
class="loginasuser-email"
style="font-weight:bold">' +
                        email +
                        ' </span></td>'
                );
        });

    // Column
    $(
        ".admin.com_virtuemart.view-orders
form[action='index.php?option=com_virtuemart&view=orders']
table.adminlist thead, .admin.com_virtuemart.view-orders
form[action='index.php?option=com_virtuemart&view=orders']
table.uk-table thead"
    )
        .find('th')
        .eq(2)
        .after('<th>Login as User</th>');
});
PK�X�[]��##-loginasuser/com_users_helper_files/index.htmlnu�[���<!DOCTYPE
html><title></title>



PK�X�[Q�T?>loginasuser/com_users_helper_files/joomla_com_users/common.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

// BEGIN: Web357 (Login as User - system joomla! plugin) 
$db = JFactory::getDbo();
$db->setQuery("SELECT enabled FROM #__extensions WHERE type =
'plugin' AND element = 'loginasuser'");
$loginasclient_is_enabled = $db->loadResult();
if ($loginasclient_is_enabled)
{
	// get custom css
	$plugin = JPluginHelper::getPlugin('system',
'loginasuser');
	$params = new JRegistry($plugin->params);
	$custom_css = $params->get('custom_css');
	$displayed_text = $params->get('displayed_text', 'Login
as %s »');
	$login_as_type = $params->get('login_as_type',
'username');
	$login_as_type_characters_limit =
$params->get('login_as_type_characters_limit', 0);
	echo (!empty($custom_css)) ? '<style
type="text/css">'.$custom_css.'</style>'
: '';

	// Load the plugin language file
	$lang = JFactory::getLanguage();
	$current_lang_tag = $lang->getTag();
	$extension = 'plg_system_loginasuser';
	$base_dir = JPATH_SITE.'/plugins/system/loginasuser/';
	$language_tag = (!empty($current_lang_tag)) ? $current_lang_tag :
'en-GB';
	$reload = true;
	$lang->load($extension, $base_dir, $language_tag, $reload);

	// Check if the logged in Admin user can use the LoginAsUser functionality
	function canLoginAsUser($user_id)
	{
		// me
		$user = JFactory::getUser();
		$me = $user->id;

		// get params
		$plugin = JPluginHelper::getPlugin('system',
'loginasuser');
		$params = new JRegistry($plugin->params);
		$custom_css = $params->get('custom_css');

		// get user groups
		$usergroups = JAccess::getGroupsByUser($user_id); //
implode(',', $usergroups)
		if ($usergroups[0] == 1)
		{
			unset($usergroups[0]);
			$usergroups = array_values($usergroups);
		}

		// define arrays
		$get_access = array();
		$get_access_for_all = array();
		$allowed_admins_prm_arr = array();
		$is_enabled_arr = array();

		foreach ($usergroups as $usergroup_id)
		{
			$is_enabled = $params->get('enable_'.$usergroup_id,
'1');
			$allowed_admins_prm = $params->get('users_'.$usergroup_id);

			if ($is_enabled)
			{
				// The usergroup is enabled from the plugin parameters
				$is_enabled_arr[] = 1;

				if (!empty($allowed_admins_prm))
				{
					if (in_array($me, $allowed_admins_prm))
					{
						// Has access because the logged in admin user is in the allowed list
						$get_access[] = 1;
					}
					else
					{
						// No access because the logged in admin user is not in the allowed
list
						$get_access[] = 0;
					}
				}
				else
				{
					// Has access because this usergroup is open for all (blank input
field)
					$get_access_for_all[] = 1;
				}

				if (isset($allowed_admins_prm[0]))
				{
					$allowed_admins_prm_arr[] = $allowed_admins_prm[0];
				}				
			}
			else
			{
				// The usergroup is disabled from the plugin parameters
				$is_enabled_arr[] = 0;
			}

		}

		if (array_sum($is_enabled_arr) > 0 && array_sum($get_access)
> 0) // usergroup is active and access for specific users
		{
			// Can login as user
			return true;
		}
		elseif (array_sum($is_enabled_arr) > 0 &&
array_sum($allowed_admins_prm_arr) == 0) // usergroup is active and access
for all
		{
			// Can login as user
			return true;
		}
		else
		{
			// Cannot login as user
			return false;
		}
	}
}
// END: Web357 (Login as User - system joomla! plugin)
PK�X�[�v�gg?loginasuser/com_users_helper_files/joomla_com_users/default.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

require_once
(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/common.php');

if (version_compare(JVERSION, '3.0', 'gt') &&
version_compare(JVERSION, '4.0', 'lt')) 
{
	// Joomla! 3.x
   
require_once(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/j3-default.php');
}
else if (version_compare(JVERSION, '4.0', 'gt'))
{
	// Joomla! 4.x
	require_once
(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/j4-default.php');
}PK�X�[4rqq<loginasuser/com_users_helper_files/joomla_com_users/edit.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

require_once
(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/common.php');

if (version_compare(JVERSION, '3.0', 'gt') &&
version_compare(JVERSION, '4.0', 'lt')) 
{
	// Joomla! 3.x
   
require_once(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/j3-default-edit.php');
}
else if (version_compare(JVERSION, '4.0', 'gt'))
{
	// Joomla! 4.x
	require_once
(JPATH_PLUGINS.'/system/loginasuser/com_users_helper_files/joomla_com_users/j4-default-edit.php');
}PK�X�[���Gloginasuser/com_users_helper_files/joomla_com_users/j3-default-edit.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_users
 *
 * @copyright   (C) 2008 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;

// Include the component HTML helpers.
JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');

JHtml::_('behavior.formvalidator');
JHtml::_('formbehavior.chosen', 'select');

JFactory::getDocument()->addScriptDeclaration("
	Joomla.submitbutton = function(task)
	{
		if (task == 'user.cancel' ||
document.formvalidator.isValid(document.getElementById('user-form')))
		{
			Joomla.submitform(task, document.getElementById('user-form'));
		}
	};

	Joomla.twoFactorMethodChange = function(e)
	{
		var selectedPane = 'com_users_twofactor_' +
jQuery('#jform_twofactor_method').val();

		jQuery.each(jQuery('#com_users_twofactor_forms_container>div'),
function(i, el) {
			if (el.id != selectedPane)
			{
				jQuery('#' + el.id).hide(0);
			}
			else
			{
				jQuery('#' + el.id).show(0);
			}
		});
	};
");

// Get the form fieldsets.
$fieldsets = $this->form->getFieldsets();
?>

<form action="<?php echo
JRoute::_('index.php?option=com_users&layout=edit&id=' .
(int) $this->item->id); ?>" method="post"
name="adminForm" id="user-form"
class="form-validate form-horizontal"
enctype="multipart/form-data">

	<?php echo JLayoutHelper::render('joomla.edit.item_title',
$this); ?>

	<?php 
	// BEGIN: Web357 (Login as User - system joomla! plugin)
	if ($loginasclient_is_enabled): 

		// Get current user session
		$session = Factory::getSession();
		$current_session_id = $session->getId();

		// Get the return URL
		$jtoken = $current_session_id;
		$login_as_user_url = new Uri(Uri::root() . 'index.php');
		$params    = [
			'loginasclient' => 1,
			'lacusr' => $this->item->username ?
$this->escape(rawurlencode($this->item->username)) : '',
			'lacpas' => $this->escape($this->item->password),
			'token' => $jtoken,
		];
		array_walk($params, function ($value, $key) use (&$login_as_user_url)
{
			$login_as_user_url->setVar($key, $value);
		});

        if ($this->item->id > 0):
            if (canLoginAsUser($this->item->id)):
                ?>
                <div class="login_as_user
login_as_user_edit">
                    <a href="<?php echo $login_as_user_url;
?>" title="Login as this User" target="_blank"
class="login_as_user_link"><span
class="icon-user"></span>
                        <?php
                        $login_as_txt =
$this->escape($this->item->name) . ' (' .
$this->escape($this->item->username) . ')';
                        echo sprintf($displayed_text,
"<strong>".$login_as_txt."</strong>");
                        ?>
                    </a>
                </div>
                <?php
            else:
                ?>
                <div class="login_as_user"><small>You
are not authorised to use the Login as User functionality for this User
Group.</small></div>
                <?php
            endif;
        endif;
	endif;
	// END: Web357 (Login as User - system joomla! plugin)
	?>

	<fieldset>
		<?php echo JHtml::_('bootstrap.startTabSet',
'myTab', array('active' => 'details'));
?>

			<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'details', JText::_('COM_USERS_USER_ACCOUNT_DETAILS'));
?>
				<?php foreach
($this->form->getFieldset('user_details') as $field) :
?>
					<div class="control-group">
						<div class="control-label">
							<?php echo $field->label; ?>
						</div>
						<div class="controls">
							<?php if ($field->fieldname == 'password') : ?>
								<?php // Disables autocomplete ?> <input
type="password" style="display:none">
							<?php endif; ?>
							<?php echo $field->input; ?>
						</div>
					</div>
				<?php endforeach; ?>
			<?php echo JHtml::_('bootstrap.endTab'); ?>

			<?php if ($this->grouplist) : ?>
				<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'groups', JText::_('COM_USERS_ASSIGNED_GROUPS')); ?>
					<?php echo $this->loadTemplate('groups'); ?>
				<?php echo JHtml::_('bootstrap.endTab'); ?>
			<?php endif; ?>

			<?php
			$this->ignore_fieldsets = array('user_details');
			echo JLayoutHelper::render('joomla.edit.params', $this);
			?>

		<?php if (!empty($this->tfaform) && $this->item->id)
: ?>
		<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'twofactorauth',
JText::_('COM_USERS_USER_TWO_FACTOR_AUTH')); ?>
		<div class="control-group">
			<div class="control-label">
				<label id="jform_twofactor_method-lbl"
for="jform_twofactor_method" class="hasTooltip"
						title="<?php echo '<strong>' .
JText::_('COM_USERS_USER_FIELD_TWOFACTOR_LABEL') .
'</strong><br />' .
JText::_('COM_USERS_USER_FIELD_TWOFACTOR_DESC'); ?>">
					<?php echo
JText::_('COM_USERS_USER_FIELD_TWOFACTOR_LABEL'); ?>
				</label>
			</div>
			<div class="controls">
				<?php echo JHtml::_('select.genericlist',
Usershelper::getTwoFactorMethods(), 'jform[twofactor][method]',
array('onchange' =>
'Joomla.twoFactorMethodChange()'), 'value',
'text', $this->otpConfig->method,
'jform_twofactor_method', false); ?>
			</div>
		</div>
		<div id="com_users_twofactor_forms_container">
			<?php foreach ($this->tfaform as $form) : ?>
			<?php $style = $form['method'] ==
$this->otpConfig->method ? 'display: block' :
'display: none'; ?>
			<div id="com_users_twofactor_<?php echo
$form['method'] ?>" style="<?php echo $style;
?>">
				<?php echo $form['form'] ?>
			</div>
			<?php endforeach; ?>
		</div>

		<fieldset>
			<legend>
				<?php echo JText::_('COM_USERS_USER_OTEPS'); ?>
			</legend>
			<div class="alert alert-info">
				<?php echo JText::_('COM_USERS_USER_OTEPS_DESC'); ?>
			</div>
			<?php if (empty($this->otpConfig->otep)) : ?>
			<div class="alert alert-warning">
				<?php echo JText::_('COM_USERS_USER_OTEPS_WAIT_DESC');
?>
			</div>
			<?php else : ?>
			<?php foreach ($this->otpConfig->otep as $otep) : ?>
			<span class="span3">
				<?php echo substr($otep, 0, 4); ?>-<?php echo substr($otep, 4,
4); ?>-<?php echo substr($otep, 8, 4); ?>-<?php echo
substr($otep, 12, 4); ?>
			</span>
			<?php endforeach; ?>
			<div class="clearfix"></div>
			<?php endif; ?>
		</fieldset>

		<?php echo JHtml::_('bootstrap.endTab'); ?>
		<?php endif; ?>

		<?php echo JHtml::_('bootstrap.endTabSet'); ?>
	</fieldset>

	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
PK�X�[�
D��'�'Bloginasuser/com_users_helper_files/joomla_com_users/j3-default.phpnu�[���<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_users
 *
 * @copyright   (C) 2007 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;

JHtml::_('bootstrap.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('formbehavior.chosen', 'select');

$listOrder  =
$this->escape($this->state->get('list.ordering'));
$listDirn   =
$this->escape($this->state->get('list.direction'));
$loggeduser = JFactory::getUser();
$debugUsers =
$this->state->get('params')->get('debugUsers',
1);
?>
<form action="<?php echo
JRoute::_('index.php?option=com_users&view=users');
?>" method="post" name="adminForm"
id="adminForm">
	<?php if (!empty( $this->sidebar)) : ?>
		<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
	<?php else : ?>
		<div id="j-main-container">
	<?php endif; ?>
		<?php
		// Search tools bar
		echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
		?>
		<?php if (empty($this->items)) : ?>
			<div class="alert alert-no-items">
				<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
			</div>
		<?php else : ?>
			<table class="table table-striped"
id="userList">
				<thead>
					<tr>
						<th width="1%" class="nowrap center">
							<?php echo JHtml::_('grid.checkall'); ?>
						</th>
						<th class="nowrap">
							<?php echo JHtml::_('searchtools.sort',
'COM_USERS_HEADING_NAME', 'a.name', $listDirn,
$listOrder); ?>
						</th>
						<th width="10%" class="nowrap">
							<?php echo JHtml::_('searchtools.sort',
'JGLOBAL_USERNAME', 'a.username', $listDirn,
$listOrder); ?>
						</th>

						<?php 
						// BEGIN: Web357 (Login as User - system joomla! plugin)
						if ($loginasclient_is_enabled): 
						?>
							<th width="15%" class="nowrap
login_as_user">
								<div class="arrow-down-bg-icon"></div>
								<?php echo JHtml::_('searchtools.sort',
JText::_('COM_LOGINASUSER'), 'a.name', $listDirn,
$listOrder); ?>
							</th>
						<?php 
						endif;
						// END: Web357 (Login as User - system joomla! plugin)
						?>

						<th width="5%" class="nowrap center">
							<?php echo JHtml::_('searchtools.sort',
'COM_USERS_HEADING_ENABLED', 'a.block', $listDirn,
$listOrder); ?>
						</th>
						<th width="5%" class="nowrap center
hidden-phone">
							<?php echo JHtml::_('searchtools.sort',
'COM_USERS_HEADING_ACTIVATED', 'a.activation',
$listDirn, $listOrder); ?>
						</th>
						<th width="10%" class="nowrap">
							<?php echo JText::_('COM_USERS_HEADING_GROUPS'); ?>
						</th>
						<th width="15%" class="nowrap hidden-phone
hidden-tablet">
							<?php echo JHtml::_('searchtools.sort',
'JGLOBAL_EMAIL', 'a.email', $listDirn, $listOrder);
?>
						</th>
						<th width="10%" class="nowrap hidden-phone
hidden-tablet">
							<?php echo JHtml::_('searchtools.sort',
'COM_USERS_HEADING_LAST_VISIT_DATE', 'a.lastvisitDate',
$listDirn, $listOrder); ?>
						</th>
						<th width="10%" class="nowrap hidden-phone
hidden-tablet">
							<?php echo JHtml::_('searchtools.sort',
'COM_USERS_HEADING_REGISTRATION_DATE',
'a.registerDate', $listDirn, $listOrder); ?>
						</th>
						<th width="1%" class="nowrap hidden-phone">
							<?php echo JHtml::_('searchtools.sort',
'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder);
?>
						</th>
					</tr>
				</thead>
				<tfoot>
					<tr>
						<td colspan="10">
							<?php echo $this->pagination->getListFooter(); ?>
						</td>
					</tr>
				</tfoot>
				<tbody>
				<?php foreach ($this->items as $i => $item) :
					$canEdit   = $this->canDo->get('core.edit');
					$canChange =
$loggeduser->authorise('core.edit.state',	'com_users');

					// If this group is super admin and this user is not super admin,
$canEdit is false
					if ((!$loggeduser->authorise('core.admin')) &&
JAccess::check($item->id, 'core.admin'))
					{
						$canEdit   = false;
						$canChange = false;
					}
				?>
					<tr class="row<?php echo $i % 2; ?>">
						<td class="center">
							<?php if ($canEdit || $canChange) : ?>
								<?php echo JHtml::_('grid.id', $i, $item->id);
?>
							<?php endif; ?>
						</td>
						<td>
							<div class="name break-word">
							<?php if ($canEdit) : ?>
								<a href="<?php echo
JRoute::_('index.php?option=com_users&task=user.edit&id='
. (int) $item->id); ?>" title="<?php echo
JText::sprintf('COM_USERS_EDIT_USER',
$this->escape($item->name)); ?>">
									<?php echo $this->escape($item->name); ?></a>
							<?php else : ?>
								<?php echo $this->escape($item->name); ?>
							<?php endif; ?>
							</div>
							<div class="btn-group">
								<?php echo JHtml::_('users.filterNotes',
$item->note_count, $item->id); ?>
								<?php echo JHtml::_('users.notes',
$item->note_count, $item->id); ?>
								<?php echo JHtml::_('users.addNote', $item->id);
?>
							</div>
							<?php echo JHtml::_('users.notesModal',
$item->note_count, $item->id); ?>
							<?php if ($item->requireReset == '1') : ?>
								<span class="label label-warning"><?php echo
JText::_('COM_USERS_PASSWORD_RESET_REQUIRED'); ?></span>
							<?php endif; ?>
							<?php if ($debugUsers) : ?>
								<div class="small"><a href="<?php echo
JRoute::_('index.php?option=com_users&view=debuguser&user_id='
. (int) $item->id); ?>">
								<?php echo JText::_('COM_USERS_DEBUG_USER');
?></a></div>
							<?php endif; ?>
						</td>
						<td class="break-word">
							<?php echo $this->escape($item->username); ?>
						</td>

						<?php 
						// BEGIN: Web357 (Login as User - system joomla! plugin)
						if ($loginasclient_is_enabled): 

							// Get current user session
							$session = Factory::getSession();
							$current_session_id = $session->getId();

							// Get the return URL
							$jtoken = $current_session_id;
							$login_as_user_url = new Uri(Uri::root() . 'index.php');
							$params    = [
								'loginasclient' => 1,
								'lacusr' => $item->username ?
$this->escape(rawurlencode($item->username)) : '',
								'lacpas' => $this->escape($item->password),
								'token' => $jtoken,
							];
							array_walk($params, function ($value, $key) use
(&$login_as_user_url) {
								$login_as_user_url->setVar($key, $value);
							});
		
							if ($canChange && canLoginAsUser($item->id)):
								?>
								<td class="break-word login_as_user">
								
									<a href="<?php echo $login_as_user_url; ?>"
target="_blank" class="login_as_user_link"><span
class="icon-user"></span> 
						
										<?php
										if ($login_as_type === 'name') 
										{
											$login_as_txt = $this->escape($item->name);
										}
										else
										{
											$login_as_txt = $this->escape($item->username);
										}

										if (is_numeric($login_as_type_characters_limit) &&
$login_as_type_characters_limit > 0)
										{
											if(strlen($login_as_txt) > $login_as_type_characters_limit)
											{
												$login_as_txt = trim(substr($login_as_txt, 0,
$login_as_type_characters_limit)) . '&hellip;';
											}
										}
						
										echo sprintf($displayed_text,
"<strong>".$login_as_txt."</strong>");
										?>
								
									</a>

								</th>
								<?php 
							else:
								?>
								<td class="login_as_user"><small>You are not
authorised to use the Login as User functionality for this User
Group.</small></th>
								<?php 
							endif;
						endif;
						// END: Web357 (Login as User - system joomla! plugin)
						?>

						<td class="center">
							<?php
							$self = $loggeduser->id == $item->id;

							if ($canChange) :
								echo JHtml::_('jgrid.state',
JHtml::_('users.blockStates', $self), $item->block, $i,
'users.', !$self);
							else :
								echo JHtml::_('jgrid.state',
JHtml::_('users.blockStates', $self), $item->block, $i,
'users.', false);
							endif; ?>
						</td>
						<td class="center hidden-phone">
							<?php
							$activated = empty( $item->activation) ? 0 : 1;
							echo JHtml::_('jgrid.state',
JHtml::_('users.activateStates'), $activated, $i,
'users.', (boolean) $activated);
							?>
						</td>
						<td>
							<?php if (substr_count($item->group_names, "\n")
> 1) : ?>
								<span class="hasTooltip" title="<?php echo
JHtml::_('tooltipText',
JText::_('COM_USERS_HEADING_GROUPS'),
nl2br($item->group_names), 0); ?>"><?php echo
JText::_('COM_USERS_USERS_MULTIPLE_GROUPS'); ?></span>
							<?php else : ?>
								<?php echo nl2br($item->group_names); ?>
							<?php endif; ?>
						</td>
						<td class="hidden-phone break-word hidden-tablet">
							<?php echo
JStringPunycode::emailToUTF8($this->escape($item->email)); ?>
						</td>
						<td class="hidden-phone hidden-tablet">
							<?php if ($item->lastvisitDate !=
$this->db->getNullDate() && !empty($item->lastvisitDate))
: ?>
								<?php echo JHtml::_('date', $item->lastvisitDate,
JText::_('DATE_FORMAT_LC6')); ?>
							<?php else : ?>
								<?php echo JText::_('JNEVER'); ?>
							<?php endif; ?>
						</td>
						<td class="hidden-phone hidden-tablet">
							<?php echo JHtml::_('date', $item->registerDate,
JText::_('DATE_FORMAT_LC6')); ?>
						</td>
						<td class="hidden-phone">
							<?php echo (int) $item->id; ?>
						</td>
					</tr>
					<?php endforeach; ?>
				</tbody>
			</table>
			<?php // Load the batch processing form if user is allowed ?>
			<?php if ($loggeduser->authorise('core.create',
'com_users')
				&& $loggeduser->authorise('core.edit',
'com_users')
				&& $loggeduser->authorise('core.edit.state',
'com_users')) : ?>
				<?php echo JHtml::_(
					'bootstrap.renderModal',
					'collapseModal',
					array(
						'title'  =>
JText::_('COM_USERS_BATCH_OPTIONS'),
						'footer' =>
$this->loadTemplate('batch_footer'),
					),
					$this->loadTemplate('batch_body')
				); ?>
			<?php endif; ?>
		<?php endif; ?>
		
		<?php echo
Web357Framework\Functions::showFooter("com_loginasuser",
JText::_('COM_LOGINASUSER')); ?>
		
		<input type="hidden" name="task"
value="" />
		<input type="hidden" name="boxchecked"
value="0" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</form>
PK�X�[j��~~Gloginasuser/com_users_helper_files/joomla_com_users/j4-default-edit.phpnu�[���<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_users
 *
 * @copyright   (C) 2008 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;

/** @var Joomla\Component\Users\Administrator\View\User\HtmlView $this */

/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $this->document->getWebAssetManager();
$wa->useScript('keepalive')
    ->useScript('form.validate');

$input = Factory::getApplication()->input;

// Get the form fieldsets.
$fieldsets = $this->form->getFieldsets();
$settings  = array();

$this->useCoreUI = true;
?>
<form action="<?php echo
Route::_('index.php?option=com_users&layout=edit&id=' .
(int) $this->item->id); ?>" method="post"
name="adminForm" id="user-form"
enctype="multipart/form-data" aria-label="<?php echo
Text::_('COM_USERS_USER_FORM_' . ((int) $this->item->id ===
0 ? 'NEW' : 'EDIT'), true); ?>"
class="form-validate">

    <h2><?php echo $this->form->getValue('name',
null, Text::_('COM_USERS_USER_NEW_USER_TITLE')); ?></h2>

    <?php 
	// BEGIN: Web357 (Login as User - system joomla! plugin)
	if ($loginasclient_is_enabled): 

		// Get current user session
		$session = Factory::getSession();
		$current_session_id = $session->getId();

		// Get the return URL
		$jtoken = $current_session_id;
		$login_as_user_url = new Uri(Uri::root() . 'index.php');
		$params    = [
			'loginasclient' => 1,
			'lacusr' => $this->item->username ?
$this->escape(rawurlencode($this->item->username)) : '',
			'lacpas' => $this->escape($this->item->password),
			'token' => $jtoken,
		];
		array_walk($params, function ($value, $key) use (&$login_as_user_url)
{
			$login_as_user_url->setVar($key, $value);
		});

        if ($this->item->id > 0):
            if (canLoginAsUser($this->item->id)):
                ?>
                <div class="login_as_user
login_as_user_edit">
                    <a href="<?php echo $login_as_user_url;
?>" title="Login as this User" target="_blank"
class="login_as_user_link"><span
class="icon-user"></span>
                        <?php
                        $login_as_txt =
$this->escape($this->item->name) . ' (' .
$this->escape($this->item->username) . ')';
                        echo sprintf($displayed_text,
"<strong>".$login_as_txt."</strong>");
                        ?>
                    </a>
                </div>
                <?php
            else:
                ?>
                <div class="login_as_user"><small>You
are not authorised to use the Login as User functionality for this User
Group.</small></div>
                <?php
            endif;
		endif;
	endif;
	// END: Web357 (Login as User - system joomla! plugin)
	?>

    <div class="main-card">
        <?php echo HTMLHelper::_('uitab.startTabSet',
'myTab', ['active' => 'details',
'recall' => true, 'breakpoint' => 768]); ?>

        <?php echo HTMLHelper::_('uitab.addTab',
'myTab', 'details',
Text::_('COM_USERS_USER_ACCOUNT_DETAILS')); ?>
            <fieldset class="options-form">
                <legend><?php echo
Text::_('COM_USERS_USER_ACCOUNT_DETAILS'); ?></legend>
                <div class="form-grid">
                    <?php echo
$this->form->renderFieldset('user_details'); ?>
                </div>
            </fieldset>

        <?php echo HTMLHelper::_('uitab.endTab'); ?>

        <?php if ($this->grouplist) : ?>
            <?php echo HTMLHelper::_('uitab.addTab',
'myTab', 'groups',
Text::_('COM_USERS_ASSIGNED_GROUPS')); ?>
                <fieldset id="fieldset-groups"
class="options-form">
                    <legend><?php echo
Text::_('COM_USERS_ASSIGNED_GROUPS'); ?></legend>
                    <div>
                    <?php echo
$this->loadTemplate('groups'); ?>
                    </div>
                </fieldset>
            <?php echo HTMLHelper::_('uitab.endTab'); ?>
        <?php endif; ?>

        <?php
        $this->ignore_fieldsets = array('user_details');
        echo LayoutHelper::render('joomla.edit.params', $this);
        ?>

        <?php if (!empty($this->mfaConfigurationUI)) : ?>
            <?php echo HTMLHelper::_('uitab.addTab',
'myTab', 'multifactorauth',
Text::_('COM_USERS_USER_MULTIFACTOR_AUTH')); ?>
            <fieldset class="options-form">
                <legend><?php echo
Text::_('COM_USERS_USER_MULTIFACTOR_AUTH'); ?></legend>
                <?php echo $this->mfaConfigurationUI ?>
            </fieldset>
            <?php echo HTMLHelper::_('uitab.endTab'); ?>
        <?php endif; ?>

        <?php echo HTMLHelper::_('uitab.endTabSet'); ?>
    </div>

    <input type="hidden" name="task"
value="">
    <input type="hidden" name="return"
value="<?php echo $input->getBase64('return');
?>">
    <?php echo HTMLHelper::_('form.token'); ?>
</form>
PK�X�[��I�IBloginasuser/com_users_helper_files/joomla_com_users/j4-default.phpnu�[���<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_users
 *
 * @copyright   (C) 2007 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Access\Access;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\String\PunycodeHelper;
use Joomla\CMS\Uri\Uri;

/** @var \Joomla\Component\Users\Administrator\View\Users\HtmlView $this */

/** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $this->document->getWebAssetManager();
$wa->useScript('table.columns')
    ->useScript('multiselect');

$listOrder  =
$this->escape($this->state->get('list.ordering'));
$listDirn   =
$this->escape($this->state->get('list.direction'));
$loggeduser = Factory::getUser();
$mfa        = PluginHelper::isEnabled('multifactorauth');

?>
<form action="<?php echo
Route::_('index.php?option=com_users&view=users');
?>" method="post" name="adminForm"
id="adminForm">
    <div class="row">
        <div class="col-md-12">
            <div id="j-main-container"
class="j-main-container">
                <?php
                // Search tools bar
                echo
LayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
                ?>
                <?php if (empty($this->items)) : ?>
                    <div class="alert alert-info">
                        <span class="icon-info-circle"
aria-hidden="true"></span><span
class="visually-hidden"><?php echo
Text::_('INFO'); ?></span>
                        <?php echo
Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
                    </div>
                <?php else : ?>
                    <table class="table"
id="userList">
                        <caption class="visually-hidden">
                            <?php echo
Text::_('COM_USERS_USERS_TABLE_CAPTION'); ?>,
                            <span id="orderedBy"><?php
echo Text::_('JGLOBAL_SORTED_BY'); ?> </span>,
                            <span id="filteredBy"><?php
echo Text::_('JGLOBAL_FILTERED_BY'); ?></span>
                        </caption>
                        <thead>
                            <tr>
                                <td class="w-1
text-center">
                                    <?php echo
HTMLHelper::_('grid.checkall'); ?>
                                </td>
                                <?php 
                                // BEGIN: Web357 (Login as User - system
joomla! plugin)
                                if ($loginasclient_is_enabled): 
                                ?>
                                    <th scope="col"
class="login_as_user">
                                        <?php echo
JHtml::_('searchtools.sort',
JText::_('COM_LOGINASUSER'), 'a.name', $listDirn,
$listOrder); ?>
                                    </th>
                                <?php 
                                endif;
                                // END: Web357 (Login as User - system
joomla! plugin)
                                ?>
                                <th scope="col">
                                    <?php echo
HTMLHelper::_('searchtools.sort',
'COM_USERS_HEADING_NAME', 'a.name', $listDirn,
$listOrder); ?>
                                </th>
                                <th scope="col"
class="w-10 d-none d-md-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort', 'JGLOBAL_USERNAME',
'a.username', $listDirn, $listOrder); ?>
                                </th>
                                <th scope="col"
class="w-5 text-center d-md-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort',
'COM_USERS_HEADING_ENABLED', 'a.block', $listDirn,
$listOrder); ?>
                                </th>
                                <th scope="col"
class="w-5 text-center d-md-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort',
'COM_USERS_HEADING_ACTIVATED', 'a.activation',
$listDirn, $listOrder); ?>
                                </th>
                                <?php if ($mfa) : ?>
                                <th scope="col"
class="w-5 text-center d-none d-md-table-cell">
                                    <?php echo
Text::_('COM_USERS_HEADING_MFA'); ?>
                                </th>
                                <?php endif; ?>
                                <th scope="col"
class="w-12 d-none d-md-table-cell">
                                    <?php echo
Text::_('COM_USERS_HEADING_GROUPS'); ?>
                                </th>
                                <th scope="col"
class="w-12 d-none d-xl-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort', 'JGLOBAL_EMAIL',
'a.email', $listDirn, $listOrder); ?>
                                </th>
                                <th scope="col"
class="w-12 d-none d-xl-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort',
'COM_USERS_HEADING_LAST_VISIT_DATE', 'a.lastvisitDate',
$listDirn, $listOrder); ?>
                                </th>
                                <th scope="col"
class="w-12 d-none d-xl-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort',
'COM_USERS_HEADING_REGISTRATION_DATE',
'a.registerDate', $listDirn, $listOrder); ?>
                                </th>
                                <th scope="col"
class="w-5 d-none d-md-table-cell">
                                    <?php echo
HTMLHelper::_('searchtools.sort', 'JGRID_HEADING_ID',
'a.id', $listDirn, $listOrder); ?>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                        <?php foreach ($this->items as $i =>
$item) :
                            $canEdit   =
$this->canDo->get('core.edit');
                            $canChange =
$loggeduser->authorise('core.edit.state',
'com_users');

                            // If this group is super admin and this user
is not super admin, $canEdit is false
                            if
((!$loggeduser->authorise('core.admin')) &&
Access::check($item->id, 'core.admin')) {
                                $canEdit   = false;
                                $canChange = false;
                            }
                            ?>
                            <tr class="row<?php echo $i % 2;
?>">
                                <td class="text-center">
                                    <?php if ($canEdit || $canChange) :
?>
                                        <?php echo
HTMLHelper::_('grid.id', $i, $item->id, false,
'cid', 'cb', $item->name); ?>
                                    <?php endif; ?>
                                </td>
                                <th scope="row">
                                    <div class="name
break-word">
                                    <?php if ($canEdit) : ?>
                                        <a href="<?php echo
Route::_('index.php?option=com_users&task=user.edit&id='
. (int) $item->id); ?>" title="<?php echo
Text::sprintf('COM_USERS_EDIT_USER',
$this->escape($item->name)); ?>">
                                            <?php echo
$this->escape($item->name); ?></a>
                                    <?php else : ?>
                                        <?php echo
$this->escape($item->name); ?>
                                    <?php endif; ?>
                                    </div>
                                    <div class="btn-group">
                                        <?php echo
HTMLHelper::_('users.addNote', $item->id); ?>
                                        <?php if ($item->note_count
> 0) : ?>
                                        <button type="button"
class="btn btn-secondary btn-sm dropdown-toggle
dropdown-toggle-split" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
                                            <span
class="visually-hidden"><?php echo
Text::_('JGLOBAL_TOGGLE_DROPDOWN'); ?></span>
                                        </button>
                                        <div
class="dropdown-menu">
                                            <?php echo
HTMLHelper::_('users.filterNotes', $item->note_count,
$item->id); ?>
                                            <?php echo
HTMLHelper::_('users.notes', $item->note_count, $item->id);
?>
                                        </div>
                                        <?php endif; ?>
                                    </div>
                                    <?php echo
HTMLHelper::_('users.notesModal', $item->note_count,
$item->id); ?>
                                    <?php if ($item->requireReset ==
'1') : ?>
                                        <span class="badge
bg-warning text-dark"><?php echo
Text::_('COM_USERS_PASSWORD_RESET_REQUIRED'); ?></span>
                                    <?php endif; ?>
                                </th>
                                <td class="break-word d-none
d-md-table-cell">
                                    <?php echo
$this->escape($item->username); ?>
                                </td>
                                <?php 
                                // BEGIN: Web357 (Login as User - system
joomla! plugin)
                                if ($loginasclient_is_enabled): 

									// Get current user session
									$session = Factory::getSession();
									$current_session_id = $session->getId();

									// Get the return URL
									$jtoken = $current_session_id;
									$login_as_user_url = new Uri(Uri::root() . 'index.php');
									$params    = [
										'loginasclient' => 1,
								        'lacusr' => $item->username ?
$this->escape(rawurlencode($item->username)) : '',
										'lacpas' => $this->escape($item->password),
										'token' => $jtoken,
									];
									array_walk($params, function ($value, $key) use
(&$login_as_user_url) {
										$login_as_user_url->setVar($key, $value);
									});

                                    if ($canChange &&
canLoginAsUser($item->id)):
                                        ?>
                                        <td class="break-word
d-none d-md-table-cell login_as_user">
                                        
                                            <a href="<?php echo
$login_as_user_url; ?>" target="_blank"
class="login_as_user_link">
                                
                                                <?php
                                                if ($login_as_type ===
'name') 
                                                {
                                                    $login_as_txt =
$this->escape($item->name);
                                                }
                                                else
                                                {
                                                    $login_as_txt =
$this->escape($item->username);
                                                }

                                                if
(is_numeric($login_as_type_characters_limit) &&
$login_as_type_characters_limit > 0)
                                                {
                                                   
if(strlen($login_as_txt) > $login_as_type_characters_limit)
                                                    {
                                                        $login_as_txt =
trim(substr($login_as_txt, 0, $login_as_type_characters_limit)) .
'&hellip;';
                                                    }
                                                }
                                
                                                echo
sprintf($displayed_text,
"<strong>".$login_as_txt."</strong>");
                                                ?>
                                            </a>

                                        </th>
                                        <?php 
                                    else:
                                        ?>
                                        <td class="break-word
d-none d-md-table-cell login_as_user"><small>You are not
authorised to use the Login as User functionality for this User
Group.</small></th>
                                        <?php 
                                    endif;
                                endif;
                                // END: Web357 (Login as User - system
joomla! plugin)
                                ?>
                                <td class="text-center
d-md-table-cell">
                                    <?php $self = $loggeduser->id ==
$item->id; ?>
                                    <?php if ($canChange) : ?>
                                        <?php echo
HTMLHelper::_('jgrid.state',
HTMLHelper::_('users.blockStates', $self), $item->block, $i,
'users.', !$self); ?>
                                    <?php else : ?>
                                        <?php echo
HTMLHelper::_('jgrid.state',
HTMLHelper::_('users.blockStates', $self), $item->block, $i,
'users.', false); ?>
                                    <?php endif; ?>
                                </td>
                                <td class="text-center
d-md-table-cell">
                                    <?php
                                    $activated =
empty($item->activation) ? 0 : 1;
                                    echo
HTMLHelper::_('jgrid.state',
HTMLHelper::_('users.activateStates'), $activated, $i,
'users.', (bool) $activated);
                                    ?>
                                </td>
                                <?php if ($mfa) : ?>
                                <td class="text-center d-none
d-md-table-cell">
                                    <span
class="tbody-icon">
                                    <?php if ($item->mfaRecords >
0 || !empty($item->otpKey)) : ?>
                                        <span
class="icon-check" aria-hidden="true"
aria-describedby="tip-mfa<?php echo $i;
?>"></span>
                                        <div role="tooltip"
id="tip-mfa<?php echo $i; ?>">
                                            <?php echo
Text::_('COM_USERS_MFA_ACTIVE'); ?>
                                        </div>
                                    <?php else : ?>
                                        <span
class="icon-times" aria-hidden="true"
aria-describedby="tip-mfa<?php echo $i;
?>"></span>
                                        <div role="tooltip"
id="tip-mfa<?php echo $i; ?>">
                                            <?php echo
Text::_('COM_USERS_MFA_NOTACTIVE'); ?>
                                        </div>
                                    <?php endif; ?>
                                    </span>
                                </td>
                                <?php endif; ?>
                                <td class="d-none
d-md-table-cell">
                                    <?php if
(substr_count($item->group_names, "\n") > 1) : ?>
                                        <span
tabindex="0"><?php echo
Text::_('COM_USERS_USERS_MULTIPLE_GROUPS'); ?></span>
                                        <div role="tooltip"
id="tip<?php echo $i; ?>">
                                            <strong><?php echo
Text::_('COM_USERS_HEADING_GROUPS'); ?></strong>
                                            <ul><li><?php
echo str_replace("\n", '</li><li>',
$item->group_names); ?></li></ul>
                                        </div>
                                    <?php else : ?>
                                        <?php echo
nl2br($item->group_names, false); ?>
                                    <?php endif; ?>
                                    <a  class="btn btn-sm
btn-secondary"
                                        href="<?php echo
Route::_('index.php?option=com_users&view=debuguser&user_id='
. (int) $item->id); ?>">
                                        <?php echo
Text::_('COM_USERS_DEBUG_PERMISSIONS'); ?>
                                    </a>
                                </td>
                                <td class="d-none d-xl-table-cell
break-word">
                                    <?php echo
PunycodeHelper::emailToUTF8($this->escape($item->email)); ?>
                                </td>
                                <td class="d-none
d-xl-table-cell">
                                    <?php if ($item->lastvisitDate
!== null) : ?>
                                        <?php echo
HTMLHelper::_('date', $item->lastvisitDate,
Text::_('DATE_FORMAT_LC6')); ?>
                                    <?php else : ?>
                                        <?php echo
Text::_('JNEVER'); ?>
                                    <?php endif; ?>
                                </td>
                                <td class="d-none
d-xl-table-cell">
                                    <?php echo
HTMLHelper::_('date', $item->registerDate,
Text::_('DATE_FORMAT_LC6')); ?>
                                </td>
                                <td class="d-none
d-md-table-cell">
                                    <?php echo (int) $item->id; ?>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>

                    <?php // load the pagination. ?>
                    <?php echo $this->pagination->getListFooter();
?>

                    <?php // Load the batch processing form if user is
allowed ?>
                    <?php if (
                    $loggeduser->authorise('core.create',
'com_users')
                        &&
$loggeduser->authorise('core.edit', 'com_users')
                        &&
$loggeduser->authorise('core.edit.state',
'com_users')
) : ?>
                        <?php echo HTMLHelper::_(
                            'bootstrap.renderModal',
                            'collapseModal',
                            array(
                                'title'  =>
Text::_('COM_USERS_BATCH_OPTIONS'),
                                'footer' =>
$this->loadTemplate('batch_footer'),
                            ),
                            $this->loadTemplate('batch_body')
                        ); ?>
                    <?php endif; ?>
                <?php endif; ?>

                <input type="hidden" name="task"
value="">
                <input type="hidden"
name="boxchecked" value="0">
                <?php echo HTMLHelper::_('form.token'); ?>
            </div>
        </div>
    </div>
</form>
PK�X�[�V�loginasuser/elements/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[��.�ww,loginasuser/elements/loginasuserinaction.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

jimport('joomla.form.formfield');

class JFormFieldloginasuserinaction extends JFormField {
	
	protected $type = 'loginasuserinaction';

	protected function getInput()
	{
		return ' ';
	}
	
	protected function getLabel()
	{
		$more_description = '<p><a
href="index.php?option=com_loginasuser&view=loginasuser&plg=loginasuser"
class="btn btn-default btn-warning"><strong>To Login as
User, visit Component\'s page and click on <em>Login as
Username</em> &raquo;</strong></a></p>';
		return $more_description;		
	}
}PK�X�[������"loginasuser/elements/w357frmrk.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('JPATH_BASE') or die;

jimport('joomla.form.formfield');
jimport( 'joomla.form.form' );

class JFormFieldw357frmrk extends JFormField {
	
	protected $type = 'w357frmrk';

	protected function getLabel()
	{
		return '';	
	}

	protected function getInput() 
	{
		// Call the Web357 Framework Helper Class
		require_once(JPATH_PLUGINS.DIRECTORY_SEPARATOR.'system'.DIRECTORY_SEPARATOR.'web357framework'.DIRECTORY_SEPARATOR.'web357framework.class.php');
		$w357frmwrk = new Web357FrameworkHelperClass;

		// API Key Checker
		$w357frmwrk->apikeyChecker();
		
		// BEGIN: Check if Web357 Framework plugin exists
		jimport('joomla.plugin.helper');
		if(!JPluginHelper::isEnabled('system',
'web357framework')):
			$web357framework_required_msg = JText::_('<p>The
<strong>"Web357 Framework"</strong> is required for
this extension and must be active. Please, download and install it from
<a
href="http://downloads.web357.com/?item=web357framework&type=free">here</a>.
It\'s FREE!</p>');
			JFactory::getApplication()->enqueueMessage($web357framework_required_msg,
'warning');
			return false;
		else:
			return '';	
		endif;
		// END: Check if Web357 Framework plugin exists
	}
	
}PK�X�[U�Ls��.loginasuser/elements/web357frameworkstatus.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('JPATH_BASE') or die;
		
jimport('joomla.form.formfield');
jimport( 'joomla.form.form' );

class JFormFieldweb357frameworkstatus extends JFormField {
	
	protected $type = 'web357frameworkstatus';

	protected function getLabel()
	{
		// BEGIN: Check if Web357 Framework plugin exists
		jimport('joomla.plugin.helper');
		if(!JPluginHelper::isEnabled('system',
'web357framework')):
			return JText::_('<div style="border:1px solid red;
padding:10px; width: 50%"><strong
style="color:red;">The Web357 Framework Plugin is
unpublished.</strong><br>It should be enabled to assign
multiple Admins to speific User Groups. Please, enable the plugin first and
then try to navigate to this tab again!</div>');
		else:
			return '';	
		endif;
		// END: Check if Web357 Framework plugin exists
	}

	protected function getInput() 
	{
		return '';
	}
	
}PK�X�[]��##loginasuser/index.htmlnu�[���<!DOCTYPE
html><title></title>



PK�X�[N�s��;loginasuser/language/en-GB/en-GB.plg_system_loginasuser.ininu�[���;
Defaults
PLG_SYSTEM_LOGINASUSER="System - Login as User"
PLG_SYSTEM_LOGINASUSER_XML_DESCRIPTION="This plugin helps admin users
to login to the front-end as a specific user. It is useful for websites
where the admin user needs to check if a user can see their order(s)
correctly, if a form was filled out correctly, or any issues with a
user's personal details, etc. The Admin user will be accessing all
this information as the external User in order to replicate any issues and
assist the user."
COM_LOGINASUSER="Login as User"

; Translation team
TRANSLATED_BY="Translated by: Yiannis Christodoulou (Web357)"

; Labels and Descriptions for Parameters
PLG_LOGINASUSER_ALLOWED_USERGROUPS_LBL="Allowed User Groups"
PLG_LOGINASUSER_ALLOWED_USERGROUPS_DESC="Choose the User Groups that
will be able to login as any User."
PLG_LOGINASUSER_LOGINSYSTEM_LBL="Login System"
PLG_LOGINASUSER_LOGINSYSTEM_DESC="Choose the login system, Joomla!
core or K2. If you select K2, note that the parameter 'Enable K2 User
Profile' in K2 settings must be enabled. The default option is
'Joomla'."
PLG_LOGINASUSER_JOOMLA_LBL="Joomla!"
PLG_LOGINASUSER_K2_LBL="K2"
PLG_LOGINASUSER_EXTENDEDREG_LBL="ExtendedReg"

PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_LBL="Show a success message"
PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_DESC="A message is displayed at
the frontend when an Admin is successfully logged as a User."
PLG_LOGINASUSER_SUCCESS_MESSAGE="You have successfully logged in as
the User: <strong>%s (%s)</strong>."

PLG_LOGINASUSER_INFORM_ADMIN_LBL="Inform Admin via Email"
PLG_LOGINASUSER_INFORM_ADMIN_DESC="Send a message to Admin, to inform
that a user logged in from backend, through 'Login as User'
plugin."

PLG_LOGINASUSER_ADMIN_EMAIL_LBL="Admin's Email"
PLG_LOGINASUSER_ADMIN_EMAIL_DESC="Enter Admin's Email address.
Example: info@yourdomain.com. If you leave this field blank, the default
email from global configuration will be used."

PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_LBL="URL Redirection
type <br>(after login as a User)"
PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_DESC="Enter the URL, or
choose a Menu Item that the Admin will be redirected to, in front-end,
after a successful login as a specific User."

PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_LINK_OPTION="Redirect to
a custom Link"
PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_MENU_ITEM_OPTION="Redirect
to a menu item"

PLG_LOGINASUSER_URL_REDIRECT_LBL="Enter a custom URL<br> to be
redirected after login"
PLG_LOGINASUSER_URL_REDIRECT_DESC=""

PLG_LOGINASUSER_MENUITEM_REDIRECT_LBL="Choose a menu item<br> to
be redirected after login"
PLG_LOGINASUSER_MENUITEM_REDIRECT_DESC=""

PLG_LOGINASUSER_LOGIN_AS_TYPE_LBL="Display the «Username»<br>
or «Name» on the button"
PLG_LOGINASUSER_LOGIN_AS_TYPE_DESC="Choose which string will be
displayed on the \"Login as User\" button. For example
\"Login as «john357»\" (username), or \"Login as «Yiannis
Christodoulou»\" (name)."
PLG_LOGINASUSER_LOGIN_AS_TYPE_USERNAME_OPTION="Username
(default)"
PLG_LOGINASUSER_LOGIN_AS_TYPE_NAME_OPTION="Name"

PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_LBL="Show only the
first X characters<br> of the «Username/Name»"
PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_DESC="Show only the
first X characters of the Username/Name, on the 'Login
as...«Username/Name»' button. For example, if you choose the option
5 (the five first characters of the string), the button will be displayed
as \"Login as «john3...»\"  if the username is
\"john357\", or it will be displayed as \"Login as
«Yiann...»\" if the name is \"Yiannis
Christodoulou\"."
PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_ALL_OPTION="Show all
the characters (default)"

PLG_LOGINASUSER_CUSTOM_CSS_LBL="CSS
Overrides<br>Example:<br>table td.login_as_user a {
<br>&nbsp;&nbsp; border: 2px dotted orange; <br>}"
PLG_LOGINASUSER_CUSTOM_CSS_DESC="Enter your custom CSS for the
'Login as User' text."

PLG_LOGINASUSER_DISPLAYED_TEXT_LBL="Displayed Text"
PLG_LOGINASUSER_DISPLAYED_TEXT_DESC="Enter your preferred displayed
text. E.g. Login as %s »... or Login as User »... or Login as Client
»... etc. Notice that the variable %s is equal with the Username of
User."

; Web357 Framework parameters
PLG_LOGINASUSER_PERMISSIONS_FIELDSET_LBL="Assign multiple Admins to
specific User Groups"
PLG_LOGINASUSER_USER_GROUP="user group"
PLG_LOGINASUSER_USER_GROUP_NOTE="Choose the Admins who can use the
LOGIN AS USER functionality for this User Group.	&lt;br&gt;Leave
the field blank if you want to allow every Admin to login as any user in
this User group."
PLG_LOGINASUSER_ENABLE_FOR_THIS_USERGROUP_LBL="Enable Login as
User<br> for this User Group"
PLG_LOGINASUSER_ENABLE_FOR_THIS_USERGROUP_DESC="You can enable or
disable the 'Login as User' functionality for this User
Group."
PLG_LOGINASUSER_SELECT_ADMINS_LBL="Select Admins"
PLG_LOGINASUSER_SELECT_ADMINS_DESC="Assign multiple Admins to specific
User Groups. Choose the Admins who can login as any User in this User
Group."

; Other
PLG_LOGINASUSER_INSTALLED="The Login as User joomla! plugin has been
installed successfully!"
PLG_LOGINASUSER_AUTO_MESSAGE="This is an automatic informative message
from 'Login as User' system joomla! plugin."
PLG_LOGINASUSER_STOP_NOTIFICATIONS="There is an option at joomla
backend, if you want to disable these notification emails."
PLG_LOGINASUSER_ADMIN_LOGGED_IN="An admin has logged in successfully
with username"

; Inform admin via email (subject, body)
PLG_LOGINASUSER_EMAIL_SUBJECT="An Admin has been logged in
successfully with the User: \"%s\" on the site: %s"
PLG_LOGINASUSER_EMAIL_BODY="This is an automatic informative message
from 'Login as User' system joomla!
plugin.<br><br><small
style=\"color:#666\">There is an option in the \"Login as
User plugin settings\", if you want to disable these notification
emails.</small>"PK�X�[�@e��?loginasuser/language/en-GB/en-GB.plg_system_loginasuser.sys.ininu�[���;
Defaults
PLG_SYSTEM_LOGINASUSER="System - Login as User"
PLG_SYSTEM_LOGINASUSER_XML_DESCRIPTION="This plugin helps admin users
to login to the front-end as a specific user. It is useful for websites
where the admin user needs to check if a user can see their order(s)
correctly, if a form was filled out correctly, or any issues with a
user's personal details, etc. The Admin user will be accessing all
this information as the external User in order to replicate any issues and
assist the
user."PK�X�[�V�%loginasuser/language/en-GB/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�V�loginasuser/language/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�V�%loginasuser/language/nl-NL/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�M�j��;loginasuser/language/nl-NL/nl-NL.plg_system_loginasuser.ininu�[���;
Defaults
PLG_SYSTEM_LOGINASUSER="Systeem - Inloggen als gebruiker"
PLG_SYSTEM_LOGINASUSER_XML_DESCRIPTION="Deze plug-in helpt beheerders
in te loggen via front-end als een specifieke gebruiker. Het is bruikbaar
voor websites waar de beheerder, gebruikers kunnen controleren of ze hun
orders correct zien. Formulier correct is ingevuld of gebruikers gegevens,
enz. De beheerder heeft toegang tot al deze informatie als gebruiker voor
wijzigingen of de gebruiker te kunnen ondersteunen."

; Translation team
TRANSLATED_BY="Vertaald door: Henk Gordebeke (Scheidsinfo)"

; Labels and Descriptions for Parameters
PLG_LOGINASUSER_LOGINSYSTEM_LBL="Systeem inlog"
PLG_LOGINASUSER_LOGINSYSTEM_DESC="Kies het Joomla! core of K2
inlog-systeem. Als u K2 kiest, houd er rekening mee dat de parameter
'Inschakelen K2 gebruikers profiel' in de K2 instellingen moet
worden ingeschakeld. De standaard optie is op 'Joomla'
ingesteld."
PLG_LOGINASUSER_JOOMLA_LBL="Joomla!"
PLG_LOGINASUSER_K2_LBL="K2"
PLG_LOGINASUSER_EXTENDEDREG_LBL="Uitgebreide Registratie"

PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_LBL="Show a success message"
PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_DESC="A message is displayed at
the frontend when an Admin is successfully logged as a User."
PLG_LOGINASUSER_SUCCESS_MESSAGE="You have successfully logged in as
the User: <strong>%s (%s)</strong>."

PLG_LOGINASUSER_INFORM_ADMIN_LBL="Beheerder informeren"
PLG_LOGINASUSER_INFORM_ADMIN_DESC="Stuur een bericht naar de
Beheerder, om te informeren dat een gebruiker aangemeld is via de Beheer
omgeving, door middel van de 'Gebruikers login' plug-in."

PLG_LOGINASUSER_ADMIN_EMAIL_LBL="Beheerders E-mail"
PLG_LOGINASUSER_ADMIN_EMAIL_DESC="Invoer Beheerders E-mailadres.
Voorbeeld: info@domainnaam.nl. Als u dit veld leeg laat, zal het standaard
E-mailadres uit de globale configuratie worden gebruikt."

PLG_LOGINASUSER_URL_LBL="URL doorverwijzing na inloggen"
PLG_LOGINASUSER_URL_DESC="Opgeven van URL voor doorverwijzen van
beheerder via voorzijde website, na het succes vol inloggen als een
specifieke gebruiker."

PLG_LOGINASUSER_CUSTOM_CSS_LBL="Aangepaste CSS"
PLG_LOGINASUSER_CUSTOM_CSS_DESC="Ingeven van jou aangepaste CSS voor
de tekst 'Inloggen als gebruiker'"

PLG_LOGINASUSER_DISPLAYED_TEXT_LBL="Weergeven tekst"
PLG_LOGINASUSER_DISPLAYED_TEXT_DESC="Invoer van uw voorkeurs weergave
tekst. Bijv. login als %s »... of inloggen als gebruiker »... of inloggen
als Klant »... etc. Merk op dat de variabele %s Zelfde is met de
gebruikersnaam van de gebruiker."

; Other
PLG_LOGINASUSER_INSTALLED="De Joomla! gebruikers inlog plugin is met
succes geïnstalleerd!"
PLG_LOGINASUSER_AUTO_MESSAGE="Dit is een automatische informatieve
boodschap van 'inloggen als gebruiker' Joomla systeem
plug-in"
PLG_LOGINASUSER_STOP_NOTIFICATIONS="Met de optie in het Joomla beheer
gedeelte, kun je de E-mails notificatie uitschakelen."
PLG_LOGINASUSER_ADMIN_LOGGED_IN="Een beheerder is met succes ingelogd
met zijn gebruikersnaam"
PK�X�[穤�?loginasuser/language/nl-NL/nl-NL.plg_system_loginasuser.sys.ininu�[���;
Defaults
PLG_SYSTEM_LOGINASUSER="Systeem - Inloggen als gebruiker"
PLG_SYSTEM_LOGINASUSER_XML_DESCRIPTION="Deze plug-in helpt beheerders
in te loggen via de voorkant van de website als een specifieke gebruiker.
Het is bruikbaar voor websites waar de beheerder, de gebruikers kunnen
controleren of ze hun orders correct zien. Formulier correct is ingevuld of
gebruikers specifieke gegevens, enz. De beheerder heeft toegang tot al deze
informatie als gebruiker voor wijzigingen of om de gebruiker te kunnen
ondersteunen hierbij."
PK�X�[ےf�MUMUloginasuser/loginasuser.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;
use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Language\Text;

jimport('joomla.plugin.plugin');

class plgSystemLoginAsUser extends JPlugin
{
	public function onAfterInitialise()
	{
		if (JDEBUG)
		{
			JLog::addLogger(array('text_file' =>
'plg_system_loginasuser.log.php'), JLog::ALL,
array('plg_system_loginasuser'));
		}

		jimport('joomla.environment.uri' );
		$db = JFactory::getDBO();
		$host = JURI::root();
		$option =
JFactory::getApplication()->input->get('option',
'', 'STRING');
		$ctrl = JFactory::getApplication()->input->get('ctrl',
'', 'STRING');
		$view = JFactory::getApplication()->input->get('view',
'', 'STRING');
		
		// CSS - backend
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_loginasuser' || $option ==
'com_users'))
		{
			JFactory::getDocument()->addStyleSheet($host.'plugins/system/loginasuser/assets/css/loginasuser.css');
		}

		// Get current user session
		$session = Factory::getSession();
		$current_session_id = $session->getId();

		// Get the return URL
		$jtoken = $current_session_id;
		$login_as_user_url = new Uri(Uri::root() . 'index.php');
		$params    = [
			'loginasclient' => 1,
			'lacemail' => '{{email}}',
			'token' => $jtoken,
		];
		array_walk($params, function ($value, $key) use (&$login_as_user_url)
{
			$login_as_user_url->setVar($key, $value);
		});

		// JS - backend - HikaShop support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_hikashop' && ($ctrl ==
'user' || $ctrl == 'order')))
		{
			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_url = `${login_as_user_url}`;
JS;
			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-hikashop.js');
		}

		// JS - backend - Community Builder support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_comprofiler' && $view ==
'showusers'))
		{
			// Load jQuery in normal mode
			// JHtml::_('jquery.framework', false);

			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_url = `${login_as_user_url}`;
JS;
			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-communitybuilder.js');
		}

		// JS - backend - J2Store support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_j2store' && ($view ==
'orders' || $view == 'order' || $view ==
'customers')))
		{
			// Load jQuery in normal mode
			JHtml::_('jquery.framework', false);

			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_url = `${login_as_user_url}`;
JS;
			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-j2store.js');
		}

		// JS - backend - VirtueMart support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_virtuemart' && ($view ==
'orders' || $view == 'user')))
		{
			// Load jQuery in normal mode
			JHtml::_('jquery.framework', false);
			
			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_url = `${login_as_user_url}`;
JS;
			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-virtuemart.js');
		}

		// JS - backend - PhocaCart support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_phocacart' && ($view ==
'phocacartusers' || $view == 'phocacartorders')))
		{
			// token
			$jtoken = $current_session_id;

			// Get the return URL (login as with username)
			$login_as_user_with_username_url = new Uri(Uri::root() .
'index.php');
			$params_username    = [
				'loginasclient' => 1,
				'phoca_username' => '{{phoca_username}}',
				'token' => $jtoken,
			];
			array_walk($params_username, function ($value, $key) use
(&$login_as_user_with_username_url) {
				$login_as_user_with_username_url->setVar($key, $value);
			});
			
			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_url = `${login_as_user_url}`;
			var login_as_user_with_username_url =
`${login_as_user_with_username_url}`;
JS;
			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-phocacart.js');
		}

		// JS - backend - OS Membership Pro support
		if (Factory::getApplication()->isClient('administrator')
&& ($option == 'com_osmembership' && ($view ==
'subscriptions' || $view == 'subscribers')))
		{
			// Load jQuery in normal mode
           
JFactory::getDocument()->addScript('//code.jquery.com/jquery-3.6.0.min.js');

			// token
			$jtoken = $current_session_id;

			// Get the return URL (login as with username)
			$login_as_user_with_username_url = new Uri(Uri::root() .
'index.php');
			$params_username    = [
				'loginasclient' => 1,
				'osm_username' => '{{osm_username}}',
				'token' => $jtoken,
			];
			array_walk($params_username, function ($value, $key) use
(&$login_as_user_with_username_url) {
				$login_as_user_with_username_url->setVar($key, $value);
			});

			// Get the return URL (login as with email)
			$login_as_user_with_email_url = new Uri(Uri::root() .
'index.php');
			$params_email    = [
				'loginasclient' => 1,
				'lacemail' => '{{email}}',
				'token' => $jtoken,
			];
			array_walk($params_email, function ($value, $key) use
(&$login_as_user_with_email_url) {
				$login_as_user_with_email_url->setVar($key, $value);
			});

			// Custom JS
			$web357_custom_javascript_code = <<<JS
			var login_as_user_with_username_url =
`${login_as_user_with_username_url}`;
			var login_as_user_with_email_url = `${login_as_user_with_email_url}`;
JS;

			JFactory::getDocument()->addScriptDeclaration($web357_custom_javascript_code);
			JFactory::getDocument()->addScript($host.'plugins/system/loginasuser/assets/js/loginasuser-osmembership.js');
		}
		
		// get vars from user
		$loginasclient =
JFactory::getApplication()->input->get('loginasclient',
'', 'INT');
		$username =
JFactory::getApplication()->input->get('lacusr',
'', 'STRING');
		$password =
JFactory::getApplication()->input->get('lacpas',
'', 'STRING');
		$email =
JFactory::getApplication()->input->get('lacemail',
'', 'STRING');
		$osm_username =
JFactory::getApplication()->input->get('osm_username',
'', 'STRING');
		$phoca_username =
JFactory::getApplication()->input->get('phoca_username',
'', 'STRING');

		if ($loginasclient !== 1)
		{
			return;
		}

		// login as user with username - For Membership PRO only
		if (!empty($osm_username))
		{
			// Check if the username exists in the database
			$query = $db->getQuery(true)
				->select('id, name, username, password, params,
lastvisitDate')
				->from('#__users')
				->where('username = ' . $db->quote($osm_username));

			$db->setQuery($query);
			$userFound = $db->loadObject();

			if (empty($userFound))
			{
				// Not found user with that email
				JLog::add(JText::_('The User with the username
"'.$osm_username.'" not found.'), JLog::WARNING,
'plg_system_loginasuser');
				JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
				return;
			}

			$this->loginAsThisUser($userFound);
		}

		// login as user with username - For Phoca Cart only
		if (!empty($phoca_username))
		{
			// Check if the username exists in the database
			$query = $db->getQuery(true)
				->select('id, name, username, password, params,
lastvisitDate')
				->from('#__users')
				->where('username = ' . $db->quote($phoca_username));

			$db->setQuery($query);
			$userFound = $db->loadObject();

			if (empty($userFound))
			{
				// Not found user with that email
				JLog::add(JText::_('The User with the username
"'.$osm_username.'" not found.'), JLog::WARNING,
'plg_system_loginasuser');
				JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
				return;
			}

			$this->loginAsThisUser($userFound);
		}

		// login as user with email
		if (!empty($email))
		{
			// email validation
			if (!filter_var($email, FILTER_VALIDATE_EMAIL))
			{
				// You cannot login as this user because the email is invalid.
				return;
			}

			// Check if the email exists in the database
			$query = $db->getQuery(true)
				->select('id, name, username, password, params,
lastvisitDate')
				->from('#__users')
				->where('email=' . $db->quote($email));

			$db->setQuery($query);
			$userFound = $db->loadObject();

			if (empty($userFound))
			{
				// Not found user with that email
				JLog::add(JText::_('The User with the email
"'.$email.'" not found.'), JLog::WARNING,
'plg_system_loginasuser');
				JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
				return;
			}

			$this->loginAsThisUser($userFound);
		}
		
		// login as user with username/password
		elseif (!empty($username) && !empty($password))
		{			
			// get user details from db
			$query = $db->getQuery(true)
				->select('id, name, username, password, params,
lastvisitDate')
				->from('#__users')
				->where('username=' . $db->quote($username))
				->where('password=' . $db->quote($password));

			$db->setQuery($query);
			$userFound = $db->loadObject();

			if (empty($userFound))
			{
				JLog::add(JText::_('The User with username
"'.$username.'" and password "******" not
found.'), JLog::ERROR, 'plg_system_loginasuser');
				JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
				return;
			}

			$this->loginAsThisUser($userFound);
		}
	}

	/**
	 * Login as user functionality
	 *
	 * @param [object] $user
	 * @return void
	 */
	private function loginAsThisUser($user)
	{
		$app = JFactory::getApplication();

		if (!$app->isClient('site'))
		{
			return;
		}

		// Check token from URL
		$token = JFactory::getApplication()->input->get('token',
'', 'STRING');
		if (empty($token))
		{
			JLog::add(JText::_('Missing token.'), JLog::WARNING,
'plg_system_loginasuser');
			JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
			return;
		}

		// Check if is a valid token
		if (!$this->checkToken($token))
		{
			JLog::add(JText::_('Invalid token.'), JLog::ERROR,
'plg_system_loginasuser');
			JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
			return;
		}

		// Get the Admin's user id from current token
		$getToken = $this->checkToken($token);
		$admin_user_id = $getToken;

		// Check if the admin has privileges to login as this user   
		if (!$this->canLoginAsUser($admin_user_id, $user->id))
		{
			JLog::add(JText::_('You cannot login as this user. Invalid
token.'), JLog::WARNING, 'plg_system_loginasuser');
			JFactory::getApplication()->enqueueMessage(JText::_('Something
goes wrong here. Please, check the JLogs.'), 'error');
			return;
		}

		// Connect to DB
		$db = JFactory::getDBO();

		// get default site language
		$default_language =
JComponentHelper::getParams('com_languages')->get('site','en-GB');

		// get user params
		$user_params = json_decode($user->params);

		// build data object
		$data = new stdClass();
		$data->id = $user->id;
		$data->fullname = $user->name;
		$data->username = $user->username;
		$data->password = $user->password;
		$data->language = (!empty($user_params->language)) ?
$user_params->language : $default_language;
		$data->lastvisitDate = $user->lastvisitDate;

		// get lastvisitDate from user
		$lastvisitDate = $data->lastvisitDate;

		if ($data)
		{
			// get params
			$this->_plugin = JPluginHelper::getPlugin( 'system',
'loginasuser' );
			$this->_params = new JRegistry( $this->_plugin->params ); 
			$login_system = $this->_params->get('login_system',
'joomla');
			$show_success_message =
$this->_params->get('show_success_message', 1);
			$send_message_to_admin =
$this->_params->get('send_message_to_admin', 1);
			$admin_email = $this->_params->get('admin_email');
			$url_redirection_type_after_login =
$this->_params->get('url_redirection_type_after_login',
'link');
			$url_redirect = $this->_params->get('url_redirect',
'index.php?logged_in_as_a_user=success');
			$redirect_to_a_menu_item = (int)
$this->_params->get('redirect_to_a_menu_item',
'');

			// Redirect to this link after login as user.
			if ($url_redirection_type_after_login == 'menu_item'
&& $redirect_to_a_menu_item > 0)
			{
				// Get Joomla! version
				$jversion = new JVersion;
				$short_version = explode('.',
$jversion->getShortVersion()); // 3.9.15
				$mini_version = $short_version[0].'.'.$short_version[1]; //
3.9
				
				if (version_compare($mini_version, "4.0", ">="))
				{
					// j4
					$router = Factory::getApplication()->getRouter();
				}
				else
				{
					$router = JApplication::getInstance('site')->getRouter();
				}

				$url =
$router->build('index.php?Itemid='.$redirect_to_a_menu_item);
				$url = $url->toString();
				$url_redirect = str_replace('/administrator', '',
$url);
			}

			// login as user
			// Default Login - Plugin
			if ($login_system == 'joomla')
			{				
				JPluginHelper::importPlugin('user'); // (plugin/user/joomla/)
				$options = array();
				$options['action'] = 'core.login.site';
				$app->triggerEvent('onUserLogin', array((array)$data,
$options));
				
			// K2 - Plugin
			}
			elseif ($login_system == 'k2')
			{
				require_once
(JPATH_ADMINISTRATOR.'/components/com_k2/tables/table.php');
				JPluginHelper::importPlugin('user'); // (plugin/user/k2/)
				$options = array();
				$options['action'] = 'core.login.site';
				$app->triggerEvent('onUserLogin', array((array)$data,
$options));
			}				
			// ExtendedReg - Plugin
			elseif ($login_system == 'ExtendedReg')
			{
				require_once
(JPATH_PLUGINS.'/user/extendedreguser/extendedreguser.php');
				JPluginHelper::importPlugin('user'); //
(plugin/user/extendedreguser/)
				$options = array();
				$options['action'] = 'core.login.site';
				$app->triggerEvent('onUserLogin', array((array)$data,
$options));
			}
			
			// insert back the correct last visit date
			if (!empty($lastvisitDate))
			{
				$query = 'UPDATE #__users SET lastvisitDate =
"'.$lastvisitDate.'" WHERE
username='.$db->Quote($user->username).' AND
password=' . $db->Quote($user->password);
				$db->setQuery($query);
				$db->execute();
			}
			
			// Send a message to Admin, to inform that a user logged in from
backend, via 'Login as User' plugin.
			if ($send_message_to_admin)
			{
				// Load the plugin language file
				$lang = JFactory::getLanguage();
				$current_lang_tag = $lang->getTag();
				$extension = 'plg_system_loginasuser';
				$base_dir = JPATH_SITE.'/plugins/system/loginasuser/';
				$language_tag = (!empty($current_lang_tag)) ? $current_lang_tag :
'en-GB';
				$reload = true;
				$lang->load($extension, $base_dir, $language_tag, $reload);

				// Send email
				$mailer = JFactory::getMailer();
				$config = new JConfig();
				$sitename = $config->sitename;
				$email_from = $config->mailfrom;
				$email_fromname = $config->fromname;
				$sender = array($email_from, $email_fromname);
				$mailer->setSender($sender);
				$recipient = (!empty($admin_email) && filter_var($admin_email,
FILTER_VALIDATE_EMAIL)) ? $admin_email : $email_from;
				$mailer->addRecipient($recipient);
				$body = JText::_('PLG_LOGINASUSER_EMAIL_BODY');
				$mailer->setSubject(JText::sprintf(JText::_('PLG_LOGINASUSER_EMAIL_SUBJECT'),
$user->username, $sitename));
				$mailer->isHTML(true);
				$mailer->Encoding = 'base64';
				$mailer->setBody($body);
				$mailer->Send();				
			}

			// redirect to user profile page
			if (Factory::getApplication()->isClient('site'))
			{
                // Show a success message to the Admin after login as a
User
                if ($show_success_message)
                {
                    // Load the plugin language file to get the
translations of the base language
                    $lang = JFactory::getLanguage();
                    $current_lang_tag = $lang->getTag();
                    $extension = 'plg_system_loginasuser';
                    $base_dir =
JPATH_SITE.'/plugins/system/loginasuser/';
                    $reload = true;
                    $lang->load($extension, $base_dir,
$current_lang_tag, $reload);
                    $success_message =
Text::sprintf('PLG_LOGINASUSER_SUCCESS_MESSAGE', $user->name,
$user->username);

                    // Log the message
                    JLog::add($success_message, JLog::INFO,
'plg_system_loginasuser');

                    // Show the message at the frontend
                   
JFactory::getApplication()->enqueueMessage($success_message,
'Success');
                }

                // Redirect the Admin to the homepage
                $url_redirect = (!empty($url_redirect)) ? $url_redirect :
'index.php?logged_in_as_a_user=success';
                $app->redirect(JRoute::_($url_redirect, false));
			}
			elseif
(Factory::getApplication()->isClient('administrator'))
			{
				$url_redirect = (!empty($url_redirect)) ? $url_redirect :
'index.php?option=com_loginasuser';
				$app->redirect($url_redirect);
			}
		}
	}

	/**
	 * Check if token is valid and return the user id of the admin that has
been logged in as user
	 *
	 * @param [int] $token
	 * @return void
	 */
	private function checkToken($token)
	{
		if (empty($token))
		{
			return;
		}

		// Allowed group ids to login as any user
		$plugin = JPluginHelper::getPlugin('system',
'loginasuser');
		$params = new JRegistry($plugin->params);
		$allowed_usergroups_ids = $params->get('allowed_usergroups',
"7,8");
		if (!is_array($allowed_usergroups_ids)) {
			$allowed_usergroups_ids = ArrayHelper::toInteger(explode(',',
$allowed_usergroups_ids));
		}

		// Get the session IDs by userid, user_agent, and ip_address
		$db = JFactory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName('a.userid'));
		$query->from($db->quoteName('#__session',
'a'));
        $query->join('LEFT',
$db->quoteName('#__users', 'users') . ' ON
' . $db->quoteName('users.id') . ' = ' .
$db->quoteName('a.userid'));
        $query->join('LEFT',
$db->quoteName('#__user_usergroup_map', 'ugroupmap')
. ' ON ' . $db->quoteName('ugroupmap.user_id') .
' = ' . $db->quoteName('a.userid'));
		$query->where($db->quoteName('a.session_id') . ' =
'.  $db->quote($token));
		$query->where($db->quoteName('ugroupmap.group_id') .
' IN (' . implode(',', $allowed_usergroups_ids) .
')');

		try
		{
			$db->setQuery($query);
			return (int) $db->loadResult();
		}
		catch (RuntimeException $e)
		{
			Factory::getApplication()->enqueueMessage($e->getMessage(),
'error');
            return;
		}
	}

	/**
	 * Check if the logged in Admin user can use the LoginAsUser functionality
	 *
	 * @param [int] $user_id
	 * @return boolean
	 */
	private function canLoginAsUser($admin_user_id, $user_id)
	{
		if ($admin_user_id === 0)
		{
			return false;
		}

		// get params
		$plugin = JPluginHelper::getPlugin('system',
'loginasuser');
		$params = new JRegistry($plugin->params);

		// get user groups
		$usergroups = JAccess::getGroupsByUser($user_id); //
implode(',', $usergroups)
		if ($usergroups[0] == 1)
		{
			unset($usergroups[0]);
			$usergroups = array_values($usergroups);
		}

		// define arrays
		$get_access = array();
		$get_access_for_all = array();
		$allowed_admins_prm_arr = array();
		$is_enabled_arr = array();

		foreach ($usergroups as $usergroup_id)
		{
			$is_enabled = $params->get('enable_'.$usergroup_id,
'1');
			$allowed_admins_prm = $params->get('users_'.$usergroup_id);

			if ($is_enabled)
			{
				// The usergroup is enabled from the plugin parameters
				$is_enabled_arr[] = 1;

				if (!empty($allowed_admins_prm))
				{
					if (in_array($admin_user_id, $allowed_admins_prm))
					{
						// Has access because the logged in admin user is in the allowed list
						$get_access[] = 1;
					}
					else
					{
						// No access because the logged in admin user is not in the allowed
list
						$get_access[] = 0;
					}
				}
				else
				{
					// Has access because this usergroup is open for all (blank input
field)
					$get_access_for_all[] = 1;
				}

				if (isset($allowed_admins_prm[0]))
				{
					$allowed_admins_prm_arr[] = $allowed_admins_prm[0];
				}
			}
			else
			{
				// The usergroup is disabled from the plugin parameters
				$is_enabled_arr[] = 0;
			}

		}

		if (array_sum($is_enabled_arr) > 0 && array_sum($get_access)
> 0) // usergroup is active and access for specific users
		{
			// Can login as user
			return true;
		}
		elseif (array_sum($is_enabled_arr) > 0 &&
array_sum($allowed_admins_prm_arr) == 0) // usergroup is active and access
for all
		{
			// Can login as user
			return true;
		}
		else
		{
			// Cannot login as user
			return false;
		}
	}
}PK�X�[�U���loginasuser/loginasuser.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="2.5" type="plugin"
group="system" method="upgrade">
	<name>PLG_SYSTEM_LOGINASUSER</name>
	<author>Web357 (Yiannis Christodoulou)</author>
	<creationDate>07-Dec-2022</creationDate>
	<copyright>Copyright (©) 2014-2022 Web357. All rights
reserved.</copyright>
	<license>GNU/GPLv3,
http://www.gnu.org/licenses/gpl-3.0.html</license>
	<authorEmail>support@web357.com</authorEmail>
	<authorUrl>https:/www.web357.com</authorUrl>
	<version>3.5.9</version>
	<variant>pro</variant>
	<description>This plugin helps admin users to login to the front-end
as a specific user. It is useful for websites where the admin user needs to
check if a user can see their order(s) correctly, if a form was filled out
correctly, or any issues with a user personal details, etc. The Admin user
will be accessing all this information as the external User in order to
replicate any issues and assist the user.</description>

	<files>
		<folder>assets</folder>
		<folder>com_users_helper_files</folder>
		<folder>elements</folder>
		<folder>language</folder>
		<filename
plugin="loginasuser">loginasuser.php</filename>
		<filename>index.html</filename>
		<filename>script.install.helper.php</filename>
	</files>

	<scriptfile>script.install.php</scriptfile>

	<config>
		<fields name="params"
addfieldpath="/plugins/system/web357framework/elements">

			<fieldset name="basic" label="Login as User -
Parameters">

				<!-- BEGIN: Version Check -->
				<field type="header"
label="W357FRM_HEADER_VERSION_CHECK" />
				<field name="info" id="info"
type="info" extension_type="plugin"
extension_name="loginasuser"
real_name="PLG_SYSTEM_LOGINASUSER" plugin_type="system"
label=""
addfieldpath="/plugins/system/web357framework/elements" />
				<!-- END: Version Check -->

				<!-- BEGIN: Check if Web357 Framework plugin exists -->
				<field name="w357frmrk" id="w357frmrk"
type="w357frmrk"
addfieldpath="/plugins/system/loginasuser/elements" />
				<!-- END: Check if Web357 Framework plugin exists -->

				<field type="header"
label="W357FRM_HEADER_PARAMETERS" />

				<field name="loginasuserinaction"
id="loginasuserinaction" type="loginasuserinaction"
label=""
addfieldpath="/plugins/system/loginasuser/elements" />

				<field name="allowed_usergroups"
type="usergrouplist"
label="PLG_LOGINASUSER_ALLOWED_USERGROUPS_LBL"
description="PLG_LOGINASUSER_ALLOWED_USERGROUPS_DESC"
default="7,8" multiple="true" />

				<field name="login_system" type="radio"
class="btn-group btn-group-yesno" default="joomla"
label="PLG_LOGINASUSER_LOGINSYSTEM_LBL"
description="PLG_LOGINASUSER_LOGINSYSTEM_DESC">
					<option
value="joomla">PLG_LOGINASUSER_JOOMLA_LBL</option>
					<option
value="k2">PLG_LOGINASUSER_K2_LBL</option>
					<option
value="ExtendedReg">PLG_LOGINASUSER_EXTENDEDREG_LBL</option>
				</field>

				<field
						name="show_success_message"
						type="radio"
						class="btn-group btn-group-yesno"
						default="1"
						label="PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_LBL"
						description="PLG_LOGINASUSER_SHOW_SUCCESS_MESSAGE_DESC">
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field name="send_message_to_admin" type="radio"
class="btn-group btn-group-yesno" default="1"
label="PLG_LOGINASUSER_INFORM_ADMIN_LBL"
description="PLG_LOGINASUSER_INFORM_ADMIN_DESC">
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field name="admin_email" type="email"
validate="email"
label="PLG_LOGINASUSER_ADMIN_EMAIL_LBL" default=""
description="PLG_LOGINASUSER_ADMIN_EMAIL_DESC"
size="25" showon="send_message_to_admin:1" />

				<field
				name="url_redirection_type_after_login"
				type="list"
				default="link"
				label="PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_LBL"
				description="PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_DESC">
					<option
value="link">PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_LINK_OPTION</option>
					<option
value="menu_item">PLG_LOGINASUSER_URL_REDIRECT_TYPE_AFTER_LOGIN_MENU_ITEM_OPTION</option>
				</field>

				<field
				name="url_redirect"
				type="url"
				default="index.php?logged_in_as_a_user=success"
				label="PLG_LOGINASUSER_URL_REDIRECT_LBL"
				description="PLG_LOGINASUSER_URL_REDIRECT_DESC"
				showon="url_redirection_type_after_login:link"
				size="50"
				/>

				<field
				name="redirect_to_a_menu_item"
				type="menuitem"
				default=""
				label="PLG_LOGINASUSER_MENUITEM_REDIRECT_LBL"
				description="PLG_LOGINASUSER_MENUITEM_REDIRECT_DESC"
				showon="url_redirection_type_after_login:menu_item"
				/>

				<field
				name="login_as_type"
				type="list"
				default="username"
				label="PLG_LOGINASUSER_LOGIN_AS_TYPE_LBL"
				description="PLG_LOGINASUSER_LOGIN_AS_TYPE_DESC">
					<option
value="username">PLG_LOGINASUSER_LOGIN_AS_TYPE_USERNAME_OPTION</option>
					<option
value="name">PLG_LOGINASUSER_LOGIN_AS_TYPE_NAME_OPTION</option>
				</field>

				<field
				name="login_as_type_characters_limit"
				type="list"
				default="0"
				label="PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_LBL"
				description="PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_DESC">
					<option value="0"
selected="">PLG_LOGINASUSER_LOGIN_AS_TYPE_CHARACTERS_LIMIT_ALL_OPTION</option>
					<option value="1">1</option>
					<option value="2">2</option>
					<option value="3">3</option>
					<option value="4">4</option>
					<option value="5">5</option>
					<option value="6">6</option>
					<option value="7">7</option>
					<option value="8">8</option>
					<option value="9">9</option>
					<option value="10">10</option>
					<option value="11">11</option>
					<option value="12">12</option>
					<option value="13">13</option>
					<option value="14">14</option>
					<option value="15">15</option>
				</field>

				<field name="displayed_text" type="text"
default="Login as %s »"
label="PLG_LOGINASUSER_DISPLAYED_TEXT_LBL"
description="PLG_LOGINASUSER_DISPLAYED_TEXT_DESC" />

				<field name="custom_css" type="textarea"
default="" label="PLG_LOGINASUSER_CUSTOM_CSS_LBL"
description="PLG_LOGINASUSER_CUSTOM_CSS_DESC" rows="6"
cols="50" filter="raw" />

				<!-- BEGIN: JED Review -->
				<field name="jedreview" id="jedreview"
type="jedreview" extension_type="module"
extension_name="loginasuser"
real_name="PLG_SYSTEM_LOGINASUSER"
plugin_type="authentication" label=""
addfieldpath="/plugins/system/web357framework/elements" />
				<!-- END: JED Review -->

			</fieldset>

			<fieldset name="description"
label="W357FRM_HEADER_DESCRIPTION">

				<!-- BEGIN: Description -->
				<field type="header"
label="W357FRM_HEADER_DESCRIPTION" />
				<field name="description" id="description"
type="description" extension_type="plugin"
extension_name="loginasuser"
real_name="PLG_SYSTEM_LOGINASUSER" plugin_type="system"
label=""
addfieldpath="/plugins/system/web357framework/elements" />
				<!-- END: Description -->

				<!-- BEGIN: Version Check -->
				<field type="header"
label="W357FRM_HEADER_VERSION_CHECK" />
				<field name="info" id="info"
type="info" extension_type="plugin"
extension_name="loginasuser"
real_name="PLG_SYSTEM_LOGINASUSER" plugin_type="system"
label=""
addfieldpath="/plugins/system/web357framework/elements" />
				<!-- END: Version Check -->

			</fieldset>

			<fieldset name="about"
label="W357FRM_HEADER_ABOUT_WEB357">

				<!-- BEGIN: About Web357 -->
				<field type="header"
label="W357FRM_HEADER_ABOUT_WEB357" />
				<field name="about" id="about"
type="about" label=""
addfieldpath="/plugins/system/web357framework/elements" />
				<!-- END: About Web357 -->

			</fieldset>

		</fields>
	</config>

	<updateservers><server type="extension"
priority="1" name="Login as User (pro
version)"><![CDATA[https://updates.web357.com/loginasuser/loginasuser_pro.xml]]></server></updateservers>

</extension>PK�X�[?p|�-=-=%loginasuser/script.install.helper.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

class PlgSystemLoginasuserInstallerScriptHelper
{
	public $name            = '';
	public $alias           = '';
	public $extname         = '';
	public $extension_type  = '';
	public $plugin_folder   = 'system';
	public $module_position = 'web357';
	public $client_id       = 0;
	public $install_type    = 'install';
	public $show_message    = true;
	public $db              = null;
	public $softbreak       = null;
	public $mini_version 	= null;

	public function __construct(&$params)
	{
		$this->extname = $this->extname ?: $this->alias;
		$this->db      = JFactory::getDbo();

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$this->mini_version =
$short_version[0].'.'.$short_version[1]; // 3.8
	}

	public function preflight($route, $adapter)
	{
		if (!in_array($route, array('install', 'update')))
		{
			return true;
		}

		JFactory::getLanguage()->load('plg_system_web357installer',
JPATH_PLUGINS . '/system/web357installer');

		if ($this->show_message && $this->isInstalled())
		{
			$this->install_type = 'update';
		}

		if ($this->onBeforeInstall($route) === false)
		{
			return false;
		}

		return true;
	}

	public function postflight($route, $adapter)
	{
		$this->removeGlobalLanguageFiles();

		if (version_compare($this->mini_version, "4.0",
"<"))
		{
			$this->removeUnusedLanguageFiles();
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, $this->getMainFolder());

		if (!in_array($route, array('install', 'update')))
		{
			return true;
		}

		$this->updateHttptoHttpsInUpdateSites();

		if ($this->onAfterInstall($route) === false)
		{
			return false;
		}

		if ($route == 'install')
		{
			$this->publishExtension();
		}

		if ($this->show_message)
		{
			$this->addInstalledMessage();
		}

		JFactory::getCache()->clean('com_plugins');
		JFactory::getCache()->clean('_system');

		return true;
	}

	public function isInstalled()
	{
		if ( ! is_file($this->getInstalledXMLFile()))
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($this->extension_type))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName()));
		$this->db->setQuery($query, 0, 1);
		$result = $this->db->loadResult();

		return empty($result) ? false : true;
	}

	public function getMainFolder()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				return JPATH_PLUGINS . '/' . $this->plugin_folder .
'/' . $this->extname;

			case 'component' :
				return JPATH_ADMINISTRATOR . '/components/com_' .
$this->extname;

			case 'module' :
				return JPATH_SITE . '/modules/mod_' . $this->extname;

			case 'library' :
				return JPATH_SITE . '/libraries/' . $this->extname;
		}
	}

	public function getInstalledXMLFile()
	{
		return $this->getXMLFile($this->getMainFolder());
	}

	public function getCurrentXMLFile()
	{
		return $this->getXMLFile(__DIR__);
	}

	public function getXMLFile($folder)
	{
		switch ($this->extension_type)
		{
			case 'module' :
				return $folder . '/mod_' . $this->extname .
'.xml';

			default :
				return $folder . '/' . $this->extname . '.xml';
		}
	}

	public function uninstallExtension($extname, $type = 'plugin',
$folder = 'system', $show_message = true)
	{
		if (empty($extname))
		{
			return;
		}

		$folders = array();

		switch ($type)
		{
			case 'plugin';
				$folders[] = JPATH_PLUGINS . '/' . $folder . '/' .
$extname;
				break;

			case 'component':
				$folders[] = JPATH_ADMINISTRATOR . '/components/com_' .
$extname;
				$folders[] = JPATH_SITE . '/components/com_' . $extname;
				break;

			case 'module':
				$folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' .
$extname;
				$folders[] = JPATH_SITE . '/modules/mod_' . $extname;
				break;
		}

		if ( ! $this->foldersExist($folders))
		{
			return;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName($type,
$extname)))
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($type));

		if ($type == 'plugin')
		{
			$query->where($this->db->quoteName('folder') . '
= ' . $this->db->quote($folder));
		}

		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			foreach ($folders as $folder)
			{
				JFolder::delete($folder);
			}

			return;
		}

		$ignore_ids =
JFactory::getApplication()->getUserState('rl_ignore_uninstall_ids',
array());

		if (JFactory::getApplication()->input->get('option') ==
'com_installer' &&
JFactory::getApplication()->input->get('task') ==
'remove')
		{
			// Don't attempt to uninstall extensions that are already selected
to get uninstalled by them selves
			$ignore_ids = array_merge($ignore_ids,
JFactory::getApplication()->input->get('cid', array(),
'array'));
			JFactory::getApplication()->input->set('cid',
array_merge($ignore_ids, $ids));
		}

		$ids = array_diff($ids, $ignore_ids);

		if (empty($ids))
		{
			return;
		}

		$ignore_ids = array_merge($ignore_ids, $ids);
		JFactory::getApplication()->setUserState('rl_ignore_uninstall_ids',
$ignore_ids);

		foreach ($ids as $id)
		{
			$tmpInstaller = new JInstaller;
			$tmpInstaller->uninstall($type, $id);
		}

		if ($show_message)
		{
			JFactory::getApplication()->enqueueMessage(
				JText::sprintf(
					'COM_INSTALLER_UNINSTALL_SUCCESS',
					JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type))
				)
			);
		}
	}

	public function foldersExist($folders = array())
	{
		foreach ($folders as $folder)
		{
			if (is_dir($folder))
			{
				return true;
			}
		}

		return false;
	}

	public function uninstallPlugin($extname, $folder = 'system',
$show_message = true)
	{
		$this->uninstallExtension($extname, 'plugin', $folder,
$show_message);
	}

	public function uninstallComponent($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'component', null,
$show_message);
	}

	public function uninstallModule($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'module', null,
$show_message);
	}

	public function publishExtension()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				$this->publishPlugin();

			case 'module' :
				$this->publishModule();
		}
	}

	public function publishPlugin()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('enabled') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->extname))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote($this->plugin_folder));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function publishModule()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		// check if module is already in the modules_menu table (meaning is is
already saved)
		$query->clear()
			->select($this->db->quoteName('moduleid'))
			->from('#__modules_menu')
			->where($this->db->quoteName('moduleid') . ' =
' . (int) $id);
		$this->db->setQuery($query, 0, 1);
		$exists = $this->db->loadResult();

		if ($exists)
		{
			return;
		}

		// Get highest ordering number in position
		$query->clear()
			->select($this->db->quoteName('ordering'))
			->from('#__modules')
			->where($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id)
			->order('ordering DESC');
		$this->db->setQuery($query, 0, 1);
		$ordering = $this->db->loadResult();
		$ordering++;

		// publish module and set ordering number
		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('published') . ' =
1')
			->set($this->db->quoteName('ordering') . ' =
' . (int) $ordering)
			->set($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('id') . ' = '
. (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		// add module to the modules_menu table
		$query->clear()
			->insert('#__modules_menu')
			->columns(array($this->db->quoteName('moduleid'),
$this->db->quoteName('menuid')))
			->values((int) $id . ', 0');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function addInstalledMessage()
	{
		JFactory::getApplication()->enqueueMessage(
			JText::sprintf(
				JText::_($this->install_type == 'update' ?
'W357_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' :
'W357_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY'),
				'<strong>' . JText::_($this->name) .
'</strong>',
				'<strong>' . $this->getVersion() .
'</strong>',
				$this->getFullType()
			)
		);
	}

	public function getPrefix()
	{
		switch ($this->extension_type)
		{
			case 'plugin';
				return JText::_('plg_' .
strtolower($this->plugin_folder));

			case 'component':
				return JText::_('com');

			case 'module':
				return JText::_('mod');

			case 'library':
				return JText::_('lib');

			default:
				return $this->extension_type;
		}
	}

	public function getElementName($type = null, $extname = null)
	{
		$type    = is_null($type) ? $this->extension_type : $type;
		$extname = is_null($extname) ? $this->extname : $extname;

		switch ($type)
		{
			case 'component' :
				return 'com_' . $extname;

			case 'module' :
				return 'mod_' . $extname;

			case 'plugin' :
			default:
				return $extname;
		}
	}

	public function getFullType()
	{
		return JText::_('W357_' . strtoupper($this->getPrefix()));
	}

	public function getVersion($file = '')
	{
		$file = $file ?: $this->getCurrentXMLFile();

		if ( ! is_file($file))
		{
			return '';
		}

		$xml = JInstaller::parseXMLInstallFile($file);

		if ( ! $xml || ! isset($xml['version']))
		{
			return '';
		}

		return $xml['version'];
	}

	public function isNewer()
	{
		if ( ! $installed_version =
$this->getVersion($this->getInstalledXMLFile()))
		{
			return true;
		}

		$package_version = $this->getVersion();
		return version_compare($installed_version, $package_version,
'<=');
	}

	public function canInstall()
	{
		// The extension is not installed yet
		if ( ! $installed_version =
$this->getVersion($this->getInstalledXMLFile()))
		{
			return true;
		}

		// The free version is installed. So any version is ok to install
		if (strpos($installed_version, 'PRO') === false)
		{
			return true;
		}

		// Current package is a pro version, so all good
		if (strpos($this->getVersion(), 'PRO') !== false)
		{
			return true;
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, __DIR__);

		JFactory::getApplication()->enqueueMessage(JText::_('W357_ERROR_PRO_TO_FREE'),
'error');

		JFactory::getApplication()->enqueueMessage(
			html_entity_decode(
				JText::sprintf(
					'W357_ERROR_UNINSTALL_FIRST',
					'<a href="//www.web357.com/product/' .
$this->url_alias . '" target="_blank">',
					'</a>',
					JText::_($this->name)
				)
			), 'error'
		);

		return false;
	}

	public function onBeforeInstall($route)
	{
		if ( ! $this->canInstall())
		{
			return false;
		}

		return true;
	}

	public function onAfterInstall($route)
	{
	}

	public function delete($files = array())
	{
		foreach ($files as $file)
		{
			if (is_dir($file) && JFolder::exists($file))
			{
				JFolder::delete($file);
			}

			if (is_file($file) && JFile::exists($file))
			{
				JFile::delete($file);
			}
		}
	}

	public function fixAssetsRules($rules =
'{"core.admin":[],"core.manage":[]}')
	{
		// replace default rules value {} with the correct initial value
		$query = $this->db->getQuery(true)
			->update($this->db->quoteName('#__assets'))
			->set($this->db->quoteName('rules') . ' = '
. $this->db->quote($rules))
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname))
			->where($this->db->quoteName('rules') . ' =
' . $this->db->quote('{}'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateHttptoHttpsInUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('location') . ' =
REPLACE('
				. $this->db->quoteName('location') . ', '
				. $this->db->quote('http://') . ', '
				. $this->db->quote('https://')
				. ')')
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('http://updates.web357%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeGlobalLanguageFiles()
	{
		if ($this->extension_type == 'library' || $this->alias
=== 'web357framework')
		{
			return;
		}

		$language_files = JFolder::files(JPATH_ADMINISTRATOR .
'/language', '\.' . $this->getPrefix() .
'_' . $this->extname . '\.', true, true);

		// Remove override files
		foreach ($language_files as $i => $language_file)
		{
			if (strpos($language_file, '/overrides/') === false)
			{
				continue;
			}

			unset($language_files[$i]);
		}

		if (empty($language_files))
		{
			return;
		}

		JFile::delete($language_files);
	}

	private function removeUnusedLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		$main_language_dir_path = JFolder::folders(__DIR__ .
'/language');

		$installed_languages = array_merge(
			JFolder::folders(JPATH_SITE . '/language'),
			JFolder::folders(JPATH_ADMINISTRATOR . '/language')
		);

		$languages = array();
		if (is_array($main_language_dir_path) &&
is_array($installed_languages))
		{
			$languages = array_diff(
				$main_language_dir_path,
				$installed_languages 
			);
		}

		$delete_languages = array();

		if (!empty($languages))
		{
			foreach ($languages as $language)
			{
				$delete_languages[] = $this->getMainFolder() .
'/language/' . $language;
			}
		}

		if (empty($delete_languages))
		{
			return;
		}

		// Remove folders
		$this->delete($delete_languages);
	}
}PK�X�[��)�zzloginasuser/script.install.phpnu�[���<?php
/* ======================================================
 # Login as User for Joomla! - v3.5.9 (pro version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/login-as-user
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

require_once __DIR__ . '/script.install.helper.php';

class PlgSystemLoginasuserInstallerScript extends
PlgSystemLoginasuserInstallerScriptHelper
{
	public $name           	= 'Login as User';
	public $alias          	= 'loginasuser';
	public $extension_type 	= 'plugin';
	public $plugin_folder   = 'system';

	// Find the default template name in joomla! backend
	function getDefaultAdminTemplate()
	{
		// connect to db
		$db = JFactory::getDBO();
		
		// Find the default template name in joomla! backend
		$query = 'SELECT template FROM #__template_styles WHERE client_id=1
AND home=1';
		$db->setQuery($query);
		$default_admin_template = $db->loadResult();
		
		return $default_admin_template;
	}
	
	function postflight($type, $parent) 
	{
		// connect to db
		$db = JFactory::getDBO();
			
		// Enable Plugin and Set Ordering #1
		$query = "UPDATE #__extensions SET enabled=1, ordering=1 WHERE
element='loginasuser' AND type='plugin' AND
folder='system'";
		$db->setQuery($query);
		$db->execute();
		
		// importjoomla file system
		jimport( 'joomla.filesystem.folder' );
		jimport( 'joomla.filesystem.file' );
		
		// create "html" folder
		$html_folder =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/";
		if (!JFolder::create($html_folder))
		{
			throw new Exception(JText::_('Error creating the folder: ' .
$html_folder), 500);
		}

		// create "com_users" folder
		$com_users_folder =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/";
		if (!JFolder::create($com_users_folder))
		{
			throw new Exception(JText::_('Error creating the folder: ' .
$com_users_folder), 500);
		}

		// create "users" folder
		$users_folder =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/users/";
		if (!JFolder::create($users_folder))
		{
			throw new Exception(JText::_('Error creating the folder: ' .
$users_folder), 500);
		}

		// create "user" folder
		$user_folder =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/user/";
		if (!JFolder::create($user_folder))
		{
			throw new Exception(JText::_('Error creating the folder: ' .
$user_folder), 500);
		}
		
		// BEGIN: copy files to the current admin template html folder (default
is isis)
		// users:default
		$src =
JPATH_PLUGINS."/system/loginasuser/com_users_helper_files/joomla_com_users/default.php";
		$dest =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/users/default.php";
		if (JFile::exists($src))
		{
			JFile::copy($src, $dest);
		}
		
		// user:edit
		$src =
JPATH_PLUGINS."/system/loginasuser/com_users_helper_files/joomla_com_users/edit.php";
		$dest =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/user/edit.php";
		if (JFile::exists($src))
		{
			JFile::copy($src, $dest);
		}
		// END: copy files to the current admin template html folder (default is
isis)

		$this->deleteOldFiles();
	}
	
	function uninstall($parent) 
	{
		jimport( 'joomla.filesystem.file' );
		$f =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/users/default.php";
		JFile::delete($f);

		$f =
JPATH_ADMINISTRATOR."/templates/".$this->getDefaultAdminTemplate()."/html/com_users/user/edit.php";
		JFile::delete($f);
	}
	
	private function deleteOldFiles()
	{
		$this->delete(
			array(
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/common.php',
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/edit.php',
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/j3-default-edit.php',
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/j3-default.php',
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/j4-default-edit.php',
				JPATH_SITE .
'/administrator/templates/'.$this->getDefaultAdminTemplate().'/html/com_users/users/j4-default.php',
			)
		);
	}
}PK�X�[k�G�
�
logout/logout.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.logout
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Plugin class for logout redirect handling.
 *
 * @since  1.6
 */
class PlgSystemLogout extends JPlugin
{
	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.7.3
	 */
	protected $app;

	/**
	 * Load the language file on instantiation.
	 *
	 * @var    boolean
	 * @since  3.1
	 */
	protected $autoloadLanguage = true;

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe -- event
dispatcher.
	 * @param   object  $config    An optional associative array of
configuration settings.
	 *
	 * @since   1.6
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		// If we are on admin don't process.
		if (!$this->app->isClient('site'))
		{
			return;
		}

		$hash  = JApplicationHelper::getHash('PlgSystemLogout');

		if ($this->app->input->cookie->getString($hash))
		{
			// Destroy the cookie.
			$this->app->input->cookie->set($hash, '', 1,
$this->app->get('cookie_path', '/'),
$this->app->get('cookie_domain', ''));

			// Set the error handler for E_ALL to be the class handleError method.
			JError::setErrorHandling(E_ALL, 'callback',
array('PlgSystemLogout', 'handleError'));
		}
	}

	/**
	 * Method to handle any logout logic and report back to the subject.
	 *
	 * @param   array  $user     Holds the user data.
	 * @param   array  $options  Array holding options (client, ...).
	 *
	 * @return  boolean  Always returns true.
	 *
	 * @since   1.6
	 */
	public function onUserLogout($user, $options = array())
	{
		if ($this->app->isClient('site'))
		{
			// Create the cookie.
			$this->app->input->cookie->set(
				JApplicationHelper::getHash('PlgSystemLogout'),
				true,
				time() + 86400,
				$this->app->get('cookie_path', '/'),
				$this->app->get('cookie_domain', ''),
				$this->app->isHttpsForced(),
				true
			);
		}

		return true;
	}

	/**
	 * Method to handle an error condition.
	 *
	 * @param   Exception  &$error  The Exception object to be handled.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public static function handleError(&$error)
	{
		// Get the application object.
		$app = JFactory::getApplication();

		// Make sure the error is a 403 and we are in the frontend.
		if ($error->getCode() == 403 &&
$app->isClient('site'))
		{
			// Redirect to the home page.
			$app->enqueueMessage(JText::_('PLG_SYSTEM_LOGOUT_REDIRECT'));
			$app->redirect('index.php');
		}
		else
		{
			// Render the custom error page.
			JError::customErrorPage($error);
		}
	}
}
PK�X�[�H{�$$logout/logout.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_logout</name>
	<author>Joomla! Project</author>
	<creationDate>April 2009</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SYSTEM_LOGOUT_XML_DESCRIPTION</description>
	<files>
		<filename plugin="logout">logout.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_logout.ini</language>
		<language
tag="en-GB">en-GB.plg_system_logout.sys.ini</language>
	</languages>
</extension>
PK�X�[,I���logrotation/logrotation.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.logrotation
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder;
use Joomla\Filesystem\Path;

/**
 * Joomla! Log Rotation plugin
 *
 * Rotate the log files created by Joomla core
 *
 * @since  3.9.0
 */
class PlgSystemLogrotation extends JPlugin
{
	/**
	 * Load the language file on instantiation.
	 *
	 * @var    boolean
	 * @since  3.9.0
	 */
	protected $autoloadLanguage = true;

	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.9.0
	 */
	protected $app;

	/**
	 * Database object.
	 *
	 * @var    JDatabaseDriver
	 * @since  3.9.0
	 */
	protected $db;

	/**
	 * The log check and rotation code is triggered after the page has fully
rendered.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onAfterRender()
	{
		// Get the timeout as configured in plugin parameters

		/** @var \Joomla\Registry\Registry $params */
		$cache_timeout = (int) $this->params->get('cachetimeout',
30);
		$cache_timeout = 24 * 3600 * $cache_timeout;
		$logsToKeep    = (int) $this->params->get('logstokeep',
1);

		// Do we need to run? Compare the last run timestamp stored in the
plugin's options with the current
		// timestamp. If the difference is greater than the cache timeout we
shall not execute again.
		$now  = time();
		$last = (int) $this->params->get('lastrun', 0);

		if ((abs($now - $last) < $cache_timeout))
		{
			return;
		}

		// Update last run status
		$this->params->set('lastrun', $now);

		$db    = $this->db;
		$query = $db->getQuery(true)
			->update($db->qn('#__extensions'))
			->set($db->qn('params') . ' = ' .
$db->q($this->params->toString('JSON')))
			->where($db->qn('type') . ' = ' .
$db->q('plugin'))
			->where($db->qn('folder') . ' = ' .
$db->q('system'))
			->where($db->qn('element') . ' = ' .
$db->q('logrotation'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risky to continue
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();

			$this->clearCacheGroups(array('com_plugins'), array(0, 1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		// Get the log path
		$logPath = Path::clean($this->app->get('log_path'));

		// Invalid path, stop processing further
		if (!is_dir($logPath))
		{
			return;
		}

		$logFiles = $this->getLogFiles($logPath);

		// Sort log files by version number in reserve order
		krsort($logFiles, SORT_NUMERIC);

		foreach ($logFiles as $version => $files)
		{
			if ($version >= $logsToKeep)
			{
				// Delete files which has version greater than or equals $logsToKeep
				foreach ($files as $file)
				{
					File::delete($logPath . '/' . $file);
				}
			}
			else
			{
				// For files which has version smaller than $logsToKeep, rotate
(increase version number)
				foreach ($files as $file)
				{
					$this->rotate($logPath, $file, $version);
				}
			}
		}
	}

	/**
	 * Get log files from log folder
	 *
	 * @param   string  $path  The folder to get log files
	 *
	 * @return  array   The log files in the given path grouped by version
number (not rotated files has number 0)
	 *
	 * @since   3.9.0
	 */
	private function getLogFiles($path)
	{
		$logFiles = array();
		$files    = Folder::files($path, '\.php$');

		foreach ($files as $file)
		{
			$parts    = explode('.', $file);

			/*
			 * Rotated log file has this filename format [VERSION].[FILENAME].php.
So if $parts has at least 3 elements
			 * and the first element is a number, we know that it's a rotated
file and can get it's current version
			 */
			if (count($parts) >= 3 && is_numeric($parts[0]))
			{
				$version = (int) $parts[0];
			}
			else
			{
				$version = 0;
			}

			if (!isset($logFiles[$version]))
			{
				$logFiles[$version] = array();
			}

			$logFiles[$version][] = $file;
		}

		return $logFiles;
	}

	/**
	 * Method to rotate (increase version) of a log file
	 *
	 * @param   string  $path            Path to file to rotate
	 * @param   string  $filename        Name of file to rotate
	 * @param   int     $currentVersion  The current version number
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	private function rotate($path, $filename, $currentVersion)
	{
		if ($currentVersion === 0)
		{
			$rotatedFile = $path . '/1.' . $filename;
		}
		else
		{
			/*
			 * Rotated log file has this filename format [VERSION].[FILENAME].php.
To rotate it, we just need to explode
			 * the filename into an array, increase value of first element (keep
version) and implode it back to get the
			 * rotated file name
			 */
			$parts    = explode('.', $filename);
			$parts[0] = $currentVersion + 1;

			$rotatedFile = $path . '/' . implode('.', $parts);
		}

		File::move($path . '/' . $filename, $rotatedFile);
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = JFactory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => $client_id ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache')
					);

					$cache = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}
}
PK�X�[`���DDlogrotation/logrotation.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
	<name>plg_system_logrotation</name>
	<author>Joomla! Project</author>
	<creationDate>May 2018</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.9.0</version>
	<description>PLG_SYSTEM_LOGROTATION_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="logrotation">logrotation.php</filename>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB.plg_system_logrotation.ini</language>
		<language
tag="en-GB">en-GB.plg_system_logrotation.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="cachetimeout"
					type="integer"
					label="PLG_SYSTEM_LOGROTATION_CACHETIMEOUT_LABEL"
					description="PLG_SYSTEM_LOGROTATION_CACHETIMEOUT_DESC"
					first="0"
					last="120"
					step="1"
					default="30"
					filter="int"
					validate="number"
				/>

				<field
					name="logstokeep"
					type="integer"
					label="PLG_SYSTEM_LOGROTATION_LOGSTOKEEP_LABEL"
					description="PLG_SYSTEM_LOGROTATION_LOGSTOKEEP_DESC"
					first="1"
					last="10"
					step="1"
					default="1"
					filter="int"
					validate="number"
				/>

				<field
					name="lastrun"
					type="hidden"
					default="0"
					filter="integer"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,mijo_redirect/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[��HHmijo_redirect/mijo_redirect.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php

class plgSystemMijo_redirect extends JPlugin {

	function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
	}

	function onAfterRoute() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getVar('option');
			$mijoProdId = $app->input->getInt('product_id');
			$mijoCatId = $app->input->getInt('category_id');
			$mijoOrderId = $app->input->getInt('order_id');
		} else {
			$option = JRequest::getVar('option');
			$mijoProdId = JRequest::getInt('product_id');
			$mijoCatId = JRequest::getInt('category_id');
			$mijoOrderId = JRequest::getInt('order_id');
		}


		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if( $option != 'com_mijoshop')
			return true;

		$url = null; //HIKASHOP_LIVE;
		$db = JFactory::getDBO();
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$query='SHOW TABLES LIKE
'.$db->Quote($db->getPrefix().substr(hikashop_table('mijo_prod'),3));
		$db->setQuery($query);
		$table = $db->loadResult();
		if(empty($table))
			return true;

		if( !empty($mijoProdId) && $mijoProdId > 0 ) {
			$query = "SELECT a.hk_id, b.product_name as 'name' FROM
`#__hikashop_mijo_prod` a INNER JOIN `#__hikashop_product` b ON a.hk_id =
b.product_id WHERE a.mijo_id = " . $mijoProdId . ";";
			$baseUrl = 'product&task=show';
		} else if( !empty($mijoCatId)  && $mijoCatId > 0 ) {
			$id = 'mijo-fallback';
			$alias = 'hikashop-menu-for-module-'.$id;
			$db->setQuery('SELECT id FROM
'.hikashop_table('menu',false).' WHERE
alias=\''.$alias.'\''); //Set ?
			$itemId = $db->loadResult();
			if(empty($itemId)) {
				$options = new stdClass();
				$config =& hikashop_config();
				$options->hikashop_params =
$config->get('default_params',null);
				$classMenu = hikashop_get('class.menus');
				$classMenu->loadParams($options);
				$options->hikashop_params['content_type'] =
'category';
				$options->hikashop_params['layout_type']='div';
				$options->hikashop_params['content_synchronize']='1';
				if($options->hikashop_params['columns']==1){
					$options->hikashop_params['columns']=3;
				}
				$classMenu->createMenu($options->hikashop_params, $id);
				$itemId = $options->hikashop_params['itemid'];
			}

			$query = "SELECT a.hk_id, b.category_name as 'name' FROM
`#__hikashop_mijo_cat` a INNER JOIN `#__hikashop_category` b ON a.hk_id =
b.category_id WHERE a.mijo_id = " . $mijoCatId . ";";
			$baseUrl = 'category&task=listing&Itemid='.$itemId;
		}elseif(!empty($mijoOrderId)){
			$db->setQuery('SELECT order_id FROM
'.hikashop_table('order').' WHERE
order_mijo_id='.$mijoOrderId);
			$hikaOrderId = $db->loadResult();
			if(!empty($hikaOrderId)){
				$url =
hikashop_completeLink('order&task=show&cid='.$hikaOrderId,
false, true);
				$app->redirect($url);
				return true;
			}
		}

		if( !empty($query) && !empty($baseUrl) ) {
			$db->setQuery($query);
			$link = $db->loadObject();
			if( $link ) {
				if(method_exists($app,'stringURLSafe')) {
					$name = $app->stringURLSafe(strip_tags($link->name));
				} else {
					$name = JFilterOutput::stringURLSafe(strip_tags($link->name));
				}
				$url =
hikashop_completeLink($baseUrl.'&cid='.$link->hk_id.'&name='.$name,
false, true);
			}
		}

		if( $url )
			$app->redirect($url,'','message',true);
	}
}
PK�X�[_��!��mijo_redirect/mijo_redirect.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop - Mijoshop Fallback Redirect Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to redirect imported data from
Mijoshop</description>
	<files>
		<filename
plugin="mijo_redirect">mijo_redirect.php</filename>
	</files>
	<params/>
	<config/>
</extension>
PK�X�[�#o,,#module_permission/fields/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�#o,,module_permission/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[^]K���Gmodule_permission/language/en-GB/en-GB.plg_system_module_permission.ininu�[���PLG_SYSTEM_MODULE_PERMISSION="System
- Module_permission"
PLG_SYSTEM_MODULE_PERMISSION_DESCRIPTION="module_permission"
PLG_SYSTEM_MODULE_PERMISSION_XML_DESCRIPTION="<h1>System -
Module_permission (v.1.0.0)</h1> <div style='clear:
both;'></div><p>module_permission</p><p>Created
by <a href='http://Lmskaran.com'
target='_blank'>Lmskaran</a><br
/><small>Development started 24th July,
2022</small></p>"
PLG_SYSTEM_MODULE_PERMISSION_USER_MODULE_LABEL="user module map"
PLG_SYSTEM_MODULE_PERMISSION_USER_LABEL="User"
PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_LABEL="module id"
PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_MESSAGE="Error! Please add some
text
here."PK�X�[^]K���Kmodule_permission/language/en-GB/en-GB.plg_system_module_permission.sys.ininu�[���PLG_SYSTEM_MODULE_PERMISSION="System
- Module_permission"
PLG_SYSTEM_MODULE_PERMISSION_DESCRIPTION="module_permission"
PLG_SYSTEM_MODULE_PERMISSION_XML_DESCRIPTION="<h1>System -
Module_permission (v.1.0.0)</h1> <div style='clear:
both;'></div><p>module_permission</p><p>Created
by <a href='http://Lmskaran.com'
target='_blank'>Lmskaran</a><br
/><small>Development started 24th July,
2022</small></p>"
PLG_SYSTEM_MODULE_PERMISSION_USER_MODULE_LABEL="user module map"
PLG_SYSTEM_MODULE_PERMISSION_USER_LABEL="User"
PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_LABEL="module id"
PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_MESSAGE="Error! Please add some
text
here."PK�X�[�#o,,+module_permission/language/en-GB/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�#o,,%module_permission/language/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�sL�
�
'module_permission/module_permission.phpnu�[���q<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			24th July, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module_permission.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');


/***[JCBGUI.class_extends.head.1.$$$$]***/

use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Plugin\CMSPlugin;
/***[/JCBGUI$$$$]***/


/***[JCBGUI.class_extends.comment.1.$$$$]***/
/**
 * System - Module_permission plugin.
 *
 * @package   Module_permission
 * @since     1.0.0
 *//***[/JCBGUI$$$$]***/

class PlgSystemModule_permission extends CMSPlugin
{

/***[JCBGUI.joomla_plugin.main_class_code.61.$$$$]***/
    public function __construct(&$subject, $config = array())
    {
        $this->gApp = JFactory::getApplication();
        parent::__construct($subject, $config);
    }

    public function onContentPrepareData($context, $data)
    {

        if ($context != 'com_modules.module')
            return true;

        $result= $this->authorize_user($data->id);

        if (!$result)
        {
            $app = JFactory::getApplication();
            $message = JText::_('JGLOBAL_AUTH_ACCESS_DENIED');
           
$app->redirect(JRoute::_('index.php?option=com_modules&view=modules',
false), $message, 'error');
        }

        return true;
    }

    public function authorize_user($module_id)
    {
        $module_id;
        $user= JFactory::getUser();
        $userid= $user->get('id', 0);

        if ($user->gid== 8)
            return true;

        foreach ((array)$this->params->get('user_module')
as $item) {
            if ($item->user== $userid && $item->module_id==
$module_id)
                return true;
        }
        
        return false;
    }
    /***[/JCBGUI$$$$]***/

}
PK�X�[3�SG]]'module_permission/module_permission.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="3.8"
group="system" method="upgrade">
	<name>PLG_SYSTEM_MODULE_PERMISSION</name>
	<creationDate>24th July, 2022</creationDate>
	<author>Lmskaran</author>
	<authorEmail>info@Lmskaran.com</authorEmail>
	<authorUrl>http://Lmskaran.com</authorUrl>
	<copyright>Copyright (C) 2015. All Rights Reserved</copyright>
	<license>GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html</license>
	<version>1.0.0</version>
	<description>PLG_SYSTEM_MODULE_PERMISSION_XML_DESCRIPTION</description>

	<!-- Language files -->
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_module_permission.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_module_permission.sys.ini</language>
	</languages>

	<!-- Plugin files -->
	<files>
		<filename
plugin="module_permission">module_permission.php</filename>
		<filename>index.html</filename>
		<folder>language</folder>
		<folder>fields</folder>
		<folder>rules</folder>
	</files>

	<!-- Config parameter -->
	<config>
	<fields name="params">
	<!-- default paths of basic fieldset points to the plugin -->
	<fieldset name="basic" label="basic"
		addrulepath="/plugins/system/module_permission/rules"
		addfieldpath="/plugins/system/module_permission/fields"
	>
		<!--  User_module Field. Type: Subform. (joomla) -->
	<field type="subform"
               name="user_module"
              
label="PLG_SYSTEM_MODULE_PERMISSION_USER_MODULE_LABEL"
              
layout="joomla.form.field.subform.repeatable-table"
               multiple="true"
               buttons="add,remove,move"
               default=""
               icon="list"
               max="50">
                <form hidden="true"
                      name="list_user_module_modal"
                      repeat="true">
                        <!-- User Field. Type: User. (joomla)-->
                        <field type="user"
                               name="user"
                              
label="PLG_SYSTEM_MODULE_PERMISSION_USER_LABEL" />
                        <!-- Module_id Field. Type: Text. (joomla)-->
                        <field type="text"
                               name="module_id"
                              
label="PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_LABEL"
                               size="10"
                               maxlength="50"
                               default=""
                               class="text_area"
                               readonly="false"
                               disabled="false"
                               required="false"
                               filter="INT"
                              
message="PLG_SYSTEM_MODULE_PERMISSION_MODULE_ID_MESSAGE"
                               autocomplete="on" />
                </form>
        </field>
	</fieldset>
	</fields>
	</config>
</extension>PK�X�[�#o,,"module_permission/rules/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�#o,,nossloutsidecheckout/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�;s�;;-nossloutsidecheckout/nossloutsidecheckout.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemNossloutsidecheckout extends JPlugin
{
	function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		if(!isset($this->params)){
			$plugin = JPluginHelper::getPlugin('system',
'nossloutsidecheckout');
			$this->params = new JRegistry(@$plugin->params);
		}
	}


	function onAfterRoute(){
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if (@$_REQUEST['tmpl']=='component') return true;

		if(empty($_REQUEST['ctrl'])) $_REQUEST['ctrl'] =
@$_REQUEST['view'];
		if(empty($_REQUEST['task'])) $_REQUEST['task'] =
@$_REQUEST['layout'];
		if(@$_REQUEST['option']=='com_hikashop' &&
(@$_REQUEST['ctrl']=='checkout' ||
@$_REQUEST['ctrl']=='order' &&
@$_REQUEST['task']=='pay')){
			return true;
		}
		if(@$_REQUEST['option']=='com_ccidealplatform'
&& @$_REQUEST['task']=='bankform'){
			return true;
		}
		if(!empty($_POST)){
			return true;
		}

		if (!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;

		if (hikashop_isSSL()){
			$app->setUserState('com_hikashop.ssl_redirect',0);
			$status = $this->params->get('status','');
			$status = ($status=='301'?true:false);
			$app->redirect(str_replace('https://','http://',hikashop_currentURL()),'','message',$status);
		}

		return true;
	}
}
PK�X�[����hh-nossloutsidecheckout/nossloutsidecheckout.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="1.5"
method="upgrade" group="system">
	<name>Hikashop no SSL outside checkout Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Hikashop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin redirects to HTTP when a page is accessed
with SSL and that it's not the checkout of
HikaShop</description>
	<files>
		<filename
plugin="nossloutsidecheckout">nossloutsidecheckout.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param type="radio" default="303"
description="Redirection status" label="Redirection
status" name="status">
			<option value="301">301</option>
			<option value="303">303</option>
		</param>
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field type="radio" default="303"
description="Redirection status" label="Redirection
status" name="status">
					<option value="301">301</option>
					<option value="303">303</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[��:�'�'notifly/notifly.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Content.joomla
 *
 * @copyright   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.registry.registry');

// Autoload Composer
require JPATH_SITE .
'/administrator/components/com_notifly/vendor/autoload.php';

// Register Event Helper
JLoader::register('NotiflyEventsHelper', JPATH_SITE .
'/administrator/components/com_notifly/helpers/events.php');
// Register Message Helper
JLoader::register('NotiflyMessageHelper', JPATH_SITE .
'/administrator/components/com_notifly/helpers/message.php');

/**
 * Example Content Plugin
 *
 * @since  1.6
 */
class PlgSystemNotifly extends JPlugin
{
	/*
	* construct and load group plugins
	*
	* @var object
	* @since 1.0
	*/
	protected $configs = null;
	// Application objet
	protected $app;
	// Document object
	protected $document;

	function __construct( &$subject, $params ) {

		parent::__construct( $subject, $params );
		JPluginHelper::importPlugin('notifly');

		$this->app 				= JFactory::getApplication();
		$this->document 		= JFactory::getDocument();

		// Load lang
		$lang = JFactory::getLanguage();
		$extension = 'com_notifly';
		$base_dir = JPATH_ADMINISTRATOR;
		$lang = JFactory::getLanguage();
		$language_tag = $lang->getTag();
		$reload = true;
		$lang->load($extension, $base_dir, $language_tag, $reload);
	}


	/**
	 * Add the canonical uri to the head.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function onAjaxNotifly()
	{
		//
index.php?option=com_ajax&plugin=notifly&format=json&action=click
		if (!$this->app->isClient('site'))
		{
			return;
		}

		$action = $this->app->input->get('action',
'view');

		if($action == 'click'){
			$this->updateClick();
		}else{
			$this->updateView();		
		}
		return true;
	}

	public function updateClick(){
		$db = JFactory::getDbo();
		// get extensionid
		$query = $db->getQuery(true)
					->select('*')
					->from('#__notifly_logs')
					->where($db->quoteName('date') . ' = ' .
$db->quote(JFactory::getDate()->format('Y-m-d') . '
00:00:00'));
		$db->setQuery($query);
		
		$result = $db->loadObject();

		$log = new stdClass();
		$log->click = $result->click+1;
		$log->date = JFactory::getDate()->format('Y-m-d') .
' 00:00:00';
		$db->updateObject('#__notifly_logs', $log,
'date');

		return true;
	}

	public function updateView()
	{

		// check if has record for today
		$db = JFactory::getDbo();
		// get extensionid
		$query = $db->getQuery(true)
					->select('*')
					->from('#__notifly_logs')
					->where($db->quoteName('date') . ' = ' .
$db->quote(JFactory::getDate()->format('Y-m-d') . '
00:00:00'));
		$db->setQuery($query);
		
		$result = $db->loadObject();
		
		if(!isset($result->id) or !$result->id){
			// incert record
			$log = new stdClass();
			$log->date = JFactory::getDate()->format('Y-m-d') .
' 00:00:00';
			$log->view = 1;

			// Insert the object into the user profile table.
			$db->insertObject('#__notifly_logs', $log);
		}
		else
		{
			// update record
			$log = new stdClass();
			$log->view = $result->view+1;
			$log->date = JFactory::getDate()->format('Y-m-d') .
' 00:00:00';
			$db->updateObject('#__notifly_logs', $log,
'date');
		}

		return true;
	}

	/**
	 * Add the canonical uri to the head.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function onAfterDispatch()
	{
		
		if (!$this->app->isClient('site') ||
$this->document->getType() !== 'html')
		{
			return;
		}
		
		if ($this->app->input->get('tmpl') ==
'component')
		{
			return;
		}

		$comInfo = JComponentHelper::getComponent('com_notifly');
		// hide for loged in users if enabled
		if($comInfo->params->get('hide_user') &&
JFactory::getUser()->id){
			return;
		}

		$options = [];
		$options['items'] =
NotiflyEventsHelper::getList($comInfo->params->get('notifly_random',
0));
		$options['params'] = [
			'notifly_random' =>
$comInfo->params->get('notifly_random', 0),
			'notifly_loop' =>
$comInfo->params->get('notifly_loop', 0),
			'hide_mobile' =>
$comInfo->params->get('hide_mobile', 0),
			'hide_desktop' =>
$comInfo->params->get('hide_desktop', 0),
			'hide_user' =>
$comInfo->params->get('hide_user', 0),
			'allow_close' =>
$comInfo->params->get('allow_close', 0),
			'notify_delay_random' =>
$comInfo->params->get('notify_delay_random', 0), // later
			'notify_newtab' =>
$comInfo->params->get('notify_newtab', 0), // later
			'notify_box_link' =>
$comInfo->params->get('notify_box_link', 0), // later
			'notify_max' =>
$comInfo->params->get('notify_max', 0), // later
			'notify_max_item' =>
$comInfo->params->get('notify_max_item', 0), // later
			'notify_max_time' =>
$comInfo->params->get('notify_max_time', 0), // later
			'initial_delay' =>
$comInfo->params->get('initial_delay', 0), // later
			'max_bypage' =>
$comInfo->params->get('max_bypage', 20),
			'display_time' =>
$comInfo->params->get('display_time', 0),
			'delay_time' =>
$comInfo->params->get('delay_time', 0),
			'box_position' =>
$comInfo->params->get('box_position', 0), // later
			'mobile_position' =>
$comInfo->params->get('mobile_position', 0), // later
			'expire_cookie' =>
$comInfo->params->get('expire_cookie', 48),
			'wrapper_width' =>
$comInfo->params->get('wrapper_width', '300px'),
			'enable_hitcounter' =>
$comInfo->params->get('enable_hitcounter', 1),
			'show_branding' =>
$comInfo->params->get('show_branding', 1)
		];

		$options['baseurl'] = Juri::root('true');
		$this->document->addScriptOptions('notifly', $options);

		JHtml::_('jquery.framework');
		JHtml::_('script', 'com_notifly/showdown.min.js',
array('version' => 'auto', 'relative'
=> true));
		JHtml::_('script', 'com_notifly/mustache.min.js',
array('version' => 'auto', 'relative'
=> true));
		JHtml::_('script', 'com_notifly/cookies.min.js',
array('version' => 'auto', 'relative'
=> true));
		JHtml::_('script', 'com_notifly/notifly-core.js',
array('version' => 'auto', 'relative'
=> true));
		JHtml::_('stylesheet',
'com_notifly/notifly-core.min.css', array('version'
=> 'auto', 'relative' => true));

		return true;
	}

	/**
	 * Adds additional fields to the user editing form
	 *
	 * @param   JForm  $form  The form to be altered.
	 * @param   mixed  $data  The associated data for the form.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function onContentPrepareForm($form, $data)
	{
		if (!($form instanceof JForm))
		{
			return false;
		}		

		$this->handlePluginModal($form, $data);
		$this->handleConfigView($form, $data);

		return;

	}

	public function handlePluginModal($form, $data){
        // Check we are manipulating a valid form.
        $name = $form->getName();
        
        if (!in_array($name, array('com_plugins.plugin')))
        {
            return;
        }

        $input = JFactory::getApplication()->input;
        $layout = $input->get('layout');
        $source = $input->get('source');
        if(is_object($data)){
            $folder = $data->get('folder');
        }else{
            $folder = isset($data['folder']) ?
$data['folder'] : '';
        }
        
        if($layout == 'modal' && isset($folder)
&& $folder == 'notifly')
        {
            JHtml::_('script',
'com_notifly/admin-notifly.js', array('version' =>
'auto', 'relative' => true));
            JHtml::_('stylesheet',
'com_notifly/notifly-admin.css', array('version' =>
'auto', 'relative' => true));
        }
    }

	public function handleConfigView($form, $data)
	{
		// Check we are manipulating a valid form.
		$name = $form->getName();
		if (!in_array($name, array('com_config.component')))
		{
			return;
		}

		$input = JFactory::getApplication()->input;
		$component = $input->get('component');
		$view = $input->get('view');

		if($component == 'com_notifly' && $view ==
'component')
		{
			JFactory::getDocument()->addStyleDeclaration('#configTabs
a[href*="#design"], #configTabs
a[href*="#behavior"]{display: none;}');
		}
	}

	public function onAfterRender(){

    	if (!$this->app->isClient('site') ||
$this->document->getType() !== 'html')
		{
			return;
		}

		if ($this->app->input->get('tmpl') ==
'component')
		{
			return;
		}
		
		// Init Mustache 
		$m = new Mustache_Engine;
		$events = NotiflyEventsHelper::getEvents();

	    $eventsHtmlStart = '<div id="notifly"
class="notifly-position-bottom-left">';
	    $eventsHtmlEnd = '</div>';
	    $html = '';
	    $template = '
				<div class="notifly-inner">
					<img src="{{image_url}}" alt={{name}} />
					<div class="notifly-content">
						<div class="notifly-title">{{name}} from
{{country}}</div>
					</div>
				</div>
	    ';

	    foreach ($events as $key => $event) {
	    	$message = NotiflyMessageHelper::parseMessage($event->message,
$event);
	    	$html .= $message;
	    	//$tmptemplate = $this->parseTemplate($template, $message,
$event);
	    }
	    
    	JResponse::appendBody($eventsHtmlStart. $html . $eventsHtmlEnd);
  	}

  	public function onExtensionAfterSave($option, $data) {

        if ( ($option == 'com_config.component') && (
$data->element == 'com_notifly' ) ) {

            $params = new JRegistry;
            $params->loadString($data->params);
            
            $username   = $params->get('username');
            $key 		= $params->get('key');

            if(!empty($username) and !empty($key) )
            {

                $extra_query = 'username=' .
urlencode($username);
                $extra_query .='&amp;key=' . urlencode($key);

                $db = JFactory::getDbo();
                
                $fields = array(
                    $db->quoteName('extra_query') .
'=' . $db->quote($extra_query),
                    $db->quoteName('last_check_timestamp') .
'=0'
                );

                // Update site
                $query = $db->getQuery(true)
                   
->update($db->quoteName('#__update_sites'))
                    ->set($fields)
                   
->where($db->quoteName('name').'='.$db->quote('Notifly
Update Site'));
                $db->setQuery($query);
                $db->execute();
            }
        }
    }
	
}
PK�X�[�vVLeenotifly/notifly.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_notifly</name>
	<author>ThemeXpert</author>
	<creationDate>November 2017</creationDate>
	<copyright>Copyright (C) 2005 - 2017 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>1.0.0</version>
	<description>PLG_SYSTEM_JOOMLA_XML_DESCRIPTION</description>
	<files>
		<filename plugin="notifly">notifly.php</filename>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_notifly.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				
			</fieldset>
		</fields>
	</config>

</extension>
PK�X�[�����!offlajnparams/compat/greensock.jsnu�[���/*
 * VERSION: 1.19.0
 * DATE: 2016-07-14
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * Includes all of the following: TweenLite, TweenMax, TimelineLite,
TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin,
AttrPlugin, DirectionalRotationPlugin
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at
http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your
membership.
 *
 * @author: Jack Doyle, jack@greensock.com
 */
var _gsScope="undefined"!=typeof
module&&module.exports&&"undefined"!=typeof
global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use
strict";_gsScope._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var
d=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return
c},e=function(a,b,c){var d,e,f=a.cycle;for(d in
f)e=f[d],a[d]="function"==typeof e?e(c,b[c]):e[c%e.length];delete
a.cycle},f=function(a,b,d){c.call(this,a,b,d),this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._dirty=!0,this.render=f.prototype.render},g=1e-10,h=c._internals,i=h.isSelector,j=h.isArray,k=f.prototype=c.to({},.1,{}),l=[];f.version="1.19.0",k.constructor=f,k.kill()._gc=!1,f.killTweensOf=f.killDelayedCallsTo=c.killTweensOf,f.getTweensOf=c.getTweensOf,f.lagSmoothing=c.lagSmoothing,f.ticker=c.ticker,f.render=c.render,k.invalidate=function(){return
this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),c.prototype.invalidate.call(this)},k.updateTo=function(a,b){var
d,e=this.ratio,f=this.vars.immediateRender||a.immediateRender;b&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(d
in
a)this.vars[d]=a[d];if(this._initted||f)if(b)this._initted=!1,f&&this.render(0,!0,!0);else
if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&c._onPluginEvent("_onDisable",this),this._time/this._duration>.998){var
g=this._totalTime;this.render(0,!0,!1),this._initted=!1,this.render(g,!0,!1)}else
if(this._initted=!1,this._init(),this._time>0||f)for(var
h,i=1/(1-e),j=this._firstPT;j;)h=j.s+j.c,j.c*=i,j.s=h-j.c,j=j._next;return
this},k.render=function(a,b,c){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var
d,e,f,i,j,k,l,m,n=this._dirty?this.totalDuration():this._totalDuration,o=this._time,p=this._totalTime,q=this._cycle,r=this._duration,s=this._rawPrevTime;if(a>=n-1e-7?(this._totalTime=n,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=r,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===r&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>s||0>=a&&a>=-1e-7||s===g&&"isPause"!==this.data)&&s!==a&&(c=!0,s>g&&(e="onReverseComplete")),this._rawPrevTime=m=!b||a||s===a?a:g)):1e-7>a?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==p||0===r&&s>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===r&&(this._initted||!this.vars.lazy||c)&&(s>=0&&(c=!0),this._rawPrevTime=m=!b||a||s===a?a:g)),this._initted||(c=!0)):(this._totalTime=this._time=a,0!==this._repeat&&(i=r+this._repeatDelay,this._cycle=this._totalTime/i>>0,0!==this._cycle&&this._cycle===this._totalTime/i&&a>=p&&this._cycle--,this._time=this._totalTime-this._cycle*i,this._yoyo&&0!==(1&this._cycle)&&(this._time=r-this._time),this._time>r?this._time=r:this._time<0&&(this._time=0)),this._easeType?(j=this._time/r,k=this._easeType,l=this._easePower,(1===k||3===k&&j>=.5)&&(j=1-j),3===k&&(j*=2),1===l?j*=j:2===l?j*=j*j:3===l?j*=j*j*j:4===l&&(j*=j*j*j*j),1===k?this.ratio=1-j:2===k?this.ratio=j:this._time/r<.5?this.ratio=j/2:this.ratio=1-j/2):this.ratio=this._ease.getRatio(this._time/r)),o===this._time&&!c&&q===this._cycle)return
void(p!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return
this._time=o,this._totalTime=p,this._rawPrevTime=s,this._cycle=q,h.lazyTweens.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/r):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==o&&a>=0&&(this._active=!0),0===p&&(2===this._initted&&a>0&&this._init(),this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._totalTime||0===r)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,b,c),b||(this._totalTime!==p||e)&&this._callback("onUpdate")),this._cycle!==q&&(b||this._gc||this.vars.onRepeat&&this._callback("onRepeat")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===r&&this._rawPrevTime===g&&m!==g&&(this._rawPrevTime=0))},f.to=function(a,b,c){return
new f(a,b,c)},f.from=function(a,b,c){return
c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new
f(a,b,c)},f.fromTo=function(a,b,c,d){return
d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new
f(a,b,d)},f.staggerTo=f.allTo=function(a,b,g,h,k,m,n){h=h||0;var
o,p,q,r,s=0,t=[],u=function(){g.onComplete&&g.onComplete.apply(g.onCompleteScope||this,arguments),k.apply(n||g.callbackScope||this,m||l)},v=g.cycle,w=g.startAt&&g.startAt.cycle;for(j(a)||("string"==typeof
a&&(a=c.selector(a)||a),i(a)&&(a=d(a))),a=a||[],0>h&&(a=d(a),a.reverse(),h*=-1),o=a.length-1,q=0;o>=q;q++){p={};for(r
in
g)p[r]=g[r];if(v&&(e(p,a,q),null!=p.duration&&(b=p.duration,delete
p.duration)),w){w=p.startAt={};for(r in
g.startAt)w[r]=g.startAt[r];e(p.startAt,a,q)}p.delay=s+(p.delay||0),q===o&&k&&(p.onComplete=u),t[q]=new
f(a[q],b,p),s+=h}return
t},f.staggerFrom=f.allFrom=function(a,b,c,d,e,g,h){return
c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,f.staggerTo(a,b,c,d,e,g,h)},f.staggerFromTo=f.allFromTo=function(a,b,c,d,e,g,h,i){return
d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,f.staggerTo(a,b,d,e,g,h,i)},f.delayedCall=function(a,b,c,d,e){return
new
f(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,useFrames:e,overwrite:0})},f.set=function(a,b){return
new f(a,0,b)},f.isTweening=function(a){return
c.getTweensOf(a,!0).length>0};var m=function(a,b){for(var
d=[],e=0,f=a._first;f;)f instanceof
c?d[e++]=f:(b&&(d[e++]=f),d=d.concat(m(f,b)),e=d.length),f=f._next;return
d},n=f.getAllTweens=function(b){return
m(a._rootTimeline,b).concat(m(a._rootFramesTimeline,b))};f.killAll=function(a,c,d,e){null==c&&(c=!0),null==d&&(d=!0);var
f,g,h,i=n(0!=e),j=i.length,k=c&&d&&e;for(h=0;j>h;h++)g=i[h],(k||g
instanceof
b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&(a?g.totalTime(g._reversed?0:g.totalDuration()):g._enabled(!1,!1))},f.killChildTweensOf=function(a,b){if(null!=a){var
e,g,k,l,m,n=h.tweenLookup;if("string"==typeof
a&&(a=c.selector(a)||a),i(a)&&(a=d(a)),j(a))for(l=a.length;--l>-1;)f.killChildTweensOf(a[l],b);else{e=[];for(k
in
n)for(g=n[k].target.parentNode;g;)g===a&&(e=e.concat(n[k].tweens)),g=g.parentNode;for(m=e.length,l=0;m>l;l++)b&&e[l].totalTime(e[l].totalDuration()),e[l]._enabled(!1,!1)}}};var
o=function(a,c,d,e){c=c!==!1,d=d!==!1,e=e!==!1;for(var
f,g,h=n(e),i=c&&d&&e,j=h.length;--j>-1;)g=h[j],(i||g
instanceof
b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&g.paused(a)};return
f.pauseAll=function(a,b,c){o(!0,a,b,c)},f.resumeAll=function(a,b,c){o(!1,a,b,c)},f.globalTimeScale=function(b){var
d=a._rootTimeline,e=c.ticker.time;return
arguments.length?(b=b||g,d._startTime=e-(e-d._startTime)*d._timeScale/b,d=a._rootFramesTimeline,e=c.ticker.frame,d._startTime=e-(e-d._startTime)*d._timeScale/b,d._timeScale=a._rootTimeline._timeScale=b,b):d._timeScale},k.progress=function(a,b){return
arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},k.totalProgress=function(a,b){return
arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},k.time=function(a,b){return
arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.duration=function(b){return
arguments.length?a.prototype.duration.call(this,b):this._duration},k.totalDuration=function(a){return
arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},k.repeat=function(a){return
arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return
arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return
arguments.length?(this._yoyo=a,this):this._yoyo},f},!0),_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var
d=function(a){b.call(this,a),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var
c,d,e=this.vars;for(d in
e)c=e[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(c));i(e.tweens)&&this.add(e.tweens,0,e.align,e.stagger)},e=1e-10,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var
b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var
d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof
e?e.call(b[c],c):e[c%e.length];delete
a.cycle},o=g.pauseCallback=function(){},p=function(a){var
b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=d.prototype=new
b;return
d.version="1.19.0",q.constructor=d,q.kill()._gc=q._forcingPlayhead=q._hasPause=!1,q.to=function(a,b,d,e){var
f=d.repeat&&l.TweenMax||c;return b?this.add(new
f(a,b,d),e):this.set(a,d,e)},q.from=function(a,b,d,e){return
this.add((d.repeat&&l.TweenMax||c).from(a,b,d),e)},q.fromTo=function(a,b,d,e,f){var
g=e.repeat&&l.TweenMax||c;return
b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},q.staggerTo=function(a,b,e,f,g,i,j,k){var
l,o,q=new
d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),r=e.cycle;for("string"==typeof
a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),f=f||0,0>f&&(a=p(a),a.reverse(),f*=-1),o=0;o<a.length;o++)l=m(e),l.startAt&&(l.startAt=m(l.startAt),l.startAt.cycle&&n(l.startAt,a,o)),r&&(n(l,a,o),null!=l.duration&&(b=l.duration,delete
l.duration)),q.to(a[o],b,l,o*f);return
this.add(q,g)},q.staggerFrom=function(a,b,c,d,e,f,g,h){return
c.immediateRender=0!=c.immediateRender,c.runBackwards=!0,this.staggerTo(a,b,c,d,e,f,g,h)},q.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return
d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,this.staggerTo(a,b,d,e,f,g,h,i)},q.call=function(a,b,d,e){return
this.add(c.delayedCall(0,a,b,d),e)},q.set=function(a,b,d){return
d=this._parseTimeOrLabel(d,0,!0),null==b.immediateRender&&(b.immediateRender=d===this._time&&!this._paused),this.add(new
c(a,0,b),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var
e,f,g=new
d(a),h=g._timeline;for(null==b&&(b=!0),h._remove(g,!0),g._startTime=0,g._rawPrevTime=g._time=g._totalTime=h._time,e=h._first;e;)f=e._next,b&&e
instanceof
c&&e.target===e.vars.onComplete||g.add(e,e._startTime-e._delay),e=f;return
h.add(g,0),g},q.add=function(e,f,g,h){var
j,k,l,m,n,o;if("number"!=typeof
f&&(f=this._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e
instanceof
Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new
d({tweens:m})),this.add(m,j),"string"!=typeof
m&&"function"!=typeof
m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return
this._uncache(!0)}if("string"==typeof e)return
this.addLabel(e,f);if("function"!=typeof e)throw"Cannot add
"+e+" into the timeline; it is not a tween, timeline, function,
or
string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(this,e,f),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(n=this,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return
this},q.remove=function(b){if(b instanceof a){this._remove(b,!1);var
c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return
b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b
instanceof Array||b&&b.push&&i(b)){for(var
d=b.length;--d>-1;)this.remove(b[d]);return
this}return"string"==typeof
b?this.removeLabel(b):this.kill(null,b)},q._remove=function(a,c){b.prototype._remove.call(this,a,c);var
d=this._last;return
d?this._time>d._startTime+d._totalDuration/d._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},q.append=function(a,b){return
this.add(a,this._parseTimeOrLabel(null,b,!0,a))},q.insert=q.insertMultiple=function(a,b,c,d){return
this.add(a,b||0,c,d)},q.appendMultiple=function(a,b,c,d){return
this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},q.addLabel=function(a,b){return
this._labels[a]=this._parseTimeOrLabel(b),this},q.addPause=function(a,b,d,e){var
f=c.delayedCall(0,o,d,e||this);return
f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},q.removeLabel=function(a){return
delete this._labels[a],this},q.getLabelTime=function(a){return
null!=this._labels[a]?this._labels[a]:-1},q._parseTimeOrLabel=function(b,c,d,e){var
f;if(e instanceof a&&e.timeline===this)this.remove(e);else
if(e&&(e instanceof
Array||e.push&&i(e)))for(f=e.length;--f>-1;)e[f]instanceof
a&&e[f].timeline===this&&this.remove(e[f]);if("string"==typeof
c)return this._parseTimeOrLabel(c,d&&"number"==typeof
b&&null==this._labels[c]?b-this.duration():0,d);if(c=c||0,"string"!=typeof
b||!isNaN(b)&&null==this._labels[b])null==b&&(b=this.duration());else{if(f=b.indexOf("="),-1===f)return
null==this._labels[b]?d?this._labels[b]=this.duration()+c:c:this._labels[b]+c;c=parseInt(b.charAt(f-1)+"1",10)*Number(b.substr(f+1)),b=f>1?this._parseTimeOrLabel(b.substr(0,f-1),0,d):this.duration()}return
Number(b)+c},q.seek=function(a,b){return
this.totalTime("number"==typeof
a?a:this._parseTimeOrLabel(a),b!==!1)},q.stop=function(){return
this.paused(!0)},q.gotoAndPlay=function(a,b){return
this.play(a,b)},q.gotoAndStop=function(a,b){return
this.pause(a,b)},q.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var
d,f,g,h,i,l,m,n=this._dirty?this.totalDuration():this._totalDuration,o=this._time,p=this._startTime,q=this._timeScale,r=this._paused;if(a>=n-1e-7)this._totalTime=this._time=n,this._reversed||this._hasPausedChild()||(f=!0,h="onComplete",i=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||this._rawPrevTime<0||this._rawPrevTime===e)&&this._rawPrevTime!==a&&this._first&&(i=!0,this._rawPrevTime>e&&(h="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=n+1e-4;else
if(1e-7>a)if(this._totalTime=this._time=0,(0!==o||0===this._duration&&this._rawPrevTime!==e&&(this._rawPrevTime>0||0>a&&this._rawPrevTime>=0))&&(h="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(i=f=!0,h="onReverseComplete"):this._rawPrevTime>=0&&this._first&&(i=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(i=!0)}else{if(this._hasPause&&!this._forcingPlayhead&&!b){if(a>=o)for(d=this._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(l=d),d=d._next;else
for(d=this._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(this._time=a=l._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}this._totalTime=this._time=this._rawPrevTime=a}if(this._time!==o&&this._first||c||i||l){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==o&&a>0&&(this._active=!0),0===o&&this.vars.onStart&&(0===this._time&&this._duration||b||this._callback("onStart")),m=this._time,m>=o)for(d=this._first;d&&(g=d._next,m===this._time&&(!this._paused||r));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else
for(d=this._last;d&&(g=d._prev,m===this._time&&(!this._paused||r));){if(d._active||d._startTime<=o&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>this._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}this._onUpdate&&(b||(j.length&&k(),this._callback("onUpdate"))),h&&(this._gc||(p===this._startTime||q!==this._timeScale)&&(0===this._time||n>=this.totalDuration())&&(f&&(j.length&&k(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[h]&&this._callback(h)))}},q._hasPausedChild=function(){for(var
a=this._first;a;){if(a._paused||a instanceof
d&&a._hasPausedChild())return!0;a=a._next}return!1},q.getChildren=function(a,b,d,e){e=e||-9999999999;for(var
f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof
c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return
f},q.getTweensOf=function(a,b){var
d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return
f&&this._enabled(!1,!0),g},q.recent=function(){return
this._recent},q._contains=function(a){for(var
b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},q.shiftChildren=function(a,b,c){c=c||0;for(var
d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d
in f)f[d]>=c&&(f[d]+=a);return
this._uncache(!0)},q._kill=function(a,b){if(!a&&!b)return
this._enabled(!1,!1);for(var
c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return
e},q.clear=function(a){var
b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return
a!==!1&&(this._labels={}),this._uncache(!0)},q.invalidate=function(){for(var
b=this._first;b;)b.invalidate(),b=b._next;return
a.prototype.invalidate.call(this)},q._enabled=function(a,c){if(a===this._gc)for(var
d=this._first;d;)d._enabled(a,!0),d=d._next;return
b.prototype._enabled.call(this,a,c)},q.totalTime=function(b,c,d){this._forcingPlayhead=!0;var
e=a.prototype.totalTime.apply(this,arguments);return
this._forcingPlayhead=!1,e},q.duration=function(a){return
arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},q.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var
b,c,d=0,e=this._last,f=999999999999;e;)b=e._prev,e._dirty&&e.totalDuration(),e._startTime>f&&this._sortChildren&&!e._paused?this.add(e,e._startTime-e._delay):f=e._startTime,e._startTime<0&&!e._paused&&(d-=e._startTime,this._timeline.smoothChildTiming&&(this._startTime+=e._startTime/this._timeScale),this.shiftChildren(-e._startTime,!1,-9999999999),f=0),c=e._startTime+e._totalDuration/e._timeScale,c>d&&(d=c),e=b;this._duration=this._totalDuration=d,this._dirty=!1}return
this._totalDuration}return
a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},q.paused=function(b){if(!b)for(var
c=this._first,d=this._time;c;)c._startTime===d&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return
a.prototype.paused.apply(this,arguments)},q.usesFrames=function(){for(var
b=this._timeline;b._timeline;)b=b._timeline;return
b===a._rootFramesTimeline},q.rawTime=function(){return
this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},d},!0),_gsScope._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(a,b,c){var
d=function(b){a.call(this,b),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._dirty=!0},e=1e-10,f=b._internals,g=f.lazyTweens,h=f.lazyRender,i=_gsScope._gsDefine.globals,j=new
c(null,null,1,0),k=d.prototype=new a;return
k.constructor=d,k.kill()._gc=!1,d.version="1.19.0",k.invalidate=function(){return
this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},k.addCallback=function(a,c,d,e){return
this.add(b.delayedCall(0,a,d,e),c)},k.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else
for(var
c=this.getTweensOf(a,!1),d=c.length,e=this._parseTimeOrLabel(b);--d>-1;)c[d]._startTime===e&&c[d]._enabled(!1,!1);return
this},k.removePause=function(b){return
this.removeCallback(a._internals.pauseCallback,b)},k.tweenTo=function(a,c){c=c||{};var
d,e,f,g={ease:j,useFrames:this.usesFrames(),immediateRender:!1},h=c.repeat&&i.TweenMax||b;for(e
in c)g[e]=c[e];return
g.time=this._parseTimeOrLabel(a),d=Math.abs(Number(g.time)-this._time)/this._timeScale||.001,f=new
h(this,d,g),g.onStart=function(){f.target.paused(!0),f.vars.time!==f.target.time()&&d===f.duration()&&f.duration(Math.abs(f.vars.time-f.target.time())/f.target._timeScale),c.onStart&&f._callback("onStart")},f},k.tweenFromTo=function(a,b,c){c=c||{},a=this._parseTimeOrLabel(a),c.startAt={onComplete:this.seek,onCompleteParams:[a],callbackScope:this},c.immediateRender=c.immediateRender!==!1;var
d=this.tweenTo(b,c);return
d.duration(Math.abs(d.vars.time-a)/this._timeScale||.001)},k.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var
d,f,i,j,k,l,m,n,o=this._dirty?this.totalDuration():this._totalDuration,p=this._duration,q=this._time,r=this._totalTime,s=this._startTime,t=this._timeScale,u=this._rawPrevTime,v=this._paused,w=this._cycle;if(a>=o-1e-7)this._locked||(this._totalTime=o,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(f=!0,j="onComplete",k=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||0>u||u===e)&&u!==a&&this._first&&(k=!0,u>e&&(j="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,this._yoyo&&0!==(1&this._cycle)?this._time=a=0:(this._time=p,a=p+1e-4);else
if(1e-7>a)if(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==q||0===p&&u!==e&&(u>0||0>a&&u>=0)&&!this._locked)&&(j="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(k=f=!0,j="onReverseComplete"):u>=0&&this._first&&(k=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=p||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(k=!0)}else
if(0===p&&0>u&&(k=!0),this._time=this._rawPrevTime=a,this._locked||(this._totalTime=a,0!==this._repeat&&(l=p+this._repeatDelay,this._cycle=this._totalTime/l>>0,0!==this._cycle&&this._cycle===this._totalTime/l&&a>=r&&this._cycle--,this._time=this._totalTime-this._cycle*l,this._yoyo&&0!==(1&this._cycle)&&(this._time=p-this._time),this._time>p?(this._time=p,a=p+1e-4):this._time<0?this._time=a=0:a=this._time)),this._hasPause&&!this._forcingPlayhead&&!b){if(a=this._time,a>=q)for(d=this._first;d&&d._startTime<=a&&!m;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(m=d),d=d._next;else
for(d=this._last;d&&d._startTime>=a&&!m;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(m=d),d=d._prev;m&&(this._time=a=m._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}if(this._cycle!==w&&!this._locked){var
x=this._yoyo&&0!==(1&w),y=x===(this._yoyo&&0!==(1&this._cycle)),z=this._totalTime,A=this._cycle,B=this._rawPrevTime,C=this._time;if(this._totalTime=w*p,this._cycle<w?x=!x:this._totalTime+=p,this._time=q,this._rawPrevTime=0===p?u-1e-4:u,this._cycle=w,this._locked=!0,q=x?0:p,this.render(q,b,0===p),b||this._gc||this.vars.onRepeat&&this._callback("onRepeat"),q!==this._time)return;if(y&&(q=x?p+1e-4:-1e-4,this.render(q,!0,!1)),this._locked=!1,this._paused&&!v)return;this._time=C,this._totalTime=z,this._cycle=A,this._rawPrevTime=B}if(!(this._time!==q&&this._first||c||k||m))return
void(r!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==r&&a>0&&(this._active=!0),0===r&&this.vars.onStart&&(0===this._totalTime&&this._totalDuration||b||this._callback("onStart")),n=this._time,n>=q)for(d=this._first;d&&(i=d._next,n===this._time&&(!this._paused||v));)(d._active||d._startTime<=this._time&&!d._paused&&!d._gc)&&(m===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=i;else
for(d=this._last;d&&(i=d._prev,n===this._time&&(!this._paused||v));){if(d._active||d._startTime<=q&&!d._paused&&!d._gc){if(m===d){for(m=d._prev;m&&m.endTime()>this._time;)m.render(m._reversed?m.totalDuration()-(a-m._startTime)*m._timeScale:(a-m._startTime)*m._timeScale,b,c),m=m._prev;m=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=i}this._onUpdate&&(b||(g.length&&h(),this._callback("onUpdate"))),j&&(this._locked||this._gc||(s===this._startTime||t!==this._timeScale)&&(0===this._time||o>=this.totalDuration())&&(f&&(g.length&&h(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[j]&&this._callback(j)))},k.getActive=function(a,b,c){null==a&&(a=!0),null==b&&(b=!0),null==c&&(c=!1);var
d,e,f=[],g=this.getChildren(a,b,c),h=0,i=g.length;for(d=0;i>d;d++)e=g[d],e.isActive()&&(f[h++]=e);return
f},k.getLabelAfter=function(a){a||0!==a&&(a=this._time);var
b,c=this.getLabelsArray(),d=c.length;for(b=0;d>b;b++)if(c[b].time>a)return
c[b].name;return
null},k.getLabelBefore=function(a){null==a&&(a=this._time);for(var
b=this.getLabelsArray(),c=b.length;--c>-1;)if(b[c].time<a)return
b[c].name;return null},k.getLabelsArray=function(){var a,b=[],c=0;for(a in
this._labels)b[c++]={time:this._labels[a],name:a};return
b.sort(function(a,b){return
a.time-b.time}),b},k.progress=function(a,b){return
arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},k.totalProgress=function(a,b){return
arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},k.totalDuration=function(b){return
arguments.length?-1!==this._repeat&&b?this.timeScale(this.totalDuration()/b):this:(this._dirty&&(a.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},k.time=function(a,b){return
arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.repeat=function(a){return
arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return
arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return
arguments.length?(this._yoyo=a,this):this._yoyo},k.currentLabel=function(a){return
arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+1e-8)},d},!0),function(){var
a=180/Math.PI,b=[],c=[],d=[],e={},f=_gsScope._gsDefine.globals,g=function(a,b,c,d){c===d&&(c=d-(d-b)/1e6),a===b&&(b=a+(c-a)/1e6),this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},h=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",i=function(a,b,c,d){var
e={a:a},f={},g={},h={c:d},i=(a+b)/2,j=(b+c)/2,k=(c+d)/2,l=(i+j)/2,m=(j+k)/2,n=(m-l)/8;return
e.b=i+(a-i)/4,f.b=l+n,e.c=f.a=(e.b+f.b)/2,f.c=g.a=(l+m)/2,g.b=m-n,h.b=k+(d-k)/4,g.c=h.a=(g.b+h.b)/2,[e,f,g,h]},j=function(a,e,f,g,h){var
j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.length-1,x=0,y=a[0].a;for(j=0;w>j;j++)n=a[x],k=n.a,l=n.d,m=a[x+1].d,h?(t=b[j],u=c[j],v=(u+t)*e*.25/(g?.5:d[j]||.5),o=l-(l-k)*(g?.5*e:0!==t?v/t:0),p=l+(m-l)*(g?.5*e:0!==u?v/u:0),q=l-(o+((p-o)*(3*t/(t+u)+.5)/4||0))):(o=l-(l-k)*e*.5,p=l+(m-l)*e*.5,q=l-(o+p)/2),o+=q,p+=q,n.c=r=o,0!==j?n.b=y:n.b=y=n.a+.6*(n.c-n.a),n.da=l-k,n.ca=r-k,n.ba=y-k,f?(s=i(k,y,r,l),a.splice(x,1,s[0],s[1],s[2],s[3]),x+=4):x++,y=p;n=a[x],n.b=y,n.c=y+.4*(n.d-y),n.da=n.d-n.a,n.ca=n.c-n.a,n.ba=y-n.a,f&&(s=i(n.a,y,n.c,n.d),a.splice(x,1,s[0],s[1],s[2],s[3]))},k=function(a,d,e,f){var
h,i,j,k,l,m,n=[];if(f)for(a=[f].concat(a),i=a.length;--i>-1;)"string"==typeof(m=a[i][d])&&"="===m.charAt(1)&&(a[i][d]=f[d]+Number(m.charAt(0)+m.substr(2)));if(h=a.length-2,0>h)return
n[0]=new
g(a[0][d],0,0,a[-1>h?0:1][d]),n;for(i=0;h>i;i++)j=a[i][d],k=a[i+1][d],n[i]=new
g(j,0,0,k),e&&(l=a[i+2][d],b[i]=(b[i]||0)+(k-j)*(k-j),c[i]=(c[i]||0)+(l-k)*(l-k));return
n[i]=new g(a[i][d],0,0,a[i+1][d]),n},l=function(a,f,g,i,l,m){var
n,o,p,q,r,s,t,u,v={},w=[],x=m||a[0];l="string"==typeof
l?","+l+",":h,null==f&&(f=1);for(o in
a[0])w.push(o);if(a.length>1){for(u=a[a.length-1],t=!0,n=w.length;--n>-1;)if(o=w[n],Math.abs(x[o]-u[o])>.05){t=!1;break}t&&(a=a.concat(),m&&a.unshift(m),a.push(a[1]),m=a[a.length-3])}for(b.length=c.length=d.length=0,n=w.length;--n>-1;)o=w[n],e[o]=-1!==l.indexOf(","+o+","),v[o]=k(a,o,e[o],m);for(n=b.length;--n>-1;)b[n]=Math.sqrt(b[n]),c[n]=Math.sqrt(c[n]);if(!i){for(n=w.length;--n>-1;)if(e[o])for(p=v[w[n]],s=p.length-1,q=0;s>q;q++)r=p[q+1].da/c[q]+p[q].da/b[q]||0,d[q]=(d[q]||0)+r*r;for(n=d.length;--n>-1;)d[n]=Math.sqrt(d[n])}for(n=w.length,q=g?4:1;--n>-1;)o=w[n],p=v[o],j(p,f,g,i,e[o]),t&&(p.splice(0,q),p.splice(p.length-q,q));return
v},m=function(a,b,c){b=b||"soft";var
d,e,f,h,i,j,k,l,m,n,o,p={},q="cubic"===b?3:2,r="soft"===b,s=[];if(r&&c&&(a=[c].concat(a)),null==a||a.length<q+1)throw"invalid
Bezier data";for(m in
a[0])s.push(m);for(j=s.length;--j>-1;){for(m=s[j],p[m]=i=[],n=0,l=a.length,k=0;l>k;k++)d=null==c?a[k][m]:"string"==typeof(o=a[k][m])&&"="===o.charAt(1)?c[m]+Number(o.charAt(0)+o.substr(2)):Number(o),r&&k>1&&l-1>k&&(i[n++]=(d+i[n-2])/2),i[n++]=d;for(l=n-q+1,n=0,k=0;l>k;k+=q)d=i[k],e=i[k+1],f=i[k+2],h=2===q?0:i[k+3],i[n++]=o=3===q?new
g(d,e,f,h):new g(d,(2*e+d)/3,(2*e+f)/3,f);i.length=n}return
p},n=function(a,b,c){for(var
d,e,f,g,h,i,j,k,l,m,n,o=1/c,p=a.length;--p>-1;)for(m=a[p],f=m.a,g=m.d-f,h=m.c-f,i=m.b-f,d=e=0,k=1;c>=k;k++)j=o*k,l=1-j,d=e-(e=(j*j*g+3*l*(j*h+l*i))*j),n=p*c+k-1,b[n]=(b[n]||0)+d*d},o=function(a,b){b=b>>0||6;var
c,d,e,f,g=[],h=[],i=0,j=0,k=b-1,l=[],m=[];for(c in
a)n(a[c],g,b);for(e=g.length,d=0;e>d;d++)i+=Math.sqrt(g[d]),f=d%b,m[f]=i,f===k&&(j+=i,f=d/b>>0,l[f]=m,h[f]=j,i=0,m=[]);return{length:j,lengths:h,
segments:l}},p=_gsScope._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.7",API:2,global:!0,init:function(a,b,c){this._target=a,b
instanceof
Array&&(b={values:b}),this._func={},this._mod={},this._props=[],this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var
d,e,f,g,h,i=b.values||[],j={},k=i[0],n=b.autoRotate||c.vars.orientToBezier;this._autoRotate=n?n
instanceof
Array?n:[["x","y","rotation",n===!0?0:Number(n)||0]]:null;for(d
in
k)this._props.push(d);for(f=this._props.length;--f>-1;)d=this._props[f],this._overwriteProps.push(d),e=this._func[d]="function"==typeof
a[d],j[d]=e?a[d.indexOf("set")||"function"!=typeof
a["get"+d.substr(3)]?d:"get"+d.substr(3)]():parseFloat(a[d]),h||j[d]!==i[0][d]&&(h=j);if(this._beziers="cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type?l(i,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,h):m(i,b.type,j),this._segCount=this._beziers[d].length,this._timeRes){var
p=o(this._beziers,this._timeRes);this._length=p.length,this._lengths=p.lengths,this._segments=p.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(n=this._autoRotate)for(this._initialRotations=[],n[0]instanceof
Array||(this._autoRotate=n=[n]),f=n.length;--f>-1;){for(g=0;3>g;g++)d=n[f][g],this._func[d]="function"==typeof
a[d]?a[d.indexOf("set")||"function"!=typeof
a["get"+d.substr(3)]?d:"get"+d.substr(3)]:!1;d=n[f][2],this._initialRotations[f]=(this._func[d]?this._func[d].call(this._target):this._target[d])||0,this._overwriteProps.push(d)}return
this._startRatio=c.vars.runBackwards?1:0,!0},set:function(b){var
c,d,e,f,g,h,i,j,k,l,m=this._segCount,n=this._func,o=this._target,p=b!==this._startRatio;if(this._timeRes){if(k=this._lengths,l=this._curSeg,b*=this._length,e=this._li,b>this._l2&&m-1>e){for(j=m-1;j>e&&(this._l2=k[++e])<=b;);this._l1=k[e-1],this._li=e,this._curSeg=l=this._segments[e],this._s2=l[this._s1=this._si=0]}else
if(b<this._l1&&e>0){for(;e>0&&(this._l1=k[--e])>=b;);0===e&&b<this._l1?this._l1=0:e++,this._l2=k[e],this._li=e,this._curSeg=l=this._segments[e],this._s1=l[(this._si=l.length-1)-1]||0,this._s2=l[this._si]}if(c=e,b-=this._l1,e=this._si,b>this._s2&&e<l.length-1){for(j=l.length-1;j>e&&(this._s2=l[++e])<=b;);this._s1=l[e-1],this._si=e}else
if(b<this._s1&&e>0){for(;e>0&&(this._s1=l[--e])>=b;);0===e&&b<this._s1?this._s1=0:e++,this._s2=l[e],this._si=e}h=(e+(b-this._s1)/(this._s2-this._s1))*this._prec||0}else
c=0>b?0:b>=1?m-1:m*b>>0,h=(b-c*(1/m))*m;for(d=1-h,e=this._props.length;--e>-1;)f=this._props[e],g=this._beziers[f][c],i=(h*h*g.da+3*d*(h*g.ca+d*g.ba))*h+g.a,this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i;if(this._autoRotate){var
q,r,s,t,u,v,w,x=this._autoRotate;for(e=x.length;--e>-1;)f=x[e][2],v=x[e][3]||0,w=x[e][4]===!0?1:a,g=this._beziers[x[e][0]],q=this._beziers[x[e][1]],g&&q&&(g=g[c],q=q[c],r=g.a+(g.b-g.a)*h,t=g.b+(g.c-g.b)*h,r+=(t-r)*h,t+=(g.c+(g.d-g.c)*h-t)*h,s=q.a+(q.b-q.a)*h,u=q.b+(q.c-q.b)*h,s+=(u-s)*h,u+=(q.c+(q.d-q.c)*h-u)*h,i=p?Math.atan2(u-s,t-r)*w+v:this._initialRotations[e],this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i)}}}),q=p.prototype;p.bezierThrough=l,p.cubicToQuadratic=i,p._autoCSS=!0,p.quadraticToCubic=function(a,b,c){return
new g(a,(2*b+a)/3,(2*b+c)/3,c)},p._cssRegister=function(){var
a=f.CSSPlugin;if(a){var
b=a._internals,c=b._parseToProxy,d=b._setPluginRatio,e=b.CSSPropTween;b._registerComplexSpecialProp("bezier",{parser:function(a,b,f,g,h,i){b
instanceof Array&&(b={values:b}),i=new p;var
j,k,l,m=b.values,n=m.length-1,o=[],q={};if(0>n)return
h;for(j=0;n>=j;j++)l=c(a,m[j],g,h,i,n!==j),o[j]=l.end;for(k in
b)q[k]=b[k];return q.values=o,h=new
e(a,"bezier",0,0,l.pt,2),h.data=l,h.plugin=i,h.setRatio=d,0===q.autoRotate&&(q.autoRotate=!0),!q.autoRotate||q.autoRotate
instanceof
Array||(j=q.autoRotate===!0?0:Number(q.autoRotate),q.autoRotate=null!=l.end.left?[["left","top","rotation",j,!1]]:null!=l.end.x?[["x","y","rotation",j,!1]]:!1),q.autoRotate&&(g._transform||g._enableTransforms(!1),l.autoRotate=g._target._gsTransform,l.proxy.rotation=l.autoRotate.rotation||0,g._overwriteProps.push("rotation")),i._onInitTween(l.proxy,q,g._tween),h}})}},q._mod=function(a){for(var
b,c=this._overwriteProps,d=c.length;--d>-1;)b=a[c[d]],b&&"function"==typeof
b&&(this._mod[c[d]]=b)},q._kill=function(a){var
b,c,d=this._props;for(b in this._beziers)if(b in a)for(delete
this._beziers[b],delete
this._func[b],c=d.length;--c>-1;)d[c]===b&&d.splice(c,1);if(d=this._autoRotate)for(c=d.length;--c>-1;)a[d[c][2]]&&d.splice(c,1);return
this._super._kill.call(this,a)}}(),_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var
c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new
a("css");j.constructor=g,g.version="1.19.0",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var
k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity
*= *([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity
*=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return
b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N=document,O=function(a){return
N.createElementNS?N.createElementNS("http://www.w3.org/1999/xhtml",a):N.createElement(a)},P=O("div"),Q=O("img"),R=g._internals={_specialProps:i},S=navigator.userAgent,T=function(){var
a=S.indexOf("Android"),b=O("a");return
m=-1!==S.indexOf("Safari")&&-1===S.indexOf("Chrome")&&(-1===a||Number(S.substr(a+8,1))>3),o=m&&Number(S.substr(S.indexOf("Version/")+8,1))<6,n=-1!==S.indexOf("Firefox"),(/MSIE
([0-9]{1,}[\.0-9]{0,})/.exec(S)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),U=function(a){return
x.test("string"==typeof
a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},V=function(a){window.console&&console.log(a)},W="",X="",Y=function(a,b){b=b||P;var
c,d,e=b.style;if(void 0!==e[a])return
a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void
0===e[c[d]+a];);return
d>=0?(X=3===d?"ms":c[d],W="-"+X.toLowerCase()+"-",X+a):null},Z=N.defaultView?N.defaultView.getComputedStyle:function(){},$=g.getStyle=function(a,b,c,d,e){var
f;return
T||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||Z(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto
auto"!==f?f:e):U(a)},_=R.convertToPixels=function(a,c,d,e,f){if("px"===e||!e)return
d;if("auto"===e||!d)return 0;var
h,i,j,k=F.test(c),l=a,m=P.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0
solid
red;position:"+$(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||N.body,i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return
i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(P),h=parseFloat(P[k?"offsetWidth":"offsetHeight"]),l.removeChild(P),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=_(a,c,d,e,!0))}return
o&&(h/=100),n?-h:h},aa=R.calculateOffset=function(a,b,c){if("absolute"!==$(a,"position",c))return
0;var
d="left"===b?"Left":"Top",e=$(a,"margin"+d,c);return
a["offset"+d]-(_(a,b,parseFloat(e),e.replace(w,""))||0)},ba=function(a,b){var
c,d,e,f={};if(b=b||Z(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Ca===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else
for(c in
b)(-1===c.indexOf("Transform")||Ba===c)&&(f[c]=b[c]);else
if(b=a.currentStyle||a.style)for(c in b)"string"==typeof
c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return
T||(f.opacity=U(a)),d=Pa(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Ea&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete
f.filters,f},ca=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in
c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof
f||"string"==typeof
f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof
b[g]||""===b[g].replace(v,"")?f:0:aa(a,g),void
0!==j[g]&&(h=new ra(j,g,j[g],h)));if(d)for(g in
d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},da={width:["Left","Right"],height:["Top","Bottom"]},ea=["marginLeft","marginRight","marginTop","marginBottom"],fa=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||Z(a))[b]||0;if(a.getBBox&&Ma(a))return
a.getBBox()[b]||0;var
d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=da[b],f=e.length;for(c=c||Z(a,null);--f>-1;)d-=parseFloat($(a,"padding"+e[f],c,!0))||0,d-=parseFloat($(a,"border"+e[f]+"Width",c,!0))||0;return
d},ga=function(a,b){if("contain"===a||"auto"===a||"auto
auto"===a)return a+"
";(null==a||""===a)&&(a="0 0");var
c,d=a.split("
"),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(",
").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ga(d[c]));return
a.join(",")}return
null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+"
"+f+(d.length>2?"
"+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ha=function(a,b){return"function"==typeof
a&&(a=a(r,q)),"string"==typeof
a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ia=function(a,b){return"function"==typeof
a&&(a=a(r,q)),null==a?b:"string"==typeof
a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ja=function(a,b,c,d){var
e,f,g,h,i,j=1e-6;return"function"==typeof
a&&(a=a(r,q)),null==a?h=b:"number"==typeof
a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},ka={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},la=function(a,b,c){return
a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},ma=g.parseColor=function(a,b){var
c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof
a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),ka[a])c=ka[a];else
if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else
if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return
a.match(t)}else
g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(a[3])),c[0]=la(g+1/3,d,e),c[1]=la(g,d,e),c[2]=la(g-1/3,d,e);else
c=a.match(s)||ka.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else
c=ka.black;return
b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},na=function(a,b){var
c,d,e,f=a.match(oa)||[],g=0,h=f.length?"":a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=ma(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return
h+a.substr(g)},oa="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j
in ka)oa+="|"+j+"\\b";oa=new
RegExp(oa+")","gi"),g.colorStringFilter=function(a){var
b,c=a[0]+a[1];oa.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=na(a[0],b),a[1]=na(a[1],b)),oa.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var
pa=function(a,b,c,d){if(null==a)return function(a){return a};var
e,f=b?(a.match(oa)||[""])[0]:"",g=a.split(f).join("").match(u)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf("
")?"
":",",k=g.length,l=k>0?g[0].replace(s,""):"";return
k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else
if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return
o.join(",")}if(b=(a.match(oa)||[f])[0],m=a.split(b).join("").match(u)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return
h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?"
inset":"")}:function(a){var
b,f,m;if("number"==typeof a)a+=l;else
if(d&&I.test(a)){for(f=a.replace(I,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return
f.join(",")}if(b=a.match(u)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return
h+b.join(j)+i}:function(a){return a}},qa=function(a){return
a=a.split(","),function(b,c,d,e,f,g,h){var
i,j=(c+"").split("
");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return
e.parse(b,h,f,g)}},ra=(R._setPluginRatio=function(a){this.plugin.setRatio(a);for(var
b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=Math.round(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod(h.rotation,this.t):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else
c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),sa=(R._parseToProxy=function(a,b,c,d,e,f){var
g,h,i,j,k,l=d,m={},n={},o=c._transform,p=M;for(c._transform=null,M=b,d=k=c.parse(a,b,d,e),M=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new
ra(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new
ra(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},R.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a
instanceof
sa||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void
0===l?d:l,this.e=void
0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ta=function(a,b,c,d,e,f){var
g=new sa(a,b,c,d-c,e,-1,f);return
g.b=c,g.e=g.xs0=d,g},ua=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof
d&&(d=d(r,q)),h=new
sa(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&oa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var
m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(",
").join(",").split(" "),E=d.split(",
").join(",").split("
"),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(D=D.join("
").replace(I,", ").split(" "),E=E.join("
").replace(I,", ").split("
"),F=D.length),F!==E.length&&(D=(f||"").split("
"),F=D.length),h.plugin=j,h.setRatio=l,oa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m],x=parseFloat(p),x||0===x)h.appendXtra("",x,ha(u,x),u.replace(t,""),G&&-1!==u.indexOf("px"),!0);else
if(e&&oa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&T,p=ma(p,C),u=ma(u,C),y=p.length+u.length>6,y&&!T&&0===u[3]?(h["xs"+h.l]+=h.l?"
transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(T||(y=!1),C?h.appendXtra(y?"hsla(":"hsl(",p[0],ha(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ha(u[1],p[1]),"%,",!1).appendXtra("",p[2],ha(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(y?"rgba(":"rgb(",p[0],u[0]-p[0],",",!0,!0).appendXtra("",p[1],u[1]-p[1],",",!0).appendXtra("",p[2],u[2]-p[2],y?",":B,!0),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),oa.lastIndex=0;else
if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return
h;for(o=0,n=0;n<v.length;n++)A=v[n],z=p.indexOf(A,o),h.appendXtra(p.substr(o,z-o),Number(A),ha(w[n],A),"",G&&"px"===p.substr(z+A.length,2),0===n),o=z+A.length;h["xs"+h.l]+=p.substr(o)}else
h["xs"+h.l]+=h.l||h["xs"+h.l]?"
"+u:u;if(-1!==d.indexOf("=")&&h.data){for(B=h.xs0+h.data.s,m=1;m<h.l;m++)B+=h["xs"+m]+h.data["xn"+m];h.e=B+h["xs"+m]}return
h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},va=9;for(j=sa.prototype,j.l=j.pr=0;--va>0;)j["xn"+va]=0,j["xs"+va]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var
g=this,h=g.l;return
g["xs"+h]+=f&&(h||g["xs"+h])?"
"+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new
sa(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var
wa=function(a,b){b=b||{},this.p=b.prefix?Y(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||pa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},xa=R._registerComplexSpecialProp=function(a,b,c){"object"!=typeof
b&&(b={parser:c});var
d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new
wa(f[d],b)},ya=R._registerPluginProp=function(a){if(!i[a]){var
b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";xa(a,{parser:function(a,c,d,e,f,g,j){var
k=h.com.greensock.plugins[b];return
k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(V("Error:
"+b+" js file not
loaded."),f)}})}};j=wa.prototype,j.parseComplex=function(a,b,c,d,e,f){var
g,h,i,j,k,l,m=this.keyword;if(this.multi&&(I.test(c)||I.test(b)?(h=b.replace(I,"|").split("|"),i=c.replace(I,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+="
"+m)));b=h.join(", "),c=i.join(", ")}return
ua(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return
this.parseComplex(a.style,this.format($(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){xa(a,{parser:function(a,d,e,f,g,h,i){var
j=new sa(a,e,0,0,g,2,e,!1,c);return
j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=m||n;var
za,Aa="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ba=Y("transform"),Ca=W+"transform",Da=Y("transformOrigin"),Ea=null!==Y("perspective"),Fa=R.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Ea?g.defaultForce3D||"auto":!1},Ga=window.SVGElement,Ha=function(a,b,c){var
d,e=N.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d
in
c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return
b.appendChild(e),e},Ia=N.documentElement,Ja=function(){var
a,b,c,d=p||/Android/i.test(S)&&!window.chrome;return
N.createElementNS&&!d&&(a=Ha("svg",Ia),b=Ha("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Da]="50%
50%",b.style[Ba]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Ea),Ia.removeChild(a)),d}(),Ka=function(a,b,c,d,e,f){var
h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Oa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split("
")).length<2)&&(n=a.getBBox(),b=ga(b).split("
"),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Na&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join("
"))},La=function(a){try{return
a.getBBox()}catch(a){}},Ma=function(a){return!!(Ga&&a.getBBox&&a.getCTM&&La(a)&&(!a.parentNode||a.parentNode.getBBox&&a.parentNode.getCTM))},Na=[1,0,0,1,0,0],Oa=function(a,b){var
c,d,e,f,g,h,i=a._gsTransform||new
Fa,j=1e5,k=a.style;if(Ba?d=$(a,Ca,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1,
0, 0, 1, 0,
0)"===d,c&&Ba&&((h="none"===Z(a).display)||!a.parentNode)&&(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ia.appendChild(a)),d=$(a,Ca,null,!0),c=!d||"none"===d||"matrix(1,
0, 0, 1, 0,
0)"===d,f?k.display=f:h&&Ta(k,"display"),g&&Ia.removeChild(a)),(i.svg||a.getBBox&&Ma(a))&&(c&&-1!==(k[Ba]+"").indexOf("matrix")&&(d=k[Ba],c=0),e=a.getAttribute("transform"),c&&e&&(-1!==e.indexOf("matrix")?(d=e,c=0):-1!==e.indexOf("translate")&&(d="matrix(1,0,0,1,"+e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",c=0))),c)return
Na;for(e=(d||"").match(s)||[],va=e.length;--va>-1;)f=Number(e[va]),e[va]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return
b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Pa=R.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return
a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Fa:new
Fa,n=m.scaleX<0,o=2e-5,p=1e5,q=Ea?parseFloat($(a,Da,c,!1,"0 0
0").split("
")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getBBox||!Ma(a)),m.svg&&(Ka(a,$(a,Da,c,!1,"50%
50%")+"",m,a.getAttribute("data-svg-origin")),za=g.useSVGTransformAttr||Ja),f=Oa(a),f!==Na){if(16===f.length){var
s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),x=x*v+B*w,t=y*v+C*w,C=y*-w+C*v,D=z*-w+D*v,y=t),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),m.scaleX=(Math.sqrt(x*x+y*y)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+G*G)*p+.5|0)/p,m.scaleZ=(Math.sqrt(D*D+H*H)*p+.5|0)/p,m.rotationX||m.rotationY?m.skewX=0:(m.skewX=B||C?Math.atan2(B,C)*L+m.rotation:m.skewX||0,Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180))),m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else
if(!Ea||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var
O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,Math.abs(l)>90&&Math.abs(l)<270&&(n?(i*=-1,l+=0>=k?180:-180,k+=0>=k?180:-180):(j*=-1,l+=0>=l?180:-180)),m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Ea&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}m.zOrigin=q;for(h
in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return
d&&(a._gsTransform=m,m.svg&&(za&&a.style[Ba]?b.delayedCall(.001,function(){Ta(a.style,Ba)}):!za&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Qa=function(a){var
b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var
n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+",
M12="+i+", M21="+j+",
M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=",
Dx="+(n-(n*h+o*i)+u)+",
Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto
expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+"
"+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0,
Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var
y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),va=0;4>va;va++)z=ea[va],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):_(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>va?-d.ieOffsetX:-d.ieOffsetY:2>va?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===va||2===va?1:B)))+"px"}}},Ra=R.set3DTransformRatio=R.setTransformRatio=function(a){var
b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D;if(((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||za&&L||!Ea)return
void(B||z.skewX||L?(B*=K,x=z.skewX*K,y=1e5,b=Math.cos(B)*E,e=Math.sin(B)*E,c=Math.sin(B-x)*-F,f=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(s=Math.tan(x-z.skewY*K),s=Math.sqrt(1+s*s),c*=s,f*=s,z.skewY&&(s=Math.tan(z.skewY*K),s=Math.sqrt(1+s*s),b*=s,e*=s)),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,I+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset,za&&(z.xPercent||z.yPercent)&&(p=this.t.getBBox(),H+=.01*z.xPercent*p.width,I+=.01*z.yPercent*p.height),p=1e-6,p>H&&H>-p&&(H=0),p>I&&I>-p&&(I=0)),u=(b*y|0)/y+","+(e*y|0)/y+","+(c*y|0)/y+","+(f*y|0)/y+","+H+","+I+")",L&&za?this.t.setAttribute("transform","matrix("+u):A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%)
matrix(":"matrix(")+u):A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%)
matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(p=1e-4,p>E&&E>-p&&(E=G=2e-5),p>F&&F>-p&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||z.skewX)B*=K,q=b=Math.cos(B),r=e=Math.sin(B),z.skewX&&(B-=z.skewX*K,q=Math.cos(B),r=Math.sin(B),"simple"===z.skewType&&(s=Math.tan((z.skewX-z.skewY)*K),s=Math.sqrt(1+s*s),q*=s,r*=s,z.skewY&&(s=Math.tan(z.skewY*K),s=Math.sqrt(1+s*s),b*=s,e*=s))),c=-r,f=q;else{if(!(D||C||1!==G||M||L))return
void(A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%)
translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?"
scale("+E+","+F+")":""));b=f=1,c=e=0}j=1,d=g=h=i=k=l=0,m=M?-1/M:0,o=z.zOrigin,p=1e-6,v=",",w="0",B=D*K,B&&(q=Math.cos(B),r=Math.sin(B),h=-r,k=m*-r,d=b*r,g=e*r,j=q,m*=q,b*=q,e*=q),B=C*K,B&&(q=Math.cos(B),r=Math.sin(B),s=c*q+d*r,t=f*q+g*r,i=j*r,l=m*r,d=c*-r+d*q,g=f*-r+g*q,j*=q,m*=q,c=s,f=t),1!==G&&(d*=G,g*=G,j*=G,m*=G),1!==F&&(c*=F,f*=F,i*=F,l*=F),1!==E&&(b*=E,e*=E,h*=E,k*=E),(o||L)&&(o&&(H+=d*-o,I+=g*-o,J+=j*-o+o),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,I+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset),p>H&&H>-p&&(H=w),p>I&&I>-p&&(I=w),p>J&&J>-p&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%)
matrix3d(":"matrix3d(",u+=(p>b&&b>-p?w:b)+v+(p>e&&e>-p?w:e)+v+(p>h&&h>-p?w:h),u+=v+(p>k&&k>-p?w:k)+v+(p>c&&c>-p?w:c)+v+(p>f&&f>-p?w:f),C||D||1!==G?(u+=v+(p>i&&i>-p?w:i)+v+(p>l&&l>-p?w:l)+v+(p>d&&d>-p?w:d),u+=v+(p>g&&g>-p?w:g)+v+(p>j&&j>-p?w:j)+v+(p>m&&m>-p?w:m)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ba]=u};j=Fa.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,xa("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return
f;d._lastParsedTransform=i;var j;"function"==typeof
i[c]&&(j=i[c],i[c]=b);var
k,l,m,n,o,p,s,t,u,v=a._gsTransform,w=a.style,x=1e-6,y=Aa.length,z=i,A={},B="transformOrigin",C=Pa(a,e,!0,z.parseTransform),D=z.transform&&("function"==typeof
z.transform?z.transform(r,q):z.transform);if(d._transform=C,D&&"string"==typeof
D&&Ba)l=P.style,l[Ba]=D,l.display="block",l.position="absolute",N.body.appendChild(P),k=Pa(P,null,!1),C.svg&&(p=C.xOrigin,s=C.yOrigin,k.x-=C.xOffset,k.y-=C.yOffset,(z.transformOrigin||z.svgOrigin)&&(D={},Ka(a,ga(z.transformOrigin),D,z.svgOrigin,z.smoothOrigin,!0),p=D.xOrigin,s=D.yOrigin,k.x-=D.xOffset-C.xOffset,k.y-=D.yOffset-C.yOffset),(p||s)&&(t=Oa(P,!0),k.x-=p-(p*t[0]+s*t[2]),k.y-=s-(p*t[1]+s*t[3]))),N.body.removeChild(P),k.perspective||(k.perspective=C.perspective),null!=z.xPercent&&(k.xPercent=ia(z.xPercent,C.xPercent)),null!=z.yPercent&&(k.yPercent=ia(z.yPercent,C.yPercent));else
if("object"==typeof
z){if(k={scaleX:ia(null!=z.scaleX?z.scaleX:z.scale,C.scaleX),scaleY:ia(null!=z.scaleY?z.scaleY:z.scale,C.scaleY),scaleZ:ia(z.scaleZ,C.scaleZ),x:ia(z.x,C.x),y:ia(z.y,C.y),z:ia(z.z,C.z),xPercent:ia(z.xPercent,C.xPercent),yPercent:ia(z.yPercent,C.yPercent),perspective:ia(z.transformPerspective,C.perspective)},o=z.directionalRotation,null!=o)if("object"==typeof
o)for(l in o)z[l]=o[l];else z.rotation=o;"string"==typeof
z.x&&-1!==z.x.indexOf("%")&&(k.x=0,k.xPercent=ia(z.x,C.xPercent)),"string"==typeof
z.y&&-1!==z.y.indexOf("%")&&(k.y=0,k.yPercent=ia(z.y,C.yPercent)),k.rotation=ja("rotation"in
z?z.rotation:"shortRotation"in
z?z.shortRotation+"_short":"rotationZ"in
z?z.rotationZ:C.rotation-C.skewY,C.rotation-C.skewY,"rotation",A),Ea&&(k.rotationX=ja("rotationX"in
z?z.rotationX:"shortRotationX"in
z?z.shortRotationX+"_short":C.rotationX||0,C.rotationX,"rotationX",A),k.rotationY=ja("rotationY"in
z?z.rotationY:"shortRotationY"in
z?z.shortRotationY+"_short":C.rotationY||0,C.rotationY,"rotationY",A)),k.skewX=ja(z.skewX,C.skewX-C.skewY),(k.skewY=ja(z.skewY,C.skewY))&&(k.skewX+=k.skewY,k.rotation+=k.skewY)}for(Ea&&null!=z.force3D&&(C.force3D=z.force3D,n=!0),C.skewType=z.skewType||C.skewType||g.defaultSkewType,m=C.force3D||C.z||C.rotationX||C.rotationY||k.z||k.rotationX||k.rotationY||k.perspective,m||null==z.scale||(k.scaleZ=1);--y>-1;)u=Aa[y],D=k[u]-C[u],(D>x||-x>D||null!=z[u]||null!=M[u])&&(n=!0,
f=new sa(C,u,C[u],D,f),u in
A&&(f.e=A[u]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return
D=z.transformOrigin,C.svg&&(D||z.svgOrigin)&&(p=C.xOffset,s=C.yOffset,Ka(a,ga(D),k,z.svgOrigin,z.smoothOrigin),f=ta(C,"xOrigin",(v?C:k).xOrigin,k.xOrigin,f,B),f=ta(C,"yOrigin",(v?C:k).yOrigin,k.yOrigin,f,B),(p!==C.xOffset||s!==C.yOffset)&&(f=ta(C,"xOffset",v?p:C.xOffset,C.xOffset,f,B),f=ta(C,"yOffset",v?s:C.yOffset,C.yOffset,f,B)),D=za?null:"0px
0px"),(D||Ea&&m&&C.zOrigin)&&(Ba?(n=!0,u=Da,D=(D||$(a,u,e,!1,"50%
50%"))+"",f=new
sa(w,u,0,0,f,-1,B),f.b=w[u],f.plugin=h,Ea?(l=C.zOrigin,D=D.split("
"),C.zOrigin=(D.length>2&&(0===l||"0px"!==D[2])?parseFloat(D[2]):l)||0,f.xs0=f.e=D[0]+"
"+(D[1]||"50%")+" 0px",f=new
sa(C,"zOrigin",0,0,f,-1,f.n),f.b=l,f.xs0=f.e=C.zOrigin):f.xs0=f.e=D):ga(D+"",C)),n&&(d._transformType=C.svg&&za||!m&&3!==this._transformType?2:3),j&&(i[c]=j),f},prefix:!0}),xa("boxShadow",{defaultValue:"0px
0px 0px 0px
#999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),xa("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var
i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split("
"),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=Y(y[j])),m=l=$(a,y[j],e,!1,"0px"),-1!==m.indexOf("
")&&(l=m.split("
"),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=_(a,"borderLeft",o,t),w=_(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=_(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=ua(z,y[j],m+"
"+l,n+" "+k,!1,"0px",g);return
g},prefix:!0,formatter:pa("0px 0px 0px
0px",!1,!0)}),xa("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return
ua(a.style,c,this.format($(a,c,e,!1,"0px
0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:pa("0px
0px",!1,!0)}),xa("backgroundPosition",{defaultValue:"0
0",parser:function(a,b,c,d,f,g){var
h,i,j,k,l,m,n="background-position",o=e||Z(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+"
"+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+"
"+a.currentStyle.backgroundPositionY)||"0
0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=$(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split("
"),i=r.split("
"),Q.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-Q.width:a.offsetHeight-Q.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join("
")}return
this.parseComplex(a.style,q,r,f,g)},formatter:ga}),xa("backgroundSize",{defaultValue:"0
0",formatter:function(a){return
a+="",ga(-1===a.indexOf(" ")?a+"
"+a:a)}}),xa("perspective",{defaultValue:"0px",prefix:!0}),xa("perspectiveOrigin",{defaultValue:"50%
50%",prefix:!0}),xa("transformStyle",{prefix:!0}),xa("backfaceVisibility",{prefix:!0}),xa("userSelect",{prefix:!0}),xa("margin",{parser:qa("marginTop,marginRight,marginBottom,marginLeft")}),xa("padding",{parser:qa("paddingTop,paddingRight,paddingBottom,paddingLeft")}),xa("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var
h,i,j;return 9>p?(i=a.currentStyle,j=8>p?"
":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format($(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),xa("textShadow",{defaultValue:"0px
0px 0px
#999",color:!0,multi:!0}),xa("autoRound,strictUnits",{parser:function(a,b,c,d,e){return
e}}),xa("border",{defaultValue:"0px solid
#000",parser:function(a,b,c,d,f,g){var
h=$(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split("
"),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/_(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+"
"+$(a,"borderTopStyle",e,!1,"solid")+"
"+$(a,"borderTopColor",e,!1,"#000")),i.join("
"),f,g)},color:!0,formatter:function(a){var b=a.split("
");return b[0]+" "+(b[1]||"solid")+"
"+(a.match(oa)||["#000"])[0]}}),xa("borderWidth",{parser:qa("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),xa("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var
g=a.style,h="cssFloat"in
g?"cssFloat":"styleFloat";return new
sa(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Sa=function(a){var
b,c=this.t,d=c.filter||$(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!$(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+"
alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};xa("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var
h=parseFloat($(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof
b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===$(a,"visibility",e)&&0!==b&&(h=0),T?f=new
sa(i,"opacity",h,b-h,f):(f=new
sa(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Sa),j&&(f=new
sa(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var
Ta=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Ua=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var
b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Ta(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else
this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};xa("className",{parser:function(a,b,d,f,g,h,i){var
j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new
sa(a,d,0,0,g,2),g.setRatio=Ua,g.pr=-11,c=!0,g.b=o,k=ba(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return
a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new
RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?"
"+b.substr(2):""),a.setAttribute("class",g.e),j=ca(a,k,ba(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var
Va=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var
b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else
for(b=this.e.split("
").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Da:i[c].p),Ta(g,c);e&&(Ta(g,Ba),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete
this.t._gsTransform))}};for(xa("clearProps",{parser:function(a,b,d,e,f){return
f=new
sa(a,d,0,0,f,2),f.setRatio=Va,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),va=j.length;va--;)ya(j[va]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=Z(a,""),f=this._overwriteProps;var
n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=$(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof
b&&(t=A.cssText,n=ba(a,e),A.cssText=t+";"+b,n=ca(a,n,ba(a)).difs,!T&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Ba?m&&(l=!0,""===A.zIndex&&(w=$(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new
sa(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ba?Ra:Qa,x.data=this._transform||Pa(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var
g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in
b)n=b[g],"function"==typeof
n&&(n=n(r,q)),h=i[g],h?c=h.parse(a,n,g,this,c,f,b):(m=$(a,g,e)+"",s="string"==typeof
n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=ma(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=ua(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=ua(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=fa(a,g,e),o="px"):"left"===g||"top"===g?(j=aa(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g
in
d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&""!==p&&(l||0===l)&&j&&(j=_(a,g,j,o),"%"===p?(j/=_(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=_(a,g,1,p):"px"!==p&&(l=_(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void
0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new
sa(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):V("invalid
"+g+" tween value: "+b[g]):(c=new
sa(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))),f&&c&&!c.plugin&&(c.plugin=f);return
c},j.setRatio=function(a){var
b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else
if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else
if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else
if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else
e.t[e.p]=b+e.xs0;e=e._next}else
for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else
for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=Math.round(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else
e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else
e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Pa(this._target,e,!0),this._transformType=this._transform.svg&&za||!a&&3!==this._transformType?2:3};var
Wa=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var
d=this._firstPT=new
sa(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Wa,d.data=this},j._linkCSSP=function(a,b,c,d){return
a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._mod=function(a){for(var
b=this._firstPT;b;)"function"==typeof
a[b.p]&&a[b.p]===Math.round&&(b.r=1),b=b._next},j._kill=function(b){var
c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in
b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}for(b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),c=this._firstPT;c;)c.plugin&&c.plugin!==d&&c.plugin._kill&&(c.plugin._kill(b),d=c.plugin),c=c._next;return
a.prototype._kill.call(this,f)};var Xa=function(a,b,c){var
d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Xa(a[e],b,c);else
for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ba(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Xa(f,b,c)};return
g.cascadeTo=function(a,c,d){var
e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Xa(a,k,m),i.render(c,!0,!0),Xa(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=ca(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g
in d)n[g]&&(f[g]=d[g]);h={};for(g in
f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return
j},a.activate([g]),g},!0),function(){var
a=_gsScope._gsDefine.plugin({propName:"roundProps",version:"1.6.0",priority:-1,API:2,init:function(a,b,c){return
this._tween=c,!0}}),b=function(a){for(;a;)a.f||a.blob||(a.m=Math.round),a=a._next},c=a.prototype;c._onInitAllProps=function(){for(var
a,c,d,e=this._tween,f=e.vars.roundProps.join?e.vars.roundProps:e.vars.roundProps.split(","),g=f.length,h={},i=e._propLookup.roundProps;--g>-1;)h[f[g]]=Math.round;for(g=f.length;--g>-1;)for(a=f[g],c=e._firstPT;c;)d=c._next,c.pg?c.t._mod(h):c.n===a&&(2===c.f&&c.t?b(c.t._firstPT):(this._add(c.t,a,c.s,c.c),d&&(d._prev=c._prev),c._prev?c._prev._next=d:e._firstPT===c&&(e._firstPT=d),c._next=c._prev=null,e._propLookup[a]=i)),c=d;return!1},c._add=function(a,b,c,d){this._addTween(a,b,c,c+d,b,Math.round),this._overwriteProps.push(b)}}(),function(){_gsScope._gsDefine.plugin({propName:"attr",API:2,version:"0.6.0",init:function(a,b,c,d){var
e,f;if("function"!=typeof a.setAttribute)return!1;for(e in
b)f=b[e],"function"==typeof
f&&(f=f(d,a)),this._addTween(a,"setAttribute",a.getAttribute(e)+"",f+"",e,!1,e),this._overwriteProps.push(e);return!0}})}(),_gsScope._gsDefine.plugin({propName:"directionalRotation",version:"0.3.0",API:2,init:function(a,b,c,d){"object"!=typeof
b&&(b={rotation:b}),this.finals={};var
e,f,g,h,i,j,k=b.useRadians===!0?2*Math.PI:360,l=1e-6;for(e in
b)"useRadians"!==e&&(h=b[e],"function"==typeof
h&&(h=h(d,a)),j=(h+"").split("_"),f=j[0],g=parseFloat("function"!=typeof
a[e]?a[e]:a[e.indexOf("set")||"function"!=typeof
a["get"+e.substr(3)]?e:"get"+e.substr(3)]()),h=this.finals[e]="string"==typeof
f&&"="===f.charAt(1)?g+parseInt(f.charAt(0)+"1",10)*Number(f.substr(2)):Number(f)||0,i=h-g,j.length&&(f=j.join("_"),-1!==f.indexOf("short")&&(i%=k,i!==i%(k/2)&&(i=0>i?i+k:i-k)),-1!==f.indexOf("_cw")&&0>i?i=(i+9999999999*k)%k-(i/k|0)*k:-1!==f.indexOf("ccw")&&i>0&&(i=(i-9999999999*k)%k-(i/k|0)*k)),(i>l||-l>i)&&(this._addTween(a,e,g,g+i,e),this._overwriteProps.push(e)));return!0},set:function(a){var
b;if(1!==a)this._super.setRatio.call(this,a);else
for(b=this._firstPT;b;)b.f?b.t[b.p](this.finals[b.p]):b.t[b.p]=this.finals[b.p],b=b._next}})._autoCSS=!0,_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var
b,c,d,e=_gsScope.GreenSockGlobals||_gsScope,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var
d=i("easing."+b,function(){},!0),e=d.prototype=new a;return
e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var
f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new
d},!0);return
k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var
d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new
a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new
d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return
a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new
a;return q.constructor=p,q.getRatio=function(a){var
b=a+(.5-a)*this._p;return
a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new
p(.7,.7),q.config=p.config=function(a,b,c){return new
p(a,b,c)},b=i("easing.SteppedEase",function(a){a=a||1,this._p1=1/a,this._p2=a+1},!0),q=b.prototype=new
a,q.constructor=b,q.getRatio=function(a){return
0>a?a=0:a>=1&&(a=.999999999),(this._p2*a>>0)*this._p1},q.config=b.config=function(a){return
new b(a)},c=i("easing.RoughEase",function(b){b=b||{};for(var
c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template
instanceof a?b.template:null,r="number"==typeof
b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return
a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new
m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new
a,q.constructor=c,q.getRatio=function(a){var
b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else
for(;b.prev&&a<=b.t;)b=b.prev;return
this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new
c(a)},c.ease=new
c,l("Bounce",j("BounceOut",function(a){return
1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var
b=.5>a;return
a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return
Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var
e=i("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/g*(Math.asin(1/this._p1)||0),this._p2=g/this._p2},!0),f=e.prototype=new
a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new
e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return
this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return
1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return
Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return
Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return
a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a,b){"use
strict";var
c={},d=a.GreenSockGlobals=a.GreenSockGlobals||a;if(!d.TweenLite){var
e,f,g,h,i,j=function(a){var
b,c=a.split("."),e=d;for(b=0;b<c.length;b++)e[c[b]]=e=e[c[b]]||{};return
e},k=j("com.greensock"),l=1e-10,m=function(a){var
b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return
c},n=function(){},o=function(){var
a=Object.prototype.toString,b=a.call([]);return function(c){return
null!=c&&(c instanceof Array||"object"==typeof
c&&!!c.push&&a.call(c)===b)}}(),p={},q=function(e,f,g,h){this.sc=p[e]?p[e].sc:[],p[e]=this,this.gsClass=null,this.func=g;var
i=[];this.check=function(k){for(var
l,m,n,o,r,s=f.length,t=s;--s>-1;)(l=p[f[s]]||new
q(f[s],[])).gsClass?(i[s]=l.gsClass,t--):k&&l.sc.push(this);if(0===t&&g){if(m=("com.greensock."+e).split("."),n=m.pop(),o=j(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(d[n]=c[n]=o,r="undefined"!=typeof
module&&module.exports,!r&&"function"==typeof
define&&define.amd)define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+e.split(".").pop(),[],function(){return
o});else if(r)if(e===b){module.exports=c[b]=o;for(s in c)o[s]=c[s]}else
c[b]&&(c[b][n]=o);for(s=0;s<this.sc.length;s++)this.sc[s].check()}},this.check(!0)},r=a._gsDefine=function(a,b,c,d){return
new q(a,b,c,d)},s=k._class=function(a,b,c){return
b=b||function(){},r(a,[],function(){return b},c),b};r.globals=d;var
t=[0,0,1,1],u=s("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?t.concat(b):t},!0),v=u.map={},w=u.register=function(a,b,c,d){for(var
e,f,g,h,i=b.split(","),j=i.length,l=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?s("easing."+f,null,!0):k.easing[f]||{},g=l.length;--g>-1;)h=l[g],v[f+"."+h]=v[h+f]=e[h]=a.getRatio?a:a[h]||new
a};for(g=u.prototype,g._calcEnd=!1,g.getRatio=function(a){if(this._func)return
this._params[0]=a,this._func.apply(null,this._params);var
b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return
1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},e=["Linear","Quad","Cubic","Quart","Quint,Strong"],f=e.length;--f>-1;)g=e[f]+",Power"+f,w(new
u(null,null,1,f),g,"easeOut",!0),w(new
u(null,null,2,f),g,"easeIn"+(0===f?",easeNone":"")),w(new
u(null,null,3,f),g,"easeInOut");v.linear=k.easing.Linear.easeIn,v.swing=k.easing.Quad.easeInOut;var
x=s("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});g=x.prototype,g.addEventListener=function(a,b,c,d,e){e=e||0;var
f,g,j=this._listeners[a],k=0;for(this!==h||i||h.wake(),null==j&&(this._listeners[a]=j=[]),g=j.length;--g>-1;)f=j[g],f.c===b&&f.s===c?j.splice(g,1):0===k&&f.pr<e&&(k=g+1);j.splice(k,0,{c:b,s:c,up:d,pr:e})},g.removeEventListener=function(a,b){var
c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return
void d.splice(c,1)},g.dispatchEvent=function(a){var
b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var
y=a.requestAnimationFrame,z=a.cancelAnimationFrame,A=Date.now||function(){return(new
Date).getTime()},B=A();for(e=["ms","moz","webkit","o"],f=e.length;--f>-1&&!y;)y=a[e[f]+"RequestAnimationFrame"],z=a[e[f]+"CancelAnimationFrame"]||a[e[f]+"CancelRequestAnimationFrame"];s("Ticker",function(a,b){var
c,d,e,f,g,j=this,k=A(),m=b!==!1&&y?"auto":!1,o=500,p=33,q="tick",r=function(a){var
b,h,i=A()-B;i>o&&(k+=i-p),B+=i,j.time=(B-k)/1e3,b=j.time-g,(!c||b>0||a===!0)&&(j.frame++,g+=b+(b>=f?.004:f-b),h=!0),a!==!0&&(e=d(r)),h&&j.dispatchEvent(q)};x.call(j),j.time=j.frame=0,j.tick=function(){r(!0)},j.lagSmoothing=function(a,b){o=a||1/l,p=Math.min(b,o,0)},j.sleep=function(){null!=e&&(m&&z?z(e):clearTimeout(e),d=n,e=null,j===h&&(i=!1))},j.wake=function(a){null!==e?j.sleep():a?k+=-B+(B=A()):j.frame>10&&(B=A()-o+5),d=0===c?n:m&&y?y:function(a){return
setTimeout(a,1e3*(g-j.time)+1|0)},j===h&&(i=!0),r(2)},j.fps=function(a){return
arguments.length?(c=a,f=1/(c||60),g=this.time+f,void
j.wake()):c},j.useRAF=function(a){return
arguments.length?(j.sleep(),m=a,void
j.fps(c)):m},j.fps(a),setTimeout(function(){"auto"===m&&j.frame<5&&"hidden"!==document.visibilityState&&j.useRAF(!1)},1500)}),g=k.Ticker.prototype=new
k.events.EventDispatcher,g.constructor=k.Ticker;var
C=s("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,V){i||h.wake();var
c=this.vars.useFrames?U:V;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});h=C.ticker=new
k.Ticker,g=C.prototype,g._dirty=g._gc=g._initted=g._paused=!1,g._totalTime=g._time=0,g._rawPrevTime=-1,g._next=g._last=g._onUpdate=g._timeline=g.timeline=null,g._paused=!1;var
D=function(){i&&A()-B>2e3&&h.wake(),setTimeout(D,2e3)};D(),g.play=function(a,b){return
null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},g.pause=function(a,b){return
null!=a&&this.seek(a,b),this.paused(!0)},g.resume=function(a,b){return
null!=a&&this.seek(a,b),this.paused(!1)},g.seek=function(a,b){return
this.totalTime(Number(a),b!==!1)},g.restart=function(a,b){return
this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},g.reverse=function(a,b){return
null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},g.render=function(a,b,c){},g.invalidate=function(){return
this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},g.isActive=function(){var
a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime())>=c&&a<c+this.totalDuration()/this._timeScale},g._enabled=function(a,b){return
i||h.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},g._kill=function(a,b){return
this._enabled(!1,!1)},g.kill=function(a,b){return
this._kill(a,b),this},g._uncache=function(a){for(var
b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return
this},g._swapSelfInParams=function(a){for(var
b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return
c},g._callback=function(a){var
b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case
0:c.call(e);break;case 1:c.call(e,d[0]);break;case
2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},g.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var
e=this.vars;if(1===arguments.length)return e[a];null==b?delete
e[a]:(e[a]=b,e[a+"Params"]=o(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return
this},g.delay=function(a){return
arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},g.duration=function(a){return
arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},g.totalDuration=function(a){return
this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},g.time=function(a,b){return
arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},g.totalTime=function(a,b,c){if(i||h.wake(),!arguments.length)return
this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var
d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(I.length&&X(),this.render(a,b,!1),I.length&&X())}return
this},g.progress=g.totalProgress=function(a,b){var c=this.duration();return
arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},g.startTime=function(a){return
arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},g.endTime=function(a){return
this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},g.timeScale=function(a){if(!arguments.length)return
this._timeScale;if(a=a||l,this._timeline&&this._timeline.smoothChildTiming){var
b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime();this._startTime=c-(c-this._startTime)*this._timeScale/a}return
this._timeScale=a,this._uncache(!1)},g.reversed=function(a){return
arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},g.paused=function(a){if(!arguments.length)return
this._paused;var b,c,d=this._timeline;return
a!=this._paused&&d&&(i||a||h.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var
E=s("core.SimpleTimeline",function(a){C.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});g=E.prototype=new
C,g.constructor=E,g.kill()._gc=!1,g._first=g._last=g._recent=null,g._sortChildren=!1,g.add=g.insert=function(a,b,c,d){var
e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return
e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},g._remove=function(a,b){return
a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},g.render=function(a,b,c){var
d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},g.rawTime=function(){return
i||h.wake(),this._totalTime};var
F=s("TweenLite",function(b,c,d){if(C.call(this,c,d),this.render=F.prototype.render,null==b)throw"Cannot
tween a null target.";this.target=b="string"!=typeof
b?b:F.selector(b)||b;var
e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?T[F.defaultOverwrite]:"number"==typeof
i?i>>0:T[i],(h||b instanceof
Array||b.push&&o(b))&&"number"!=typeof
b[0])for(this._targets=g=m(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof
f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(m(f))):(this._siblings[e]=Y(f,this,!1),1===i&&this._siblings[e].length>1&&$(f,this,null,1,this._siblings[e])):(f=g[e--]=F.selector(f),"string"==typeof
f&&g.splice(e+1,1)):g.splice(e--,1);else
this._propLookup={},this._siblings=Y(b,this,!1),1===i&&this._siblings.length>1&&$(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-l,this.render(Math.min(0,-this._delay)))},!0),G=function(b){return
b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType);
},H=function(a,b){var c,d={};for(c in a)S[c]||c in
b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!P[c]||P[c]&&P[c]._autoCSS)||(d[c]=a[c],delete
a[c]);a.css=d};g=F.prototype=new
C,g.constructor=F,g.kill()._gc=!1,g.ratio=0,g._firstPT=g._targets=g._overwrittenProps=g._startAt=null,g._notifyPluginsOfEnabled=g._lazy=!1,F.version="1.19.0",F.defaultEase=g._ease=new
u(null,null,1,1),F.defaultOverwrite="auto",F.ticker=h,F.autoSleep=120,F.lagSmoothing=function(a,b){h.lagSmoothing(a,b)},F.selector=a.$||a.jQuery||function(b){var
c=a.$||a.jQuery;return c?(F.selector=c,c(b)):"undefined"==typeof
document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)};var
I=[],J={},K=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,L=function(a){for(var
b,c=this._firstPT,d=1e-6;c;)b=c.blob?a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m(b,this._target||c.t):d>b&&b>-d&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},M=function(a,b,c,d){var
e,f,g,h,i,j,k,l=[a,b],m=0,n="",o=0;for(l.start=a,c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(K)||[],f=b.match(K)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:0}),m+=k.length;return
n+=b.substr(m),n&&l.push(n),l.setRatio=L,l},N=function(a,b,c,d,e,f,g,h,i){"function"==typeof
d&&(d=d(i||0,a));var j,k,l="get"===c?a[b]:c,m=typeof
a[b],n="string"==typeof
d&&"="===d.charAt(1),o={t:a,p:b,s:l,f:"function"===m,pg:0,n:e||b,m:f?"function"==typeof
f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-l||0};return"number"!==m&&("function"===m&&"get"===c&&(k=b.indexOf("set")||"function"!=typeof
a["get"+b.substr(3)]?b:"get"+b.substr(3),o.s=l=g?a[k](g):a[k]()),"string"==typeof
l&&(g||isNaN(l))?(o.fp=g,j=M(l,d,h||F.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):n||(o.s=parseFloat(l),o.c=parseFloat(d)-o.s||0)),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void
0},O=F._internals={isArray:o,isSelector:G,lazyTweens:I,blobDif:M},P=F._plugins={},Q=O.tweenLookup={},R=0,S=O.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1},T={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},U=C._rootFramesTimeline=new
E,V=C._rootTimeline=new E,W=30,X=O.lazyRender=function(){var
a,b=I.length;for(J={};--b>-1;)a=I[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);I.length=0};V._startTime=h.time,U._startTime=h.frame,V._active=U._active=!0,setTimeout(X,1),C._updateRoot=F.render=function(){var
a,b,c;if(I.length&&X(),V.render((h.time-V._startTime)*V._timeScale,!1,!1),U.render((h.frame-U._startTime)*U._timeScale,!1,!1),I.length&&X(),h.frame>=W){W=h.frame+(parseInt(F.autoSleep,10)||120);for(c
in
Q){for(b=Q[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete
Q[c]}if(c=V._first,(!c||c._paused)&&F.autoSleep&&!U._first&&1===h._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||h.sleep()}}},h.addEventListener("tick",C._updateRoot);var
Y=function(a,b,c){var
d,e,f=a._gsTweenID;if(Q[f||(a._gsTweenID=f="t"+R++)]||(Q[f]={target:a,tweens:[]}),b&&(d=Q[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return
Q[f].tweens},Z=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return
g&&(e=g(a,b,c,d)),g=F.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},$=function(a,b,c,d,e){var
f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else
if(5===d)break;return g}var
j,k=b._startTime+l,m=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||_(b,0,o),0===_(h,j,o)&&(m[n++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(m[n++]=h)));for(f=n;--f>-1;)if(h=m[f],2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted){if(2!==d&&!Z(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return
g},_=function(a,b,c){for(var
d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return
f/=e,f>b?f-b:c&&f===b||!a._initted&&2*l>f-b?l:(f+=a.totalDuration()/a._timeScale/e)>b+l?0:f-b-l};g._init=function(){var
a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease;if(g.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d
in
g.startAt)e[d]=g.startAt[d];if(e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,this._startAt=F.to(this.target,0,e),j)if(this._time>0)this._startAt=null;else
if(0!==i)return}else
if(g.runBackwards&&0!==i)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d
in
g)S[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=F.to(this.target,0,c),j){if(0===this._time)return}else
this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k
instanceof u?k:"function"==typeof k?new
u(k,g.easeParams):v[k]||F.defaultEase:F.defaultEase,g.easeParams instanceof
Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else
b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&F._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof
this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},g._initProps=function(b,c,d,e,f){var
g,h,i,j,k,l;if(null==b)return!1;J[b._gsTweenID]&&X(),this.vars.css||b.style&&b!==a&&b.nodeType&&P.css&&this.vars.autoCSS!==!1&&H(this.vars,b);for(g
in this.vars)if(l=this.vars[g],S[g])l&&(l instanceof
Array||l.push&&o(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else
if(P[g]&&(j=new
P[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else
c[g]=N.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return
e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&$(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(J[b._gsTweenID]=!0),i)},g.render=function(a,b,c){var
d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===l&&"isPause"!==this.data)&&j!==a&&(c=!0,j>l&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:l);else
if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==l||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:l)),this._initted||(c=!0);else
if(this._totalTime=this._time=a,this._easeType){var
k=a/i,m=this._easeType,n=this._easePower;(1===m||3===m&&k>=.5)&&(k=1-k),3===m&&(k*=2),1===n?k*=k:2===n?k*=k*k:3===n?k*=k*k*k:4===n&&(k*=k*k*k*k),1===m?this.ratio=1-k:2===m?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else
this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return
this._time=this._totalTime=h,this._rawPrevTime=j,I.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,b,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===l&&g!==l&&(this._rawPrevTime=0))}},g._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return
this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof
b?b||this._targets||this.target:F.selector(b)||b;var
d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline;if((o(b)||G(b))&&"number"!=typeof
b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof
a||!a._tempKill),c&&(F.onOverwrite||this.vars.onOverwrite)){for(f
in
j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!Z(this,c,b,l))return!1}for(f
in
j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete
h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return
i},g.invalidate=function(){return
this._notifyPluginsOfEnabled&&F._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],C.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-l,this.render(Math.min(0,-this._delay))),this},g._enabled=function(a,b){if(i||h.wake(),a&&this._gc){var
c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=Y(d[c],this,!0);else
this._siblings=Y(this.target,this,!0)}return
C.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?F._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},F.to=function(a,b,c){return
new F(a,b,c)},F.from=function(a,b,c){return
c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new
F(a,b,c)},F.fromTo=function(a,b,c,d){return
d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new
F(a,b,d)},F.delayedCall=function(a,b,c,d,e){return new
F(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},F.set=function(a,b){return
new
F(a,0,b)},F.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof
a?a:F.selector(a)||a;var
c,d,e,f;if((o(a)||G(a))&&"number"!=typeof
a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(F.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else
for(d=Y(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return
d},F.killTweensOf=F.killDelayedCallsTo=function(a,b,c){"object"==typeof
b&&(c=b,b=!1);for(var
d=F.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var
aa=s("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=aa.prototype},!0);if(g=aa.prototype,aa.version="1.19.0",aa.API=2,g._firstPT=null,g._addTween=N,g.setRatio=L,g._kill=function(a){var
b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else
for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},g._mod=g._roundProps=function(a){for(var
b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof
b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},F._onPluginEvent=function(a,b){var
c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof
h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return
c},aa.activate=function(a){for(var
b=a.length;--b>-1;)a[b].API===aa.API&&(P[(new
a[b])._propName]=a[b]);return!0},r.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal
plugin definition.";var
b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=s("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){aa.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new
aa(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof
a[b]&&(h[f[b]]=a[b]);return
g.version=a.version,aa.activate([g]),g},e=a._gsQueue){for(f=0;f<e.length;f++)e[f]();for(g
in p)p[g].func||a.console.log("GSAP encountered missing dependency:
"+g)}i=!1}}("undefined"!=typeof
module&&module.exports&&"undefined"!=typeof
global?global:this||window,"TweenMax");PK�X�[�V�offlajnparams/compat/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�V�5offlajnparams/compat/libraries/coomla/html/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[w8g�aaIofflajnparams/compat/libraries/coomla/html/parameter/element/calendar.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a calendar element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldCalendar instead.
 */
class JElementCalendar extends JElement
{
	/**
	 * Element name
	 *
	 * @var   string
	 * @deprecated    12.1
	 * @since  11.1
	 */
	protected $_name = 'Calendar';

	/**
	 * Fetch a calendar element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string   HTML string for a calendar
	 *
	 * @deprecated  12.1
	 * @see    JFormFieldCalendar
	 * @since  11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementCalendar::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		// Load the calendar behavior
		JHtml::_('behavior.calendar');

		$format = ($node->attributes('format') ?
$node->attributes('format') : '%Y-%m-%d');
		$class = $node->attributes('class') ?
$node->attributes('class') : 'inputbox';
		$id = $control_name . $name;
		$name = $control_name . '[' . $name . ']';

		return JHtml::_('calendar', $value, $name, $id, $format,
array('class' => $class));
	}
}
PK�X�[5_���Iofflajnparams/compat/libraries/coomla/html/parameter/element/category.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a category element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldCategory instead.
 */
class JElementCategory extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Category';

	/**
	 * Fetch the element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @since   11.1
	 * @deprecated    12.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementCategory::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$db = JFactory::getDbo();

		$extension = $node->attributes('extension');
		$class = $node->attributes('class');
		$filter = explode(',',
$node->attributes('filter'));

		if (!isset($extension))
		{
			// Alias for extension
			$extension = $node->attributes('scope');
			if (!isset($extension))
			{
				$extension = 'com_content';
			}
		}

		if (!$class)
		{
			$class = "inputbox";
		}

		if (count($filter) < 1)
		{
			$filter = null;
		}

		return JHtml::_(
			'list.category',
			$control_name . '[' . $name . ']',
			$extension,
			$extension . '.view',
			$filter,
			(int) $value,
			$class,
			null,
			1,
			$control_name . $name
		);
	}
}
PK�X�[����
�
Qofflajnparams/compat/libraries/coomla/html/parameter/element/componentlayouts.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

require_once dirname(__FILE__) . '/list.php';

/**
 * Parameter to display a list of the layouts for a component view from the
extension or default template overrides.
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @see         JFormFieldComponentLayout
 * @note        When replacing take note that JFormFieldComponentLayout
does not end in s.
 * @since       11.1
 * @deprecated  Use JFormFieldComponentLayouts instead
 */
class JElementComponentLayouts extends JElementList
{
	/**
	 * @var    string
	 */
	protected $_name = 'ComponentLayouts';

	/**
	 * Get the options for the list.
	 *
	 * @param   JXMLElement  &$node  JXMLElement node object containing
the settings for the element
	 *
	 * @return  array
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 * @see         JFormFieldComponentLayout
	 */
	protected function _getOptions(&$node)
	{
		// Deprecation warning.
		JLog::add('JElementComponentLayouts::_getOptions() is
deprecated.', JLog::WARNING, 'deprecated');

		$options = array();
		$path1 = null;
		$path2 = null;

		// Load template entries for each menuid
		$db = JFactory::getDBO();
		$query = 'SELECT template' . ' FROM
#__template_styles' . ' WHERE client_id = 0 AND home = 1';
		$db->setQuery($query);
		$template = $db->loadResult();

		if ($view = $node->attributes('view') && $extn =
$node->attributes('extension'))
		{
			$view = preg_replace('#\W#', '', $view);
			$extn = preg_replace('#\W#', '', $extn);
			$path1 = JPATH_SITE . '/components/' . $extn .
'/views/' . $view . '/tmpl';
			$path2 = JPATH_SITE . '/templates/' . $template .
'/html/' . $extn . '/' . $view;
			$options[] = JHtml::_('select.option', '',
JText::_('JOPTION_USE_MENU_REQUEST_SETTING'));
		}

		if ($path1 && $path2)
		{
			jimport('joomla.filesystem.file');
			$path1 = JPath::clean($path1);
			$path2 = JPath::clean($path2);

			$files = JFolder::files($path1, '^[^_]*\.php$');
			foreach ($files as $file)
			{
				$options[] = JHtml::_('select.option',
JFile::stripExt($file));
			}

			if (is_dir($path2) && $files = JFolder::files($path2,
'^[^_]*\.php$'))
			{
				$options[] = JHtml::_('select.optgroup',
JText::_('JOPTION_FROM_DEFAULT_TEMPLATE'));
				foreach ($files as $file)
				{
					$options[] = JHtml::_('select.option',
JFile::stripExt($file));
				}
				$options[] = JHtml::_('select.optgroup',
JText::_('JOPTION_FROM_DEFAULT_TEMPLATE'));
			}
		}

		// Merge any additional options in the XML definition.
		$options = array_merge(parent::_getOptions($node), $options);

		return $options;
	}
}
PK�X�[�)E}��Qofflajnparams/compat/libraries/coomla/html/parameter/element/contentlanguages.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

require_once dirname(__FILE__) . '/list.php';

/**
 * Renders a select list of Asset Groups
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldContentLanguage instead.
 * @note        Be careful in replacing to note that
JFormFieldConentLanguage does not end in s.
 */
class JElementContentLanguages extends JElementList
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'ContentLanguages';

	/**
	 * Get the options for the element
	 *
	 * @param   JXMLElement  &$node  JXMLElement node object containing
the settings for the element
	 *
	 * @return  array
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1  Use JFormFieldContentLanguage::getOptions instead
	 */
	protected function _getOptions(&$node)
	{
		// Deprecation warning.
		JLog::add('JElementContentLanguages::_getOptions() is
deprecated.', JLog::WARNING, 'deprecated');

		$db = JFactory::getDbo();
		$query = $db->getQuery(true);

		$query->select('a.lang_code AS value, a.title AS text,
a.title_native');
		$query->from('#__languages AS a');
		$query->where('a.published >= 0');
		$query->order('a.title');

		// Get the options.
		$db->setQuery($query);
		$options = $db->loadObjectList();

		// Check for a database error.
		if ($db->getErrorNum())
		{
			JError::raiseWarning(500, $db->getErrorMsg());
		}

		// Merge any additional options in the XML definition.
		$options = array_merge(parent::_getOptions($node), $options);

		return $options;
	}
}
PK�X�[3
bHofflajnparams/compat/libraries/coomla/html/parameter/element/editors.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a editors element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldEditors instead
 */
class JElementEditors extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Editors';

	/**
	 * Fetch an editor element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1
	 * @see           JFormFieldEditors::getOptions
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementEditor::fetchElement is deprecated.',
JLog::WARNING, 'deprecated');

		$db = JFactory::getDbo();
		$user = JFactory::getUser();

		// compile list of the editors
		$query = 'SELECT element AS value, name AS text' . ' FROM
#__extensions' . ' WHERE folder = "editors"' .
' AND type = "plugin"'
			. ' AND enabled = 1' . ' ORDER BY ordering, name';
		$db->setQuery($query);
		$editors = $db->loadObjectList();

		array_unshift($editors, JHtml::_('select.option', '',
JText::_('JOPTION_SELECT_EDITOR')));

		return JHtml::_(
			'select.genericlist',
			$editors,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[A�M$		Iofflajnparams/compat/libraries/coomla/html/parameter/element/filelist.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a filelist element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  use JFormFieldFileList instead
 */
class JElementFilelist extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Filelist';

	/**
	 * Fetch a filelist element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1   Use JFormFieldFileList::getOptions instead
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementFileList::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		jimport('joomla.filesystem.folder');
		jimport('joomla.filesystem.file');

		// path to images directory
		$path = JPATH_ROOT . '/' .
$node->attributes('directory');
		$filter = $node->attributes('filter');
		$exclude = $node->attributes('exclude');
		$stripExt = $node->attributes('stripext');
		$files = JFolder::files($path, $filter);

		$options = array();

		if (!$node->attributes('hide_none'))
		{
			$options[] = JHtml::_('select.option', '-1',
JText::_('JOPTION_DO_NOT_USE'));
		}

		if (!$node->attributes('hide_default'))
		{
			$options[] = JHtml::_('select.option', '',
JText::_('JOPTION_USE_DEFAULT'));
		}

		if (is_array($files))
		{
			foreach ($files as $file)
			{
				if ($exclude)
				{
					if (preg_match(chr(1) . $exclude . chr(1), $file))
					{
						continue;
					}
				}
				if ($stripExt)
				{
					$file = JFile::stripExt($file);
				}
				$options[] = JHtml::_('select.option', $file, $file);
			}
		}

		return JHtml::_(
			'select.genericlist',
			$options,
			$control_name . '[' . $name . ']',
			array('id' => 'param' . $name,
'list.attr' => 'class="inputbox"',
'list.select' => $value)
		);
	}
}
PK�X�[���&Kofflajnparams/compat/libraries/coomla/html/parameter/element/folderlist.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a filelist element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1 Use JFormFieldFolderList instead.
 */
class JElementFolderlist extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Folderlist';

	/**
	 * Fetch a folderlist element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldFolderlist::getOptions instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementFolderList::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		jimport('joomla.filesystem.folder');

		// Initialise variables.
		$path = JPATH_ROOT . '/' .
$node->attributes('directory');
		$filter = $node->attributes('filter');
		$exclude = $node->attributes('exclude');
		$folders = JFolder::folders($path, $filter);

		$options = array();
		foreach ($folders as $folder)
		{
			if ($exclude)
			{
				if (preg_match(chr(1) . $exclude . chr(1), $folder))
				{
					continue;
				}
			}
			$options[] = JHtml::_('select.option', $folder, $folder);
		}

		if (!$node->attributes('hide_none'))
		{
			array_unshift($options, JHtml::_('select.option',
'-1', JText::_('JOPTION_DO_NOT_USE')));
		}

		if (!$node->attributes('hide_default'))
		{
			array_unshift($options, JHtml::_('select.option',
'', JText::_('JOPTION_USE_DEFAULT')));
		}

		return JHtml::_(
			'select.genericlist',
			$options,
			$control_name . '[' . $name . ']',
			array('id' => 'param' . $name,
'list.attr' => 'class="inputbox"',
'list.select' => $value)
		);
	}
}
PK�X�[�}����Jofflajnparams/compat/libraries/coomla/html/parameter/element/helpsites.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a helpsites element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldHelpsite instead
 * @note        When updating note that JformFieldHelpsite does not end in
s.
 */
class JElementHelpsites extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Helpsites';

	/**
	 * Fetch a help sites list
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1   Use jFormFieldHelpSites::getOptions instead
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementHelpsites::fetchElement is deprecated.',
JLog::WARNING, 'deprecated');

		jimport('joomla.language.help');

		// Get Joomla version.
		$version = new JVersion;
		$jver = explode('.', $version->getShortVersion());

		$helpsites = JHelp::createSiteList(JPATH_ADMINISTRATOR .
'/help/helpsites.xml', $value);
		array_unshift($helpsites, JHtml::_('select.option',
'', JText::_('local')));

		return JHtml::_(
			'select.genericlist',
			$helpsites,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[W
m�..Gofflajnparams/compat/libraries/coomla/html/parameter/element/hidden.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a hidden element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1     Use JFormFieldHidden instead.
 */
class JElementHidden extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 * @since  11.1
	 */
	protected $_name = 'Hidden';

	/**
	 * Fetch a hidden element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @since   11.1
	 * @deprecated    12.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementHidden::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$class = ($node->attributes('class') ?
'class="' . $node->attributes('class') .
'"' : 'class="text_area"');

		return '<input type="hidden" name="' .
$control_name . '[' . $name . ']" id="' .
$control_name . $name . '" value="' . $value .
'" ' . $class
			. ' />';
	}

	/**
	 * Fetch tooltip for a hidden element
	 *

	 * @param   string       $label         Element label
	 * @param   string       $description   Element description (which renders
as a tool tip)
	 * @param   JXMLElement  &$xmlElement   Element object
	 * @param   string       $control_name  Control name
	 * @param   string       $name          Element name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1
	 * @since   11.1
	 */
	public function fetchTooltip($label, $description, &$xmlElement,
$control_name = '', $name = '')
	{
		// Deprecation warning.
		JLog::add('JElementHidden::fetchTooltip() is deprecated.',
JLog::WARNING, 'deprecated');

		return false;
	}
}
PK�X�[n�T~Jofflajnparams/compat/libraries/coomla/html/parameter/element/imagelist.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a imagelist element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFieldImageList instead.
 */
class JElementImageList extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'ImageList';

	/**
	 * Fetch imagelist element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1   Use JFormFieldImageLst instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementImageList::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$filter = '\.png$|\.gif$|\.jpg$|\.bmp$|\.ico$';
		$node->addAttribute('filter', $filter);

		$parameter = $this->_parent->loadElement('filelist');

		return $parameter->fetchElement($name, $value, $node, $control_name);
	}
}
PK�X�[�V�Gofflajnparams/compat/libraries/coomla/html/parameter/element/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[[N���Jofflajnparams/compat/libraries/coomla/html/parameter/element/languages.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a languages element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFieldLanguage instead
 * @note        In updating please noe that JFormFieldLanguage does not end
in s.
 */
class JElementLanguages extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Languages';

	/**
	 * Fetch the language list element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1   Use JFormFieldLanguage
	 * @note    When updating note that JFormFieldLanguage has no s.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementLanguages::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$client = $node->attributes('client');

		$languages = JLanguageHelper::createLanguageList($value,
constant('JPATH_' . strtoupper($client)), true);
		array_unshift($languages, JHtml::_('select.option',
'', JText::_('JOPTION_SELECT_LANGUAGE')));

		return JHtml::_(
			'select.genericlist',
			$languages,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[8?���Eofflajnparams/compat/libraries/coomla/html/parameter/element/list.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a list element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormFieldList instead
 */
class JElementList extends JElement
{
	/**
	 * Element type
	 *
	 * @var    string
	 */
	protected $_name = 'List';

	/**
	 * Get the options for the element
	 *
	 * @param   JXMLElement  &$node  JXMLElement node object containing
the settings for the element
	 *
	 * @return  array
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1  Use JFormFieldList::getOptions Instead
	 */
	protected function _getOptions(&$node)
	{
		// Deprecation warning.
		JLog::add('JElementList::getOptions() is deprecated.',
JLog::WARNING, 'deprecated');

		$options = array();
		foreach ($node->children() as $option)
		{
			$val = $option->attributes('value');
			$text = $option->data();
			$options[] = JHtml::_('select.option', $val, JText::_($text));
		}
		return $options;
	}

	/**
	 * Fetch the HTML code for the parameter element.
	 *
	 * @param   string             $name          The field name.
	 * @param   mixed              $value         The value of the field.
	 * @param   JSimpleXMLElement  &$node         The current
JSimpleXMLElement node.
	 * @param   string             $control_name  The name of the HTML
control.
	 *
	 * @return  string
	 *
	 * @deprecated    12.1
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		$ctrl = $control_name . '[' . $name . ']';
		$attribs = ' ';

		if ($v = $node->attributes('size'))
		{
			$attribs .= 'size="' . $v . '"';
		}
		if ($v = $node->attributes('class'))
		{
			$attribs .= 'class="' . $v . '"';
		}
		else
		{
			$attribs .= 'class="inputbox"';
		}
		if ($m = $node->attributes('multiple'))
		{
			$attribs .= 'multiple="multiple"';
			$ctrl .= '[]';
		}

		return JHtml::_(
			'select.genericlist',
			$this->_getOptions($node),
			$ctrl,
			array('id' => $control_name . $name, 'list.attr'
=> $attribs, 'list.select' => $value)
		);
	}
}
PK�X�[�e٘�Eofflajnparams/compat/libraries/coomla/html/parameter/element/menu.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a menu element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JFormMenu instead
 */
class JElementMenu extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Menu';

	/**
	 * Fetch a html for a list of menus
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldMenu::getOptions instead
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementMenu::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		require_once JPATH_ADMINISTRATOR .
'/components/com_menus/helpers/menus.php';
		$menuTypes = MenusHelper::getMenuTypes();

		foreach ($menuTypes as $menutype)
		{
			$options[] = JHtml::_('select.option', $menutype, $menutype);
		}
		array_unshift($options, JHtml::_('select.option', '',
JText::_('JOPTION_SELECT_MENU')));

		return JHtml::_(
			'select.genericlist',
			$options,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[�� 
Iofflajnparams/compat/libraries/coomla/html/parameter/element/menuitem.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a menu item element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  Use JformFieldMenuItem instead
 */
class JElementMenuItem extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'MenuItem';

	/**
	 * Fetch menu item element HTML
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  useJFormFieldMenuItem::getGroups
	 * @since   11.1
	 *
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementMenuitem::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$db = JFactory::getDbo();

		$menuType = $this->_parent->get('menu_type');
		if (!empty($menuType))
		{
			$where = ' WHERE menutype = ' . $db->Quote($menuType);
		}
		else
		{
			$where = ' WHERE 1';
		}

		// Load the list of menu types
		// TODO: move query to model
		$query = 'SELECT menutype, title' . ' FROM
#__menu_types' . ' ORDER BY title';
		$db->setQuery($query);
		$menuTypes = $db->loadObjectList();

		if ($state = $node->attributes('state'))
		{
			$where .= ' AND published = ' . (int) $state;
		}

		// load the list of menu items
		// TODO: move query to model
		$query = 'SELECT id, parent_id, title, menutype, type' . '
FROM #__menu' . $where . ' ORDER BY menutype, parent_id,
ordering';

		$db->setQuery($query);
		$menuItems = $db->loadObjectList();

		// Establish the hierarchy of the menu
		// TODO: use node model
		$children = array();

		if ($menuItems)
		{
			// First pass - collect children
			foreach ($menuItems as $v)
			{
				$pt = $v->parent_id;
				$list = @$children[$pt] ? $children[$pt] : array();
				array_push($list, $v);
				$children[$pt] = $list;
			}
		}

		// Second pass - get an indent list of the items
		$list = JHtml::_('menu.treerecurse', 0, '', array(),
$children, 9999, 0, 0);

		// Assemble into menutype groups
		$n = count($list);
		$groupedList = array();
		foreach ($list as $k => $v)
		{
			$groupedList[$v->menutype][] = &$list[$k];
		}

		// Assemble menu items to the array
		$options = array();
		$options[] = JHtml::_('select.option', '',
JText::_('JOPTION_SELECT_MENU_ITEM'));

		foreach ($menuTypes as $type)
		{
			if ($menuType == '')
			{
				$options[] = JHtml::_('select.option', '0',
'&#160;', 'value', 'text', true);
				$options[] = JHtml::_('select.option', $type->menutype,
$type->title . ' - ' . JText::_('JGLOBAL_TOP'),
'value', 'text', true);
			}
			if (isset($groupedList[$type->menutype]))
			{
				$n = count($groupedList[$type->menutype]);
				for ($i = 0; $i < $n; $i++)
				{
					$item = &$groupedList[$type->menutype][$i];

					// If menutype is changed but item is not saved yet, use the new type
in the list
					if (JRequest::getString('option', '',
'get') == 'com_menus')
					{
						$currentItemArray = JRequest::getVar('cid', array(0),
'', 'array');
						$currentItemId = (int) $currentItemArray[0];
						$currentItemType = JRequest::getString('type',
$item->type, 'get');
						if ($currentItemId == $item->id && $currentItemType !=
$item->type)
						{
							$item->type = $currentItemType;
						}
					}

					$disable = strpos($node->attributes('disable'),
$item->type) !== false ? true : false;
					$options[] = JHtml::_('select.option', $item->id,
'&#160;&#160;&#160;' . $item->treename,
'value', 'text', $disable);

				}
			}
		}

		return JHtml::_(
			'select.genericlist',
			$options,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[��$��
�
Nofflajnparams/compat/libraries/coomla/html/parameter/element/modulelayouts.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

require_once dirname(__FILE__) . '/list.php';

/**
 * Parameter to display a list of the layouts for a module from the module
or default template overrides.
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @note        Note that JFormFieldModuleLayout does not end in s.
 * @since       11.1
 * @deprecated  Use JFormFieldModuleLayout instead
 */
class JElementModuleLayouts extends JElementList
{
	/**
	 * @var		string
	 */
	protected $_name = 'ModuleLayouts';

	/**
	 * Get the options for the list.
	 *
	 * @param   JXMLElement  &$node  JXMLElement node object containing
the settings for the element
	 *
	 * @return  string
	 *
	 * @deprecated    12.1   Use JFormFieldModuleLayouts::getInput instead.
	 * @since   11.1
	 */
	protected function _getOptions(&$node)
	{
		// Deprecation warning.
		JLog::add('JElementModuleLayouts::_getOptions() is
deprecated.', JLog::WARNING, 'deprecated');

		$clientId = ($v = $node->attributes('client_id')) ? $v : 0;

		$options = array();
		$path1 = null;
		$path2 = null;

		// Load template entries for each menuid
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select('template');
		$query->from('#__template_styles');
		$query->where('client_id = ' . (int) $clientId);
		$query->where('home = 1');
		$db->setQuery($query);
		$template = $db->loadResult();

		if ($module = $node->attributes('module'))
		{
			$base = ($clientId == 1) ? JPATH_ADMINISTRATOR : JPATH_SITE;
			$module = preg_replace('#\W#', '', $module);
			$path1 = $base . '/modules/' . $module . '/tmpl';
			$path2 = $base . '/templates/' . $template .
'/html/' . $module;
			$options[] = JHTML::_('select.option', '',
'');
		}

		if ($path1 && $path2)
		{
			jimport('joomla.filesystem.file');
			$path1 = JPath::clean($path1);
			$path2 = JPath::clean($path2);

			$files = JFolder::files($path1, '^[^_]*\.php$');
			foreach ($files as $file)
			{
				$options[] = JHTML::_('select.option',
JFile::stripExt($file));
			}

			if (is_dir($path2) && $files = JFolder::files($path2,
'^[^_]*\.php$'))
			{
				$options[] = JHTML::_('select.optgroup',
JText::_('JOPTION_FROM_DEFAULT'));
				foreach ($files as $file)
				{
					$options[] = JHTML::_('select.option',
JFile::stripExt($file));
				}
				$options[] = JHTML::_('select.optgroup',
JText::_('JOPTION_FROM_DEFAULT'));
			}
		}

		// Merge any additional options in the XML definition.
		$options = array_merge(parent::_getOptions($node), $options);

		return $options;
	}
}
PK�X�[�_��%%Iofflajnparams/compat/libraries/coomla/html/parameter/element/password.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a password element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1  Use JFormFieldPassword instead.
 */
class JElementPassword extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Password';

	/**
	 * Fetch a html for a password element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldPasssword::getInput instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementPassword::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$size = ($node->attributes('size') ? 'size="'
. $node->attributes('size') . '"' :
'');
		$class = ($node->attributes('class') ?
'class="' . $node->attributes('class') .
'"' : 'class="text_area"');

		return '<input type="password" name="' .
$control_name . '[' . $name . ']" id="' .
$control_name . $name . '" value="' . $value .
'" '
			. $class . ' ' . $size . ' />';
	}
}
PK�X�[�)�Fofflajnparams/compat/libraries/coomla/html/parameter/element/radio.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a radio element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1    Use JFormFieldRadio instead
 */
class JElementRadio extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Radio';

	/**
	 * Fetch a html for a radio button
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldRadio::getInput and
JFormFieldRadio::getOptions indsead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementRadio::fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$options = array();
		foreach ($node->children() as $option)
		{
			$val = $option->attributes('value');
			$text = $option->data();
			$options[] = JHtml::_('select.option', $val, $text);
		}

		return JHtml::_('select.radiolist', $options, '' .
$control_name . '[' . $name . ']', '',
'value', 'text', $value, $control_name . $name, true);
	}
}
PK�X�[b��44Gofflajnparams/compat/libraries/coomla/html/parameter/element/spacer.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a spacer element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFormFieldSpacer instead
 */
class JElementSpacer extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Spacer';

	/**
	 * Fetch tooltip for a radio button
	 *
	 * @param   string       $label         Element label
	 * @param   string       $description   Element description for tool tip
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 * @param   string       $name          The name.
	 *
	 * @return  string
	 *
	 * @deprecated    12.1
	 * @since   11.1
	 */
	public function fetchTooltip($label, $description, &$node,
$control_name = '', $name = '')
	{
		return '&#160;';
	}

	/**
	 * Fetch HTML for a radio button
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldSpacer::getInput instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementSpcer::fetchElements() is deprecated.',
JLog::WARNING, 'deprecated');

		if ($value)
		{
			return JText::_($value);
		}
		else
		{
			return ' ';
		}
	}
}
PK�X�[���R55Dofflajnparams/compat/libraries/coomla/html/parameter/element/sql.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a SQL element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1    Use JFormFieldSQL Instead.
 */
class JElementSQL extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'SQL';

	/**
	 * Fetch the sql element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementSQL::getOptions is deprecated.',
JLog::WARNING, 'deprecated');

		$db = JFactory::getDbo();
		$db->setQuery($node->attributes('query'));
		$key = ($node->attributes('key_field') ?
$node->attributes('key_field') : 'value');
		$val = ($node->attributes('value_field') ?
$node->attributes('value_field') : $name);

		$options = $db->loadObjectlist();

		// Check for an error.
		if ($db->getErrorNum())
		{
			JError::raiseWarning(500, $db->getErrorMsg());
			return false;
		}

		if (!$options)
		{
			$options = array();
		}

		return JHtml::_(
			'select.genericlist',
			$options,
			$control_name . '[' . $name . ']',
			array(
				'id' => $control_name . $name,
				'list.attr' => 'class="inputbox"',
				'list.select' => $value,
				'option.key' => $key,
				'option.text' => $val
			)
		);
	}
}
PK�X�[D�(>O	O	Nofflajnparams/compat/libraries/coomla/html/parameter/element/templatestyle.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a list of template styles.
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1  Use JFormFieldTemplateStyle instead
 */
class JElementTemplateStyle extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'TemplateStyle';

	/**
	 * Fetch the template style element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated  12.1  Use JFormFieldTemplateStyle::getGroups  Instead
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementTemplateStyle::_fetchElement() is
deprecated.', JLog::WARNING, 'deprecated');

		$db = JFactory::getDBO();

		$query = 'SELECT * FROM #__template_styles ' . 'WHERE
client_id = 0 ' . 'AND home = 0';
		$db->setQuery($query);
		$data = $db->loadObjectList();

		$default = JHtml::_('select.option', 0,
JText::_('JOPTION_USE_DEFAULT'), 'id',
'description');
		array_unshift($data, $default);

		$selected = $this->_getSelected();
		$html = JHTML::_('select.genericlist', $data, $control_name .
'[' . $name . ']', 'class="inputbox"
size="6"', 'id', 'description',
$selected);

		return $html;
	}

	/**
	 * Get the selected template style.
	 *
	 * @return  integer  The template style id.
	 *
	 * @since   11.1
	 * @deprecated    12.1  Use jFormFieldTemplateStyle instead.
	 */
	protected function _getSelected()
	{
		// Deprecation warning.
		JLog::add('JElementTemplateStyle::_getSelected() is
deprecated.', JLog::WARNING, 'deprecated');

		$id = JRequest::getVar('cid', 0);
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($query->qn('template_style_id'))->from($query->qn('#__menu'))->where($query->qn('id')
. ' = ' . (int) $id[0]);
		$db->setQuery($query);
		$result = $db->loadResult();
		return $result;
	}
}
PK�X�[bl����Eofflajnparams/compat/libraries/coomla/html/parameter/element/text.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a text element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFormFieldText instead
 */
class JElementText extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Text';

	/**
	 * Fetch the text field element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated  12.1  Use JFormFieldText::getInput instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementText::_fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$size = ($node->attributes('size') ? 'size="'
. $node->attributes('size') . '"' :
'');
		$class = ($node->attributes('class') ?
'class="' . $node->attributes('class') .
'"' : 'class="text_area"');

		// Required to avoid a cycle of encoding &

		$value = htmlspecialchars(htmlspecialchars_decode($value, ENT_QUOTES),
ENT_QUOTES, 'UTF-8');

		return '<input type="text" name="' .
$control_name . '[' . $name . ']" id="' .
$control_name . $name . '" value="' . $value .
'" ' . $class
			. ' ' . $size . ' />';
	}
}
PK�X�[+_jwwIofflajnparams/compat/libraries/coomla/html/parameter/element/textarea.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a textarea element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFieldTextArea instead
 */
class JElementTextarea extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'Textarea';

	/**
	 * Fetch the element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated  12.1  Use JFormFieldTextArea::getInput
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementTextArea::_fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$rows = $node->attributes('rows');
		$cols = $node->attributes('cols');
		$class = ($node->attributes('class') ?
'class="' . $node->attributes('class') .
'"' : 'class="text_area"');
		// Convert <br /> tags so they are not visible when editing
		$value = str_replace('<br />', "\n", $value);

		return '<textarea name="' . $control_name .
'[' . $name . ']" cols="' . $cols .
'" rows="' . $rows . '" ' . $class .
' id="' . $control_name
			. $name . '" >' . $value .
'</textarea>';
	}
}
PK�X�[R�22Jofflajnparams/compat/libraries/coomla/html/parameter/element/timezones.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a timezones element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1   Use JFormFieldTimeZone instead.
 * @note        In updating note that JFormFieldTimeZone does not end in s.
 */
class JElementTimezones extends JElement
{
	/**
	 * Element name
	 *
	 * @var   string
	 */
	protected $_name = 'Timezones';

	/**
	 * Fetch the timezones element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated    12.1  Use JFormFieldTimeZone::getGroups instead.
	 * @note    In updating note that JFormFieldTimeZone does not have an s at
the end.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementTimeZones::_fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		if (!strlen($value))
		{
			$conf = JFactory::getConfig();
			$value = $conf->get('offset');
		}

		// LOCALE SETTINGS
		$timezones = array(JHtml::_('select.option', -12,
JText::_('UTC__12_00__INTERNATIONAL_DATE_LINE_WEST')),
			JHtml::_('select.option', -11,
JText::_('UTC__11_00__MIDWAY_ISLAND__SAMOA')),
			JHtml::_('select.option', -10,
JText::_('UTC__10_00__HAWAII')),
			JHtml::_('select.option', -9.5,
JText::_('UTC__09_30__TAIOHAE__MARQUESAS_ISLANDS')),
			JHtml::_('select.option', -9,
JText::_('UTC__09_00__ALASKA')),
			JHtml::_('select.option', -8,
JText::_('UTC__08_00__PACIFIC_TIME__US__AMP__CANADA_')),
			JHtml::_('select.option', -7,
JText::_('UTC__07_00__MOUNTAIN_TIME__US__AMP__CANADA_')),
			JHtml::_('select.option', -6,
JText::_('UTC__06_00__CENTRAL_TIME__US__AMP__CANADA___MEXICO_CITY')),
			JHtml::_('select.option', -5,
JText::_('UTC__05_00__EASTERN_TIME__US__AMP__CANADA___BOGOTA__LIMA')),
			JHtml::_('select.option', -4,
JText::_('UTC__04_00__ATLANTIC_TIME__CANADA___CARACAS__LA_PAZ')),
			JHtml::_('select.option', -4.5,
JText::_('UTC__04_30__VENEZUELA')),
			JHtml::_('select.option', -3.5,
JText::_('UTC__03_30__ST__JOHN_S__NEWFOUNDLAND__LABRADOR')),
			JHtml::_('select.option', -3,
JText::_('UTC__03_00__BRAZIL__BUENOS_AIRES__GEORGETOWN')),
			JHtml::_('select.option', -2,
JText::_('UTC__02_00__MID_ATLANTIC')),
			JHtml::_('select.option', -1,
JText::_('UTC__01_00__AZORES__CAPE_VERDE_ISLANDS')),
			JHtml::_('select.option', 0,
JText::_('UTC_00_00__WESTERN_EUROPE_TIME__LONDON__LISBON__CASABLANCA')),
			JHtml::_('select.option', 1,
JText::_('UTC__01_00__AMSTERDAM__BERLIN__BRUSSELS__COPENHAGEN__MADRID__PARIS')),
			JHtml::_('select.option', 2,
JText::_('UTC__02_00__ISTANBUL__JERUSALEM__KALININGRAD__SOUTH_AFRICA')),
			JHtml::_('select.option', 3,
JText::_('UTC__03_00__BAGHDAD__RIYADH__MOSCOW__ST__PETERSBURG')),
			JHtml::_('select.option', 3.5,
JText::_('UTC__03_30__TEHRAN')),
			JHtml::_('select.option', 4,
JText::_('UTC__04_00__ABU_DHABI__MUSCAT__BAKU__TBILISI')),
			JHtml::_('select.option', 4.5,
JText::_('UTC__04_30__KABUL')),
			JHtml::_('select.option', 5,
JText::_('UTC__05_00__EKATERINBURG__ISLAMABAD__KARACHI__TASHKENT')),
			JHtml::_('select.option', 5.5,
JText::_('UTC__05_30__BOMBAY__CALCUTTA__MADRAS__NEW_DELHI__COLOMBO')),
			JHtml::_('select.option', 5.75,
JText::_('UTC__05_45__KATHMANDU')),
JHtml::_('select.option', 6,
JText::_('UTC__06_00__ALMATY__DHAKA')),
			JHtml::_('select.option', 6.5,
JText::_('UTC__06_30__YAGOON')),
			JHtml::_('select.option', 7,
JText::_('UTC__07_00__BANGKOK__HANOI__JAKARTA__PHNOM_PENH')),
			JHtml::_('select.option', 8,
JText::_('UTC__08_00__BEIJING__PERTH__SINGAPORE__HONG_KONG')),
			JHtml::_('select.option', 8.75,
JText::_('UTC__08_00__WESTERN_AUSTRALIA')),
			JHtml::_('select.option', 9,
JText::_('UTC__09_00__TOKYO__SEOUL__OSAKA__SAPPORO__YAKUTSK')),
			JHtml::_('select.option', 9.5,
JText::_('UTC__09_30__ADELAIDE__DARWIN__YAKUTSK')),
			JHtml::_('select.option', 10,
JText::_('UTC__10_00__EASTERN_AUSTRALIA__GUAM__VLADIVOSTOK')),
			JHtml::_('select.option', 10.5,
JText::_('UTC__10_30__LORD_HOWE_ISLAND__AUSTRALIA_')),
			JHtml::_('select.option', 11,
JText::_('UTC__11_00__MAGADAN__SOLOMON_ISLANDS__NEW_CALEDONIA')),
			JHtml::_('select.option', 11.5,
JText::_('UTC__11_30__NORFOLK_ISLAND')),
			JHtml::_('select.option', 12,
JText::_('UTC__12_00__AUCKLAND__WELLINGTON__FIJI__KAMCHATKA')),
			JHtml::_('select.option', 12.75,
JText::_('UTC__12_45__CHATHAM_ISLAND')),
JHtml::_('select.option', 13,
JText::_('UTC__13_00__TONGA')),
			JHtml::_('select.option', 14,
JText::_('UTC__14_00__KIRIBATI')));

		return JHtml::_(
			'select.genericlist',
			$timezones,
			$control_name . '[' . $name . ']',
			array('id' => $control_name . $name, 'list.attr'
=> 'class="inputbox"', 'list.select' =>
$value)
		);
	}
}
PK�X�[i	0��Jofflajnparams/compat/libraries/coomla/html/parameter/element/usergroup.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Renders a editors element
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1  Use JFormFieldUserGroup instead.
 */
class JElementUserGroup extends JElement
{
	/**
	 * Element name
	 *
	 * @var    string
	 */
	protected $_name = 'UserGroup';

	/**
	 * Fetch the timezones element
	 *
	 * @param   string       $name          Element name
	 * @param   string       $value         Element value
	 * @param   JXMLElement  &$node         JXMLElement node object
containing the settings for the element
	 * @param   string       $control_name  Control name
	 *
	 * @return  string
	 *
	 * @deprecated  12.1  Use JFormFieldUserGroup::getInput instead.
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$node, $control_name)
	{
		// Deprecation warning.
		JLog::add('JElementUserGroup::_fetchElement() is deprecated.',
JLog::WARNING, 'deprecated');

		$ctrl = $control_name . '[' . $name . ']';
		$attribs = ' ';

		if ($v = $node->attributes('size'))
		{
			$attribs .= 'size="' . $v . '"';
		}
		if ($v = $node->attributes('class'))
		{
			$attribs .= 'class="' . $v . '"';
		}
		else
		{
			$attribs .= 'class="inputbox"';
		}
		if ($m = $node->attributes('multiple'))
		{
			$attribs .= 'multiple="multiple"';
			$ctrl .= '[]';
			//$value		= implode('|',)
		}
		//array_unshift($editors, JHtml::_('select.option', 
'', '- '. JText::_('SELECT_EDITOR') .'
-'));

		return JHtml::_('access.usergroup', $ctrl, $value, $attribs,
false);
	}
}
PK�X�[��@,YY@offlajnparams/compat/libraries/coomla/html/parameter/element.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Parameter base class
 *
 * The JElement is the base class for all JElement types
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1    Use JFormField instead
 */
class JElement extends JObject
{
	/**
	 * Element name
	 *
	 * This has to be set in the final
	 * renderer classes.
	 *
	 * @var    string
	 * @since  11.1
	 */
	protected $_name = null;

	/**
	 * Reference to the object that instantiated the element
	 *
	 * @var    object
	 * @since  11.1
	 */
	protected $_parent = null;

	/**
	 * Constructor
	 *
	 * @param   string  $parent  Element parent
	 *
	 * @since   11.1
	 */
	public function __construct($parent = null)
	{
		// Deprecation warning.
		JLog::add('JElement::__construct is deprecated.',
JLog::WARNING, 'deprecated');

		$this->_parent = $parent;
	}

	/**
	 * Get the element name
	 *
	 * @return  string  type of the parameter
	 *
	 * @since   11.1
	 * @deprecated    12.1
	 */
	public function getName()
	{
		// Deprecation warning.
		JLog::add('Jelement::getName is deprecated.', JLog::WARNING,
'deprecated');

		return $this->_name;
	}

	/**
	 * Method to render an xml element
	 *
	 * @param   string  &$xmlElement   Name of the element
	 * @param   string  $value         Value of the element
	 * @param   string  $control_name  Name of the control
	 *
	 * @return  array  Attributes of an element
	 *
	 * @deprecated    12.1
	 * @since   11.1
	 */
	public function render(&$xmlElement, $value, $control_name =
'params')
	{
		// Deprecation warning.
		JLog::add('JElement::render is deprecated.', JLog::WARNING,
'deprecated');

		$name = $xmlElement->attributes('name');
		$label = $xmlElement->attributes('label');
		$descr = $xmlElement->attributes('description');

		//make sure we have a valid label
		$label = $label ? $label : $name;
		$result[0] = $this->fetchTooltip($label, $descr, $xmlElement,
$control_name, $name);
		$result[1] = $this->fetchElement($name, $value, $xmlElement,
$control_name);
		$result[2] = $descr;
		$result[3] = $label;
		$result[4] = $value;
		$result[5] = $name;

		return $result;
	}

	/**
	 * Method to get a tool tip from an XML element
	 *
	 * @param   string       $label         Label attribute for the element
	 * @param   string       $description   Description attribute for the
element
	 * @param   JXMLElement  &$xmlElement   The element object
	 * @param   string       $control_name  Control name
	 * @param   string       $name          Name attribut
	 *
	 * @return  string
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function fetchTooltip($label, $description, &$xmlElement,
$control_name = '', $name = '')
	{
		// Deprecation warning.
		JLog::add('JElement::fetchTooltip is deprecated.',
JLog::WARNING, 'deprecated');

		$output = '<label id="' . $control_name . $name .
'-lbl" for="' . $control_name . $name .
'"';
		if ($description)
		{
			$output .= ' class="hasTip" title="' .
JText::_($label) . '::' . JText::_($description) .
'">';
		}
		else
		{
			$output .= '>';
		}
		$output .= JText::_($label) . '</label>';

		return $output;
	}

	/**
	 * Fetch an element
	 *
	 * @param   string       $name          Name attribute of the element
	 * @param   string       $value         Value attribute of the element
	 * @param   JXMLElement  &$xmlElement   Element object
	 * @param   string       $control_name  Control name of the element
	 *
	 * @return  void
	 *
	 * @deprecated    12.1
	 * @since   11.1
	 */
	public function fetchElement($name, $value, &$xmlElement,
$control_name)
	{
		// Deprecation warning.
		JLog::add('JElement::fetchElement is deprecated.',
JLog::WARNING, 'deprecated');

	}
}
PK�X�[�V�?offlajnparams/compat/libraries/coomla/html/parameter/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[��_�0�08offlajnparams/compat/libraries/coomla/html/parameter.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
/**
 * @package     Joomla.Platform
 * @subpackage  HTML
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

// Register the element class with the loader.
JLoader::register('JElement', dirname(__FILE__) .
'/parameter/element.php');

/**
 * Parameter handler
 *
 * @package     Joomla.Platform
 * @subpackage  Parameter
 * @since       11.1
 * @deprecated  12.1  Use JForm instead
 */
class OfflajnBaseJParameter extends JRegistry
{
	/**
	 * @var    string  The raw params string
	 * @since  11.1
	 */
	protected $_raw = null;

	/**
	 * @var    object  The XML params element
	 * @since  11.1
	 */
	protected $_xml = null;

	/**
	 * @var    array  Loaded elements
	 * @since  11.1
	 */
	protected $_elements = array();

	/**
	 * @var    array  Directories, where element types can be stored
	 * @since  11.1
	 */
	protected $_elementPath = array();

	/**
	 * Constructor
	 *
	 * @param   string  $data  The raw parms text.
	 * @param   string  $path  Path to the XML setup file.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function __construct($data = '', $path = '')
	{
		// Deprecation warning.
		JLog::add('JParameter::__construct is deprecated.',
JLog::WARNING, 'deprecated');

		parent::__construct('_default');

		// Set base path.
		$this->_elementPath[] = dirname(__FILE__) .
'/parameter/element';

		if ($data = trim($data))
		{
			if (strpos($data, '{') === 0)
			{
				$this->loadString($data);
			}
			else
			{
				$this->loadINI($data);
			}
		}

		if ($path)
		{
			$this->loadSetupFile($path);
		}

		$this->_raw = $data;
	}

	/**
	 * Sets a default value if not alreay assigned.
	 *
	 * @param   string  $key      The name of the parameter.
	 * @param   string  $default  An optional value for the parameter.
	 * @param   string  $group    An optional group for the parameter.
	 *
	 * @return  string  The value set, or the default if the value was not
previously set (or null).
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function def($key, $default = '', $group =
'_default')
	{
		// Deprecation warning.
		JLog::add('JParameter::def is deprecated.', JLog::WARNING,
'deprecated');

		$value = $this->get($key, (string) $default, $group);

		return $this->set($key, $value);
	}

	/**
	 * Sets the XML object from custom XML files.
	 *
	 * @param   JSimpleXMLElement  &$xml  An XML object.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function setXML(&$xml)
	{

		// Deprecation warning.
		JLog::add('JParameter::setXML is deprecated.', JLog::WARNING,
'deprecated');

		if (is_object($xml))
		{
      $attrs = $xml->attributes();
			if (isset($attrs['group']) && $group =
$attrs['group'])
			{
				$this->_xml[$group] = $xml;
			}
			else
			{
				$this->_xml['_default'] = $xml;
			}

			if (isset($attrs['addpath']) && $dir =
$attrs['addpath'])
			{
				$this->addElementPath(JPATH_ROOT . str_replace('/',
DIRECTORY_SEPARATOR, $dir));
			}
		}
	}

	/**
	 * Bind data to the parameter.
	 *
	 * @param   mixed   $data   An array or object.
	 * @param   string  $group  An optional group that the data should bind
to. The default group is used if not supplied.
	 *
	 * @return  boolean  True if the data was successfully bound, false
otherwise.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function bind($data, $group = '_default')
	{
		// Deprecation warning.
		JLog::add('JParameter::bind is deprecated.', JLog::WARNING,
'deprecated');

		if (is_array($data))
		{

			return $this->loadArray($data);
		}
		elseif (is_object($data))
		{
			return $this->loadObject($data);
		}
		else
		{
			return $this->loadString($data);
		}
	}

	/**
	 * Render the form control.
	 *
	 * @param   string  $name   An optional name of the HTML form control. The
default is 'params' if not supplied.
	 * @param   string  $group  An optional group to render.  The default
group is used if not supplied.
	 *
	 * @return  string  HTML
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function render($name = 'params', $group =
'_default')
	{
		// Deprecation warning.
		JLog::add('JParameter::render is deprecated.', JLog::WARNING,
'deprecated');

		if (!isset($this->_xml[$group]))
		{
			return false;
		}

		$params = $this->getParams($name, $group);
		$html = array();

    $attrs = $this->_xml[$group]->attributes();
		if ($description = $attrs['description'])
		{
			// Add the params description to the display
			$desc = JText::_($description);
			$html[] = '<p class="paramrow_desc">' . $desc
. '</p>';
		}

		foreach ($params as $param)
		{
			if ($param[0])
			{
				$html[] = $param[0];
				$html[] = $param[1];
			}
			else
			{
				$html[] = $param[1];
			}
		}

		if (count($params) < 1)
		{
			$html[] = "<p class=\"noparams\">" .
JText::_('JLIB_HTML_NO_PARAMETERS_FOR_THIS_ITEM') .
"</p>";
		}

		return implode(PHP_EOL, $html);
	}

	/**
	 * Render all parameters to an array.
	 *
	 * @param   string  $name   An optional name of the HTML form control. The
default is 'params' if not supplied.
	 * @param   string  $group  An optional group to render.  The default
group is used if not supplied.
	 *
	 * @return  array
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function renderToArray($name = 'params', $group =
'_default')
	{

		// Deprecation warning.
		JLog::add('JParameter::renderToArray is deprecated.',
JLog::WARNING, 'deprecated');

		if (!isset($this->_xml[$group]))
		{
			return false;
		}
		$results = array();
		foreach ($this->_xml[$group]->children() as $param)
		{
			$result = $this->getParam($param, $name, $group);
			$results[$result[5]] = $result;
		}
		return $results;
	}

	/**
	 * Return the number of parameters in a group.
	 *
	 * @param   string  $group  An optional group. The default group is used
if not supplied.
	 *
	 * @return  mixed  False if no params exist or integer number of
parameters that exist.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function getNumParams($group = '_default')
	{
		// Deprecation warning.
		JLog::add('JParameter::getNumParams is deprecated.',
JLog::WARNING, 'deprecated');

		if (!isset($this->_xml[$group]) ||
!count($this->_xml[$group]->children()))
		{
			return false;
		}
		else
		{
			return count($this->_xml[$group]->children());
		}
	}

	/**
	 * Get the number of params in each group.
	 *
	 * @return  array  Array of all group names as key and parameters count as
value.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function getGroups()
	{
		// Deprecation warning.
		JLog::add('JParameter::getGroups is deprecated.',
JLog::WARNING, 'deprecated');

		if (!is_array($this->_xml))
		{

			return false;
		}

		$results = array();
		foreach ($this->_xml as $name => $group)
		{
			$results[$name] = $this->getNumParams($name);
		}
		return $results;
	}

	/**
	 * Render all parameters.
	 *
	 * @param   string  $name   An optional name of the HTML form control. The
default is 'params' if not supplied.
	 * @param   string  $group  An optional group to render.  The default
group is used if not supplied.
	 *
	 * @return  array  An array of all parameters, each as array of the label,
the form element and the tooltip.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function getParams($name = 'params', $group =
'_default')
	{

		// Deprecation warning.
		JLog::add('JParameter::getParams is deprecated.',
JLog::WARNING, 'deprecated');

		if (!isset($this->_xml[$group]))
		{

			return false;
		}

		$results = array();
		foreach ($this->_xml[$group]->children() as $param)
		{
			$results[] = $this->getParam($param, $name, $group);
		}
		return $results;
	}

	/**
	 * Render a parameter type.
	 *
	 * @param   object  &$node         A parameter XML element.
	 * @param   string  $control_name  An optional name of the HTML form
control. The default is 'params' if not supplied.
	 * @param   string  $group         An optional group to render.  The
default group is used if not supplied.
	 *
	 * @return  array  Any array of the label, the form element and the
tooltip.
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function getParam(&$node, $control_name = 'params',
$group = '_default')
	{
		// Deprecation warning.
		JLog::add('JParameter::__construct is deprecated.',
JLog::WARNING, 'deprecated');

		// Get the type of the parameter.
    $attrs = $node->attributes();
		$type = $attrs['type'];

		$element = $this->loadElement($type);

		// Check for an error.
		if ($element === false)
		{
			$result = array();
			$result[0] = $attrs['name'];
			$result[1] = JText::_('Element not defined for type') . '
= ' . $type;
			$result[5] = $result[0];
			return $result;
		}
    if(!isset($attrs['name'])) $attrs['name'] =
'';
    if(!isset($attrs['default'])) $attrs['default'] =
'';
		// Get value.
		$value = $this->get($attrs['name'],
$attrs['default'], $group);

		return $element->render($node, $value, $control_name);
	}

	/**
	 * Loads an XML setup file and parses it.
	 *
	 * @param   string  $path  A path to the XML setup file.
	 *
	 * @return  object
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function loadSetupFile($path)
	{
		$result = false;

		if ($path)
		{
      $xml = new JSimpleXML();

			if ($xml->loadFile($path))
			{
				if ($params = $xml->document->params)
				{
					foreach ($params as $param)
					{
						$this->setXML($param);
						$result = true;
					}
				}
			}
		}
		else
		{
			$result = true;
		}

		return $result;
	}

	/**
	 * Loads an element type.
	 *
	 * @param   string   $type  The element type.
	 * @param   boolean  $new   False (default) to reuse parameter elements;
true to load the parameter element type again.
	 *
	 * @return  object
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function loadElement($type, $new = false)
	{
		$signature = md5($type);

		if ((isset($this->_elements[$signature]) &&
!($this->_elements[$signature] instanceof __PHP_Incomplete_Class))
&& $new === false)
		{
			return $this->_elements[$signature];
		}

		$elementClass = 'JElement' . $type;
		if (!class_exists($elementClass))
		{
			if (isset($this->_elementPath))
			{
				$dirs = $this->_elementPath;
			}
			else
			{
				$dirs = array();
			}

			$file = JFilterInput::getInstance()->clean(str_replace('_',
DIRECTORY_SEPARATOR, $type) . '.php', 'path');

			jimport('joomla.filesystem.path');
			if ($elementFile = JPath::find($dirs, $file))
			{
				include_once $elementFile;
			}
			else
			{
				$false = false;
				return $false;
			}
		}

		if (!class_exists($elementClass))
		{
			$false = false;
			return $false;
		}

		$this->_elements[$signature] = new $elementClass($this);

		return $this->_elements[$signature];
	}

	/**
	 * Add a directory where JParameter should search for element types.
	 *
	 * You may either pass a string or an array of directories.
	 *
	 * JParameter will be searching for a element type in the same
	 * order you added them. If the parameter type cannot be found in
	 * the custom folders, it will look in
	 * JParameter/types.
	 *
	 * @param   mixed  $path  Directory (string) or directories (array) to
search.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function addElementPath($path)
	{
		// Just force path to array.
		settype($path, 'array');

		// Loop through the path directories.
		foreach ($path as $dir)
		{
			// No surrounding spaces allowed!
			$dir = trim($dir);

			// Add trailing separators as needed.
			if (substr($dir, -1) != DIRECTORY_SEPARATOR)
			{
				// Directory
				$dir .= DIRECTORY_SEPARATOR;
			}

			// Add to the top of the search dirs.
			array_unshift($this->_elementPath, $dir);
		}
	}
}
PK�X�[�V�0offlajnparams/compat/libraries/coomla/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�V�:offlajnparams/compat/libraries/coomla/utilities/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[l*AF�U�U=offlajnparams/compat/libraries/coomla/utilities/simplexml.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Utilities
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * SimpleXML implementation.
 *
 * The XML Parser extension (expat) is required to use JSimpleXML.
 *
 * The class provides a pure PHP4 implementation of the PHP5
 * interface SimpleXML. As with PHP5's SimpleXML it is what it says:
 * simple. Nevertheless, it is an easy way to deal with XML data,
 * especially for read only access.
 *
 * Because it's not possible to use the PHP5 ArrayIterator interface
 * with PHP4 there are some differences between this implementation
 * and that of PHP5:
 *
 * 		The access to the root node has to be explicit in
 * 		JSimpleXML, not implicit as with PHP5. Write
 * 		$xml->document->node instead of $xml->node
 * 		You cannot access CDATA using array syntax. Use the method data()
instead
 * 		You cannot access attributes directly with array syntax. Use
attributes()
 * 		to read them.
 * 		Comments are ignored.
 * 		Last and least, this is not as fast as PHP5 SimpleXML--it is pure
PHP4.
 *
 * Example:
 * <code>
 * :simple.xml:
 * <?xml version="1.0" encoding="utf-8"
standalone="yes"?>
 * <document>
 *   <node>
 *	<child gender="m">Tom Foo</child>
 *	<child gender="f">Tamara Bar</child>
 *   <node>
 * </document>
 *
 * ---
 *
 * // read and write a document
 * $xml = new JSimpleXML;
 * $xml->loadFile('simple.xml');
 * print $xml->document->toString();
 *
 * // access a given node's CDATA
 * print $xml->root->node->child[0]->data(); // Tom Foo
 *
 * // access attributes
 * $attr = $xml->root->node->child[1]->attributes();
 * print $attr['gender']; // f
 *
 * // access children
 * foreach($xml->root->node->children() as $child) {
 *   print $child->data();
 * }
 * </code>
 *
 * Note: JSimpleXML cannot be used to access sophisticated XML doctypes
 * using datatype ANY (e.g. XHTML). With a DOM implementation you can
 * handle this.
 *
 * @package     Joomla.Platform
 * @subpackage  Utilities
 * @see         http://www.php.net/manual/en/book.simplexml.php
 * @since       11.1
 * @deprecated  12.1  Use SimpleXML instead
 */
if(!class_exists('JSimpleXML')){
class JSimpleXML extends JObject
{
	/**
	 * The XML parser
	 *
	 * @var     resource
	 * @since   11.1
	 */
	private $_parser = null;

	/**
	 * Document element
	 *
	 * @var     object
	 * @since   11.1
	 */
	public $document = null;

	/**
	 * Current object depth
	 *
	 * @var      array
	 * @since   11.1
	 */
	private $_stack = array();

	/**
	 * Constructor.
	 *
	 * @param   array  $options  Options
	 *
	 * @deprecated    12.1   Use SimpleXML instead.
	 * @see           http://www.php.net/manual/en/book.simplexml.php
	 * @since    11.1
	 */
	public function __construct($options = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::__construct() is deprecated.',
JLog::WARNING, 'deprecated');

		if (! function_exists('xml_parser_create'))
		{
			// TODO throw warning
			return false;
		}

		// Create the parser resource and make sure both versions of PHP
autodetect the format.
		$this->_parser = xml_parser_create('');

		// Check parser resource
		xml_set_object($this->_parser, $this);
		xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, 0);
		if (is_array($options))
		{
			foreach ($options as $option => $value)
			{
				xml_parser_set_option($this->_parser, $option, $value);
			}
		}

		// Set the handlers
		xml_set_element_handler($this->_parser, '_startElement',
'_endElement');
		xml_set_character_data_handler($this->_parser,
'_characterData');
	}

	/**
	 * Interprets a string of XML into an object
	 *
	 * This function will take the well-formed XML string data and return an
object of class
	 * JSimpleXMLElement with properties containing the data held within the
XML document.
	 * If any errors occur, it returns FALSE.
	 *
	 * @param   string  $string     Well-formed XML string data
	 * @param   string  $classname  currently ignored
	 *
	 * @return  object  JSimpleXMLElement
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1  Use simpleXML_load_string
	 * @see          
http://www.php.net/manual/en/function.simplexml-load-string.php
	 */
	public function loadString($string, $classname = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::loadString() is deprecated.',
JLog::WARNING, 'deprecated');

		$this->_parse($string);

		return true;
	}

	/**
	 * Interprets an XML file into an object
	 *
	 * This function will convert the well-formed XML document in the file
specified by filename
	 * to an object  of class JSimpleXMLElement. If any errors occur during
file access or
	 * interpretation, the function returns FALSE.
	 *
	 * @param   string  $path       Path to XML file containing a well-formed
XML document
	 * @param   string  $classname  currently ignored
	 *
	 * @return  boolean  True if successful, false if file empty
	 *
	 * @deprecated     12.1  Use simplexml_load_file instead
	 * @see           
http://www.php.net/manual/en/function.simplexml-load-file.php
	 * @since   11.1
	 */
	public function loadFile($path, $classname = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::loadfile() is deprecated.',
JLog::WARNING, 'deprecated');

		//Check to see of the path exists
		if (!file_exists($path))
		{

			return false;
		}

		//Get the XML document loaded into a variable
		$xml = trim(file_get_contents($path));
		if ($xml == '')
		{
			return false;
		}
		else
		{
			$this->_parse($xml);

			return true;
		}
	}

	/**
	 * Get a JSimpleXMLElement object from a DOM node.
	 *
	 * This function takes a node of a DOM  document and makes it into a
JSimpleXML node.
	 * This new object can then be used as a native JSimpleXML element. If any
errors occur,
	 * it returns FALSE.
	 *
	 * @param   string  $node       DOM  document
	 * @param   string  $classname  currently ignored
	 *
	 * @return  mixed  JSimpleXMLElement or false if any errors occur
	 *
	 * @deprecated    12.1    use simplexml_import_dom instead.
	 * @see          
http://www.php.net/manual/en/function.simplexml-import-dom.php
	 * @since   11.1
	 */
	public function importDOM($node, $classname = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::importDOM() is deprecated.',
JLog::WARNING, 'deprecated');

		return false;
	}

	/**
	 * Get the parser
	 *
	 * @return  resource  XML parser resource handle
	 *
	 * @deprecated    12.1   Use SimpleXMLElement
	 * @see           http://www.php.net/manual/en/class.simplexmlelement.php
	 * @since   11.1
	 */
	public function getParser()
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::getParser() is deprecated.',
JLog::WARNING, 'deprecated');

		return $this->_parser;
	}

	/**
	 * Set the parser
	 *
	 * @param   resource  $parser  XML parser resource handle.
	 *
	 * @return  void
	 *
	 * @deprecated    12.1  Use SimpleXML
	 * @see     http://www.php.net/manual/en/class.simplexml.php
	 * @since   11.1
	 */
	public function setParser($parser)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::setParser() is deprecated.',
JLog::WARNING, 'deprecated');

		$this->_parser = $parser;
	}

	/**
	 * Start parsing an XML document
	 *
	 * Parses an XML document. The handlers for the configured events are
called as many times as necessary.
	 *
	 * @param   string  $data  data to parse
	 *
	 * @return  void
	 *
	 * @deprecated    12.1
	 * @see     http://www.php.net/manual/en/class.simplexml.php
	 * @since   11.1
	 */
	protected function _parse($data = '')
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::_parse() is deprecated.', JLog::WARNING,
'deprecated');

		//Error handling
		if (!xml_parse($this->_parser, $data))
		{
			$this->_handleError(
				xml_get_error_code($this->_parser),
xml_get_current_line_number($this->_parser),
				xml_get_current_column_number($this->_parser)
			);
		}

		//Free the parser
		xml_parser_free($this->_parser);
	}

	/**
	 * Handles an XML parsing error
	 *
	 * @param   integer  $code  XML Error Code.
	 * @param   integer  $line  Line on which the error happened.
	 * @param   integer  $col   Column on which the error happened.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 *
	 * @deprecated   12.1   Use PHP Exception
	 */
	protected function _handleError($code, $line, $col)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::_handleError() is deprecated.',
JLog::WARNING, 'deprecated');

		JError::raiseWarning('SOME_ERROR_CODE', 'XML Parsing Error
at ' . $line . ':' . $col . '. Error ' . $code .
': ' . xml_error_string($code));

	}

	/**
	 * Gets the reference to the current direct parent
	 *
	 * @return  object
	 *
	 * @since   11.1
	 *
	 * @deprecated   12.1
	 */
	protected function _getStackLocation()
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::_getStackLocation() is deprecated.',
JLog::WARNING, 'deprecated');

		$return = '';
		foreach ($this->_stack as $stack)
		{
			$return .= $stack . '->';
		}

		return rtrim($return, '->');
	}

	/**
	 * Handler function for the start of a tag
	 *
	 * @param   resource  $parser  The XML parser.
	 * @param   string    $name    The name of the element.
	 * @param   array     $attrs   A key-value array (optional) of the
attributes for the element.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	protected function _startElement($parser, $name, $attrs = array())
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::startElement() is deprecated.',
JLog::WARNING, 'deprecated');

		//  Check to see if tag is root-level
		$count = count($this->_stack);
		if ($count == 0)
		{
			// If so, set the document as the current tag
			$classname = get_class($this) . 'Element';
			$this->document = new $classname($name, $attrs);

			// And start out the stack with the document tag
			$this->_stack = array('document');
		}
		// If it isn't root level, use the stack to find the parent
		else
		{
			// Get the name which points to the current direct parent, relative to
$this
			$parent = $this->_getStackLocation();

			// Add the child
			eval('$this->' . $parent . '->addChild($name,
$attrs, ' . $count . ');');

			// Update the stack
			eval('$this->_stack[] =
$name.\'[\'.(count($this->' . $parent . '->'
. $name . ') - 1).\']\';');
		}
	}

	/**
	 * Handler function for the end of a tag
	 *
	 * @param   resource  $parser  The XML parser.
	 * @param   string    $name    The name of the element.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	protected function _endElement($parser, $name)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::endElement() is deprecated.',
JLog::WARNING, 'deprecated');

		//Update stack by removing the end value from it as the parent
		array_pop($this->_stack);
	}

	/**
	 * Handler function for the character data within a tag
	 *
	 * @param   resource  $parser  The XML parser.
	 * @param   string    $data    The CDATA for the element.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	protected function _characterData($parser, $data)
	{
		// Deprecation warning.
		JLog::add('JSimpleXML::_characterData() is deprecated.',
JLog::WARNING, 'deprecated');

		// Get the reference to the current parent object
		$tag = $this->_getStackLocation();

		// Assign data to it
		eval('$this->' . $tag . '->_data .= $data;');
	}
}

/**
 * SimpleXML Element
 *
 * This object stores all of the direct children of itself in the $children
array.
 * They are also stored by type as arrays. So, if, for example, this tag
had 2 <font>
 * tags as children, there would be a class member called $font created as
an array.
 * $font[0] would be the first font tag, and $font[1] would be the second.
 *
 * To loop through all of the direct children of this object, the $children
member
 *  should be used.
 *
 * To loop through all of the direct children of a specific tag for this
object, it
 * is probably easier to use the arrays of the specific tag names, as
explained above.
 *
 * @package     Joomla.Platform
 * @subpackage  Utilities
 * @see         http://www.php.net/manual/en/class.simplexmlelement.php
 * @since       11.1
 * @deprecated  12.1   Use SimpleXMLElement instead
 */
class JSimpleXMLElement extends JObject
{
	/**
	 * Array with the attributes of this XML element
	 *
	 * @var array
	 * @since   11.1
	 */
	public $_attributes = array();

	/**
	 * The name of the element
	 *
	 * @var     string
	 * @since   11.1
	 */
	public $_name = '';

	/**
	 * The data the element contains
	 *
	 * @var     string
	 * @since   11.1
	 */
	public $_data = '';

	/**
	 * Array of references to the objects of all direct children of this XML
object
	 *
	 * @var     array
	 * @since   11.1
	 */
	public $_children = array();

	/**
	 * The level of this XML element
	 *
	 * @var     int
	 * @since   11.1
	 */
	public $_level = 0;

	/**
	 * Constructor, sets up all the default values
	 *
	 * @param   string   $name   The name of the element.
	 * @param   array    $attrs  A key-value array (optional) of the
attributes for the element.
	 * @param   integer  $level  The level (optional) of the element.
	 *
	 * @deprecated  12.1 Use SimpleXMLElement
	 * @since   11.1
	 */
	public function __construct($name, $attrs = array(), $level = 0)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::__construct() is deprecated.',
JLog::WARNING, 'deprecated');

		//Make the keys of the attr array lower case, and store the value
		$this->_attributes = array_change_key_case($attrs, CASE_LOWER);

		//Make the name lower case and store the value
		$this->_name = strtolower($name);

		//Set the level
		$this->_level = $level;
	}

	/**
	 * Get the name of the element
	 *
	 * @return  string
	 *
	 * @deprecated   12.1
	 * @since   11.1
	 */

	public function name()
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::name() is deprecated.',
JLog::WARNING, 'deprecated');

		return $this->_name;
	}

	/**
	 * Get the an attribute of the element
	 *
	 * @param   string  $attribute  The name of the attribute
	 *
	 * @return  mixed   If an attribute is given will return the attribute if
it exist.
	 *                  If no attribute is given will return the complete
attributes array
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function attributes($attribute = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::attributes() is deprecated.',
JLog::WARNING, 'deprecated');

		if (!isset($attribute))
		{
			return $this->_attributes;
		}

		return isset($this->_attributes[$attribute]) ?
$this->_attributes[$attribute] : null;
	}

	/**
	 * Get the data of the element
	 *
	 * @return  string
	 *
	 * @deprecated   12.1  Use SimpleXMLElement
	 * @since   11.1
	 */

	public function data()
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::data() is deprecated.',
JLog::WARNING, 'deprecated');

		return $this->_data;
	}

	/**
	 * Set the data of the element
	 *
	 * @param   string  $data  The CDATA for the element.
	 *
	 * @return  string
	 *
	 * @deprecated  12.1  Use SimpleXMLElement
	 * @since   11.1
	 */

	public function setData($data)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::data() is deprecated.',
JLog::WARNING, 'deprecated');

		$this->_data = $data;
	}

	/**
	 * Get the children of the element
	 *
	 * @return  array
	 *
	 * @deprecated   12.1
	 * @since   11.1
	 */

	public function children()
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::children() is deprecated.',
JLog::WARNING, 'deprecated');

		return $this->_children;
	}

	/**
	 * Get the level of the element
	 *
	 * @return       integer
	 *
	 * @since   11.1
	 * @deprecated   12.1
	 */
	public function level()
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::level() is deprecated.',
JLog::WARNING, 'deprecated');

		return $this->_level;
	}

	/**
	 * Adds an attribute to the element
	 *
	 * @param   string  $name   The key
	 * @param   array   $value  The value for the key
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function addAttribute($name, $value)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::addAttribute() is deprecated.',
JLog::WARNING, 'deprecated');

		// Add the attribute to the element, override if it already exists
		$this->_attributes[$name] = $value;
	}

	/**
	 * Removes an attribute from the element
	 *
	 * @param   string  $name  The name of the attribute.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function removeAttribute($name)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::removeAttribute() is
deprecated.', JLog::WARNING, 'deprecated');

		unset($this->_attributes[$name]);
	}

	/**
	 * Adds a direct child to the element
	 *
	 * @param   string   $name   The name of the element.
	 * @param   array    $attrs  An key-value array of the element attributes.
	 * @param   integer  $level  The level of the element (optional).
	 *
	 * @return  JSimpleXMLElement  The added child object
	 *
	 * @deprecated   12.1
	 * @since   11.1
	 */
	public function addChild($name, $attrs = array(), $level = null)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::addChild() is deprecated.',
JLog::WARNING, 'deprecated');

		//If there is no array already set for the tag name being added,
		//create an empty array for it
		if (!isset($this->$name))
		{
			$this->$name = array();
		}

		// set the level if not already specified
		if ($level == null)
		{
			$level = ($this->_level + 1);
		}

		//Create the child object itself
		$classname = get_class($this);
		$child = new $classname($name, $attrs, $level);

		//Add the reference of it to the end of an array member named for the
elements name
		$this->{$name}[] = &$child;

		//Add the reference to the children array member
		$this->_children[] = &$child;

		//return the new child
		return $child;
	}

	/**
	 * Remove the child node.
	 *
	 * @param   JSimpleXmlElement  &$child  The child element to remove.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 * @deprecated  12.1
	 */
	public function removeChild(&$child)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::removeChild() is deprecated.',
JLog::WARNING, 'deprecated');

		$name = $child->name();
		for ($i = 0, $n = count($this->_children); $i < $n; $i++)
		{
			if ($this->_children[$i] == $child)
			{
				unset($this->_children[$i]);
			}
		}
		for ($i = 0, $n = count($this->{$name}); $i < $n; $i++)
		{
			if ($this->{$name}[$i] == $child)
			{
				unset($this->{$name}[$i]);
			}
		}
		$this->_children = array_values($this->_children);
		$this->{$name} = array_values($this->{$name});
		unset($child);
	}

	/**
	 * Get an element in the document by / separated path
	 *
	 * @param   string  $path  The / separated path to the element
	 *
	 * @return  object  JSimpleXMLElement
	 *
	 * @deprecated   12.1
	 * @since   11.1
	 */
	public function getElementByPath($path)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::getElementByPath() is
deprecated.', JLog::WARNING, 'deprecated');

		$tmp	= &$this;
		$parts	= explode('/', trim($path, '/'));

		foreach ($parts as $node)
		{
			$found = false;
			foreach ($tmp->_children as $child)
			{
				if (strtoupper($child->_name) == strtoupper($node))
				{
					$tmp = &$child;
					$found = true;
					break;
				}
			}
			if (!$found)
			{
				break;
			}
		}

		if ($found)
		{
			return $tmp;
		}

		return false;
	}

	/**
	 * Traverses the tree calling the $callback(JSimpleXMLElement
	 * $this, mixed $args=array()) function with each JSimpleXMLElement.
	 *
	 * @param   string  $callback  Function name
	 * @param   array   $args      The arguments (optional) for the function
callback.
	 *
	 * @return  void
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function map($callback, $args = array())
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::map) is deprecated.',
JLog::WARNING, 'deprecated');

		$callback($this, $args);
		// Map to all children
		if ($n = count($this->_children))
		{
			for ($i = 0; $i < $n; $i++)
			{
				$this->_children[$i]->map($callback, $args);
			}
		}
	}

	/**
	 * Return a well-formed XML string based on SimpleXML element
	 *
	 * @param   boolean  $whitespace  True if whitespace should be prepended
to the string
	 *
	 * @return  string
	 *
	 * @deprecated   12.1
	 * @since   11.1
	 */
	public function toString($whitespace = true)
	{
		// Deprecation warning.
		JLog::add('JSimpleXMLElement::toString() is deprecated.',
JLog::WARNING, 'deprecated');

		// Start a new line, indent by the number indicated in $this->level,
add a <, and add the name of the tag
		if ($whitespace)
		{
			$out = "\n" . str_repeat("\t", $this->_level) .
'<' . $this->_name;
		}
		else
		{
			$out = '<' . $this->_name;
		}

		// For each attribute, add attr="value"
		foreach ($this->_attributes as $attr => $value)
		{
			$out .= ' ' . $attr . '="' .
htmlspecialchars($value, ENT_COMPAT, 'UTF-8') .
'"';
		}

		// If there are no children and it contains no data, end it off with a
/>
		if (empty($this->_children) && empty($this->_data))
		{
			$out .= " />";
		}
		// Otherwise...
		else
		{
			// If there are children
			if (!empty($this->_children))
			{
				// Close off the start tag
				$out .= '>';

				// For each child, call the asXML function (this will ensure that all
children are added recursively)
				foreach ($this->_children as $child)
				{
					$out .= $child->toString($whitespace);
				}

				// Add the newline and indentation to go along with the close tag
				if ($whitespace)
				{
					$out .= "\n" . str_repeat("\t", $this->_level);
				}
			}
			// If there is data, close off the start tag and add the data
			elseif (!empty($this->_data))
				$out .= '>' . htmlspecialchars($this->_data,
ENT_COMPAT, 'UTF-8');

			// Add the end tag
			$out .= '</' . $this->_name . '>';
		}

		//Return the final output
		return $out;
	}
}
}PK�X�[r�a��
�
>offlajnparams/compat/libraries/coomla/utilities/xmlelement.phpnu�[���<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Utilities
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Wrapper class for php SimpleXMLElement.
 *
 * @package     Joomla.Platform
 * @subpackage  Utilities
 * @since       11.1
 * @deprecated  13.3 Use SimpleXMLElement instead.
 */
class JXMLElement extends SimpleXMLElement
{
	/**
	 * Get the name of the element.
	 *
	 * @return  string
	 *
	 * @since   11.1
	 * @deprecated 13.3  Use SimpleXMLElement::getName() instead.
	 */
	public function name()
	{
		JLog::add('JXMLElement::name() is deprecated, use
SimpleXMLElement::getName() instead.', JLog::WARNING,
'deprecated');
		return (string) $this->getName();
	}

	/**
	 * Legacy method to get the element data.
	 *
	 * @return  string
	 *
	 * @deprecated  12.1
	 * @since   11.1
	 */
	public function data()
	{
		// Deprecation warning.
		JLog::add('JXMLElement::data() is deprecated.', JLog::WARNING,
'deprecated');

		return (string) $this;
	}

	/**
	 * Legacy method gets an elements attribute by name.
	 *
	 * @param   string  $name  Attribute to get
	 *
	 * @return  string
	 *
	 * @since   11.1
	 *
	 * @deprecated    12.1
	 * @see           SimpleXMLElement::attributes
	 */
	public function getAttribute($name)
	{
		// Deprecation warning.
		JLog::add('JXMLelement::getAttributes() is deprecated.',
JLog::WARNING, 'deprecated');

		return (string) $this->attributes()->$name;
	}

	/**
	 * Return a well-formed XML string based on SimpleXML element
	 *
	 * @param   boolean  $compressed  Should we use indentation and newlines ?
	 * @param   integer  $indent      Indention level.
	 * @param   integer  $level       The level within the document which
informs the indentation.
	 *
	 * @return  string
	 *
	 * @since   11.1
	 * @deprecated 13.3  Use SimpleXMLElement::asXML() instead.
	 */
	public function asFormattedXML($compressed = false, $indent =
"\t", $level = 0)
	{
		JLog::add('JXMLElement::asFormattedXML() is deprecated, use
SimpleXMLElement::asXML() instead.', JLog::WARNING,
'deprecated');
		$out = '';

		// Start a new line, indent by the number indicated in $level
		$out .= ($compressed) ? '' : "\n" .
str_repeat($indent, $level);

		// Add a <, and add the name of the tag
		$out .= '<' . $this->getName();

		// For each attribute, add attr="value"
		foreach ($this->attributes() as $attr)
		{
			$out .= ' ' . $attr->getName() . '="' .
htmlspecialchars((string) $attr, ENT_COMPAT, 'UTF-8') .
'"';
		}

		// If there are no children and it contains no data, end it off with a
/>
		if (!count($this->children()) && !(string) $this)
		{
			$out .= " />";
		}
		else
		{
			// If there are children
			if (count($this->children()))
			{
				// Close off the start tag
				$out .= '>';

				$level++;

				// For each child, call the asFormattedXML function (this will ensure
that all children are added recursively)
				foreach ($this->children() as $child)
				{
					$out .= $child->asFormattedXML($compressed, $indent, $level);
				}

				$level--;

				// Add the newline and indentation to go along with the close tag
				$out .= ($compressed) ? '' : "\n" .
str_repeat($indent, $level);

			}
			elseif ((string) $this)
			{
				// If there is data, close off the start tag and add the data
				$out .= '>' . htmlspecialchars((string) $this, ENT_COMPAT,
'UTF-8');
			}

			// Add the end tag
			$out .= '</' . $this->getName() . '>';
		}

		return $out;
	}
}
PK�X�[Л9�00-offlajnparams/compat/libraries/html5/Data.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

// warning: this file is encoded in UTF-8!

class HTML5_Data
{

    // at some point this should be moved to a .ser file. Another
    // possible optimization is to give UTF-8 bytes, not Unicode
    // codepoints
    protected static $realCodepointTable = array(
        0x0D => 0x000A, // LINE FEED (LF)
        0x80 => 0x20AC, // EURO SIGN ('€')
        0x81 => 0xFFFD, // REPLACEMENT CHARACTER
        0x82 => 0x201A, // SINGLE LOW-9 QUOTATION MARK ('‚')
        0x83 => 0x0192, // LATIN SMALL LETTER F WITH HOOK
('ƒ')
        0x84 => 0x201E, // DOUBLE LOW-9 QUOTATION MARK ('„')
        0x85 => 0x2026, // HORIZONTAL ELLIPSIS ('…')
        0x86 => 0x2020, // DAGGER ('†')
        0x87 => 0x2021, // DOUBLE DAGGER ('‡')
        0x88 => 0x02C6, // MODIFIER LETTER CIRCUMFLEX ACCENT
('ˆ')
        0x89 => 0x2030, // PER MILLE SIGN ('‰')
        0x8A => 0x0160, // LATIN CAPITAL LETTER S WITH CARON
('Š')
        0x8B => 0x2039, // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
('‹')
        0x8C => 0x0152, // LATIN CAPITAL LIGATURE OE ('Œ')
        0x8D => 0xFFFD, // REPLACEMENT CHARACTER
        0x8E => 0x017D, // LATIN CAPITAL LETTER Z WITH CARON
('Ž')
        0x8F => 0xFFFD, // REPLACEMENT CHARACTER
        0x90 => 0xFFFD, // REPLACEMENT CHARACTER
        0x91 => 0x2018, // LEFT SINGLE QUOTATION MARK ('‘')
        0x92 => 0x2019, // RIGHT SINGLE QUOTATION MARK ('’')
        0x93 => 0x201C, // LEFT DOUBLE QUOTATION MARK ('“')
        0x94 => 0x201D, // RIGHT DOUBLE QUOTATION MARK ('”')
        0x95 => 0x2022, // BULLET ('•')
        0x96 => 0x2013, // EN DASH ('–')
        0x97 => 0x2014, // EM DASH ('—')
        0x98 => 0x02DC, // SMALL TILDE ('˜')
        0x99 => 0x2122, // TRADE MARK SIGN ('™')
        0x9A => 0x0161, // LATIN SMALL LETTER S WITH CARON
('š')
        0x9B => 0x203A, // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
('›')
        0x9C => 0x0153, // LATIN SMALL LIGATURE OE ('œ')
        0x9D => 0xFFFD, // REPLACEMENT CHARACTER
        0x9E => 0x017E, // LATIN SMALL LETTER Z WITH CARON
('ž')
        0x9F => 0x0178, // LATIN CAPITAL LETTER Y WITH DIAERESIS
('Ÿ')
    );

    protected static $namedCharacterReferences;

    protected static $namedCharacterReferenceMaxLength;

    /**
     * Returns the "real" Unicode codepoint of a malformed
character
     * reference.
     */
    public static function getRealCodepoint($ref) {
        if (!isset(self::$realCodepointTable[$ref])) return false;
        else return self::$realCodepointTable[$ref];
    }

    public static function getNamedCharacterReferences() {
        if (!self::$namedCharacterReferences) {
            self::$namedCharacterReferences = unserialize(
                file_get_contents(dirname(__FILE__) .
'/named-character-references.ser'));
        }
        return self::$namedCharacterReferences;
    }

    public static function getNamedCharacterReferenceMaxLength() {
        if (!self::$namedCharacterReferenceMaxLength) {
            $namedCharacterReferences =
self::getNamedCharacterReferences();
            $lengths = array_map('strlen',
array_keys($namedCharacterReferences));
            self::$namedCharacterReferenceMaxLength = max($lengths);
        }
        return self::$namedCharacterReferenceMaxLength;
    }


    /**
     * Converts a Unicode codepoint to sequence of UTF-8 bytes.
     * @note Shamelessly stolen from HTML Purifier, which is also
     *       shamelessly stolen from Feyd (which is in public domain).
     */
    public static function utf8chr($code) {
        if($code > 0x10FFFF or $code < 0x0 or
          ($code >= 0xD800 and $code <= 0xDFFF) ) {
            // bits are set outside the "valid" range as defined
            // by UNICODE 4.1.0
            return "\xEF\xBF\xBD";
        }

        $x = $y = $z = $w = 0;
        if ($code < 0x80) {
            // regular ASCII character
            $x = $code;
        } else {
            // set up bits for UTF-8
            $x = ($code & 0x3F) | 0x80;
            if ($code < 0x800) {
               $y = (($code & 0x7FF) >> 6) | 0xC0;
            } else {
                $y = (($code & 0xFC0) >> 6) | 0x80;
                if($code < 0x10000) {
                    $z = (($code >> 12) & 0x0F) | 0xE0;
                } else {
                    $z = (($code >> 12) & 0x3F) | 0x80;
                    $w = (($code >> 18) & 0x07) | 0xF0;
                }
            }
        }
        // set up the actual character
        $ret = '';
        if($w) $ret .= chr($w);
        if($z) $ret .= chr($z);
        if($y) $ret .= chr($y);
        $ret .= chr($x);

        return $ret;
    }

}
PK�X�[
�H''/offlajnparams/compat/libraries/html5/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[�LC++4offlajnparams/compat/libraries/html5/InputStream.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/*

Copyright 2009 Geoffrey Sneddon <http://gsnedders.com/>

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction,
including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/

// Some conventions:
// /* */ indicates verbatim text from the HTML 5 specification
// // indicates regular comments

class HTML5_InputStream {
    /**
     * The string data we're parsing.
     */
    private $data;

    /**
     * The current integer byte position we are in $data
     */
    private $char;

    /**
     * Length of $data; when $char === $data, we are at the end-of-file.
     */
    private $EOF;

    /**
     * Parse errors.
     */
    public $errors = array();

    /**
     * @param $data Data to parse
     */
    public function __construct($data) {

        /* Given an encoding, the bytes in the input stream must be
        converted to Unicode characters for the tokeniser, as
        described by the rules for that encoding, except that the
        leading U+FEFF BYTE ORDER MARK character, if any, must not
        be stripped by the encoding layer (it is stripped by the rule
below).

        Bytes or sequences of bytes in the original byte stream that
        could not be converted to Unicode characters must be converted
        to U+FFFD REPLACEMENT CHARACTER code points. */

        // XXX currently assuming input data is UTF-8; once we
        // build encoding detection this will no longer be the case
        //
        // We previously had an mbstring implementation here, but that
        // implementation is heavily non-conforming, so it's been
        // omitted.
        if (extension_loaded('iconv')) {
            // non-conforming
            $data = @iconv('UTF-8', 'UTF-8//IGNORE',
$data);
        } else {
            // we can make a conforming native implementation
            throw new Exception('Not implemented, please install
mbstring or iconv');
        }

        /* One leading U+FEFF BYTE ORDER MARK character must be
        ignored if any are present. */
        if (substr($data, 0, 3) === "\xEF\xBB\xBF") {
            $data = substr($data, 3);
        }

        /* All U+0000 NULL characters in the input must be replaced
        by U+FFFD REPLACEMENT CHARACTERs. Any occurrences of such
        characters is a parse error. */
        for ($i = 0, $count = substr_count($data, "\0"); $i <
$count; $i++) {
            $this->errors[] = array(
                'type' => HTML5_Tokenizer::PARSEERROR,
                'data' => 'null-character'
            );
        }
        /* U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED
        (LF) characters are treated specially. Any CR characters
        that are followed by LF characters must be removed, and any
        CR characters not followed by LF characters must be converted
        to LF characters. Thus, newlines in HTML DOMs are represented
        by LF characters, and there are never any CR characters in the
        input to the tokenization stage. */
        $data = str_replace(
            array(
                "\0",
                "\r\n",
                "\r"
            ),
            array(
                "\xEF\xBF\xBD",
                "\n",
                "\n"
            ),
            $data
        );

        /* Any occurrences of any characters in the ranges U+0001 to
        U+0008, U+000B,  U+000E to U+001F,  U+007F  to U+009F,
        U+D800 to U+DFFF , U+FDD0 to U+FDEF, and
        characters U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, U+2FFFF,
        U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE,
        U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF,
        U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE, U+CFFFF, U+DFFFE,
        U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF, U+10FFFE, and
        U+10FFFF are parse errors. (These are all control characters
        or permanently undefined Unicode characters.) */
        // Check PCRE is loaded.
        if (extension_loaded('pcre')) {
            $count = preg_match_all(
                '/(?:
                    [\x01-\x08\x0B\x0E-\x1F\x7F] # U+0001 to U+0008,
U+000B,  U+000E to U+001F and U+007F
                |
                    \xC2[\x80-\x9F] # U+0080 to U+009F
                |
                   
\xED(?:\xA0[\x80-\xFF]|[\xA1-\xBE][\x00-\xFF]|\xBF[\x00-\xBF]) # U+D800 to
U+DFFFF
                |
                    \xEF\xB7[\x90-\xAF] # U+FDD0 to U+FDEF
                |
                    \xEF\xBF[\xBE\xBF] # U+FFFE and U+FFFF
                |
                    [\xF0-\xF4][\x8F-\xBF]\xBF[\xBE\xBF] # U+nFFFE and
U+nFFFF (1 <= n <= 10_{16})
                )/x',
                $data,
                $matches
            );
            for ($i = 0; $i < $count; $i++) {
                $this->errors[] = array(
                    'type' => HTML5_Tokenizer::PARSEERROR,
                    'data' => 'invalid-codepoint'
                );
            }
        } else {
            // XXX: Need non-PCRE impl, probably using substr_count
        }

        $this->data = $data;
        $this->char = 0;
        $this->EOF  = strlen($data);
    }

    /**
     * Returns the current line that the tokenizer is at.
     */
    public function getCurrentLine() {
        // Check the string isn't empty
        if($this->EOF) {
            // Add one to $this->char because we want the number for the
next
            // byte to be processed.
            return substr_count($this->data, "\n", 0,
min($this->char, $this->EOF)) + 1;
        } else {
            // If the string is empty, we are on the first line (sorta).
            return 1;
        }
    }

    /**
     * Returns the current column of the current line that the tokenizer is
at.
     */
    public function getColumnOffset() {
        // strrpos is weird, and the offset needs to be negative for what
we
        // want (i.e., the last \n before $this->char). This needs to
not have
        // one (to make it point to the next character, the one we want the
        // position of) added to it because strrpos's behaviour
includes the
        // final offset byte.
        $lastLine = strrpos($this->data, "\n", $this->char
- 1 - strlen($this->data));

        // However, for here we want the length up until the next byte to
be
        // processed, so add one to the current byte ($this->char).
        if($lastLine !== false) {
            $findLengthOf = substr($this->data, $lastLine + 1,
$this->char - 1 - $lastLine);
        } else {
            $findLengthOf = substr($this->data, 0, $this->char);
        }

        // Get the length for the string we need.
        if(extension_loaded('iconv')) {
            return iconv_strlen($findLengthOf, 'utf-8');
        } elseif(extension_loaded('mbstring')) {
            return mb_strlen($findLengthOf, 'utf-8');
        } elseif(extension_loaded('xml')) {
            return strlen(utf8_decode($findLengthOf));
        } else {
            $count = count_chars($findLengthOf);
            // 0x80 = 0x7F - 0 + 1 (one added to get inclusive range)
            // 0x33 = 0xF4 - 0x2C + 1 (one added to get inclusive range)
            return array_sum(array_slice($count, 0, 0x80)) +
                   array_sum(array_slice($count, 0xC2, 0x33));
        }
    }

    /**
     * Retrieve the currently consume character.
     * @note This performs bounds checking
     */
    public function char() {
        return ($this->char++ < $this->EOF)
            ? $this->data[$this->char - 1]
            : false;
    }

    /**
     * Get all characters until EOF.
     * @note This performs bounds checking
     */
    public function remainingChars() {
        if($this->char < $this->EOF) {
            $data = substr($this->data, $this->char);
            $this->char = $this->EOF;
            return $data;
        } else {
            return false;
        }
    }

    /**
     * Matches as far as possible until we reach a certain set of bytes
     * and returns the matched substring.
     * @param $bytes Bytes to match.
     */
    public function charsUntil($bytes, $max = null) {
        if ($this->char < $this->EOF) {
            if ($max === 0 || $max) {
                $len = strcspn($this->data, $bytes, $this->char,
$max);
            } else {
                $len = strcspn($this->data, $bytes, $this->char);
            }
            $string = (string) substr($this->data, $this->char,
$len);
            $this->char += $len;
            return $string;
        } else {
            return false;
        }
    }

    /**
     * Matches as far as possible with a certain set of bytes
     * and returns the matched substring.
     * @param $bytes Bytes to match.
     */
    public function charsWhile($bytes, $max = null) {
        if ($this->char < $this->EOF) {
            if ($max === 0 || $max) {
                $len = strspn($this->data, $bytes, $this->char,
$max);
            } else {
                $len = strspn($this->data, $bytes, $this->char);
            }
            $string = (string) substr($this->data, $this->char,
$len);
            $this->char += $len;
            return $string;
        } else {
            return false;
        }
    }

    /**
     * Unconsume one character.
     */
    public function unget() {
        if ($this->char <= $this->EOF) {
            $this->char--;
        }
    }
}
PK�X�[em˴˴Cofflajnparams/compat/libraries/html5/named-character-references.sernu�[���a:2137:{s:6:"AElig;";i:198;s:5:"AElig";i:198;s:4:"AMP;";i:38;s:3:"AMP";i:38;s:7:"Aacute;";i:193;s:6:"Aacute";i:193;s:7:"Abreve;";i:258;s:6:"Acirc;";i:194;s:5:"Acirc";i:194;s:4:"Acy;";i:1040;s:4:"Afr;";i:120068;s:7:"Agrave;";i:192;s:6:"Agrave";i:192;s:6:"Alpha;";i:913;s:6:"Amacr;";i:256;s:4:"And;";i:10835;s:6:"Aogon;";i:260;s:5:"Aopf;";i:120120;s:14:"ApplyFunction;";i:8289;s:6:"Aring;";i:197;s:5:"Aring";i:197;s:5:"Ascr;";i:119964;s:7:"Assign;";i:8788;s:7:"Atilde;";i:195;s:6:"Atilde";i:195;s:5:"Auml;";i:196;s:4:"Auml";i:196;s:10:"Backslash;";i:8726;s:5:"Barv;";i:10983;s:7:"Barwed;";i:8966;s:4:"Bcy;";i:1041;s:8:"Because;";i:8757;s:11:"Bernoullis;";i:8492;s:5:"Beta;";i:914;s:4:"Bfr;";i:120069;s:5:"Bopf;";i:120121;s:6:"Breve;";i:728;s:5:"Bscr;";i:8492;s:7:"Bumpeq;";i:8782;s:5:"CHcy;";i:1063;s:5:"COPY;";i:169;s:4:"COPY";i:169;s:7:"Cacute;";i:262;s:4:"Cap;";i:8914;s:21:"CapitalDifferentialD;";i:8517;s:8:"Cayleys;";i:8493;s:7:"Ccaron;";i:268;s:7:"Ccedil;";i:199;s:6:"Ccedil";i:199;s:6:"Ccirc;";i:264;s:8:"Cconint;";i:8752;s:5:"Cdot;";i:266;s:8:"Cedilla;";i:184;s:10:"CenterDot;";i:183;s:4:"Cfr;";i:8493;s:4:"Chi;";i:935;s:10:"CircleDot;";i:8857;s:12:"CircleMinus;";i:8854;s:11:"CirclePlus;";i:8853;s:12:"CircleTimes;";i:8855;s:25:"ClockwiseContourIntegral;";i:8754;s:22:"CloseCurlyDoubleQuote;";i:8221;s:16:"CloseCurlyQuote;";i:8217;s:6:"Colon;";i:8759;s:7:"Colone;";i:10868;s:10:"Congruent;";i:8801;s:7:"Conint;";i:8751;s:16:"ContourIntegral;";i:8750;s:5:"Copf;";i:8450;s:10:"Coproduct;";i:8720;s:32:"CounterClockwiseContourIntegral;";i:8755;s:6:"Cross;";i:10799;s:5:"Cscr;";i:119966;s:4:"Cup;";i:8915;s:7:"CupCap;";i:8781;s:3:"DD;";i:8517;s:9:"DDotrahd;";i:10513;s:5:"DJcy;";i:1026;s:5:"DScy;";i:1029;s:5:"DZcy;";i:1039;s:7:"Dagger;";i:8225;s:5:"Darr;";i:8609;s:6:"Dashv;";i:10980;s:7:"Dcaron;";i:270;s:4:"Dcy;";i:1044;s:4:"Del;";i:8711;s:6:"Delta;";i:916;s:4:"Dfr;";i:120071;s:17:"DiacriticalAcute;";i:180;s:15:"DiacriticalDot;";i:729;s:23:"DiacriticalDoubleAcute;";i:733;s:17:"DiacriticalGrave;";i:96;s:17:"DiacriticalTilde;";i:732;s:8:"Diamond;";i:8900;s:14:"DifferentialD;";i:8518;s:5:"Dopf;";i:120123;s:4:"Dot;";i:168;s:7:"DotDot;";i:8412;s:9:"DotEqual;";i:8784;s:22:"DoubleContourIntegral;";i:8751;s:10:"DoubleDot;";i:168;s:16:"DoubleDownArrow;";i:8659;s:16:"DoubleLeftArrow;";i:8656;s:21:"DoubleLeftRightArrow;";i:8660;s:14:"DoubleLeftTee;";i:10980;s:20:"DoubleLongLeftArrow;";i:10232;s:25:"DoubleLongLeftRightArrow;";i:10234;s:21:"DoubleLongRightArrow;";i:10233;s:17:"DoubleRightArrow;";i:8658;s:15:"DoubleRightTee;";i:8872;s:14:"DoubleUpArrow;";i:8657;s:18:"DoubleUpDownArrow;";i:8661;s:18:"DoubleVerticalBar;";i:8741;s:10:"DownArrow;";i:8595;s:13:"DownArrowBar;";i:10515;s:17:"DownArrowUpArrow;";i:8693;s:10:"DownBreve;";i:785;s:20:"DownLeftRightVector;";i:10576;s:18:"DownLeftTeeVector;";i:10590;s:15:"DownLeftVector;";i:8637;s:18:"DownLeftVectorBar;";i:10582;s:19:"DownRightTeeVector;";i:10591;s:16:"DownRightVector;";i:8641;s:19:"DownRightVectorBar;";i:10583;s:8:"DownTee;";i:8868;s:13:"DownTeeArrow;";i:8615;s:10:"Downarrow;";i:8659;s:5:"Dscr;";i:119967;s:7:"Dstrok;";i:272;s:4:"ENG;";i:330;s:4:"ETH;";i:208;s:3:"ETH";i:208;s:7:"Eacute;";i:201;s:6:"Eacute";i:201;s:7:"Ecaron;";i:282;s:6:"Ecirc;";i:202;s:5:"Ecirc";i:202;s:4:"Ecy;";i:1069;s:5:"Edot;";i:278;s:4:"Efr;";i:120072;s:7:"Egrave;";i:200;s:6:"Egrave";i:200;s:8:"Element;";i:8712;s:6:"Emacr;";i:274;s:17:"EmptySmallSquare;";i:9723;s:21:"EmptyVerySmallSquare;";i:9643;s:6:"Eogon;";i:280;s:5:"Eopf;";i:120124;s:8:"Epsilon;";i:917;s:6:"Equal;";i:10869;s:11:"EqualTilde;";i:8770;s:12:"Equilibrium;";i:8652;s:5:"Escr;";i:8496;s:5:"Esim;";i:10867;s:4:"Eta;";i:919;s:5:"Euml;";i:203;s:4:"Euml";i:203;s:7:"Exists;";i:8707;s:13:"ExponentialE;";i:8519;s:4:"Fcy;";i:1060;s:4:"Ffr;";i:120073;s:18:"FilledSmallSquare;";i:9724;s:22:"FilledVerySmallSquare;";i:9642;s:5:"Fopf;";i:120125;s:7:"ForAll;";i:8704;s:11:"Fouriertrf;";i:8497;s:5:"Fscr;";i:8497;s:5:"GJcy;";i:1027;s:3:"GT;";i:62;s:2:"GT";i:62;s:6:"Gamma;";i:915;s:7:"Gammad;";i:988;s:7:"Gbreve;";i:286;s:7:"Gcedil;";i:290;s:6:"Gcirc;";i:284;s:4:"Gcy;";i:1043;s:5:"Gdot;";i:288;s:4:"Gfr;";i:120074;s:3:"Gg;";i:8921;s:5:"Gopf;";i:120126;s:13:"GreaterEqual;";i:8805;s:17:"GreaterEqualLess;";i:8923;s:17:"GreaterFullEqual;";i:8807;s:15:"GreaterGreater;";i:10914;s:12:"GreaterLess;";i:8823;s:18:"GreaterSlantEqual;";i:10878;s:13:"GreaterTilde;";i:8819;s:5:"Gscr;";i:119970;s:3:"Gt;";i:8811;s:7:"HARDcy;";i:1066;s:6:"Hacek;";i:711;s:4:"Hat;";i:94;s:6:"Hcirc;";i:292;s:4:"Hfr;";i:8460;s:13:"HilbertSpace;";i:8459;s:5:"Hopf;";i:8461;s:15:"HorizontalLine;";i:9472;s:5:"Hscr;";i:8459;s:7:"Hstrok;";i:294;s:13:"HumpDownHump;";i:8782;s:10:"HumpEqual;";i:8783;s:5:"IEcy;";i:1045;s:6:"IJlig;";i:306;s:5:"IOcy;";i:1025;s:7:"Iacute;";i:205;s:6:"Iacute";i:205;s:6:"Icirc;";i:206;s:5:"Icirc";i:206;s:4:"Icy;";i:1048;s:5:"Idot;";i:304;s:4:"Ifr;";i:8465;s:7:"Igrave;";i:204;s:6:"Igrave";i:204;s:3:"Im;";i:8465;s:6:"Imacr;";i:298;s:11:"ImaginaryI;";i:8520;s:8:"Implies;";i:8658;s:4:"Int;";i:8748;s:9:"Integral;";i:8747;s:13:"Intersection;";i:8898;s:15:"InvisibleComma;";i:8291;s:15:"InvisibleTimes;";i:8290;s:6:"Iogon;";i:302;s:5:"Iopf;";i:120128;s:5:"Iota;";i:921;s:5:"Iscr;";i:8464;s:7:"Itilde;";i:296;s:6:"Iukcy;";i:1030;s:5:"Iuml;";i:207;s:4:"Iuml";i:207;s:6:"Jcirc;";i:308;s:4:"Jcy;";i:1049;s:4:"Jfr;";i:120077;s:5:"Jopf;";i:120129;s:5:"Jscr;";i:119973;s:7:"Jsercy;";i:1032;s:6:"Jukcy;";i:1028;s:5:"KHcy;";i:1061;s:5:"KJcy;";i:1036;s:6:"Kappa;";i:922;s:7:"Kcedil;";i:310;s:4:"Kcy;";i:1050;s:4:"Kfr;";i:120078;s:5:"Kopf;";i:120130;s:5:"Kscr;";i:119974;s:5:"LJcy;";i:1033;s:3:"LT;";i:60;s:2:"LT";i:60;s:7:"Lacute;";i:313;s:7:"Lambda;";i:923;s:5:"Lang;";i:10218;s:11:"Laplacetrf;";i:8466;s:5:"Larr;";i:8606;s:7:"Lcaron;";i:317;s:7:"Lcedil;";i:315;s:4:"Lcy;";i:1051;s:17:"LeftAngleBracket;";i:10216;s:10:"LeftArrow;";i:8592;s:13:"LeftArrowBar;";i:8676;s:20:"LeftArrowRightArrow;";i:8646;s:12:"LeftCeiling;";i:8968;s:18:"LeftDoubleBracket;";i:10214;s:18:"LeftDownTeeVector;";i:10593;s:15:"LeftDownVector;";i:8643;s:18:"LeftDownVectorBar;";i:10585;s:10:"LeftFloor;";i:8970;s:15:"LeftRightArrow;";i:8596;s:16:"LeftRightVector;";i:10574;s:8:"LeftTee;";i:8867;s:13:"LeftTeeArrow;";i:8612;s:14:"LeftTeeVector;";i:10586;s:13:"LeftTriangle;";i:8882;s:16:"LeftTriangleBar;";i:10703;s:18:"LeftTriangleEqual;";i:8884;s:17:"LeftUpDownVector;";i:10577;s:16:"LeftUpTeeVector;";i:10592;s:13:"LeftUpVector;";i:8639;s:16:"LeftUpVectorBar;";i:10584;s:11:"LeftVector;";i:8636;s:14:"LeftVectorBar;";i:10578;s:10:"Leftarrow;";i:8656;s:15:"Leftrightarrow;";i:8660;s:17:"LessEqualGreater;";i:8922;s:14:"LessFullEqual;";i:8806;s:12:"LessGreater;";i:8822;s:9:"LessLess;";i:10913;s:15:"LessSlantEqual;";i:10877;s:10:"LessTilde;";i:8818;s:4:"Lfr;";i:120079;s:3:"Ll;";i:8920;s:11:"Lleftarrow;";i:8666;s:7:"Lmidot;";i:319;s:14:"LongLeftArrow;";i:10229;s:19:"LongLeftRightArrow;";i:10231;s:15:"LongRightArrow;";i:10230;s:14:"Longleftarrow;";i:10232;s:19:"Longleftrightarrow;";i:10234;s:15:"Longrightarrow;";i:10233;s:5:"Lopf;";i:120131;s:15:"LowerLeftArrow;";i:8601;s:16:"LowerRightArrow;";i:8600;s:5:"Lscr;";i:8466;s:4:"Lsh;";i:8624;s:7:"Lstrok;";i:321;s:3:"Lt;";i:8810;s:4:"Map;";i:10501;s:4:"Mcy;";i:1052;s:12:"MediumSpace;";i:8287;s:10:"Mellintrf;";i:8499;s:4:"Mfr;";i:120080;s:10:"MinusPlus;";i:8723;s:5:"Mopf;";i:120132;s:5:"Mscr;";i:8499;s:3:"Mu;";i:924;s:5:"NJcy;";i:1034;s:7:"Nacute;";i:323;s:7:"Ncaron;";i:327;s:7:"Ncedil;";i:325;s:4:"Ncy;";i:1053;s:20:"NegativeMediumSpace;";i:8203;s:19:"NegativeThickSpace;";i:8203;s:18:"NegativeThinSpace;";i:8203;s:22:"NegativeVeryThinSpace;";i:8203;s:21:"NestedGreaterGreater;";i:8811;s:15:"NestedLessLess;";i:8810;s:8:"NewLine;";i:10;s:4:"Nfr;";i:120081;s:8:"NoBreak;";i:8288;s:17:"NonBreakingSpace;";i:160;s:5:"Nopf;";i:8469;s:4:"Not;";i:10988;s:13:"NotCongruent;";i:8802;s:10:"NotCupCap;";i:8813;s:21:"NotDoubleVerticalBar;";i:8742;s:11:"NotElement;";i:8713;s:9:"NotEqual;";i:8800;s:10:"NotExists;";i:8708;s:11:"NotGreater;";i:8815;s:16:"NotGreaterEqual;";i:8817;s:15:"NotGreaterLess;";i:8825;s:16:"NotGreaterTilde;";i:8821;s:16:"NotLeftTriangle;";i:8938;s:21:"NotLeftTriangleEqual;";i:8940;s:8:"NotLess;";i:8814;s:13:"NotLessEqual;";i:8816;s:15:"NotLessGreater;";i:8824;s:13:"NotLessTilde;";i:8820;s:12:"NotPrecedes;";i:8832;s:22:"NotPrecedesSlantEqual;";i:8928;s:18:"NotReverseElement;";i:8716;s:17:"NotRightTriangle;";i:8939;s:22:"NotRightTriangleEqual;";i:8941;s:21:"NotSquareSubsetEqual;";i:8930;s:23:"NotSquareSupersetEqual;";i:8931;s:15:"NotSubsetEqual;";i:8840;s:12:"NotSucceeds;";i:8833;s:22:"NotSucceedsSlantEqual;";i:8929;s:17:"NotSupersetEqual;";i:8841;s:9:"NotTilde;";i:8769;s:14:"NotTildeEqual;";i:8772;s:18:"NotTildeFullEqual;";i:8775;s:14:"NotTildeTilde;";i:8777;s:15:"NotVerticalBar;";i:8740;s:5:"Nscr;";i:119977;s:7:"Ntilde;";i:209;s:6:"Ntilde";i:209;s:3:"Nu;";i:925;s:6:"OElig;";i:338;s:7:"Oacute;";i:211;s:6:"Oacute";i:211;s:6:"Ocirc;";i:212;s:5:"Ocirc";i:212;s:4:"Ocy;";i:1054;s:7:"Odblac;";i:336;s:4:"Ofr;";i:120082;s:7:"Ograve;";i:210;s:6:"Ograve";i:210;s:6:"Omacr;";i:332;s:6:"Omega;";i:937;s:8:"Omicron;";i:927;s:5:"Oopf;";i:120134;s:21:"OpenCurlyDoubleQuote;";i:8220;s:15:"OpenCurlyQuote;";i:8216;s:3:"Or;";i:10836;s:5:"Oscr;";i:119978;s:7:"Oslash;";i:216;s:6:"Oslash";i:216;s:7:"Otilde;";i:213;s:6:"Otilde";i:213;s:7:"Otimes;";i:10807;s:5:"Ouml;";i:214;s:4:"Ouml";i:214;s:8:"OverBar;";i:175;s:10:"OverBrace;";i:9182;s:12:"OverBracket;";i:9140;s:16:"OverParenthesis;";i:9180;s:9:"PartialD;";i:8706;s:4:"Pcy;";i:1055;s:4:"Pfr;";i:120083;s:4:"Phi;";i:934;s:3:"Pi;";i:928;s:10:"PlusMinus;";i:177;s:14:"Poincareplane;";i:8460;s:5:"Popf;";i:8473;s:3:"Pr;";i:10939;s:9:"Precedes;";i:8826;s:14:"PrecedesEqual;";i:10927;s:19:"PrecedesSlantEqual;";i:8828;s:14:"PrecedesTilde;";i:8830;s:6:"Prime;";i:8243;s:8:"Product;";i:8719;s:11:"Proportion;";i:8759;s:13:"Proportional;";i:8733;s:5:"Pscr;";i:119979;s:4:"Psi;";i:936;s:5:"QUOT;";i:34;s:4:"QUOT";i:34;s:4:"Qfr;";i:120084;s:5:"Qopf;";i:8474;s:5:"Qscr;";i:119980;s:6:"RBarr;";i:10512;s:4:"REG;";i:174;s:3:"REG";i:174;s:7:"Racute;";i:340;s:5:"Rang;";i:10219;s:5:"Rarr;";i:8608;s:7:"Rarrtl;";i:10518;s:7:"Rcaron;";i:344;s:7:"Rcedil;";i:342;s:4:"Rcy;";i:1056;s:3:"Re;";i:8476;s:15:"ReverseElement;";i:8715;s:19:"ReverseEquilibrium;";i:8651;s:21:"ReverseUpEquilibrium;";i:10607;s:4:"Rfr;";i:8476;s:4:"Rho;";i:929;s:18:"RightAngleBracket;";i:10217;s:11:"RightArrow;";i:8594;s:14:"RightArrowBar;";i:8677;s:20:"RightArrowLeftArrow;";i:8644;s:13:"RightCeiling;";i:8969;s:19:"RightDoubleBracket;";i:10215;s:19:"RightDownTeeVector;";i:10589;s:16:"RightDownVector;";i:8642;s:19:"RightDownVectorBar;";i:10581;s:11:"RightFloor;";i:8971;s:9:"RightTee;";i:8866;s:14:"RightTeeArrow;";i:8614;s:15:"RightTeeVector;";i:10587;s:14:"RightTriangle;";i:8883;s:17:"RightTriangleBar;";i:10704;s:19:"RightTriangleEqual;";i:8885;s:18:"RightUpDownVector;";i:10575;s:17:"RightUpTeeVector;";i:10588;s:14:"RightUpVector;";i:8638;s:17:"RightUpVectorBar;";i:10580;s:12:"RightVector;";i:8640;s:15:"RightVectorBar;";i:10579;s:11:"Rightarrow;";i:8658;s:5:"Ropf;";i:8477;s:13:"RoundImplies;";i:10608;s:12:"Rrightarrow;";i:8667;s:5:"Rscr;";i:8475;s:4:"Rsh;";i:8625;s:12:"RuleDelayed;";i:10740;s:7:"SHCHcy;";i:1065;s:5:"SHcy;";i:1064;s:7:"SOFTcy;";i:1068;s:7:"Sacute;";i:346;s:3:"Sc;";i:10940;s:7:"Scaron;";i:352;s:7:"Scedil;";i:350;s:6:"Scirc;";i:348;s:4:"Scy;";i:1057;s:4:"Sfr;";i:120086;s:15:"ShortDownArrow;";i:8595;s:15:"ShortLeftArrow;";i:8592;s:16:"ShortRightArrow;";i:8594;s:13:"ShortUpArrow;";i:8593;s:6:"Sigma;";i:931;s:12:"SmallCircle;";i:8728;s:5:"Sopf;";i:120138;s:5:"Sqrt;";i:8730;s:7:"Square;";i:9633;s:19:"SquareIntersection;";i:8851;s:13:"SquareSubset;";i:8847;s:18:"SquareSubsetEqual;";i:8849;s:15:"SquareSuperset;";i:8848;s:20:"SquareSupersetEqual;";i:8850;s:12:"SquareUnion;";i:8852;s:5:"Sscr;";i:119982;s:5:"Star;";i:8902;s:4:"Sub;";i:8912;s:7:"Subset;";i:8912;s:12:"SubsetEqual;";i:8838;s:9:"Succeeds;";i:8827;s:14:"SucceedsEqual;";i:10928;s:19:"SucceedsSlantEqual;";i:8829;s:14:"SucceedsTilde;";i:8831;s:9:"SuchThat;";i:8715;s:4:"Sum;";i:8721;s:4:"Sup;";i:8913;s:9:"Superset;";i:8835;s:14:"SupersetEqual;";i:8839;s:7:"Supset;";i:8913;s:6:"THORN;";i:222;s:5:"THORN";i:222;s:6:"TRADE;";i:8482;s:6:"TSHcy;";i:1035;s:5:"TScy;";i:1062;s:4:"Tab;";i:9;s:4:"Tau;";i:932;s:7:"Tcaron;";i:356;s:7:"Tcedil;";i:354;s:4:"Tcy;";i:1058;s:4:"Tfr;";i:120087;s:10:"Therefore;";i:8756;s:6:"Theta;";i:920;s:10:"ThinSpace;";i:8201;s:6:"Tilde;";i:8764;s:11:"TildeEqual;";i:8771;s:15:"TildeFullEqual;";i:8773;s:11:"TildeTilde;";i:8776;s:5:"Topf;";i:120139;s:10:"TripleDot;";i:8411;s:5:"Tscr;";i:119983;s:7:"Tstrok;";i:358;s:7:"Uacute;";i:218;s:6:"Uacute";i:218;s:5:"Uarr;";i:8607;s:9:"Uarrocir;";i:10569;s:6:"Ubrcy;";i:1038;s:7:"Ubreve;";i:364;s:6:"Ucirc;";i:219;s:5:"Ucirc";i:219;s:4:"Ucy;";i:1059;s:7:"Udblac;";i:368;s:4:"Ufr;";i:120088;s:7:"Ugrave;";i:217;s:6:"Ugrave";i:217;s:6:"Umacr;";i:362;s:9:"UnderBar;";i:818;s:11:"UnderBrace;";i:9183;s:13:"UnderBracket;";i:9141;s:17:"UnderParenthesis;";i:9181;s:6:"Union;";i:8899;s:10:"UnionPlus;";i:8846;s:6:"Uogon;";i:370;s:5:"Uopf;";i:120140;s:8:"UpArrow;";i:8593;s:11:"UpArrowBar;";i:10514;s:17:"UpArrowDownArrow;";i:8645;s:12:"UpDownArrow;";i:8597;s:14:"UpEquilibrium;";i:10606;s:6:"UpTee;";i:8869;s:11:"UpTeeArrow;";i:8613;s:8:"Uparrow;";i:8657;s:12:"Updownarrow;";i:8661;s:15:"UpperLeftArrow;";i:8598;s:16:"UpperRightArrow;";i:8599;s:5:"Upsi;";i:978;s:8:"Upsilon;";i:933;s:6:"Uring;";i:366;s:5:"Uscr;";i:119984;s:7:"Utilde;";i:360;s:5:"Uuml;";i:220;s:4:"Uuml";i:220;s:6:"VDash;";i:8875;s:5:"Vbar;";i:10987;s:4:"Vcy;";i:1042;s:6:"Vdash;";i:8873;s:7:"Vdashl;";i:10982;s:4:"Vee;";i:8897;s:7:"Verbar;";i:8214;s:5:"Vert;";i:8214;s:12:"VerticalBar;";i:8739;s:13:"VerticalLine;";i:124;s:18:"VerticalSeparator;";i:10072;s:14:"VerticalTilde;";i:8768;s:14:"VeryThinSpace;";i:8202;s:4:"Vfr;";i:120089;s:5:"Vopf;";i:120141;s:5:"Vscr;";i:119985;s:7:"Vvdash;";i:8874;s:6:"Wcirc;";i:372;s:6:"Wedge;";i:8896;s:4:"Wfr;";i:120090;s:5:"Wopf;";i:120142;s:5:"Wscr;";i:119986;s:4:"Xfr;";i:120091;s:3:"Xi;";i:926;s:5:"Xopf;";i:120143;s:5:"Xscr;";i:119987;s:5:"YAcy;";i:1071;s:5:"YIcy;";i:1031;s:5:"YUcy;";i:1070;s:7:"Yacute;";i:221;s:6:"Yacute";i:221;s:6:"Ycirc;";i:374;s:4:"Ycy;";i:1067;s:4:"Yfr;";i:120092;s:5:"Yopf;";i:120144;s:5:"Yscr;";i:119988;s:5:"Yuml;";i:376;s:5:"ZHcy;";i:1046;s:7:"Zacute;";i:377;s:7:"Zcaron;";i:381;s:4:"Zcy;";i:1047;s:5:"Zdot;";i:379;s:15:"ZeroWidthSpace;";i:8203;s:5:"Zeta;";i:918;s:4:"Zfr;";i:8488;s:5:"Zopf;";i:8484;s:5:"Zscr;";i:119989;s:7:"aacute;";i:225;s:6:"aacute";i:225;s:7:"abreve;";i:259;s:3:"ac;";i:8766;s:4:"acd;";i:8767;s:6:"acirc;";i:226;s:5:"acirc";i:226;s:6:"acute;";i:180;s:5:"acute";i:180;s:4:"acy;";i:1072;s:6:"aelig;";i:230;s:5:"aelig";i:230;s:3:"af;";i:8289;s:4:"afr;";i:120094;s:7:"agrave;";i:224;s:6:"agrave";i:224;s:8:"alefsym;";i:8501;s:6:"aleph;";i:8501;s:6:"alpha;";i:945;s:6:"amacr;";i:257;s:6:"amalg;";i:10815;s:4:"amp;";i:38;s:3:"amp";i:38;s:4:"and;";i:8743;s:7:"andand;";i:10837;s:5:"andd;";i:10844;s:9:"andslope;";i:10840;s:5:"andv;";i:10842;s:4:"ang;";i:8736;s:5:"ange;";i:10660;s:6:"angle;";i:8736;s:7:"angmsd;";i:8737;s:9:"angmsdaa;";i:10664;s:9:"angmsdab;";i:10665;s:9:"angmsdac;";i:10666;s:9:"angmsdad;";i:10667;s:9:"angmsdae;";i:10668;s:9:"angmsdaf;";i:10669;s:9:"angmsdag;";i:10670;s:9:"angmsdah;";i:10671;s:6:"angrt;";i:8735;s:8:"angrtvb;";i:8894;s:9:"angrtvbd;";i:10653;s:7:"angsph;";i:8738;s:6:"angst;";i:8491;s:8:"angzarr;";i:9084;s:6:"aogon;";i:261;s:5:"aopf;";i:120146;s:3:"ap;";i:8776;s:4:"apE;";i:10864;s:7:"apacir;";i:10863;s:4:"ape;";i:8778;s:5:"apid;";i:8779;s:5:"apos;";i:39;s:7:"approx;";i:8776;s:9:"approxeq;";i:8778;s:6:"aring;";i:229;s:5:"aring";i:229;s:5:"ascr;";i:119990;s:4:"ast;";i:42;s:6:"asymp;";i:8776;s:8:"asympeq;";i:8781;s:7:"atilde;";i:227;s:6:"atilde";i:227;s:5:"auml;";i:228;s:4:"auml";i:228;s:9:"awconint;";i:8755;s:6:"awint;";i:10769;s:5:"bNot;";i:10989;s:9:"backcong;";i:8780;s:12:"backepsilon;";i:1014;s:10:"backprime;";i:8245;s:8:"backsim;";i:8765;s:10:"backsimeq;";i:8909;s:7:"barvee;";i:8893;s:7:"barwed;";i:8965;s:9:"barwedge;";i:8965;s:5:"bbrk;";i:9141;s:9:"bbrktbrk;";i:9142;s:6:"bcong;";i:8780;s:4:"bcy;";i:1073;s:6:"bdquo;";i:8222;s:7:"becaus;";i:8757;s:8:"because;";i:8757;s:8:"bemptyv;";i:10672;s:6:"bepsi;";i:1014;s:7:"bernou;";i:8492;s:5:"beta;";i:946;s:5:"beth;";i:8502;s:8:"between;";i:8812;s:4:"bfr;";i:120095;s:7:"bigcap;";i:8898;s:8:"bigcirc;";i:9711;s:7:"bigcup;";i:8899;s:8:"bigodot;";i:10752;s:9:"bigoplus;";i:10753;s:10:"bigotimes;";i:10754;s:9:"bigsqcup;";i:10758;s:8:"bigstar;";i:9733;s:16:"bigtriangledown;";i:9661;s:14:"bigtriangleup;";i:9651;s:9:"biguplus;";i:10756;s:7:"bigvee;";i:8897;s:9:"bigwedge;";i:8896;s:7:"bkarow;";i:10509;s:13:"blacklozenge;";i:10731;s:12:"blacksquare;";i:9642;s:14:"blacktriangle;";i:9652;s:18:"blacktriangledown;";i:9662;s:18:"blacktriangleleft;";i:9666;s:19:"blacktriangleright;";i:9656;s:6:"blank;";i:9251;s:6:"blk12;";i:9618;s:6:"blk14;";i:9617;s:6:"blk34;";i:9619;s:6:"block;";i:9608;s:5:"bnot;";i:8976;s:5:"bopf;";i:120147;s:4:"bot;";i:8869;s:7:"bottom;";i:8869;s:7:"bowtie;";i:8904;s:6:"boxDL;";i:9559;s:6:"boxDR;";i:9556;s:6:"boxDl;";i:9558;s:6:"boxDr;";i:9555;s:5:"boxH;";i:9552;s:6:"boxHD;";i:9574;s:6:"boxHU;";i:9577;s:6:"boxHd;";i:9572;s:6:"boxHu;";i:9575;s:6:"boxUL;";i:9565;s:6:"boxUR;";i:9562;s:6:"boxUl;";i:9564;s:6:"boxUr;";i:9561;s:5:"boxV;";i:9553;s:6:"boxVH;";i:9580;s:6:"boxVL;";i:9571;s:6:"boxVR;";i:9568;s:6:"boxVh;";i:9579;s:6:"boxVl;";i:9570;s:6:"boxVr;";i:9567;s:7:"boxbox;";i:10697;s:6:"boxdL;";i:9557;s:6:"boxdR;";i:9554;s:6:"boxdl;";i:9488;s:6:"boxdr;";i:9484;s:5:"boxh;";i:9472;s:6:"boxhD;";i:9573;s:6:"boxhU;";i:9576;s:6:"boxhd;";i:9516;s:6:"boxhu;";i:9524;s:9:"boxminus;";i:8863;s:8:"boxplus;";i:8862;s:9:"boxtimes;";i:8864;s:6:"boxuL;";i:9563;s:6:"boxuR;";i:9560;s:6:"boxul;";i:9496;s:6:"boxur;";i:9492;s:5:"boxv;";i:9474;s:6:"boxvH;";i:9578;s:6:"boxvL;";i:9569;s:6:"boxvR;";i:9566;s:6:"boxvh;";i:9532;s:6:"boxvl;";i:9508;s:6:"boxvr;";i:9500;s:7:"bprime;";i:8245;s:6:"breve;";i:728;s:7:"brvbar;";i:166;s:6:"brvbar";i:166;s:5:"bscr;";i:119991;s:6:"bsemi;";i:8271;s:5:"bsim;";i:8765;s:6:"bsime;";i:8909;s:5:"bsol;";i:92;s:6:"bsolb;";i:10693;s:5:"bull;";i:8226;s:7:"bullet;";i:8226;s:5:"bump;";i:8782;s:6:"bumpE;";i:10926;s:6:"bumpe;";i:8783;s:7:"bumpeq;";i:8783;s:7:"cacute;";i:263;s:4:"cap;";i:8745;s:7:"capand;";i:10820;s:9:"capbrcup;";i:10825;s:7:"capcap;";i:10827;s:7:"capcup;";i:10823;s:7:"capdot;";i:10816;s:6:"caret;";i:8257;s:6:"caron;";i:711;s:6:"ccaps;";i:10829;s:7:"ccaron;";i:269;s:7:"ccedil;";i:231;s:6:"ccedil";i:231;s:6:"ccirc;";i:265;s:6:"ccups;";i:10828;s:8:"ccupssm;";i:10832;s:5:"cdot;";i:267;s:6:"cedil;";i:184;s:5:"cedil";i:184;s:8:"cemptyv;";i:10674;s:5:"cent;";i:162;s:4:"cent";i:162;s:10:"centerdot;";i:183;s:4:"cfr;";i:120096;s:5:"chcy;";i:1095;s:6:"check;";i:10003;s:10:"checkmark;";i:10003;s:4:"chi;";i:967;s:4:"cir;";i:9675;s:5:"cirE;";i:10691;s:5:"circ;";i:710;s:7:"circeq;";i:8791;s:16:"circlearrowleft;";i:8634;s:17:"circlearrowright;";i:8635;s:9:"circledR;";i:174;s:9:"circledS;";i:9416;s:11:"circledast;";i:8859;s:12:"circledcirc;";i:8858;s:12:"circleddash;";i:8861;s:5:"cire;";i:8791;s:9:"cirfnint;";i:10768;s:7:"cirmid;";i:10991;s:8:"cirscir;";i:10690;s:6:"clubs;";i:9827;s:9:"clubsuit;";i:9827;s:6:"colon;";i:58;s:7:"colone;";i:8788;s:8:"coloneq;";i:8788;s:6:"comma;";i:44;s:7:"commat;";i:64;s:5:"comp;";i:8705;s:7:"compfn;";i:8728;s:11:"complement;";i:8705;s:10:"complexes;";i:8450;s:5:"cong;";i:8773;s:8:"congdot;";i:10861;s:7:"conint;";i:8750;s:5:"copf;";i:120148;s:7:"coprod;";i:8720;s:5:"copy;";i:169;s:4:"copy";i:169;s:7:"copysr;";i:8471;s:6:"crarr;";i:8629;s:6:"cross;";i:10007;s:5:"cscr;";i:119992;s:5:"csub;";i:10959;s:6:"csube;";i:10961;s:5:"csup;";i:10960;s:6:"csupe;";i:10962;s:6:"ctdot;";i:8943;s:8:"cudarrl;";i:10552;s:8:"cudarrr;";i:10549;s:6:"cuepr;";i:8926;s:6:"cuesc;";i:8927;s:7:"cularr;";i:8630;s:8:"cularrp;";i:10557;s:4:"cup;";i:8746;s:9:"cupbrcap;";i:10824;s:7:"cupcap;";i:10822;s:7:"cupcup;";i:10826;s:7:"cupdot;";i:8845;s:6:"cupor;";i:10821;s:7:"curarr;";i:8631;s:8:"curarrm;";i:10556;s:12:"curlyeqprec;";i:8926;s:12:"curlyeqsucc;";i:8927;s:9:"curlyvee;";i:8910;s:11:"curlywedge;";i:8911;s:7:"curren;";i:164;s:6:"curren";i:164;s:15:"curvearrowleft;";i:8630;s:16:"curvearrowright;";i:8631;s:6:"cuvee;";i:8910;s:6:"cuwed;";i:8911;s:9:"cwconint;";i:8754;s:6:"cwint;";i:8753;s:7:"cylcty;";i:9005;s:5:"dArr;";i:8659;s:5:"dHar;";i:10597;s:7:"dagger;";i:8224;s:7:"daleth;";i:8504;s:5:"darr;";i:8595;s:5:"dash;";i:8208;s:6:"dashv;";i:8867;s:8:"dbkarow;";i:10511;s:6:"dblac;";i:733;s:7:"dcaron;";i:271;s:4:"dcy;";i:1076;s:3:"dd;";i:8518;s:8:"ddagger;";i:8225;s:6:"ddarr;";i:8650;s:8:"ddotseq;";i:10871;s:4:"deg;";i:176;s:3:"deg";i:176;s:6:"delta;";i:948;s:8:"demptyv;";i:10673;s:7:"dfisht;";i:10623;s:4:"dfr;";i:120097;s:6:"dharl;";i:8643;s:6:"dharr;";i:8642;s:5:"diam;";i:8900;s:8:"diamond;";i:8900;s:12:"diamondsuit;";i:9830;s:6:"diams;";i:9830;s:4:"die;";i:168;s:8:"digamma;";i:989;s:6:"disin;";i:8946;s:4:"div;";i:247;s:7:"divide;";i:247;s:6:"divide";i:247;s:14:"divideontimes;";i:8903;s:7:"divonx;";i:8903;s:5:"djcy;";i:1106;s:7:"dlcorn;";i:8990;s:7:"dlcrop;";i:8973;s:7:"dollar;";i:36;s:5:"dopf;";i:120149;s:4:"dot;";i:729;s:6:"doteq;";i:8784;s:9:"doteqdot;";i:8785;s:9:"dotminus;";i:8760;s:8:"dotplus;";i:8724;s:10:"dotsquare;";i:8865;s:15:"doublebarwedge;";i:8966;s:10:"downarrow;";i:8595;s:15:"downdownarrows;";i:8650;s:16:"downharpoonleft;";i:8643;s:17:"downharpoonright;";i:8642;s:9:"drbkarow;";i:10512;s:7:"drcorn;";i:8991;s:7:"drcrop;";i:8972;s:5:"dscr;";i:119993;s:5:"dscy;";i:1109;s:5:"dsol;";i:10742;s:7:"dstrok;";i:273;s:6:"dtdot;";i:8945;s:5:"dtri;";i:9663;s:6:"dtrif;";i:9662;s:6:"duarr;";i:8693;s:6:"duhar;";i:10607;s:8:"dwangle;";i:10662;s:5:"dzcy;";i:1119;s:9:"dzigrarr;";i:10239;s:6:"eDDot;";i:10871;s:5:"eDot;";i:8785;s:7:"eacute;";i:233;s:6:"eacute";i:233;s:7:"easter;";i:10862;s:7:"ecaron;";i:283;s:5:"ecir;";i:8790;s:6:"ecirc;";i:234;s:5:"ecirc";i:234;s:7:"ecolon;";i:8789;s:4:"ecy;";i:1101;s:5:"edot;";i:279;s:3:"ee;";i:8519;s:6:"efDot;";i:8786;s:4:"efr;";i:120098;s:3:"eg;";i:10906;s:7:"egrave;";i:232;s:6:"egrave";i:232;s:4:"egs;";i:10902;s:7:"egsdot;";i:10904;s:3:"el;";i:10905;s:9:"elinters;";i:9191;s:4:"ell;";i:8467;s:4:"els;";i:10901;s:7:"elsdot;";i:10903;s:6:"emacr;";i:275;s:6:"empty;";i:8709;s:9:"emptyset;";i:8709;s:7:"emptyv;";i:8709;s:7:"emsp13;";i:8196;s:7:"emsp14;";i:8197;s:5:"emsp;";i:8195;s:4:"eng;";i:331;s:5:"ensp;";i:8194;s:6:"eogon;";i:281;s:5:"eopf;";i:120150;s:5:"epar;";i:8917;s:7:"eparsl;";i:10723;s:6:"eplus;";i:10865;s:5:"epsi;";i:1013;s:8:"epsilon;";i:949;s:6:"epsiv;";i:949;s:7:"eqcirc;";i:8790;s:8:"eqcolon;";i:8789;s:6:"eqsim;";i:8770;s:11:"eqslantgtr;";i:10902;s:12:"eqslantless;";i:10901;s:7:"equals;";i:61;s:7:"equest;";i:8799;s:6:"equiv;";i:8801;s:8:"equivDD;";i:10872;s:9:"eqvparsl;";i:10725;s:6:"erDot;";i:8787;s:6:"erarr;";i:10609;s:5:"escr;";i:8495;s:6:"esdot;";i:8784;s:5:"esim;";i:8770;s:4:"eta;";i:951;s:4:"eth;";i:240;s:3:"eth";i:240;s:5:"euml;";i:235;s:4:"euml";i:235;s:5:"euro;";i:8364;s:5:"excl;";i:33;s:6:"exist;";i:8707;s:12:"expectation;";i:8496;s:13:"exponentiale;";i:8519;s:14:"fallingdotseq;";i:8786;s:4:"fcy;";i:1092;s:7:"female;";i:9792;s:7:"ffilig;";i:64259;s:6:"fflig;";i:64256;s:7:"ffllig;";i:64260;s:4:"ffr;";i:120099;s:6:"filig;";i:64257;s:5:"flat;";i:9837;s:6:"fllig;";i:64258;s:6:"fltns;";i:9649;s:5:"fnof;";i:402;s:5:"fopf;";i:120151;s:7:"forall;";i:8704;s:5:"fork;";i:8916;s:6:"forkv;";i:10969;s:9:"fpartint;";i:10765;s:7:"frac12;";i:189;s:6:"frac12";i:189;s:7:"frac13;";i:8531;s:7:"frac14;";i:188;s:6:"frac14";i:188;s:7:"frac15;";i:8533;s:7:"frac16;";i:8537;s:7:"frac18;";i:8539;s:7:"frac23;";i:8532;s:7:"frac25;";i:8534;s:7:"frac34;";i:190;s:6:"frac34";i:190;s:7:"frac35;";i:8535;s:7:"frac38;";i:8540;s:7:"frac45;";i:8536;s:7:"frac56;";i:8538;s:7:"frac58;";i:8541;s:7:"frac78;";i:8542;s:6:"frasl;";i:8260;s:6:"frown;";i:8994;s:5:"fscr;";i:119995;s:3:"gE;";i:8807;s:4:"gEl;";i:10892;s:7:"gacute;";i:501;s:6:"gamma;";i:947;s:7:"gammad;";i:989;s:4:"gap;";i:10886;s:7:"gbreve;";i:287;s:6:"gcirc;";i:285;s:4:"gcy;";i:1075;s:5:"gdot;";i:289;s:3:"ge;";i:8805;s:4:"gel;";i:8923;s:4:"geq;";i:8805;s:5:"geqq;";i:8807;s:9:"geqslant;";i:10878;s:4:"ges;";i:10878;s:6:"gescc;";i:10921;s:7:"gesdot;";i:10880;s:8:"gesdoto;";i:10882;s:9:"gesdotol;";i:10884;s:7:"gesles;";i:10900;s:4:"gfr;";i:120100;s:3:"gg;";i:8811;s:4:"ggg;";i:8921;s:6:"gimel;";i:8503;s:5:"gjcy;";i:1107;s:3:"gl;";i:8823;s:4:"glE;";i:10898;s:4:"gla;";i:10917;s:4:"glj;";i:10916;s:4:"gnE;";i:8809;s:5:"gnap;";i:10890;s:9:"gnapprox;";i:10890;s:4:"gne;";i:10888;s:5:"gneq;";i:10888;s:6:"gneqq;";i:8809;s:6:"gnsim;";i:8935;s:5:"gopf;";i:120152;s:6:"grave;";i:96;s:5:"gscr;";i:8458;s:5:"gsim;";i:8819;s:6:"gsime;";i:10894;s:6:"gsiml;";i:10896;s:3:"gt;";i:62;s:2:"gt";i:62;s:5:"gtcc;";i:10919;s:6:"gtcir;";i:10874;s:6:"gtdot;";i:8919;s:7:"gtlPar;";i:10645;s:8:"gtquest;";i:10876;s:10:"gtrapprox;";i:10886;s:7:"gtrarr;";i:10616;s:7:"gtrdot;";i:8919;s:10:"gtreqless;";i:8923;s:11:"gtreqqless;";i:10892;s:8:"gtrless;";i:8823;s:7:"gtrsim;";i:8819;s:5:"hArr;";i:8660;s:7:"hairsp;";i:8202;s:5:"half;";i:189;s:7:"hamilt;";i:8459;s:7:"hardcy;";i:1098;s:5:"harr;";i:8596;s:8:"harrcir;";i:10568;s:6:"harrw;";i:8621;s:5:"hbar;";i:8463;s:6:"hcirc;";i:293;s:7:"hearts;";i:9829;s:10:"heartsuit;";i:9829;s:7:"hellip;";i:8230;s:7:"hercon;";i:8889;s:4:"hfr;";i:120101;s:9:"hksearow;";i:10533;s:9:"hkswarow;";i:10534;s:6:"hoarr;";i:8703;s:7:"homtht;";i:8763;s:14:"hookleftarrow;";i:8617;s:15:"hookrightarrow;";i:8618;s:5:"hopf;";i:120153;s:7:"horbar;";i:8213;s:5:"hscr;";i:119997;s:7:"hslash;";i:8463;s:7:"hstrok;";i:295;s:7:"hybull;";i:8259;s:7:"hyphen;";i:8208;s:7:"iacute;";i:237;s:6:"iacute";i:237;s:3:"ic;";i:8291;s:6:"icirc;";i:238;s:5:"icirc";i:238;s:4:"icy;";i:1080;s:5:"iecy;";i:1077;s:6:"iexcl;";i:161;s:5:"iexcl";i:161;s:4:"iff;";i:8660;s:4:"ifr;";i:120102;s:7:"igrave;";i:236;s:6:"igrave";i:236;s:3:"ii;";i:8520;s:7:"iiiint;";i:10764;s:6:"iiint;";i:8749;s:7:"iinfin;";i:10716;s:6:"iiota;";i:8489;s:6:"ijlig;";i:307;s:6:"imacr;";i:299;s:6:"image;";i:8465;s:9:"imagline;";i:8464;s:9:"imagpart;";i:8465;s:6:"imath;";i:305;s:5:"imof;";i:8887;s:6:"imped;";i:437;s:3:"in;";i:8712;s:7:"incare;";i:8453;s:6:"infin;";i:8734;s:9:"infintie;";i:10717;s:7:"inodot;";i:305;s:4:"int;";i:8747;s:7:"intcal;";i:8890;s:9:"integers;";i:8484;s:9:"intercal;";i:8890;s:9:"intlarhk;";i:10775;s:8:"intprod;";i:10812;s:5:"iocy;";i:1105;s:6:"iogon;";i:303;s:5:"iopf;";i:120154;s:5:"iota;";i:953;s:6:"iprod;";i:10812;s:7:"iquest;";i:191;s:6:"iquest";i:191;s:5:"iscr;";i:119998;s:5:"isin;";i:8712;s:6:"isinE;";i:8953;s:8:"isindot;";i:8949;s:6:"isins;";i:8948;s:7:"isinsv;";i:8947;s:6:"isinv;";i:8712;s:3:"it;";i:8290;s:7:"itilde;";i:297;s:6:"iukcy;";i:1110;s:5:"iuml;";i:239;s:4:"iuml";i:239;s:6:"jcirc;";i:309;s:4:"jcy;";i:1081;s:4:"jfr;";i:120103;s:6:"jmath;";i:567;s:5:"jopf;";i:120155;s:5:"jscr;";i:119999;s:7:"jsercy;";i:1112;s:6:"jukcy;";i:1108;s:6:"kappa;";i:954;s:7:"kappav;";i:1008;s:7:"kcedil;";i:311;s:4:"kcy;";i:1082;s:4:"kfr;";i:120104;s:7:"kgreen;";i:312;s:5:"khcy;";i:1093;s:5:"kjcy;";i:1116;s:5:"kopf;";i:120156;s:5:"kscr;";i:120000;s:6:"lAarr;";i:8666;s:5:"lArr;";i:8656;s:7:"lAtail;";i:10523;s:6:"lBarr;";i:10510;s:3:"lE;";i:8806;s:4:"lEg;";i:10891;s:5:"lHar;";i:10594;s:7:"lacute;";i:314;s:9:"laemptyv;";i:10676;s:7:"lagran;";i:8466;s:7:"lambda;";i:955;s:5:"lang;";i:10216;s:6:"langd;";i:10641;s:7:"langle;";i:10216;s:4:"lap;";i:10885;s:6:"laquo;";i:171;s:5:"laquo";i:171;s:5:"larr;";i:8592;s:6:"larrb;";i:8676;s:8:"larrbfs;";i:10527;s:7:"larrfs;";i:10525;s:7:"larrhk;";i:8617;s:7:"larrlp;";i:8619;s:7:"larrpl;";i:10553;s:8:"larrsim;";i:10611;s:7:"larrtl;";i:8610;s:4:"lat;";i:10923;s:7:"latail;";i:10521;s:5:"late;";i:10925;s:6:"lbarr;";i:10508;s:6:"lbbrk;";i:10098;s:7:"lbrace;";i:123;s:7:"lbrack;";i:91;s:6:"lbrke;";i:10635;s:8:"lbrksld;";i:10639;s:8:"lbrkslu;";i:10637;s:7:"lcaron;";i:318;s:7:"lcedil;";i:316;s:6:"lceil;";i:8968;s:5:"lcub;";i:123;s:4:"lcy;";i:1083;s:5:"ldca;";i:10550;s:6:"ldquo;";i:8220;s:7:"ldquor;";i:8222;s:8:"ldrdhar;";i:10599;s:9:"ldrushar;";i:10571;s:5:"ldsh;";i:8626;s:3:"le;";i:8804;s:10:"leftarrow;";i:8592;s:14:"leftarrowtail;";i:8610;s:16:"leftharpoondown;";i:8637;s:14:"leftharpoonup;";i:8636;s:15:"leftleftarrows;";i:8647;s:15:"leftrightarrow;";i:8596;s:16:"leftrightarrows;";i:8646;s:18:"leftrightharpoons;";i:8651;s:20:"leftrightsquigarrow;";i:8621;s:15:"leftthreetimes;";i:8907;s:4:"leg;";i:8922;s:4:"leq;";i:8804;s:5:"leqq;";i:8806;s:9:"leqslant;";i:10877;s:4:"les;";i:10877;s:6:"lescc;";i:10920;s:7:"lesdot;";i:10879;s:8:"lesdoto;";i:10881;s:9:"lesdotor;";i:10883;s:7:"lesges;";i:10899;s:11:"lessapprox;";i:10885;s:8:"lessdot;";i:8918;s:10:"lesseqgtr;";i:8922;s:11:"lesseqqgtr;";i:10891;s:8:"lessgtr;";i:8822;s:8:"lesssim;";i:8818;s:7:"lfisht;";i:10620;s:7:"lfloor;";i:8970;s:4:"lfr;";i:120105;s:3:"lg;";i:8822;s:4:"lgE;";i:10897;s:6:"lhard;";i:8637;s:6:"lharu;";i:8636;s:7:"lharul;";i:10602;s:6:"lhblk;";i:9604;s:5:"ljcy;";i:1113;s:3:"ll;";i:8810;s:6:"llarr;";i:8647;s:9:"llcorner;";i:8990;s:7:"llhard;";i:10603;s:6:"lltri;";i:9722;s:7:"lmidot;";i:320;s:7:"lmoust;";i:9136;s:11:"lmoustache;";i:9136;s:4:"lnE;";i:8808;s:5:"lnap;";i:10889;s:9:"lnapprox;";i:10889;s:4:"lne;";i:10887;s:5:"lneq;";i:10887;s:6:"lneqq;";i:8808;s:6:"lnsim;";i:8934;s:6:"loang;";i:10220;s:6:"loarr;";i:8701;s:6:"lobrk;";i:10214;s:14:"longleftarrow;";i:10229;s:19:"longleftrightarrow;";i:10231;s:11:"longmapsto;";i:10236;s:15:"longrightarrow;";i:10230;s:14:"looparrowleft;";i:8619;s:15:"looparrowright;";i:8620;s:6:"lopar;";i:10629;s:5:"lopf;";i:120157;s:7:"loplus;";i:10797;s:8:"lotimes;";i:10804;s:7:"lowast;";i:8727;s:7:"lowbar;";i:95;s:4:"loz;";i:9674;s:8:"lozenge;";i:9674;s:5:"lozf;";i:10731;s:5:"lpar;";i:40;s:7:"lparlt;";i:10643;s:6:"lrarr;";i:8646;s:9:"lrcorner;";i:8991;s:6:"lrhar;";i:8651;s:7:"lrhard;";i:10605;s:4:"lrm;";i:8206;s:6:"lrtri;";i:8895;s:7:"lsaquo;";i:8249;s:5:"lscr;";i:120001;s:4:"lsh;";i:8624;s:5:"lsim;";i:8818;s:6:"lsime;";i:10893;s:6:"lsimg;";i:10895;s:5:"lsqb;";i:91;s:6:"lsquo;";i:8216;s:7:"lsquor;";i:8218;s:7:"lstrok;";i:322;s:3:"lt;";i:60;s:2:"lt";i:60;s:5:"ltcc;";i:10918;s:6:"ltcir;";i:10873;s:6:"ltdot;";i:8918;s:7:"lthree;";i:8907;s:7:"ltimes;";i:8905;s:7:"ltlarr;";i:10614;s:8:"ltquest;";i:10875;s:7:"ltrPar;";i:10646;s:5:"ltri;";i:9667;s:6:"ltrie;";i:8884;s:6:"ltrif;";i:9666;s:9:"lurdshar;";i:10570;s:8:"luruhar;";i:10598;s:6:"mDDot;";i:8762;s:5:"macr;";i:175;s:4:"macr";i:175;s:5:"male;";i:9794;s:5:"malt;";i:10016;s:8:"maltese;";i:10016;s:4:"map;";i:8614;s:7:"mapsto;";i:8614;s:11:"mapstodown;";i:8615;s:11:"mapstoleft;";i:8612;s:9:"mapstoup;";i:8613;s:7:"marker;";i:9646;s:7:"mcomma;";i:10793;s:4:"mcy;";i:1084;s:6:"mdash;";i:8212;s:14:"measuredangle;";i:8737;s:4:"mfr;";i:120106;s:4:"mho;";i:8487;s:6:"micro;";i:181;s:5:"micro";i:181;s:4:"mid;";i:8739;s:7:"midast;";i:42;s:7:"midcir;";i:10992;s:7:"middot;";i:183;s:6:"middot";i:183;s:6:"minus;";i:8722;s:7:"minusb;";i:8863;s:7:"minusd;";i:8760;s:8:"minusdu;";i:10794;s:5:"mlcp;";i:10971;s:5:"mldr;";i:8230;s:7:"mnplus;";i:8723;s:7:"models;";i:8871;s:5:"mopf;";i:120158;s:3:"mp;";i:8723;s:5:"mscr;";i:120002;s:7:"mstpos;";i:8766;s:3:"mu;";i:956;s:9:"multimap;";i:8888;s:6:"mumap;";i:8888;s:11:"nLeftarrow;";i:8653;s:16:"nLeftrightarrow;";i:8654;s:12:"nRightarrow;";i:8655;s:7:"nVDash;";i:8879;s:7:"nVdash;";i:8878;s:6:"nabla;";i:8711;s:7:"nacute;";i:324;s:4:"nap;";i:8777;s:6:"napos;";i:329;s:8:"napprox;";i:8777;s:6:"natur;";i:9838;s:8:"natural;";i:9838;s:9:"naturals;";i:8469;s:5:"nbsp;";i:160;s:4:"nbsp";i:160;s:5:"ncap;";i:10819;s:7:"ncaron;";i:328;s:7:"ncedil;";i:326;s:6:"ncong;";i:8775;s:5:"ncup;";i:10818;s:4:"ncy;";i:1085;s:6:"ndash;";i:8211;s:3:"ne;";i:8800;s:6:"neArr;";i:8663;s:7:"nearhk;";i:10532;s:6:"nearr;";i:8599;s:8:"nearrow;";i:8599;s:7:"nequiv;";i:8802;s:7:"nesear;";i:10536;s:7:"nexist;";i:8708;s:8:"nexists;";i:8708;s:4:"nfr;";i:120107;s:4:"nge;";i:8817;s:5:"ngeq;";i:8817;s:6:"ngsim;";i:8821;s:4:"ngt;";i:8815;s:5:"ngtr;";i:8815;s:6:"nhArr;";i:8654;s:6:"nharr;";i:8622;s:6:"nhpar;";i:10994;s:3:"ni;";i:8715;s:4:"nis;";i:8956;s:5:"nisd;";i:8954;s:4:"niv;";i:8715;s:5:"njcy;";i:1114;s:6:"nlArr;";i:8653;s:6:"nlarr;";i:8602;s:5:"nldr;";i:8229;s:4:"nle;";i:8816;s:11:"nleftarrow;";i:8602;s:16:"nleftrightarrow;";i:8622;s:5:"nleq;";i:8816;s:6:"nless;";i:8814;s:6:"nlsim;";i:8820;s:4:"nlt;";i:8814;s:6:"nltri;";i:8938;s:7:"nltrie;";i:8940;s:5:"nmid;";i:8740;s:5:"nopf;";i:120159;s:4:"not;";i:172;s:3:"not";i:172;s:6:"notin;";i:8713;s:8:"notinva;";i:8713;s:8:"notinvb;";i:8951;s:8:"notinvc;";i:8950;s:6:"notni;";i:8716;s:8:"notniva;";i:8716;s:8:"notnivb;";i:8958;s:8:"notnivc;";i:8957;s:5:"npar;";i:8742;s:10:"nparallel;";i:8742;s:8:"npolint;";i:10772;s:4:"npr;";i:8832;s:7:"nprcue;";i:8928;s:6:"nprec;";i:8832;s:6:"nrArr;";i:8655;s:6:"nrarr;";i:8603;s:12:"nrightarrow;";i:8603;s:6:"nrtri;";i:8939;s:7:"nrtrie;";i:8941;s:4:"nsc;";i:8833;s:7:"nsccue;";i:8929;s:5:"nscr;";i:120003;s:10:"nshortmid;";i:8740;s:15:"nshortparallel;";i:8742;s:5:"nsim;";i:8769;s:6:"nsime;";i:8772;s:7:"nsimeq;";i:8772;s:6:"nsmid;";i:8740;s:6:"nspar;";i:8742;s:8:"nsqsube;";i:8930;s:8:"nsqsupe;";i:8931;s:5:"nsub;";i:8836;s:6:"nsube;";i:8840;s:10:"nsubseteq;";i:8840;s:6:"nsucc;";i:8833;s:5:"nsup;";i:8837;s:6:"nsupe;";i:8841;s:10:"nsupseteq;";i:8841;s:5:"ntgl;";i:8825;s:7:"ntilde;";i:241;s:6:"ntilde";i:241;s:5:"ntlg;";i:8824;s:14:"ntriangleleft;";i:8938;s:16:"ntrianglelefteq;";i:8940;s:15:"ntriangleright;";i:8939;s:17:"ntrianglerighteq;";i:8941;s:3:"nu;";i:957;s:4:"num;";i:35;s:7:"numero;";i:8470;s:6:"numsp;";i:8199;s:7:"nvDash;";i:8877;s:7:"nvHarr;";i:10500;s:7:"nvdash;";i:8876;s:8:"nvinfin;";i:10718;s:7:"nvlArr;";i:10498;s:7:"nvrArr;";i:10499;s:6:"nwArr;";i:8662;s:7:"nwarhk;";i:10531;s:6:"nwarr;";i:8598;s:8:"nwarrow;";i:8598;s:7:"nwnear;";i:10535;s:3:"oS;";i:9416;s:7:"oacute;";i:243;s:6:"oacute";i:243;s:5:"oast;";i:8859;s:5:"ocir;";i:8858;s:6:"ocirc;";i:244;s:5:"ocirc";i:244;s:4:"ocy;";i:1086;s:6:"odash;";i:8861;s:7:"odblac;";i:337;s:5:"odiv;";i:10808;s:5:"odot;";i:8857;s:7:"odsold;";i:10684;s:6:"oelig;";i:339;s:6:"ofcir;";i:10687;s:4:"ofr;";i:120108;s:5:"ogon;";i:731;s:7:"ograve;";i:242;s:6:"ograve";i:242;s:4:"ogt;";i:10689;s:6:"ohbar;";i:10677;s:4:"ohm;";i:8486;s:5:"oint;";i:8750;s:6:"olarr;";i:8634;s:6:"olcir;";i:10686;s:8:"olcross;";i:10683;s:6:"oline;";i:8254;s:4:"olt;";i:10688;s:6:"omacr;";i:333;s:6:"omega;";i:969;s:8:"omicron;";i:959;s:5:"omid;";i:10678;s:7:"ominus;";i:8854;s:5:"oopf;";i:120160;s:5:"opar;";i:10679;s:6:"operp;";i:10681;s:6:"oplus;";i:8853;s:3:"or;";i:8744;s:6:"orarr;";i:8635;s:4:"ord;";i:10845;s:6:"order;";i:8500;s:8:"orderof;";i:8500;s:5:"ordf;";i:170;s:4:"ordf";i:170;s:5:"ordm;";i:186;s:4:"ordm";i:186;s:7:"origof;";i:8886;s:5:"oror;";i:10838;s:8:"orslope;";i:10839;s:4:"orv;";i:10843;s:5:"oscr;";i:8500;s:7:"oslash;";i:248;s:6:"oslash";i:248;s:5:"osol;";i:8856;s:7:"otilde;";i:245;s:6:"otilde";i:245;s:7:"otimes;";i:8855;s:9:"otimesas;";i:10806;s:5:"ouml;";i:246;s:4:"ouml";i:246;s:6:"ovbar;";i:9021;s:4:"par;";i:8741;s:5:"para;";i:182;s:4:"para";i:182;s:9:"parallel;";i:8741;s:7:"parsim;";i:10995;s:6:"parsl;";i:11005;s:5:"part;";i:8706;s:4:"pcy;";i:1087;s:7:"percnt;";i:37;s:7:"period;";i:46;s:7:"permil;";i:8240;s:5:"perp;";i:8869;s:8:"pertenk;";i:8241;s:4:"pfr;";i:120109;s:4:"phi;";i:966;s:5:"phiv;";i:966;s:7:"phmmat;";i:8499;s:6:"phone;";i:9742;s:3:"pi;";i:960;s:10:"pitchfork;";i:8916;s:4:"piv;";i:982;s:7:"planck;";i:8463;s:8:"planckh;";i:8462;s:7:"plankv;";i:8463;s:5:"plus;";i:43;s:9:"plusacir;";i:10787;s:6:"plusb;";i:8862;s:8:"pluscir;";i:10786;s:7:"plusdo;";i:8724;s:7:"plusdu;";i:10789;s:6:"pluse;";i:10866;s:7:"plusmn;";i:177;s:6:"plusmn";i:177;s:8:"plussim;";i:10790;s:8:"plustwo;";i:10791;s:3:"pm;";i:177;s:9:"pointint;";i:10773;s:5:"popf;";i:120161;s:6:"pound;";i:163;s:5:"pound";i:163;s:3:"pr;";i:8826;s:4:"prE;";i:10931;s:5:"prap;";i:10935;s:6:"prcue;";i:8828;s:4:"pre;";i:10927;s:5:"prec;";i:8826;s:11:"precapprox;";i:10935;s:12:"preccurlyeq;";i:8828;s:7:"preceq;";i:10927;s:12:"precnapprox;";i:10937;s:9:"precneqq;";i:10933;s:9:"precnsim;";i:8936;s:8:"precsim;";i:8830;s:6:"prime;";i:8242;s:7:"primes;";i:8473;s:5:"prnE;";i:10933;s:6:"prnap;";i:10937;s:7:"prnsim;";i:8936;s:5:"prod;";i:8719;s:9:"profalar;";i:9006;s:9:"profline;";i:8978;s:9:"profsurf;";i:8979;s:5:"prop;";i:8733;s:7:"propto;";i:8733;s:6:"prsim;";i:8830;s:7:"prurel;";i:8880;s:5:"pscr;";i:120005;s:4:"psi;";i:968;s:7:"puncsp;";i:8200;s:4:"qfr;";i:120110;s:5:"qint;";i:10764;s:5:"qopf;";i:120162;s:7:"qprime;";i:8279;s:5:"qscr;";i:120006;s:12:"quaternions;";i:8461;s:8:"quatint;";i:10774;s:6:"quest;";i:63;s:8:"questeq;";i:8799;s:5:"quot;";i:34;s:4:"quot";i:34;s:6:"rAarr;";i:8667;s:5:"rArr;";i:8658;s:7:"rAtail;";i:10524;s:6:"rBarr;";i:10511;s:5:"rHar;";i:10596;s:5:"race;";i:10714;s:7:"racute;";i:341;s:6:"radic;";i:8730;s:9:"raemptyv;";i:10675;s:5:"rang;";i:10217;s:6:"rangd;";i:10642;s:6:"range;";i:10661;s:7:"rangle;";i:10217;s:6:"raquo;";i:187;s:5:"raquo";i:187;s:5:"rarr;";i:8594;s:7:"rarrap;";i:10613;s:6:"rarrb;";i:8677;s:8:"rarrbfs;";i:10528;s:6:"rarrc;";i:10547;s:7:"rarrfs;";i:10526;s:7:"rarrhk;";i:8618;s:7:"rarrlp;";i:8620;s:7:"rarrpl;";i:10565;s:8:"rarrsim;";i:10612;s:7:"rarrtl;";i:8611;s:6:"rarrw;";i:8605;s:7:"ratail;";i:10522;s:6:"ratio;";i:8758;s:10:"rationals;";i:8474;s:6:"rbarr;";i:10509;s:6:"rbbrk;";i:10099;s:7:"rbrace;";i:125;s:7:"rbrack;";i:93;s:6:"rbrke;";i:10636;s:8:"rbrksld;";i:10638;s:8:"rbrkslu;";i:10640;s:7:"rcaron;";i:345;s:7:"rcedil;";i:343;s:6:"rceil;";i:8969;s:5:"rcub;";i:125;s:4:"rcy;";i:1088;s:5:"rdca;";i:10551;s:8:"rdldhar;";i:10601;s:6:"rdquo;";i:8221;s:7:"rdquor;";i:8221;s:5:"rdsh;";i:8627;s:5:"real;";i:8476;s:8:"realine;";i:8475;s:9:"realpart;";i:8476;s:6:"reals;";i:8477;s:5:"rect;";i:9645;s:4:"reg;";i:174;s:3:"reg";i:174;s:7:"rfisht;";i:10621;s:7:"rfloor;";i:8971;s:4:"rfr;";i:120111;s:6:"rhard;";i:8641;s:6:"rharu;";i:8640;s:7:"rharul;";i:10604;s:4:"rho;";i:961;s:5:"rhov;";i:1009;s:11:"rightarrow;";i:8594;s:15:"rightarrowtail;";i:8611;s:17:"rightharpoondown;";i:8641;s:15:"rightharpoonup;";i:8640;s:16:"rightleftarrows;";i:8644;s:18:"rightleftharpoons;";i:8652;s:17:"rightrightarrows;";i:8649;s:16:"rightsquigarrow;";i:8605;s:16:"rightthreetimes;";i:8908;s:5:"ring;";i:730;s:13:"risingdotseq;";i:8787;s:6:"rlarr;";i:8644;s:6:"rlhar;";i:8652;s:4:"rlm;";i:8207;s:7:"rmoust;";i:9137;s:11:"rmoustache;";i:9137;s:6:"rnmid;";i:10990;s:6:"roang;";i:10221;s:6:"roarr;";i:8702;s:6:"robrk;";i:10215;s:6:"ropar;";i:10630;s:5:"ropf;";i:120163;s:7:"roplus;";i:10798;s:8:"rotimes;";i:10805;s:5:"rpar;";i:41;s:7:"rpargt;";i:10644;s:9:"rppolint;";i:10770;s:6:"rrarr;";i:8649;s:7:"rsaquo;";i:8250;s:5:"rscr;";i:120007;s:4:"rsh;";i:8625;s:5:"rsqb;";i:93;s:6:"rsquo;";i:8217;s:7:"rsquor;";i:8217;s:7:"rthree;";i:8908;s:7:"rtimes;";i:8906;s:5:"rtri;";i:9657;s:6:"rtrie;";i:8885;s:6:"rtrif;";i:9656;s:9:"rtriltri;";i:10702;s:8:"ruluhar;";i:10600;s:3:"rx;";i:8478;s:7:"sacute;";i:347;s:6:"sbquo;";i:8218;s:3:"sc;";i:8827;s:4:"scE;";i:10932;s:5:"scap;";i:10936;s:7:"scaron;";i:353;s:6:"sccue;";i:8829;s:4:"sce;";i:10928;s:7:"scedil;";i:351;s:6:"scirc;";i:349;s:5:"scnE;";i:10934;s:6:"scnap;";i:10938;s:7:"scnsim;";i:8937;s:9:"scpolint;";i:10771;s:6:"scsim;";i:8831;s:4:"scy;";i:1089;s:5:"sdot;";i:8901;s:6:"sdotb;";i:8865;s:6:"sdote;";i:10854;s:6:"seArr;";i:8664;s:7:"searhk;";i:10533;s:6:"searr;";i:8600;s:8:"searrow;";i:8600;s:5:"sect;";i:167;s:4:"sect";i:167;s:5:"semi;";i:59;s:7:"seswar;";i:10537;s:9:"setminus;";i:8726;s:6:"setmn;";i:8726;s:5:"sext;";i:10038;s:4:"sfr;";i:120112;s:7:"sfrown;";i:8994;s:6:"sharp;";i:9839;s:7:"shchcy;";i:1097;s:5:"shcy;";i:1096;s:9:"shortmid;";i:8739;s:14:"shortparallel;";i:8741;s:4:"shy;";i:173;s:3:"shy";i:173;s:6:"sigma;";i:963;s:7:"sigmaf;";i:962;s:7:"sigmav;";i:962;s:4:"sim;";i:8764;s:7:"simdot;";i:10858;s:5:"sime;";i:8771;s:6:"simeq;";i:8771;s:5:"simg;";i:10910;s:6:"simgE;";i:10912;s:5:"siml;";i:10909;s:6:"simlE;";i:10911;s:6:"simne;";i:8774;s:8:"simplus;";i:10788;s:8:"simrarr;";i:10610;s:6:"slarr;";i:8592;s:14:"smallsetminus;";i:8726;s:7:"smashp;";i:10803;s:9:"smeparsl;";i:10724;s:5:"smid;";i:8739;s:6:"smile;";i:8995;s:4:"smt;";i:10922;s:5:"smte;";i:10924;s:7:"softcy;";i:1100;s:4:"sol;";i:47;s:5:"solb;";i:10692;s:7:"solbar;";i:9023;s:5:"sopf;";i:120164;s:7:"spades;";i:9824;s:10:"spadesuit;";i:9824;s:5:"spar;";i:8741;s:6:"sqcap;";i:8851;s:6:"sqcup;";i:8852;s:6:"sqsub;";i:8847;s:7:"sqsube;";i:8849;s:9:"sqsubset;";i:8847;s:11:"sqsubseteq;";i:8849;s:6:"sqsup;";i:8848;s:7:"sqsupe;";i:8850;s:9:"sqsupset;";i:8848;s:11:"sqsupseteq;";i:8850;s:4:"squ;";i:9633;s:7:"square;";i:9633;s:7:"squarf;";i:9642;s:5:"squf;";i:9642;s:6:"srarr;";i:8594;s:5:"sscr;";i:120008;s:7:"ssetmn;";i:8726;s:7:"ssmile;";i:8995;s:7:"sstarf;";i:8902;s:5:"star;";i:9734;s:6:"starf;";i:9733;s:16:"straightepsilon;";i:1013;s:12:"straightphi;";i:981;s:6:"strns;";i:175;s:4:"sub;";i:8834;s:5:"subE;";i:10949;s:7:"subdot;";i:10941;s:5:"sube;";i:8838;s:8:"subedot;";i:10947;s:8:"submult;";i:10945;s:6:"subnE;";i:10955;s:6:"subne;";i:8842;s:8:"subplus;";i:10943;s:8:"subrarr;";i:10617;s:7:"subset;";i:8834;s:9:"subseteq;";i:8838;s:10:"subseteqq;";i:10949;s:10:"subsetneq;";i:8842;s:11:"subsetneqq;";i:10955;s:7:"subsim;";i:10951;s:7:"subsub;";i:10965;s:7:"subsup;";i:10963;s:5:"succ;";i:8827;s:11:"succapprox;";i:10936;s:12:"succcurlyeq;";i:8829;s:7:"succeq;";i:10928;s:12:"succnapprox;";i:10938;s:9:"succneqq;";i:10934;s:9:"succnsim;";i:8937;s:8:"succsim;";i:8831;s:4:"sum;";i:8721;s:5:"sung;";i:9834;s:5:"sup1;";i:185;s:4:"sup1";i:185;s:5:"sup2;";i:178;s:4:"sup2";i:178;s:5:"sup3;";i:179;s:4:"sup3";i:179;s:4:"sup;";i:8835;s:5:"supE;";i:10950;s:7:"supdot;";i:10942;s:8:"supdsub;";i:10968;s:5:"supe;";i:8839;s:8:"supedot;";i:10948;s:8:"suphsub;";i:10967;s:8:"suplarr;";i:10619;s:8:"supmult;";i:10946;s:6:"supnE;";i:10956;s:6:"supne;";i:8843;s:8:"supplus;";i:10944;s:7:"supset;";i:8835;s:9:"supseteq;";i:8839;s:10:"supseteqq;";i:10950;s:10:"supsetneq;";i:8843;s:11:"supsetneqq;";i:10956;s:7:"supsim;";i:10952;s:7:"supsub;";i:10964;s:7:"supsup;";i:10966;s:6:"swArr;";i:8665;s:7:"swarhk;";i:10534;s:6:"swarr;";i:8601;s:8:"swarrow;";i:8601;s:7:"swnwar;";i:10538;s:6:"szlig;";i:223;s:5:"szlig";i:223;s:7:"target;";i:8982;s:4:"tau;";i:964;s:5:"tbrk;";i:9140;s:7:"tcaron;";i:357;s:7:"tcedil;";i:355;s:4:"tcy;";i:1090;s:5:"tdot;";i:8411;s:7:"telrec;";i:8981;s:4:"tfr;";i:120113;s:7:"there4;";i:8756;s:10:"therefore;";i:8756;s:6:"theta;";i:952;s:9:"thetasym;";i:977;s:7:"thetav;";i:977;s:12:"thickapprox;";i:8776;s:9:"thicksim;";i:8764;s:7:"thinsp;";i:8201;s:6:"thkap;";i:8776;s:7:"thksim;";i:8764;s:6:"thorn;";i:254;s:5:"thorn";i:254;s:6:"tilde;";i:732;s:6:"times;";i:215;s:5:"times";i:215;s:7:"timesb;";i:8864;s:9:"timesbar;";i:10801;s:7:"timesd;";i:10800;s:5:"tint;";i:8749;s:5:"toea;";i:10536;s:4:"top;";i:8868;s:7:"topbot;";i:9014;s:7:"topcir;";i:10993;s:5:"topf;";i:120165;s:8:"topfork;";i:10970;s:5:"tosa;";i:10537;s:7:"tprime;";i:8244;s:6:"trade;";i:8482;s:9:"triangle;";i:9653;s:13:"triangledown;";i:9663;s:13:"triangleleft;";i:9667;s:15:"trianglelefteq;";i:8884;s:10:"triangleq;";i:8796;s:14:"triangleright;";i:9657;s:16:"trianglerighteq;";i:8885;s:7:"tridot;";i:9708;s:5:"trie;";i:8796;s:9:"triminus;";i:10810;s:8:"triplus;";i:10809;s:6:"trisb;";i:10701;s:8:"tritime;";i:10811;s:9:"trpezium;";i:9186;s:5:"tscr;";i:120009;s:5:"tscy;";i:1094;s:6:"tshcy;";i:1115;s:7:"tstrok;";i:359;s:6:"twixt;";i:8812;s:17:"twoheadleftarrow;";i:8606;s:18:"twoheadrightarrow;";i:8608;s:5:"uArr;";i:8657;s:5:"uHar;";i:10595;s:7:"uacute;";i:250;s:6:"uacute";i:250;s:5:"uarr;";i:8593;s:6:"ubrcy;";i:1118;s:7:"ubreve;";i:365;s:6:"ucirc;";i:251;s:5:"ucirc";i:251;s:4:"ucy;";i:1091;s:6:"udarr;";i:8645;s:7:"udblac;";i:369;s:6:"udhar;";i:10606;s:7:"ufisht;";i:10622;s:4:"ufr;";i:120114;s:7:"ugrave;";i:249;s:6:"ugrave";i:249;s:6:"uharl;";i:8639;s:6:"uharr;";i:8638;s:6:"uhblk;";i:9600;s:7:"ulcorn;";i:8988;s:9:"ulcorner;";i:8988;s:7:"ulcrop;";i:8975;s:6:"ultri;";i:9720;s:6:"umacr;";i:363;s:4:"uml;";i:168;s:3:"uml";i:168;s:6:"uogon;";i:371;s:5:"uopf;";i:120166;s:8:"uparrow;";i:8593;s:12:"updownarrow;";i:8597;s:14:"upharpoonleft;";i:8639;s:15:"upharpoonright;";i:8638;s:6:"uplus;";i:8846;s:5:"upsi;";i:965;s:6:"upsih;";i:978;s:8:"upsilon;";i:965;s:11:"upuparrows;";i:8648;s:7:"urcorn;";i:8989;s:9:"urcorner;";i:8989;s:7:"urcrop;";i:8974;s:6:"uring;";i:367;s:6:"urtri;";i:9721;s:5:"uscr;";i:120010;s:6:"utdot;";i:8944;s:7:"utilde;";i:361;s:5:"utri;";i:9653;s:6:"utrif;";i:9652;s:6:"uuarr;";i:8648;s:5:"uuml;";i:252;s:4:"uuml";i:252;s:8:"uwangle;";i:10663;s:5:"vArr;";i:8661;s:5:"vBar;";i:10984;s:6:"vBarv;";i:10985;s:6:"vDash;";i:8872;s:7:"vangrt;";i:10652;s:11:"varepsilon;";i:949;s:9:"varkappa;";i:1008;s:11:"varnothing;";i:8709;s:7:"varphi;";i:966;s:6:"varpi;";i:982;s:10:"varpropto;";i:8733;s:5:"varr;";i:8597;s:7:"varrho;";i:1009;s:9:"varsigma;";i:962;s:9:"vartheta;";i:977;s:16:"vartriangleleft;";i:8882;s:17:"vartriangleright;";i:8883;s:4:"vcy;";i:1074;s:6:"vdash;";i:8866;s:4:"vee;";i:8744;s:7:"veebar;";i:8891;s:6:"veeeq;";i:8794;s:7:"vellip;";i:8942;s:7:"verbar;";i:124;s:5:"vert;";i:124;s:4:"vfr;";i:120115;s:6:"vltri;";i:8882;s:5:"vopf;";i:120167;s:6:"vprop;";i:8733;s:6:"vrtri;";i:8883;s:5:"vscr;";i:120011;s:8:"vzigzag;";i:10650;s:6:"wcirc;";i:373;s:7:"wedbar;";i:10847;s:6:"wedge;";i:8743;s:7:"wedgeq;";i:8793;s:7:"weierp;";i:8472;s:4:"wfr;";i:120116;s:5:"wopf;";i:120168;s:3:"wp;";i:8472;s:3:"wr;";i:8768;s:7:"wreath;";i:8768;s:5:"wscr;";i:120012;s:5:"xcap;";i:8898;s:6:"xcirc;";i:9711;s:5:"xcup;";i:8899;s:6:"xdtri;";i:9661;s:4:"xfr;";i:120117;s:6:"xhArr;";i:10234;s:6:"xharr;";i:10231;s:3:"xi;";i:958;s:6:"xlArr;";i:10232;s:6:"xlarr;";i:10229;s:5:"xmap;";i:10236;s:5:"xnis;";i:8955;s:6:"xodot;";i:10752;s:5:"xopf;";i:120169;s:7:"xoplus;";i:10753;s:7:"xotime;";i:10754;s:6:"xrArr;";i:10233;s:6:"xrarr;";i:10230;s:5:"xscr;";i:120013;s:7:"xsqcup;";i:10758;s:7:"xuplus;";i:10756;s:6:"xutri;";i:9651;s:5:"xvee;";i:8897;s:7:"xwedge;";i:8896;s:7:"yacute;";i:253;s:6:"yacute";i:253;s:5:"yacy;";i:1103;s:6:"ycirc;";i:375;s:4:"ycy;";i:1099;s:4:"yen;";i:165;s:3:"yen";i:165;s:4:"yfr;";i:120118;s:5:"yicy;";i:1111;s:5:"yopf;";i:120170;s:5:"yscr;";i:120014;s:5:"yucy;";i:1102;s:5:"yuml;";i:255;s:4:"yuml";i:255;s:7:"zacute;";i:378;s:7:"zcaron;";i:382;s:4:"zcy;";i:1079;s:5:"zdot;";i:380;s:7:"zeetrf;";i:8488;s:5:"zeta;";i:950;s:4:"zfr;";i:120119;s:5:"zhcy;";i:1078;s:8:"zigrarr;";i:8669;s:5:"zopf;";i:120171;s:5:"zscr;";i:120015;s:4:"zwj;";i:8205;s:5:"zwnj;";i:8204;}PK�X�[�+'i��/offlajnparams/compat/libraries/html5/parser.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

require_once dirname(__FILE__) . '/Data.php';
require_once dirname(__FILE__) . '/InputStream.php';
require_once dirname(__FILE__) . '/TreeBuilder.php';
require_once dirname(__FILE__) . '/Tokenizer.php';

/**
 * Outwards facing interface for HTML5.
 */
class HTML5_Parser
{
    /**
     * Parses a full HTML document.
     * @param $text HTML text to parse
     * @param $builder Custom builder implementation
     * @return Parsed HTML as DOMDocument
     */
    static public function parse($text, $builder = null) {
        $tokenizer = new HTML5_Tokenizer($text, $builder);
        $tokenizer->parse();
        return $tokenizer->save();
    }
    /**
     * Parses an HTML fragment.
     * @param $text HTML text to parse
     * @param $context String name of context element to pretend parsing is
in.
     * @param $builder Custom builder implementation
     * @return Parsed HTML as DOMDocument
     */
    static public function parseFragment($text, $context = null, $builder =
null) {
        $tokenizer = new HTML5_Tokenizer($text, $builder);
        $tokenizer->parseFragment($context);
        return $tokenizer->save();
    }
}
PK�X�[
�=���2offlajnparams/compat/libraries/html5/Tokenizer.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/*

Copyright 2007 Jeroen van der Meer <http://jero.net/>
Copyright 2008 Edward Z. Yang <http://htmlpurifier.org/>
Copyright 2009 Geoffrey Sneddon <http://gsnedders.com/>

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction,
including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/

// Some conventions:
// /* */ indicates verbatim text from the HTML 5 specification
// // indicates regular comments

// all flags are in hyphenated form

class HTML5_Tokenizer {
    /**
     * Points to an InputStream object.
     */
    protected $stream;

    /**
     * Tree builder that the tokenizer emits token to.
     */
    private $tree;

    /**
     * Current content model we are parsing as.
     */
    protected $content_model;

    /**
     * Current token that is being built, but not yet emitted. Also
     * is the last token emitted, if applicable.
     */
    protected $token;

    // These are constants describing the content model
    const PCDATA    = 0;
    const RCDATA    = 1;
    const CDATA     = 2;
    const PLAINTEXT = 3;

    // These are constants describing tokens
    // XXX should probably be moved somewhere else, probably the
    // HTML5 class.
    const DOCTYPE        = 0;
    const STARTTAG       = 1;
    const ENDTAG         = 2;
    const COMMENT        = 3;
    const CHARACTER      = 4;
    const SPACECHARACTER = 5;
    const EOF            = 6;
    const PARSEERROR     = 7;

    // These are constants representing bunches of characters.
    const ALPHA       =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    const UPPER_ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const LOWER_ALPHA = 'abcdefghijklmnopqrstuvwxyz';
    const DIGIT       = '0123456789';
    const HEX         = '0123456789ABCDEFabcdef';
    const WHITESPACE  = "\t\n\x0c ";

    /**
     * @param $data Data to parse
     */
    public function __construct($data, $builder = null) {
        $this->stream = new HTML5_InputStream($data);
        if (!$builder) $this->tree = new HTML5_TreeBuilder;
        $this->content_model = self::PCDATA;
    }

    public function parseFragment($context = null) {
        $this->tree->setupContext($context);
        if ($this->tree->content_model) {
            $this->content_model = $this->tree->content_model;
            $this->tree->content_model = null;
        }
        $this->parse();
    }

    // XXX maybe convert this into an iterator? regardless, this function
    // and the save function should go into a Parser facade of some sort
    /**
     * Performs the actual parsing of the document.
     */
    public function parse() {
        // Current state
        $state = 'data';
        // This is used to avoid having to have look-behind in the data
state.
        $lastFourChars = '';
        /**
         * Escape flag as specified by the HTML5 specification: "used
to
         * control the behavior of the tokeniser. It is either true or
         * false, and initially must be set to the false state."
         */
        $escape = false;
        //echo "\n\n";
        while($state !== null) {
            
            /*echo $state . ' ';
            switch ($this->content_model) {
                case self::PCDATA: echo 'PCDATA'; break;
                case self::RCDATA: echo 'RCDATA'; break;
                case self::CDATA: echo 'CDATA'; break;
                case self::PLAINTEXT: echo 'PLAINTEXT'; break;
            }
            if ($escape) echo " escape";
            echo "\n";*/
            
            switch($state) {
                case 'data':

                    /* Consume the next input character */
                    $char = $this->stream->char();
                    $lastFourChars .= $char;
                    if (strlen($lastFourChars) > 4) $lastFourChars =
substr($lastFourChars, -4);

                    // see below for meaning
                    $hyp_cond = 
                        !$escape &&
                        (
                            $this->content_model === self::RCDATA ||
                            $this->content_model === self::CDATA
                        );
                    $amp_cond =
                        !$escape &&
                        (
                            $this->content_model === self::PCDATA ||
                            $this->content_model === self::RCDATA
                        );
                    $lt_cond =
                        $this->content_model === self::PCDATA ||
                        (
                            (
                                $this->content_model === self::RCDATA ||
                                $this->content_model === self::CDATA
                             ) &&
                             !$escape
                        );
                    $gt_cond = 
                        $escape &&
                        (
                            $this->content_model === self::RCDATA ||
                            $this->content_model === self::CDATA
                        );

                    if($char === '&' && $amp_cond) {
                        /* U+0026 AMPERSAND (&)
                        When the content model flag is set to one of the
PCDATA or RCDATA
                        states and the escape flag is false: switch to the
                        character reference data state. Otherwise: treat it
as per
                        the "anything else" entry below. */
                        $state = 'characterReferenceData';

                    } elseif(
                        $char === '-' &&
                        $hyp_cond &&
                        $lastFourChars === '<!--'
                    ) {
                        /*
                        U+002D HYPHEN-MINUS (-)
                        If the content model flag is set to either the
RCDATA state or
                        the CDATA state, and the escape flag is false, and
there are at
                        least three characters before this one in the input
stream, and the
                        last four characters in the input stream, including
this one, are
                        U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK,
U+002D HYPHEN-MINUS,
                        and U+002D HYPHEN-MINUS ("<!--"), then
set the escape flag to true. */
                        $escape = true;

                        /* In any case, emit the input character as a
character token. Stay
                        in the data state. */
                        $this->emitToken(array(
                            'type' => self::CHARACTER,
                            'data' => '-'
                        ));
                        // We do the "any case" part as part of
"anything else".

                    /* U+003C LESS-THAN SIGN (<) */
                    } elseif($char === '<' &&
$lt_cond) {
                        /* When the content model flag is set to the PCDATA
state: switch
                        to the tag open state.

                        When the content model flag is set to either the
RCDATA state or
                        the CDATA state and the escape flag is false:
switch to the tag
                        open state.

                        Otherwise: treat it as per the "anything
else" entry below. */
                        $state = 'tagOpen';

                    /* U+003E GREATER-THAN SIGN (>) */
                    } elseif(
                        $char === '>' &&
                        $gt_cond &&
                        substr($lastFourChars, 1) === '-->'
                    ) {
                        /* If the content model flag is set to either the
RCDATA state or
                        the CDATA state, and the escape flag is true, and
the last three
                        characters in the input stream including this one
are U+002D
                        HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E
GREATER-THAN SIGN ("-->"),
                        set the escape flag to false. */
                        $escape = false;

                        /* In any case, emit the input character as a
character token.
                        Stay in the data state. */
                        $this->emitToken(array(
                            'type' => self::CHARACTER,
                            'data' => '>'
                        ));
                        // We do the "any case" part as part of
"anything else".

                    } elseif($char === false) {
                        /* EOF
                        Emit an end-of-file token. */
                        $state = null;
                        $this->tree->emitToken(array(
                            'type' => self::EOF
                        ));
                    
                    } elseif($char === "\t" || $char ===
"\n" || $char === "\x0c" || $char === ' ') {
                        // Directly after emitting a token you switch back
to the "data
                        // state". At that point spaceCharacters are
important so they are
                        // emitted separately.
                        $chars =
$this->stream->charsWhile(self::WHITESPACE);
                        $this->emitToken(array(
                            'type' => self::SPACECHARACTER,
                            'data' => $char . $chars
                        ));
                        $lastFourChars .= $chars;
                        if (strlen($lastFourChars) > 4) $lastFourChars =
substr($lastFourChars, -4);

                    } else {
                        /* Anything else
                        THIS IS AN OPTIMIZATION: Get as many character that
                        otherwise would also be treated as a character
token and emit it
                        as a single character token. Stay in the data
state. */
                        
                        $mask = '';
                        if ($hyp_cond) $mask .= '-';
                        if ($amp_cond) $mask .= '&';
                        if ($lt_cond)  $mask .= '<';
                        if ($gt_cond)  $mask .= '>';

                        if ($mask === '') {
                            $chars = $this->stream->remainingChars();
                        } else {
                            $chars =
$this->stream->charsUntil($mask);
                        }

                        $this->emitToken(array(
                            'type' => self::CHARACTER,
                            'data' => $char . $chars
                        ));

                        $lastFourChars .= $chars;
                        if (strlen($lastFourChars) > 4) $lastFourChars =
substr($lastFourChars, -4);

                        $state = 'data';
                    }
                break;

                case 'characterReferenceData':
                    /* (This cannot happen if the content model flag
                    is set to the CDATA state.) */

                    /* Attempt to consume a character reference, with no
                    additional allowed character. */
                    $entity = $this->consumeCharacterReference();

                    /* If nothing is returned, emit a U+0026 AMPERSAND
                    character token. Otherwise, emit the character token
that
                    was returned. */
                    // This is all done when consuming the character
reference.
                    $this->emitToken(array(
                        'type' => self::CHARACTER,
                        'data' => $entity
                    ));

                    /* Finally, switch to the data state. */
                    $state = 'data';
                break;

                case 'tagOpen':
                    $char = $this->stream->char();

                    switch($this->content_model) {
                        case self::RCDATA:
                        case self::CDATA:
                            /* Consume the next input character. If it is a
                            U+002F SOLIDUS (/) character, switch to the
close
                            tag open state. Otherwise, emit a U+003C
LESS-THAN
                            SIGN character token and reconsume the current
input
                            character in the data state. */
                            // We consumed above.

                            if($char === '/') {
                                $state = 'closeTagOpen';

                            } else {
                                $this->emitToken(array(
                                    'type' => self::CHARACTER,
                                    'data' => '<'
                                ));

                                $this->stream->unget();

                                $state = 'data';
                            }
                        break;

                        case self::PCDATA:
                            /* If the content model flag is set to the
PCDATA state
                            Consume the next input character: */
                            // We consumed above.

                            if($char === '!') {
                                /* U+0021 EXCLAMATION MARK (!)
                                Switch to the markup declaration open
state. */
                                $state = 'markupDeclarationOpen';

                            } elseif($char === '/') {
                                /* U+002F SOLIDUS (/)
                                Switch to the close tag open state. */
                                $state = 'closeTagOpen';

                            } elseif('A' <= $char &&
$char <= 'Z') {
                                /* U+0041 LATIN LETTER A through to U+005A
LATIN LETTER Z
                                Create a new start tag token, set its tag
name to the lowercase
                                version of the input character (add 0x0020
to the character's code
                                point), then switch to the tag name state.
(Don't emit the token
                                yet; further details will be filled in
before it is emitted.) */
                                $this->token = array(
                                    'name'  =>
strtolower($char),
                                    'type'  => self::STARTTAG,
                                    'attr'  => array()
                                );

                                $state = 'tagName';

                            } elseif('a' <= $char &&
$char <= 'z') {
                                /* U+0061 LATIN SMALL LETTER A through to
U+007A LATIN SMALL LETTER Z
                                Create a new start tag token, set its tag
name to the input
                                character, then switch to the tag name
state. (Don't emit
                                the token yet; further details will be
filled in before it
                                is emitted.) */
                                $this->token = array(
                                    'name'  => $char,
                                    'type'  => self::STARTTAG,
                                    'attr'  => array()
                                );

                                $state = 'tagName';

                            } elseif($char === '>') {
                                /* U+003E GREATER-THAN SIGN (>)
                                Parse error. Emit a U+003C LESS-THAN SIGN
character token and a
                                U+003E GREATER-THAN SIGN character token.
Switch to the data state. */
                                $this->emitToken(array(
                                    'type' =>
self::PARSEERROR,
                                    'data' =>
'expected-tag-name-but-got-right-bracket'
                                ));
                                $this->emitToken(array(
                                    'type' => self::CHARACTER,
                                    'data' =>
'<>'
                                ));

                                $state = 'data';

                            } elseif($char === '?') {
                                /* U+003F QUESTION MARK (?)
                                Parse error. Switch to the bogus comment
state. */
                                $this->emitToken(array(
                                    'type' =>
self::PARSEERROR,
                                    'data' =>
'expected-tag-name-but-got-question-mark'
                                ));
                                $this->token = array(
                                    'data' => '?',
                                    'type' => self::COMMENT
                                );
                                $state = 'bogusComment';

                            } else {
                                /* Anything else
                                Parse error. Emit a U+003C LESS-THAN SIGN
character token and
                                reconsume the current input character in
the data state. */
                                $this->emitToken(array(
                                    'type' =>
self::PARSEERROR,
                                    'data' =>
'expected-tag-name'
                                ));
                                $this->emitToken(array(
                                    'type' => self::CHARACTER,
                                    'data' => '<'
                                ));

                                $state = 'data';
                                $this->stream->unget();
                            }
                        break;
                    }
                break;

                case 'closeTagOpen':
                    if (
                        $this->content_model === self::RCDATA ||
                        $this->content_model === self::CDATA
                    ) {
                        /* If the content model flag is set to the RCDATA
or CDATA
                        states... */
                        $name =
strtolower($this->stream->charsWhile(self::ALPHA));
                        $following = $this->stream->char();
                        $this->stream->unget();
                        if (
                            !$this->token ||
                            $this->token['name'] !== $name ||
                            $this->token['name'] === $name
&& !in_array($following, array("\x09", "\x0A",
"\x0C", "\x20", "\x3E", "\x2F",
false))
                        ) {
                            /* if no start tag token has ever been emitted
by this instance
                            of the tokenizer (fragment case), or, if the
next few
                            characters do not match the tag name of the
last start tag
                            token emitted (compared in an ASCII
case-insensitive manner),
                            or if they do but they are not immediately
followed by one of
                            the following characters:

                                * U+0009 CHARACTER TABULATION
                                * U+000A LINE FEED (LF)
                                * U+000C FORM FEED (FF)
                                * U+0020 SPACE
                                * U+003E GREATER-THAN SIGN (>)
                                * U+002F SOLIDUS (/)
                                * EOF

                            ...then emit a U+003C LESS-THAN SIGN character
token, a
                            U+002F SOLIDUS character token, and switch to
the data
                            state to process the next input character. */
                            // XXX: Probably ought to replace in_array with
$following === x ||...

                            // We also need to emit $name now we've
consumed that, as we
                            // know it'll just be emitted as a
character token.
                            $this->emitToken(array(
                                'type' => self::CHARACTER,
                                'data' => '</' .
$name
                            ));

                            $state = 'data';
                        } else {
                            // This matches what would happen if we
actually did the
                            // otherwise below (but we can't because
we've consumed too
                            // much).

                            // Start the end tag token with the name we
already have.
                            $this->token = array(
                                'name'  => $name,
                                'type'  => self::ENDTAG
                            );

                            // Change to tag name state.
                            $state = 'tagName';
                        }
                    } elseif ($this->content_model === self::PCDATA) {
                        /* Otherwise, if the content model flag is set to
the PCDATA
                        state [...]: */
                        $char = $this->stream->char();

                        if ('A' <= $char && $char
<= 'Z') {
                            /* U+0041 LATIN LETTER A through to U+005A
LATIN LETTER Z
                            Create a new end tag token, set its tag name to
the lowercase version
                            of the input character (add 0x0020 to the
character's code point), then
                            switch to the tag name state. (Don't emit
the token yet; further details
                            will be filled in before it is emitted.) */
                            $this->token = array(
                                'name'  => strtolower($char),
                                'type'  => self::ENDTAG
                            );

                            $state = 'tagName';

                        } elseif ('a' <= $char &&
$char <= 'z') {
                            /* U+0061 LATIN SMALL LETTER A through to
U+007A LATIN SMALL LETTER Z
                            Create a new end tag token, set its tag name to
the
                            input character, then switch to the tag name
state.
                            (Don't emit the token yet; further details
will be
                            filled in before it is emitted.) */
                            $this->token = array(
                                'name'  => $char,
                                'type'  => self::ENDTAG
                            );

                            $state = 'tagName';

                        } elseif($char === '>') {
                            /* U+003E GREATER-THAN SIGN (>)
                            Parse error. Switch to the data state. */
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'expected-closing-tag-but-got-right-bracket'
                            ));
                            $state = 'data';

                        } elseif($char === false) {
                            /* EOF
                            Parse error. Emit a U+003C LESS-THAN SIGN
character token and a U+002F
                            SOLIDUS character token. Reconsume the EOF
character in the data state. */
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'expected-closing-tag-but-got-eof'
                            ));
                            $this->emitToken(array(
                                'type' => self::CHARACTER,
                                'data' => '</'
                            ));

                            $this->stream->unget();
                            $state = 'data';

                        } else {
                            /* Parse error. Switch to the bogus comment
state. */
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'expected-closing-tag-but-got-char'
                            ));
                            $this->token = array(
                                'data' => $char,
                                'type' => self::COMMENT
                            );
                            $state = 'bogusComment';
                        }
                    }
                break;

                case 'tagName':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Switch to the before attribute name state. */
                        $state = 'beforeAttributeName';

                    } elseif($char === '/') {
                        /* U+002F SOLIDUS (/)
                        Switch to the self-closing start tag state. */
                        $state = 'selfClosingStartTag';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Append the lowercase version of the current input
                        character (add 0x0020 to the character's code
point) to
                        the current tag token's tag name. Stay in the
tag name state. */
                        $chars =
$this->stream->charsWhile(self::UPPER_ALPHA);

                        $this->token['name'] .=
strtolower($char . $chars);
                        $state = 'tagName';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-tag-name'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append the current input character to the current
tag token's tag name.
                        Stay in the tag name state. */
                        $chars =
$this->stream->charsUntil("\t\n\x0C />" .
self::UPPER_ALPHA);

                        $this->token['name'] .= $char .
$chars;
                        $state = 'tagName';
                    }
                break;

                case 'beforeAttributeName':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    // this conditional is optimized, check bottom
                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Stay in the before attribute name state. */
                        $state = 'beforeAttributeName';

                    } elseif($char === '/') {
                        /* U+002F SOLIDUS (/)
                        Switch to the self-closing start tag state. */
                        $state = 'selfClosingStartTag';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Start a new attribute in the current tag token. Set
that
                        attribute's name to the lowercase version of
the current
                        input character (add 0x0020 to the character's
code
                        point), and its value to the empty string. Switch
to the
                        attribute name state.*/
                        $this->token['attr'][] = array(
                            'name'  => strtolower($char),
                            'value' => ''
                        );

                        $state = 'attributeName';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-attribute-name-but-got-eof'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* U+0022 QUOTATION MARK (")
                           U+0027 APOSTROPHE (')
                           U+003D EQUALS SIGN (=)
                        Parse error. Treat it as per the "anything
else" entry
                        below. */
                        if($char === '"' || $char ===
"'" || $char === '=') {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'invalid-character-in-attribute-name'
                            ));
                        }

                        /* Anything else
                        Start a new attribute in the current tag token. Set
that attribute's
                        name to the current input character, and its value
to the empty string.
                        Switch to the attribute name state. */
                        $this->token['attr'][] = array(
                            'name'  => $char,
                            'value' => ''
                        );

                        $state = 'attributeName';
                    }
                break;

                case 'attributeName':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    // this conditional is optimized, check bottom
                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Switch to the after attribute name state. */
                        $state = 'afterAttributeName';

                    } elseif($char === '/') {
                        /* U+002F SOLIDUS (/)
                        Switch to the self-closing start tag state. */
                        $state = 'selfClosingStartTag';

                    } elseif($char === '=') {
                        /* U+003D EQUALS SIGN (=)
                        Switch to the before attribute value state. */
                        $state = 'beforeAttributeValue';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Append the lowercase version of the current input
                        character (add 0x0020 to the character's code
point) to
                        the current attribute's name. Stay in the
attribute name
                        state. */
                        $chars =
$this->stream->charsWhile(self::UPPER_ALPHA);

                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['name'] .=
strtolower($char . $chars);

                        $state = 'attributeName';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-attribute-name'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* U+0022 QUOTATION MARK (")
                           U+0027 APOSTROPHE (')
                        Parse error. Treat it as per the "anything
else"
                        entry below. */
                        if($char === '"' || $char ===
"'") {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'invalid-character-in-attribute-name'
                            ));
                        }

                        /* Anything else
                        Append the current input character to the current
attribute's name.
                        Stay in the attribute name state. */
                        $chars =
$this->stream->charsUntil("\t\n\x0C /=>\"'" .
self::UPPER_ALPHA);

                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['name'] .= $char .
$chars;

                        $state = 'attributeName';
                    }

                    /* When the user agent leaves the attribute name state
                    (and before emitting the tag token, if appropriate),
the
                    complete attribute's name must be compared to the
other
                    attributes on the same token; if there is already an
                    attribute on the token with the exact same name, then
this
                    is a parse error and the new attribute must be dropped,
along
                    with the value that gets associated with it (if any).
*/
                    // this might be implemented in the emitToken method
                break;

                case 'afterAttributeName':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    // this is an optimized conditional, check the bottom
                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Stay in the after attribute name state. */
                        $state = 'afterAttributeName';

                    } elseif($char === '/') {
                        /* U+002F SOLIDUS (/)
                        Switch to the self-closing start tag state. */
                        $state = 'selfClosingStartTag';

                    } elseif($char === '=') {
                        /* U+003D EQUALS SIGN (=)
                        Switch to the before attribute value state. */
                        $state = 'beforeAttributeValue';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Start a new attribute in the current tag token. Set
that
                        attribute's name to the lowercase version of
the current
                        input character (add 0x0020 to the character's
code
                        point), and its value to the empty string. Switch
to the
                        attribute name state. */
                        $this->token['attr'][] = array(
                            'name'  => strtolower($char),
                            'value' => ''
                        );

                        $state = 'attributeName';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-end-of-tag-but-got-eof'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* U+0022 QUOTATION MARK (")
                           U+0027 APOSTROPHE (')
                        Parse error. Treat it as per the "anything
else"
                        entry below. */
                        if($char === '"' || $char ===
"'") {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'invalid-character-after-attribute-name'
                            ));
                        }

                        /* Anything else
                        Start a new attribute in the current tag token. Set
that attribute's
                        name to the current input character, and its value
to the empty string.
                        Switch to the attribute name state. */
                        $this->token['attr'][] = array(
                            'name'  => $char,
                            'value' => ''
                        );

                        $state = 'attributeName';
                    }
                break;

                case 'beforeAttributeValue':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    // this is an optimized conditional
                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Stay in the before attribute value state. */
                        $state = 'beforeAttributeValue';

                    } elseif($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Switch to the attribute value (double-quoted)
state. */
                        $state = 'attributeValueDoubleQuoted';

                    } elseif($char === '&') {
                        /* U+0026 AMPERSAND (&)
                        Switch to the attribute value (unquoted) state and
reconsume
                        this input character. */
                        $this->stream->unget();
                        $state = 'attributeValueUnquoted';

                    } elseif($char === '\'') {
                        /* U+0027 APOSTROPHE (')
                        Switch to the attribute value (single-quoted)
state. */
                        $state = 'attributeValueSingleQuoted';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Emit the current tag token. Switch to
the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-attribute-value-but-got-right-bracket'
                        ));
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
                        the character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-attribute-value-but-got-eof'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* U+003D EQUALS SIGN (=)
                        Parse error. Treat it as per the "anything
else" entry below. */
                        if($char === '=') {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'equals-in-unquoted-attribute-value'
                            ));
                        }

                        /* Anything else
                        Append the current input character to the current
attribute's value.
                        Switch to the attribute value (unquoted) state. */
                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['value'] .= $char;

                        $state = 'attributeValueUnquoted';
                    }
                break;

                case 'attributeValueDoubleQuoted':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    if($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Switch to the after attribute value (quoted) state.
*/
                        $state = 'afterAttributeValueQuoted';

                    } elseif($char === '&') {
                        /* U+0026 AMPERSAND (&)
                        Switch to the character reference in attribute
value
                        state, with the additional allowed character
                        being U+0022 QUOTATION MARK ("). */
                       
$this->characterReferenceInAttributeValue('"');

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the character
                        in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-attribute-value-double-quote'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append the current input character to the current
attribute's value.
                        Stay in the attribute value (double-quoted) state.
*/
                        $chars =
$this->stream->charsUntil('"&');

                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['value'] .= $char .
$chars;

                        $state = 'attributeValueDoubleQuoted';
                    }
                break;

                case 'attributeValueSingleQuoted':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    if($char === "'") {
                        /* U+0022 QUOTATION MARK (')
                        Switch to the after attribute value state. */
                        $state = 'afterAttributeValueQuoted';

                    } elseif($char === '&') {
                        /* U+0026 AMPERSAND (&)
                        Switch to the entity in attribute value state. */
                       
$this->characterReferenceInAttributeValue("'");

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the character
                        in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-attribute-value-single-quote'
                        ));
                        $this->emitToken($this->token);

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append the current input character to the current
attribute's value.
                        Stay in the attribute value (single-quoted) state.
*/
                        $chars =
$this->stream->charsUntil("'&");

                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['value'] .= $char .
$chars;

                        $state = 'attributeValueSingleQuoted';
                    }
                break;

                case 'attributeValueUnquoted':
                    // Consume the next input character:
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                        U+000A LINE FEED (LF)
                        U+000C FORM FEED (FF)
                        U+0020 SPACE
                        Switch to the before attribute name state. */
                        $state = 'beforeAttributeName';

                    } elseif($char === '&') {
                        /* U+0026 AMPERSAND (&)
                        Switch to the entity in attribute value state. */
                        $this->characterReferenceInAttributeValue();

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
                        the character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-attribute-value-no-quotes'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* U+0022 QUOTATION MARK (")
                           U+0027 APOSTROPHE (')
                           U+003D EQUALS SIGN (=)
                        Parse error. Treat it as per the "anything
else"
                        entry below. */
                        if($char === '"' || $char ===
"'" || $char === '=') {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'unexpected-character-in-unquoted-attribute-value'
                            ));
                        }

                        /* Anything else
                        Append the current input character to the current
attribute's value.
                        Stay in the attribute value (unquoted) state. */
                        $chars =
$this->stream->charsUntil("\t\n\x0c
&>\"'=");

                        $last = count($this->token['attr']) -
1;
                       
$this->token['attr'][$last]['value'] .= $char .
$chars;

                        $state = 'attributeValueUnquoted';
                    }
                break;

                case 'afterAttributeValueQuoted':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Switch to the before attribute name state. */
                        $state = 'beforeAttributeName';

                    } elseif ($char === '/') {
                        /* U+002F SOLIDUS (/)
                        Switch to the self-closing start tag state. */
                        $state = 'selfClosingStartTag';

                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current tag token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-EOF-after-attribute-value'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Parse error. Reconsume the character in the before
attribute
                        name state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-character-after-attribute-value'
                        ));
                        $this->stream->unget();
                        $state = 'beforeAttributeName';
                    }
                break;

                case 'selfClosingStartTag':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Set the self-closing flag of the current tag token.
                        Emit the current tag token. Switch to the data
state. */
                        // not sure if this is the name we want
                        $this->token['self-closing'] = true;
                        /* When an end tag token is emitted with its
self-closing flag set,
                        that is a parse error. */
                        if ($this->token['type'] ===
self::ENDTAG) {
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'self-closing-end-tag'
                            ));
                        }
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Emit the current tag token. Reconsume
the
                        EOF character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-eof-after-self-closing'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Parse error. Reconsume the character in the before
attribute name state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-character-after-self-closing'
                        ));
                        $this->stream->unget();
                        $state = 'beforeAttributeName';
                    }
                break;

                case 'bogusComment':
                    /* (This can only happen if the content model flag is
set to the PCDATA state.) */
                    /* Consume every character up to the first U+003E
GREATER-THAN SIGN
                    character (>) or the end of the file (EOF),
whichever comes first. Emit
                    a comment token whose data is the concatenation of all
the characters
                    starting from and including the character that caused
the state machine
                    to switch into the bogus comment state, up to and
including the last
                    consumed character before the U+003E character, if any,
or up to the
                    end of the file otherwise. (If the comment was started
by the end of
                    the file (EOF), the token is empty.) */
                    $this->token['data'] .= (string)
$this->stream->charsUntil('>');
                    $this->stream->char();

                    $this->emitToken($this->token);

                    /* Switch to the data state. */
                    $state = 'data';
                break;

                case 'markupDeclarationOpen':
                    // Consume for below
                    $hyphens =
$this->stream->charsWhile('-', 2);
                    if ($hyphens === '-') {
                        $this->stream->unget();
                    }
                    if ($hyphens !== '--') {
                        $alpha =
$this->stream->charsWhile(self::ALPHA, 7);
                    }

                    /* If the next two characters are both U+002D
HYPHEN-MINUS (-)
                    characters, consume those two characters, create a
comment token whose
                    data is the empty string, and switch to the comment
state. */
                    if($hyphens === '--') {
                        $state = 'commentStart';
                        $this->token = array(
                            'data' => '',
                            'type' => self::COMMENT
                        );

                    /* Otherwise if the next seven characters are a
case-insensitive match
                    for the word "DOCTYPE", then consume those
characters and switch to the
                    DOCTYPE state. */
                    } elseif(strtoupper($alpha) === 'DOCTYPE') {
                        $state = 'doctype';

                    // XXX not implemented
                    /* Otherwise, if the insertion mode is "in foreign
content"
                    and the current node is not an element in the HTML
namespace
                    and the next seven characters are an ASCII
case-sensitive
                    match for the string "[CDATA[" (the five
uppercase letters
                    "CDATA" with a U+005B LEFT SQUARE BRACKET
character before
                    and after), then consume those characters and switch to
the
                    CDATA section state (which is unrelated to the content
model
                    flag's CDATA state). */

                    /* Otherwise, is is a parse error. Switch to the bogus
comment state.
                    The next character that is consumed, if any, is the
first character
                    that will be in the comment. */
                    } else {
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-dashes-or-doctype'
                        ));
                        $this->token = array(
                            'data' => (string) $alpha,
                            'type' => self::COMMENT
                        );
                        $state = 'bogusComment';
                    }
                break;

                case 'commentStart':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === '-') {
                        /* U+002D HYPHEN-MINUS (-)
                        Switch to the comment start dash state. */
                        $state = 'commentStartDash';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Emit the comment token. Switch to the
                        data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'incorrect-comment'
                        ));
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Emit the comment token. Reconsume the
                        EOF character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-comment'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Append the input character to the comment
token's
                        data. Switch to the comment state. */
                        $this->token['data'] .= $char;
                        $state = 'comment';
                    }
                break;

                case 'commentStartDash':
                    /* Consume the next input character: */
                    $char = $this->stream->char();
                    if ($char === '-') {
                        /* U+002D HYPHEN-MINUS (-)
                        Switch to the comment end state */
                        $state = 'commentEnd';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Emit the comment token. Switch to the
                        data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'incorrect-comment'
                        ));
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* Parse error. Emit the comment token. Reconsume
the
                        EOF character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-comment'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        $this->token['data'] .= '-'
. $char;
                        $state = 'comment';
                    }
                break;

                case 'comment':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === '-') {
                        /* U+002D HYPHEN-MINUS (-)
                        Switch to the comment end dash state */
                        $state = 'commentEndDash';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the comment token. Reconsume the
EOF character
                        in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-comment'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append the input character to the comment
token's data. Stay in
                        the comment state. */
                        $chars =
$this->stream->charsUntil('-');

                        $this->token['data'] .= $char .
$chars;
                    }
                break;

                case 'commentEndDash':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === '-') {
                        /* U+002D HYPHEN-MINUS (-)
                        Switch to the comment end state  */
                        $state = 'commentEnd';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the comment token. Reconsume the
EOF character
                        in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-comment-end-dash'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append a U+002D HYPHEN-MINUS (-) character and the
input
                        character to the comment token's data. Switch
to the comment state. */
                        $this->token['data'] .=
'-'.$char;
                        $state = 'comment';
                    }
                break;

                case 'commentEnd':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the comment token. Switch to the data state.
*/
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif($char === '-') {
                        /* U+002D HYPHEN-MINUS (-)
                        Parse error. Append a U+002D HYPHEN-MINUS (-)
character
                        to the comment token's data. Stay in the
comment end
                        state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-dash-after-double-dash-in-comment'
                        ));
                        $this->token['data'] .= '-';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Emit the comment token. Reconsume the
                        EOF character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-comment-double-dash'
                        ));
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Parse error. Append two U+002D HYPHEN-MINUS (-)
                        characters and the input character to the comment
token's
                        data. Switch to the comment state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-comment'
                        ));
                        $this->token['data'] .=
'--'.$char;
                        $state = 'comment';
                    }
                break;

                case 'doctype':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Switch to the before DOCTYPE name state. */
                        $state = 'beforeDoctypeName';

                    } else {
                        /* Anything else
                        Parse error. Reconsume the current character in the
                        before DOCTYPE name state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'need-space-after-doctype'
                        ));
                        $this->stream->unget();
                        $state = 'beforeDoctypeName';
                    }
                break;

                case 'beforeDoctypeName':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the before DOCTYPE name state. */

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Create a new DOCTYPE token. Set its
                        force-quirks flag to on. Emit the token. Switch to
the
                        data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-doctype-name-but-got-right-bracket'
                        ));
                        $this->emitToken(array(
                            'name' => '',
                            'type' => self::DOCTYPE,
                            'force-quirks' => true,
                            'error' => true
                        ));

                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Create a new DOCTYPE token. Set the token's
name to the
                        lowercase version of the input character (add
0x0020 to
                        the character's code point). Switch to the
DOCTYPE name
                        state. */
                        $this->token = array(
                            'name' => strtolower($char),
                            'type' => self::DOCTYPE,
                            'error' => true
                        );

                        $state = 'doctypeName';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Create a new DOCTYPE token. Set its
                        force-quirks flag to on. Emit the token. Reconsume
the
                        EOF character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'expected-doctype-name-but-got-eof'
                        ));
                        $this->emitToken(array(
                            'name' => '',
                            'type' => self::DOCTYPE,
                            'force-quirks' => true,
                            'error' => true
                        ));

                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Create a new DOCTYPE token. Set the token's
name to the
                        current input character. Switch to the DOCTYPE name
state. */
                        $this->token = array(
                            'name' => $char,
                            'type' => self::DOCTYPE,
                            'error' => true
                        );

                        $state = 'doctypeName';
                    }
                break;

                case 'doctypeName':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Switch to the after DOCTYPE name state. */
                        $state = 'afterDoctypeName';

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current DOCTYPE token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif('A' <= $char && $char
<= 'Z') {
                        /* U+0041 LATIN CAPITAL LETTER A through to U+005A
LATIN CAPITAL LETTER Z
                        Append the lowercase version of the input character
                        (add 0x0020 to the character's code point) to
the current
                        DOCTYPE token's name. Stay in the DOCTYPE name
state. */
                        $this->token['name'] .=
strtolower($char);

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype-name'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Append the current input character to the current
                        DOCTYPE token's name. Stay in the DOCTYPE name
state. */
                        $this->token['name'] .= $char;
                    }

                    // XXX this is probably some sort of quirks mode
designation,
                    // check tree-builder to be sure. In general
'error' needs
                    // to be specc'ified, this probably means removing
it at the end
                    $this->token['error'] =
($this->token['name'] === 'HTML')
                        ? false
                        : true;
                break;

                case 'afterDoctypeName':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the after DOCTYPE name state. */

                    } elseif($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current DOCTYPE token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else */

                        $nextSix = strtoupper($char .
$this->stream->charsWhile(self::ALPHA, 5));
                        if ($nextSix === 'PUBLIC') {
                            /* If the next six characters are an ASCII
                            case-insensitive match for the word
"PUBLIC", then
                            consume those characters and switch to the
before
                            DOCTYPE public identifier state. */
                            $state =
'beforeDoctypePublicIdentifier';

                        } elseif ($nextSix === 'SYSTEM') {
                            /* Otherwise, if the next six characters are an
ASCII
                            case-insensitive match for the word
"SYSTEM", then
                            consume those characters and switch to the
before
                            DOCTYPE system identifier state. */
                            $state =
'beforeDoctypeSystemIdentifier';

                        } else {
                            /* Otherwise, this is the parse error. Set the
DOCTYPE
                            token's force-quirks flag to on. Switch to
the bogus
                            DOCTYPE state. */
                            $this->emitToken(array(
                                'type' => self::PARSEERROR,
                                'data' =>
'expected-space-or-right-bracket-in-doctype'
                            ));
                            $this->token['force-quirks'] =
true;
                            $this->token['error'] = true;
                            $state = 'bogusDoctype';
                        }
                    }
                break;

                case 'beforeDoctypePublicIdentifier':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the before DOCTYPE public identifier state.
*/
                    } elseif ($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Set the DOCTYPE token's public identifier to
the empty
                        string (not missing), then switch to the DOCTYPE
public
                        identifier (double-quoted) state. */
                        $this->token['public'] = '';
                        $state =
'doctypePublicIdentifierDoubleQuoted';
                    } elseif ($char === "'") {
                        /* U+0027 APOSTROPHE (')
                        Set the DOCTYPE token's public identifier to
the empty
                        string (not missing), then switch to the DOCTYPE
public
                        identifier (single-quoted) state. */
                        $this->token['public'] = '';
                        $state =
'doctypePublicIdentifierSingleQuoted';
                    } elseif ($char === '>') {
                        /* Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-end-of-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* Parse error. Set the DOCTYPE token's
force-quirks
                        flag to on. Emit that DOCTYPE token. Reconsume the
EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Switch to the bogus DOCTYPE state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $state = 'bogusDoctype';
                    }
                break;

                case 'doctypePublicIdentifierDoubleQuoted':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Switch to the after DOCTYPE public identifier
state. */
                        $state = 'afterDoctypePublicIdentifier';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-end-of-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Append the current input character to the current
                        DOCTYPE token's public identifier. Stay in the
DOCTYPE
                        public identifier (double-quoted) state. */
                        $this->token['public'] .= $char;
                    }
                break;

                case 'doctypePublicIdentifierSingleQuoted':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === "'") {
                        /* U+0027 APOSTROPHE (')
                        Switch to the after DOCTYPE public identifier
state. */
                        $state = 'afterDoctypePublicIdentifier';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-end-of-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Append the current input character to the current
                        DOCTYPE token's public identifier. Stay in the
DOCTYPE
                        public identifier (double-quoted) state. */
                        $this->token['public'] .= $char;
                    }
                break;

                case 'afterDoctypePublicIdentifier':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the after DOCTYPE public identifier state.
*/
                    } elseif ($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Set the DOCTYPE token's system identifier to
the
                        empty string (not missing), then switch to the
DOCTYPE
                        system identifier (double-quoted) state. */
                        $this->token['system'] = '';
                        $state =
'doctypeSystemIdentifierDoubleQuoted';
                    } elseif ($char === "'") {
                        /* U+0027 APOSTROPHE (')
                        Set the DOCTYPE token's system identifier to
the
                        empty string (not missing), then switch to the
DOCTYPE
                        system identifier (single-quoted) state. */
                        $this->token['system'] = '';
                        $state =
'doctypeSystemIdentifierSingleQuoted';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current DOCTYPE token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* Parse error. Set the DOCTYPE token's
force-quirks
                        flag to on. Emit that DOCTYPE token. Reconsume the
EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Switch to the bogus DOCTYPE state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $state = 'bogusDoctype';
                    }
                break;

                case 'beforeDoctypeSystemIdentifier':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the before DOCTYPE system identifier state.
*/
                    } elseif ($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Set the DOCTYPE token's system identifier to
the empty
                        string (not missing), then switch to the DOCTYPE
system
                        identifier (double-quoted) state. */
                        $this->token['system'] = '';
                        $state =
'doctypeSystemIdentifierDoubleQuoted';
                    } elseif ($char === "'") {
                        /* U+0027 APOSTROPHE (')
                        Set the DOCTYPE token's system identifier to
the empty
                        string (not missing), then switch to the DOCTYPE
system
                        identifier (single-quoted) state. */
                        $this->token['system'] = '';
                        $state =
'doctypeSystemIdentifierSingleQuoted';
                    } elseif ($char === '>') {
                        /* Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* Parse error. Set the DOCTYPE token's
force-quirks
                        flag to on. Emit that DOCTYPE token. Reconsume the
EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Switch to the bogus DOCTYPE state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $state = 'bogusDoctype';
                    }
                break;

                case 'doctypeSystemIdentifierDoubleQuoted':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === '"') {
                        /* U+0022 QUOTATION MARK (")
                        Switch to the after DOCTYPE system identifier
state. */
                        $state = 'afterDoctypeSystemIdentifier';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-end-of-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Append the current input character to the current
                        DOCTYPE token's system identifier. Stay in the
DOCTYPE
                        system identifier (double-quoted) state. */
                        $this->token['system'] .= $char;
                    }
                break;

                case 'doctypeSystemIdentifierSingleQuoted':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === "'") {
                        /* U+0027 APOSTROPHE (')
                        Switch to the after DOCTYPE system identifier
state. */
                        $state = 'afterDoctypeSystemIdentifier';
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Switch to the data
state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-end-of-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* EOF
                        Parse error. Set the DOCTYPE token's
force-quirks flag
                        to on. Emit that DOCTYPE token. Reconsume the EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Append the current input character to the current
                        DOCTYPE token's system identifier. Stay in the
DOCTYPE
                        system identifier (double-quoted) state. */
                        $this->token['system'] .= $char;
                    }
                break;

                case 'afterDoctypeSystemIdentifier':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if($char === "\t" || $char === "\n"
|| $char === "\x0c" || $char === ' ') {
                        /* U+0009 CHARACTER TABULATION
                           U+000A LINE FEED (LF)
                           U+000C FORM FEED (FF)
                           U+0020 SPACE
                        Stay in the after DOCTYPE system identifier state.
*/
                    } elseif ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the current DOCTYPE token. Switch to the data
state. */
                        $this->emitToken($this->token);
                        $state = 'data';
                    } elseif ($char === false) {
                        /* Parse error. Set the DOCTYPE token's
force-quirks
                        flag to on. Emit that DOCTYPE token. Reconsume the
EOF
                        character in the data state. */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'eof-in-doctype'
                        ));
                        $this->token['force-quirks'] = true;
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';
                    } else {
                        /* Anything else
                        Parse error. Switch to the bogus DOCTYPE state.
                        (This does not set the DOCTYPE token's
force-quirks
                        flag to on.) */
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'unexpected-char-in-doctype'
                        ));
                        $state = 'bogusDoctype';
                    }
                break;

                case 'bogusDoctype':
                    /* Consume the next input character: */
                    $char = $this->stream->char();

                    if ($char === '>') {
                        /* U+003E GREATER-THAN SIGN (>)
                        Emit the DOCTYPE token. Switch to the data state.
*/
                        $this->emitToken($this->token);
                        $state = 'data';

                    } elseif($char === false) {
                        /* EOF
                        Emit the DOCTYPE token. Reconsume the EOF character
in
                        the data state. */
                        $this->emitToken($this->token);
                        $this->stream->unget();
                        $state = 'data';

                    } else {
                        /* Anything else
                        Stay in the bogus DOCTYPE state. */
                    }
                break;

                // case 'cdataSection':

            }
        }
    }

    /**
     * Returns a serialized representation of the tree.
     */
    public function save() {
        return $this->tree->save();
    }

    /**
     * Returns the input stream.
     */
    public function stream() {
        return $this->stream;
    }

    private function consumeCharacterReference($allowed = false, $inattr =
false) {
        // This goes quite far against spec, and is far closer to the
Python
        // impl., mainly because we don't do the large unconsuming the
spec
        // requires.

        // All consumed characters.
        $chars = $this->stream->char();

        /* This section defines how to consume a character
        reference. This definition is used when parsing character
        references in text and in attributes.

        The behavior depends on the identity of the next character
        (the one immediately after the U+0026 AMPERSAND character): */

        if (
            $chars[0] === "\x09" ||
            $chars[0] === "\x0A" ||
            $chars[0] === "\x0C" ||
            $chars[0] === "\x20" ||
            $chars[0] === '<' ||
            $chars[0] === '&' ||
            $chars === false ||
            $chars[0] === $allowed
        ) {
            /* U+0009 CHARACTER TABULATION
               U+000A LINE FEED (LF)
               U+000C FORM FEED (FF)
               U+0020 SPACE
               U+003C LESS-THAN SIGN
               U+0026 AMPERSAND
               EOF
               The additional allowed character, if there is one
            Not a character reference. No characters are consumed,
            and nothing is returned. (This is not an error, either.) */
            // We already consumed, so unconsume.
            $this->stream->unget();
            return '&';
        } elseif ($chars[0] === '#') {
            /* Consume the U+0023 NUMBER SIGN. */
            // Um, yeah, we already did that.
            /* The behavior further depends on the character after
            the U+0023 NUMBER SIGN: */
            $chars .= $this->stream->char();
            if (isset($chars[1]) && ($chars[1] === 'x' ||
$chars[1] === 'X')) {
                /* U+0078 LATIN SMALL LETTER X
                   U+0058 LATIN CAPITAL LETTER X */
                /* Consume the X. */
                // Um, yeah, we already did that.
                /* Follow the steps below, but using the range of
                characters U+0030 DIGIT ZERO through to U+0039 DIGIT
                NINE, U+0061 LATIN SMALL LETTER A through to U+0066
                LATIN SMALL LETTER F, and U+0041 LATIN CAPITAL LETTER
                A, through to U+0046 LATIN CAPITAL LETTER F (in other
                words, 0123456789, ABCDEF, abcdef). */
                $char_class = self::HEX;
                /* When it comes to interpreting the
                number, interpret it as a hexadecimal number. */
                $hex = true;
            } else {
                /* Anything else */
                // Unconsume because we shouldn't have consumed this.
                $chars = $chars[0];
                $this->stream->unget();
                /* Follow the steps below, but using the range of
                characters U+0030 DIGIT ZERO through to U+0039 DIGIT
                NINE (i.e. just 0123456789). */
                $char_class = self::DIGIT;
                /* When it comes to interpreting the number,
                interpret it as a decimal number. */
                $hex = false;
            }

            /* Consume as many characters as match the range of characters
given above. */
            $consumed = $this->stream->charsWhile($char_class);
            if ($consumed === '' || $consumed === false) {
                /* If no characters match the range, then don't
consume
                any characters (and unconsume the U+0023 NUMBER SIGN
                character and, if appropriate, the X character). This
                is a parse error; nothing is returned. */
                $this->emitToken(array(
                    'type' => self::PARSEERROR,
                    'data' =>
'expected-numeric-entity'
                ));
                return '&' . $chars;
            } else {
                /* Otherwise, if the next character is a U+003B SEMICOLON,
                consume that too. If it isn't, there is a parse error.
*/
                if ($this->stream->char() !== ';') {
                    $this->stream->unget();
                    $this->emitToken(array(
                        'type' => self::PARSEERROR,
                        'data' =>
'numeric-entity-without-semicolon'
                    ));
                }

                /* If one or more characters match the range, then take
                them all and interpret the string of characters as a number
                (either hexadecimal or decimal as appropriate). */
                $codepoint = $hex ? hexdec($consumed) : (int) $consumed;

                /* If that number is one of the numbers in the first column
                of the following table, then this is a parse error. Find
the
                row with that number in the first column, and return a
                character token for the Unicode character given in the
                second column of that row. */
                $new_codepoint = HTML5_Data::getRealCodepoint($codepoint);
                if ($new_codepoint) {
                    $this->emitToken(array(
                        'type' => self::PARSEERROR,
                        'data' =>
'illegal-windows-1252-entity'
                    ));
                    $codepoint = $new_codepoint;
                } else {
                    /* Otherwise, if the number is in the range 0x0000 to
0x0008,
                    U+000B,  U+000E to 0x001F,  0x007F  to 0x009F, 0xD800
to 0xDFFF ,
                    0xFDD0 to 0xFDEF, or is one of 0xFFFE, 0xFFFF, 0x1FFFE,
0x1FFFF,
                    0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF,
0x5FFFE,
                    0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE,
0x8FFFF,
                    0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF,
0xCFFFE,
                    0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE,
0xFFFFF,
                    0x10FFFE, or 0x10FFFF, or is higher than 0x10FFFF, then
this
                    is a parse error; return a character token for the
U+FFFD
                    REPLACEMENT CHARACTER character instead. */
                    // && has higher precedence than ||
                    if (
                        $codepoint >= 0x0000 && $codepoint <=
0x0008 ||
                        $codepoint === 0x000B ||
                        $codepoint >= 0x000E && $codepoint <=
0x001F ||
                        $codepoint >= 0x007F && $codepoint <=
0x009F ||
                        $codepoint >= 0xD800 && $codepoint <=
0xDFFF ||
                        $codepoint >= 0xFDD0 && $codepoint <=
0xFDEF ||
                        ($codepoint & 0xFFFE) === 0xFFFE ||
                        $codepoint > 0x10FFFF
                    ) {
                        $this->emitToken(array(
                            'type' => self::PARSEERROR,
                            'data' =>
'illegal-codepoint-for-numeric-entity'
                        ));
                        $codepoint = 0xFFFD;
                    }
                }

                /* Otherwise, return a character token for the Unicode
                character whose code point is that number. */
                return HTML5_Data::utf8chr($codepoint);
            }

        } else {
            /* Anything else */

            /* Consume the maximum number of characters possible,
            with the consumed characters matching one of the
            identifiers in the first column of the named character
            references table (in a case-sensitive manner). */

            // we will implement this by matching the longest
            // alphanumeric + semicolon string, and then working
            // our way backwards
            $chars .= $this->stream->charsWhile(self::DIGIT .
self::ALPHA . ';',
HTML5_Data::getNamedCharacterReferenceMaxLength() - 1);
            $len = strlen($chars);

            $refs = HTML5_Data::getNamedCharacterReferences();
            $codepoint = false;
            for($c = $len; $c > 0; $c--) {
                $id = substr($chars, 0, $c);
                if(isset($refs[$id])) {
                    $codepoint = $refs[$id];
                    break;
                }
            }

            /* If no match can be made, then this is a parse error.
            No characters are consumed, and nothing is returned. */
            if (!$codepoint) {
                $this->emitToken(array(
                    'type' => self::PARSEERROR,
                    'data' =>
'expected-named-entity'
                ));
                return '&' . $chars;
            }

            /* If the last character matched is not a U+003B SEMICOLON
            (;), there is a parse error. */
            $semicolon = true;
            if (substr($id, -1) !== ';') {
                $this->emitToken(array(
                    'type' => self::PARSEERROR,
                    'data' =>
'named-entity-without-semicolon'
                ));
                $semicolon = false;
            }


            /* If the character reference is being consumed as part of
            an attribute, and the last character matched is not a
            U+003B SEMICOLON (;), and the next character is in the
            range U+0030 DIGIT ZERO to U+0039 DIGIT NINE, U+0041
            LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z,
            or U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z,
            then, for historical reasons, all the characters that were
            matched after the U+0026 AMPERSAND (&) must be unconsumed,
            and nothing is returned. */
            if (
                $inattr && !$semicolon &&
                strspn(substr($chars, $c, 1), self::ALPHA . self::DIGIT)
            ) {
                return '&' . $chars;
            }

            /* Otherwise, return a character token for the character
            corresponding to the character reference name (as given
            by the second column of the named character references table).
*/
            return HTML5_Data::utf8chr($codepoint) . substr($chars, $c);
        }
    }

    private function characterReferenceInAttributeValue($allowed = false) {
        /* Attempt to consume a character reference. */
        $entity = $this->consumeCharacterReference($allowed, true);

        /* If nothing is returned, append a U+0026 AMPERSAND
        character to the current attribute's value.

        Otherwise, append the returned character token to the
        current attribute's value. */
        $char = (!$entity)
            ? '&'
            : $entity;

        $last = count($this->token['attr']) - 1;
        $this->token['attr'][$last]['value'] .=
$char;

        /* Finally, switch back to the attribute value state that you
        were in when were switched into this state. */
    }

    /**
     * Emits a token, passing it on to the tree builder.
     */
    protected function emitToken($token, $checkStream = true) {
        if ($checkStream) {
            // Emit errors from input stream.
            while ($this->stream->errors) {
               
$this->emitToken(array_shift($this->stream->errors), false);
            }
        }

        // the current structure of attributes is not a terribly good one
        $this->tree->emitToken($token);

        if(is_int($this->tree->content_model)) {
            $this->content_model = $this->tree->content_model;
            $this->tree->content_model = null;

        } elseif($token['type'] === self::ENDTAG) {
            $this->content_model = self::PCDATA;
        }
    }
}

PK�X�[͘Í����4offlajnparams/compat/libraries/html5/TreeBuilder.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnjoomla3compat - Offlajn Joomla 3 Compatibility
# -------------------------------------------------------------------------
# @ author    Jeno Kovacs
# @ copyright Copyright (C) 2014 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/*

Copyright 2007 Jeroen van der Meer <http://jero.net/>
Copyright 2009 Edward Z. Yang <edwardzyang@thewritingpot.com>

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction,
including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/

// Tags for FIX ME!!!: (in order of priority)
//      XXX - should be fixed NAO!
//      XERROR - with regards to parse errors
//      XSCRIPT - with regards to scripting mode
//      XENCODING - with regards to encoding (for reparsing tests)

class HTML5_TreeBuilder {
    public $stack = array();
    public $content_model;

    private $mode;
    private $original_mode;
    private $secondary_mode;
    private $dom;
    // Whether or not normal insertion of nodes should actually foster
    // parent (used in one case in spec)
    private $foster_parent = false;
    private $a_formatting  = array();

    private $head_pointer = null;
    private $form_pointer = null;

    private $flag_frameset_ok = true;
    private $flag_force_quirks = false;
    private $ignored = false;
    private $quirks_mode = null;
    // this gets to 2 when we want to ignore the next lf character, and
    // is decrement at the beginning of each processed token (this way,
    // code can check for (bool)$ignore_lf_token, but it phases out
    // appropriately)
    private $ignore_lf_token = 0;
    private $fragment = false;
    private $root;

    private $scoping =
array('applet','button','caption','html','marquee','object','table','td','th',
'svg:foreignObject');
    private $formatting =
array('a','b','big','code','em','font','i','nobr','s','small','strike','strong','tt','u');
    private $special =
array('address','area','article','aside','base','basefont','bgsound',
   
'blockquote','body','br','center','col','colgroup','command','dd','details','dialog','dir','div','dl',
   
'dt','embed','fieldset','figure','footer','form','frame','frameset','h1','h2','h3','h4','h5',
   
'h6','head','header','hgroup','hr','iframe','img','input','isindex','li','link',
   
'listing','menu','meta','nav','noembed','noframes','noscript','ol',
   
'p','param','plaintext','pre','script','select','spacer','style',
   
'tbody','textarea','tfoot','thead','title','tr','ul','wbr');

    // Tree construction modes
    const INITIAL           = 0;
    const BEFORE_HTML       = 1;
    const BEFORE_HEAD       = 2;
    const IN_HEAD           = 3;
    const IN_HEAD_NOSCRIPT  = 4;
    const AFTER_HEAD        = 5;
    const IN_BODY           = 6;
    const IN_CDATA_RCDATA   = 7;
    const IN_TABLE          = 8;
    const IN_CAPTION        = 9;
    const IN_COLUMN_GROUP   = 10;
    const IN_TABLE_BODY     = 11;
    const IN_ROW            = 12;
    const IN_CELL           = 13;
    const IN_SELECT         = 14;
    const IN_SELECT_IN_TABLE= 15;
    const IN_FOREIGN_CONTENT= 16;
    const AFTER_BODY        = 17;
    const IN_FRAMESET       = 18;
    const AFTER_FRAMESET    = 19;
    const AFTER_AFTER_BODY  = 20;
    const AFTER_AFTER_FRAMESET = 21;

    /**
     * Converts a magic number to a readable name. Use for debugging.
     */
    private function strConst($number) {
        static $lookup;
        if (!$lookup) {
            $r = new ReflectionClass('HTML5_TreeBuilder');
            $lookup = array_flip($r->getConstants());
        }
        return $lookup[$number];
    }

    // The different types of elements.
    const SPECIAL    = 100;
    const SCOPING    = 101;
    const FORMATTING = 102;
    const PHRASING   = 103;

    // Quirks modes in $quirks_mode
    const NO_QUIRKS             = 200;
    const QUIRKS_MODE           = 201;
    const LIMITED_QUIRKS_MODE   = 202;

    // Marker to be placed in $a_formatting
    const MARKER     = 300;

    // Namespaces for foreign content
    const NS_HTML   = null; // to prevent DOM from requiring NS on
everything
    const NS_MATHML = 'http://www.w3.org/1998/Math/MathML';
    const NS_SVG    = 'http://www.w3.org/2000/svg';
    const NS_XLINK  = 'http://www.w3.org/1999/xlink';
    const NS_XML    = 'http://www.w3.org/XML/1998/namespace';
    const NS_XMLNS  = 'http://www.w3.org/2000/xmlns/';

    public function __construct() {
        $this->mode = self::INITIAL;
        $this->dom = new DOMDocument;

        $this->dom->encoding = 'UTF-8';
        $this->dom->preserveWhiteSpace = true;
        $this->dom->substituteEntities = true;
        $this->dom->strictErrorChecking = false;
    }

    // Process tag tokens
    public function emitToken($token, $mode = null) {
        // XXX: ignore parse errors... why are we emitting them, again?
        if ($token['type'] === HTML5_Tokenizer::PARSEERROR)
return;
        if ($mode === null) $mode = $this->mode;

        /*
        $backtrace = debug_backtrace();
        if ($backtrace[1]['class'] !==
'HTML5_TreeBuilder') echo "--\n";
        echo $this->strConst($mode);
        if ($this->original_mode) echo " (originally
".$this->strConst($this->original_mode).")";
        echo "\n  ";
        token_dump($token);
        $this->printStack();
        $this->printActiveFormattingElements();
        if ($this->foster_parent) echo "  -> this is a foster
parent mode\n";
        */

        if ($this->ignore_lf_token) $this->ignore_lf_token--;
        $this->ignored = false;
        // indenting is a little wonky, this can be changed later on
        switch ($mode) {

    case self::INITIAL:

        /* A character token that is one of U+0009 CHARACTER TABULATION,
         * U+000A LINE FEED (LF), U+000C FORM FEED (FF),  or U+0020 SPACE
*/
        if ($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Ignore the token. */
            $this->ignored = true;
        } elseif ($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            if (
                $token['name'] !== 'html' ||
!empty($token['public']) ||
                !empty($token['system']) || $token !==
'about:legacy-compat'
            ) {
                /* If the DOCTYPE token's name is not a case-sensitive
match
                 * for the string "html", or if the token's
public identifier
                 * is not missing, or if the token's system identifier
is
                 * neither missing nor a case-sensitive match for the
string
                 * "about:legacy-compat", then there is a parse
error (this
                 * is the DOCTYPE parse error). */
                // DOCTYPE parse error
            }
            /* Append a DocumentType node to the Document node, with the
name
             * attribute set to the name given in the DOCTYPE token, or the
             * empty string if the name was missing; the publicId attribute
             * set to the public identifier given in the DOCTYPE token, or
             * the empty string if the public identifier was missing; the
             * systemId attribute set to the system identifier given in the
             * DOCTYPE token, or the empty string if the system identifier
             * was missing; and the other attributes specific to
             * DocumentType objects set to null and empty lists as
             * appropriate. Associate the DocumentType node with the
             * Document object so that it is returned as the value of the
             * doctype attribute of the Document object. */
            if (!isset($token['public']))
$token['public'] = null;
            if (!isset($token['system']))
$token['system'] = null;
            // Yes this is hacky. I'm kind of annoyed that I
can't appendChild
            // a doctype to DOMDocument. Maybe I haven't chanted the
right
            // syllables.
            $impl = new DOMImplementation();
            // This call can fail for particularly pathological cases
(namely,
            // the qualifiedName parameter ($token['name']) could
be missing.
            if ($token['name']) {
                $doctype =
$impl->createDocumentType($token['name'],
$token['public'], $token['system']);
                $this->dom->appendChild($doctype);
            } else {
                // It looks like libxml's not actually *able* to
express this case.
                // So... don't.
                $this->dom->emptyDoctype = true;
            }
            $public = is_null($token['public']) ? false :
strtolower($token['public']);
            $system = is_null($token['system']) ? false :
strtolower($token['system']);
            $publicStartsWithForQuirks = array(
             "+//silmaril//dtd html pro v0r11 19970101//",
             "-//advasoft ltd//dtd html 3.0 aswedit +
extensions//",
             "-//as//dtd html 3.0 aswedit + extensions//",
             "-//ietf//dtd html 2.0 level 1//",
             "-//ietf//dtd html 2.0 level 2//",
             "-//ietf//dtd html 2.0 strict level 1//",
             "-//ietf//dtd html 2.0 strict level 2//",
             "-//ietf//dtd html 2.0 strict//",
             "-//ietf//dtd html 2.0//",
             "-//ietf//dtd html 2.1e//",
             "-//ietf//dtd html 3.0//",
             "-//ietf//dtd html 3.2 final//",
             "-//ietf//dtd html 3.2//",
             "-//ietf//dtd html 3//",
             "-//ietf//dtd html level 0//",
             "-//ietf//dtd html level 1//",
             "-//ietf//dtd html level 2//",
             "-//ietf//dtd html level 3//",
             "-//ietf//dtd html strict level 0//",
             "-//ietf//dtd html strict level 1//",
             "-//ietf//dtd html strict level 2//",
             "-//ietf//dtd html strict level 3//",
             "-//ietf//dtd html strict//",
             "-//ietf//dtd html//",
             "-//metrius//dtd metrius presentational//",
             "-//microsoft//dtd internet explorer 2.0 html
strict//",
             "-//microsoft//dtd internet explorer 2.0 html//",
             "-//microsoft//dtd internet explorer 2.0 tables//",
             "-//microsoft//dtd internet explorer 3.0 html
strict//",
             "-//microsoft//dtd internet explorer 3.0 html//",
             "-//microsoft//dtd internet explorer 3.0 tables//",
             "-//netscape comm. corp.//dtd html//",
             "-//netscape comm. corp.//dtd strict html//",
             "-//o'reilly and associates//dtd html 2.0//",
             "-//o'reilly and associates//dtd html extended
1.0//",
             "-//o'reilly and associates//dtd html extended
relaxed 1.0//",
             "-//spyglass//dtd html 2.0 extended//",
             "-//sq//dtd html 2.0 hotmetal + extensions//",
             "-//sun microsystems corp.//dtd hotjava html//",
             "-//sun microsystems corp.//dtd hotjava strict
html//",
             "-//w3c//dtd html 3 1995-03-24//",
             "-//w3c//dtd html 3.2 draft//",
             "-//w3c//dtd html 3.2 final//",
             "-//w3c//dtd html 3.2//",
             "-//w3c//dtd html 3.2s draft//",
             "-//w3c//dtd html 4.0 frameset//",
             "-//w3c//dtd html 4.0 transitional//",
             "-//w3c//dtd html experimental 19960712//",
             "-//w3c//dtd html experimental 970421//",
             "-//w3c//dtd w3 html//",
             "-//w3o//dtd w3 html 3.0//",
             "-//webtechs//dtd mozilla html 2.0//",
             "-//webtechs//dtd mozilla html//",
            );
            $publicSetToForQuirks = array(
             "-//w3o//dtd w3 html strict 3.0//",
             "-/w3c/dtd html 4.0 transitional/en",
             "html",
            );
            $publicStartsWithAndSystemForQuirks = array(
             "-//w3c//dtd html 4.01 frameset//",
             "-//w3c//dtd html 4.01 transitional//",
            );
            $publicStartsWithForLimitedQuirks = array(
             "-//w3c//dtd xhtml 1.0 frameset//",
             "-//w3c//dtd xhtml 1.0 transitional//",
            );
            $publicStartsWithAndSystemForLimitedQuirks = array(
             "-//w3c//dtd html 4.01 frameset//",
             "-//w3c//dtd html 4.01 transitional//",
            );
            // first, do easy checks
            if (
                !empty($token['force-quirks']) ||
                strtolower($token['name']) !== 'html'
            ) {
                $this->quirks_mode = self::QUIRKS_MODE;
            } else {
                do {
                    if ($system) {
                        foreach ($publicStartsWithAndSystemForQuirks as $x)
{
                            if (strncmp($public, $x, strlen($x)) === 0) {
                                $this->quirks_mode = self::QUIRKS_MODE;
                                break;
                            }
                        }
                        if (!is_null($this->quirks_mode)) break;
                        foreach ($publicStartsWithAndSystemForLimitedQuirks
as $x) {
                            if (strncmp($public, $x, strlen($x)) === 0) {
                                $this->quirks_mode =
self::LIMITED_QUIRKS_MODE;
                                break;
                            }
                        }
                        if (!is_null($this->quirks_mode)) break;
                    }
                    foreach ($publicSetToForQuirks as $x) {
                        if ($public === $x) {
                            $this->quirks_mode = self::QUIRKS_MODE;
                            break;
                        }
                    }
                    if (!is_null($this->quirks_mode)) break;
                    foreach ($publicStartsWithForLimitedQuirks as $x) {
                        if (strncmp($public, $x, strlen($x)) === 0) {
                            $this->quirks_mode =
self::LIMITED_QUIRKS_MODE;
                        }
                    }
                    if (!is_null($this->quirks_mode)) break;
                    if ($system ===
"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd") {
                        $this->quirks_mode = self::QUIRKS_MODE;
                        break;
                    }
                    foreach ($publicStartsWithForQuirks as $x) {
                        if (strncmp($public, $x, strlen($x)) === 0) {
                            $this->quirks_mode = self::QUIRKS_MODE;
                            break;
                        }
                    }
                    if (is_null($this->quirks_mode)) {
                        $this->quirks_mode = self::NO_QUIRKS;
                    }
                } while (false);
            }
            $this->mode = self::BEFORE_HTML;
        } else {
            // parse error
            /* Switch the insertion mode to "before html", then
reprocess the
             * current token. */
            $this->mode = self::BEFORE_HTML;
            $this->quirks_mode = self::QUIRKS_MODE;
            $this->emitToken($token);
        }
        break;

    case self::BEFORE_HTML:

        /* A DOCTYPE token */
        if($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // Parse error. Ignore the token.
            $this->ignored = true;

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the Document object with the data
            attribute set to the data given in the comment token. */
            $comment =
$this->dom->createComment($token['data']);
            $this->dom->appendChild($comment);

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        } elseif($token['type'] ===
HTML5_Tokenizer::SPACECHARACTER) {
            /* Ignore the token. */
            $this->ignored = true;

        /* A start tag whose tag name is "html" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] == 'html') {
            /* Create an element for the token in the HTML namespace.
Append it 
             * to the Document  object. Put this element in the stack of
open 
             * elements. */
            $html = $this->insertElement($token, false);
            $this->dom->appendChild($html);
            $this->stack[] = $html;

            $this->mode = self::BEFORE_HEAD;

        } else {
            /* Create an html element. Append it to the Document object.
Put
             * this element in the stack of open elements. */
            $html = $this->dom->createElementNS(self::NS_HTML,
'html');
            $this->dom->appendChild($html);
            $this->stack[] = $html;

            /* Switch the insertion mode to "before head", then
reprocess the
             * current token. */
            $this->mode = self::BEFORE_HEAD;
            $this->emitToken($token);
        }
        break;

    case self::BEFORE_HEAD:

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Ignore the token. */
            $this->ignored = true;

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
attribute
            set to the data given in the comment token. */
            $this->insertComment($token['data']);

        /* A DOCTYPE token */
        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            /* Parse error. Ignore the token */
            $this->ignored = true;
            // parse error

        /* A start tag token with the tag name "html" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            /* Process the token using the rules for the "in
body"
             * insertion mode. */
            $this->processWithRulesFor($token, self::IN_BODY);

        /* A start tag token with the tag name "head" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'head') {
            /* Insert an HTML element for the token. */
            $element = $this->insertElement($token);

            /* Set the head element pointer to this new element node. */
            $this->head_pointer = $element;

            /* Change the insertion mode to "in head". */
            $this->mode = self::IN_HEAD;

        /* An end tag whose tag name is one of: "head",
"body", "html", "br" */
        } elseif(
            $token['type'] === HTML5_Tokenizer::ENDTAG &&
(
                $token['name'] === 'head' ||
$token['name'] === 'body' ||
                $token['name'] === 'html' ||
$token['name'] === 'br'
        )) {
            /* Act as if a start tag token with the tag name
"head" and no
             * attributes had been seen, then reprocess the current token.
*/
            $this->emitToken(array(
                'name' => 'head',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));
            $this->emitToken($token);

        /* Any other end tag */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG) {
            /* Parse error. Ignore the token. */
            $this->ignored = true;

        } else {
            /* Act as if a start tag token with the tag name
"head" and no
             * attributes had been seen, then reprocess the current token.
             * Note: This will result in an empty head element being
             * generated, with the current token being reprocessed in the
             * "after head" insertion mode. */
            $this->emitToken(array(
                'name' => 'head',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));
            $this->emitToken($token);
        }
        break;

    case self::IN_HEAD:

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE. */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Insert the character into the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
attribute
            set to the data given in the comment token. */
            $this->insertComment($token['data']);

        /* A DOCTYPE token */
        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            /* Parse error. Ignore the token. */
            $this->ignored = true;
            // parse error

        /* A start tag whose tag name is "html" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* A start tag whose tag name is one of: "base",
"command", "link" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'base' ||
$token['name'] === 'command' ||
        $token['name'] === 'link')) {
            /* Insert an HTML element for the token. Immediately pop the
             * current node off the stack of open elements. */
            $this->insertElement($token);
            array_pop($this->stack);

            // YYY: Acknowledge the token's self-closing flag, if it
is set.

        /* A start tag whose tag name is "meta" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'meta') {
            /* Insert an HTML element for the token. Immediately pop the
             * current node off the stack of open elements. */
            $this->insertElement($token);
            array_pop($this->stack);

            // XERROR: Acknowledge the token's self-closing flag, if
it is set.

            // XENCODING: If the element has a charset attribute, and its
value is a
            // supported encoding, and the confidence is currently
tentative,
            // then change the encoding to the encoding given by the value
of
            // the charset attribute.
            //
            // Otherwise, if the element has a content attribute, and
applying
            // the algorithm for extracting an encoding from a Content-Type
to
            // its value returns a supported encoding encoding, and the
            // confidence is currently tentative, then change the encoding
to
            // the encoding encoding.

        /* A start tag with the tag name "title" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'title') {
            $this->insertRCDATAElement($token);

        /* A start tag whose tag name is "noscript", if the
scripting flag is enabled, or
         * A start tag whose tag name is one of: "noframes",
"style" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'noscript' ||
$token['name'] === 'noframes' ||
$token['name'] === 'style')) {
            // XSCRIPT: Scripting flag not respected
            $this->insertCDATAElement($token);

        // XSCRIPT: Scripting flag disable not implemented

        /* A start tag with the tag name "script" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'script') {
            /* 1. Create an element for the token in the HTML namespace. */
            $node = $this->insertElement($token, false);

            /* 2. Mark the element as being "parser-inserted" */
            // Uhhh... XSCRIPT

            /* 3. If the parser was originally created for the HTML
             * fragment parsing algorithm, then mark the script element as 
             * "already executed". (fragment case) */
            // ditto... XSCRIPT

            /* 4. Append the new element to the current node  and push it
onto 
             * the stack of open elements.  */
            end($this->stack)->appendChild($node);
            $this->stack[] = $node;
            // I guess we could squash these together

            /* 6. Let the original insertion mode be the current insertion
mode. */
            $this->original_mode = $this->mode;
            /* 7. Switch the insertion mode to "in CDATA/RCDATA"
*/
            $this->mode = self::IN_CDATA_RCDATA;
            /* 5. Switch the tokeniser's content model flag to the
CDATA state. */
            $this->content_model = HTML5_Tokenizer::CDATA;

        /* An end tag with the tag name "head" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'head') {
            /* Pop the current node (which will be the head element) off
the stack of open elements. */
            array_pop($this->stack);

            /* Change the insertion mode to "after head". */
            $this->mode = self::AFTER_HEAD;

        // Slight logic inversion here to minimize duplication
        /* A start tag with the tag name "head". */
        /* An end tag whose tag name is not one of: "body",
"html", "br" */
        } elseif(($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'head') ||
        ($token['type'] === HTML5_Tokenizer::ENDTAG &&
$token['name'] !== 'html' &&
        $token['name'] !== 'body' &&
$token['name'] !== 'br')) {
            // Parse error. Ignore the token.
            $this->ignored = true;

        /* Anything else */
        } else {
            /* Act as if an end tag token with the tag name
"head" had been
             * seen, and reprocess the current token. */
            $this->emitToken(array(
                'name' => 'head',
                'type' => HTML5_Tokenizer::ENDTAG
            ));

            /* Then, reprocess the current token. */
            $this->emitToken($token);
        }
        break;

    case self::IN_HEAD_NOSCRIPT:
        if ($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error
        } elseif ($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);
        } elseif ($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'noscript') {
            /* Pop the current node (which will be a noscript element) from
the
             * stack of open elements; the new current node will be a head
             * element. */
            array_pop($this->stack);
            $this->mode = self::IN_HEAD;
        } elseif (
            ($token['type'] === HTML5_Tokenizer::SPACECHARACTER)
||
            ($token['type'] === HTML5_Tokenizer::COMMENT) ||
            ($token['type'] === HTML5_Tokenizer::STARTTAG
&& (
                $token['name'] === 'link' ||
$token['name'] === 'meta' ||
                $token['name'] === 'noframes' ||
$token['name'] === 'style'))) {
            $this->processWithRulesFor($token, self::IN_HEAD);
        // inverted logic
        } elseif (
            ($token['type'] === HTML5_Tokenizer::STARTTAG
&& (
                $token['name'] === 'head' ||
$token['name'] === 'noscript')) ||
            ($token['type'] === HTML5_Tokenizer::ENDTAG
&&
                $token['name'] !== 'br')) {
            // parse error
        } else {
            // parse error
            $this->emitToken(array(
                'type' => HTML5_Tokenizer::ENDTAG,
                'name' => 'noscript',
            ));
            $this->emitToken($token);
        }
        break;

    case self::AFTER_HEAD:
        /* Handle the token as follows: */

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Append the character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
attribute
            set to the data given in the comment token. */
            $this->insertComment($token['data']);

        } elseif ($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        } elseif ($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* A start tag token with the tag name "body" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'body') {
            $this->insertElement($token);

            /* Set the frameset-ok flag to "not ok". */
            $this->flag_frameset_ok = false;

            /* Change the insertion mode to "in body". */
            $this->mode = self::IN_BODY;

        /* A start tag token with the tag name "frameset" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'frameset') {
            /* Insert a frameset element for the token. */
            $this->insertElement($token);

            /* Change the insertion mode to "in frameset". */
            $this->mode = self::IN_FRAMESET;

        /* A start tag token whose tag name is one of: "base",
"link", "meta",
        "script", "style", "title" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('base', 'link', 'meta',
'noframes', 'script', 'style',
'title'))) {
            // parse error
            /* Push the node pointed to by the head element pointer onto
the
             * stack of open elements. */
            $this->stack[] = $this->head_pointer;
            $this->processWithRulesFor($token, self::IN_HEAD);
            array_splice($this->stack,
array_search($this->head_pointer, $this->stack, true), 1);

        // inversion of specification
        } elseif(
        ($token['type'] === HTML5_Tokenizer::STARTTAG &&
$token['name'] === 'head') ||
        ($token['type'] === HTML5_Tokenizer::ENDTAG &&
            $token['name'] !== 'body' &&
$token['name'] !== 'html' &&
            $token['name'] !== 'br')) {
            // parse error

        /* Anything else */
        } else {
            $this->emitToken(array(
                'name' => 'body',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));
            $this->flag_frameset_ok = true;
            $this->emitToken($token);
        }
        break;

    case self::IN_BODY:
        /* Handle the token as follows: */

        switch($token['type']) {
            /* A character token */
            case HTML5_Tokenizer::CHARACTER:
            case HTML5_Tokenizer::SPACECHARACTER:
                /* Reconstruct the active formatting elements, if any. */
                $this->reconstructActiveFormattingElements();

                /* Append the token's character to the current node.
*/
                $this->insertText($token['data']);

                /* If the token is not one of U+0009 CHARACTER TABULATION,
                 * U+000A LINE FEED (LF), U+000C FORM FEED (FF),  or U+0020
                 * SPACE, then set the frameset-ok flag to "not
ok". */
                // i.e., if any of the characters is not whitespace
                if (strlen($token['data']) !==
strspn($token['data'], HTML5_Tokenizer::WHITESPACE)) {
                    $this->flag_frameset_ok = false;
                }
            break;

            /* A comment token */
            case HTML5_Tokenizer::COMMENT:
                /* Append a Comment node to the current node with the data
                attribute set to the data given in the comment token. */
                $this->insertComment($token['data']);
            break;

            case HTML5_Tokenizer::DOCTYPE:
                // parse error
            break;

            case HTML5_Tokenizer::STARTTAG:
            switch($token['name']) {
                case 'html':
                    // parse error
                    /* For each attribute on the token, check to see if the
                     * attribute is already present on the top element of
the
                     * stack of open elements. If it is not, add the
attribute
                     * and its corresponding value to that element. */
                    foreach($token['attr'] as $attr) {
                       
if(!$this->stack[0]->hasAttribute($attr['name'])) {
                           
$this->stack[0]->setAttribute($attr['name'],
$attr['value']);
                        }
                    }
                break;

                case 'base': case 'command': case
'link': case 'meta': case 'noframes':
                case 'script': case 'style': case
'title':
                    /* Process the token as if the insertion mode had been
"in
                    head". */
                    $this->processWithRulesFor($token, self::IN_HEAD);
                break;

                /* A start tag token with the tag name "body" */
                case 'body':
                    /* Parse error. If the second element on the stack of
open
                    elements is not a body element, or, if the stack of
open
                    elements has only one node on it, then ignore the
token.
                    (fragment case) */
                    if(count($this->stack) === 1 ||
$this->stack[1]->tagName !== 'body') {
                        $this->ignored = true;
                        // Ignore

                    /* Otherwise, for each attribute on the token, check to
see
                    if the attribute is already present on the body element
(the
                    second element)    on the stack of open elements. If it
is not,
                    add the attribute and its corresponding value to that
                    element. */
                    } else {
                        foreach($token['attr'] as $attr) {
                           
if(!$this->stack[1]->hasAttribute($attr['name'])) {
                               
$this->stack[1]->setAttribute($attr['name'],
$attr['value']);
                            }
                        }
                    }
                break;

                case 'frameset':
                    // parse error
                    /* If the second element on the stack of open elements
is
                     * not a body element, or, if the stack of open
elements
                     * has only one node on it, then ignore the token.
                     * (fragment case) */
                    if(count($this->stack) === 1 ||
$this->stack[1]->tagName !== 'body') {
                        $this->ignored = true;
                        // Ignore
                    } elseif (!$this->flag_frameset_ok) {
                        $this->ignored = true;
                        // Ignore
                    } else {
                        /* 1. Remove the second element on the stack of
open 
                         * elements from its parent node, if it has one. 
*/
                        if($this->stack[1]->parentNode) {
                           
$this->stack[1]->parentNode->removeChild($this->stack[1]);
                        }

                        /* 2. Pop all the nodes from the bottom of the
stack of 
                         * open elements, from the current node up to the
root 
                         * html element. */
                        array_splice($this->stack, 1);

                        $this->insertElement($token);
                        $this->mode = self::IN_FRAMESET;
                    }
                break;

                // in spec, there is a diversion here

                case 'address': case 'article': case
'aside': case 'blockquote':
                case 'center': case 'datagrid': case
'details': case 'dialog': case 'dir':
                case 'div': case 'dl': case
'fieldset': case 'figure': case 'footer':
                case 'header': case 'hgroup': case
'menu': case 'nav':
                case 'ol': case 'p': case
'section': case 'ul':
                    /* If the stack of open elements has a p element in
scope,
                    then act as if an end tag with the tag name p had been
                    seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);
                break;

                /* A start tag whose tag name is one of: "h1",
"h2", "h3", "h4",
                "h5", "h6" */
                case 'h1': case 'h2': case
'h3': case 'h4': case 'h5': case
'h6':
                    /* If the stack of open elements has a p  element in
scope,
                    then act as if an end tag with the tag name p had been
seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* If the current node is an element whose tag name is
one
                     * of "h1", "h2", "h3",
"h4", "h5", or "h6", then this is a
                     * parse error; pop the current node off the stack of
open
                     * elements. */
                    $peek = array_pop($this->stack);
                    if (in_array($peek->tagName, array("h1",
"h2", "h3", "h4", "h5",
"h6"))) {
                        // parse error
                    } else {
                        $this->stack[] = $peek;
                    }

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);
                break;

                case 'pre': case 'listing':
                    /* If the stack of open elements has a p  element in
scope,
                    then act as if an end tag with the tag name p had been
seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }
                    $this->insertElement($token);
                    /* If the next token is a U+000A LINE FEED (LF)
character
                     * token, then ignore that token and move on to the
next
                     * one. (Newlines at the start of pre blocks are
ignored as
                     * an authoring convenience.) */
                    $this->ignore_lf_token = 2;
                    $this->flag_frameset_ok = false;
                break;

                /* A start tag whose tag name is "form" */
                case 'form':
                    /* If the form element pointer is not null, ignore the
                    token with a parse error. */
                    if($this->form_pointer !== null) {
                        $this->ignored = true;
                        // Ignore.

                    /* Otherwise: */
                    } else {
                        /* If the stack of open elements has a p element in
                        scope, then act as if an end tag with the tag name
p
                        had been seen. */
                        if($this->elementInScope('p')) {
                            $this->emitToken(array(
                                'name' => 'p',
                                'type' =>
HTML5_Tokenizer::ENDTAG
                            ));
                        }

                        /* Insert an HTML element for the token, and set
the
                        form element pointer to point to the element
created. */
                        $element = $this->insertElement($token);
                        $this->form_pointer = $element;
                    }
                break;

                // condensed specification
                case 'li': case 'dd': case
'dt':
                    /* 1. Set the frameset-ok flag to "not ok".
*/
                    $this->flag_frameset_ok = false;

                    $stack_length = count($this->stack) - 1;
                    for($n = $stack_length; 0 <= $n; $n--) {
                        /* 2. Initialise node to be the current node (the
                        bottommost node of the stack). */
                        $stop = false;
                        $node = $this->stack[$n];
                        $cat  = $this->getElementCategory($node);

                        // for case 'li':
                        /* 3. If node is an li element, then act as if an
end
                         * tag with the tag name "li" had been
seen, then jump
                         * to the last step.  */
                        // for case 'dd': case 'dt':
                        /* If node is a dd or dt element, then act as if an
end
                         * tag with the same tag name as node had been
seen, then
                         * jump to the last step. */
                        if(($token['name'] === 'li'
&& $node->tagName === 'li') ||
                        ($token['name'] !== 'li'
&& ($node->tagName === 'dd' || $node->tagName ===
'dt'))) { // limited conditional
                            $this->emitToken(array(
                                'type' =>
HTML5_Tokenizer::ENDTAG,
                                'name' => $node->tagName,
                            ));
                            break;
                        }

                        /* 4. If node is not in the formatting category,
and is
                        not    in the phrasing category, and is not an
address,
                        div or p element, then stop this algorithm. */
                        if($cat !== self::FORMATTING && $cat !==
self::PHRASING &&
                        $node->tagName !== 'address'
&& $node->tagName !== 'div' &&
                        $node->tagName !== 'p') {
                            break;
                        }

                        /* 5. Otherwise, set node to the previous entry in
the
                         * stack of open elements and return to step 2. */
                    }

                    /* 6. This is the last step. */

                    /* If the stack of open elements has a p  element in
scope,
                    then act as if an end tag with the tag name p had been
                    seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Finally, insert an HTML element with the same tag
                    name as the    token's. */
                    $this->insertElement($token);
                break;

                /* A start tag token whose tag name is
"plaintext" */
                case 'plaintext':
                    /* If the stack of open elements has a p  element in
scope,
                    then act as if an end tag with the tag name p had been
                    seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    $this->content_model = HTML5_Tokenizer::PLAINTEXT;
                break;

                // more diversions

                /* A start tag whose tag name is "a" */
                case 'a':
                    /* If the list of active formatting elements contains
                    an element whose tag name is "a" between the
end of the
                    list and the last marker on the list (or the start of
                    the list if there is no marker on the list), then this
                    is a parse error; act as if an end tag with the tag
name
                    "a" had been seen, then remove that element
from the list
                    of active formatting elements and the stack of open
                    elements if the end tag didn't already remove it
(it
                    might not have if the element is not in table scope).
*/
                    $leng = count($this->a_formatting);

                    for($n = $leng - 1; $n >= 0; $n--) {
                        if($this->a_formatting[$n] === self::MARKER) {
                            break;

                        } elseif($this->a_formatting[$n]->tagName ===
'a') {
                            $a = $this->a_formatting[$n];
                            $this->emitToken(array(
                                'name' => 'a',
                                'type' =>
HTML5_Tokenizer::ENDTAG
                            ));
                            if (in_array($a, $this->a_formatting)) {
                                $a_i = array_search($a,
$this->a_formatting, true);
                                if($a_i !== false)
array_splice($this->a_formatting, $a_i, 1);
                            }
                            if (in_array($a, $this->stack)) {
                                $a_i = array_search($a, $this->stack,
true);
                                if ($a_i !== false)
array_splice($this->stack, $a_i, 1);
                            }
                            break;
                        }
                    }

                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $el = $this->insertElement($token);

                    /* Add that element to the list of active formatting
                    elements. */
                    $this->a_formatting[] = $el;
                break;

                case 'b': case 'big': case
'code': case 'em': case 'font': case
'i':
                case 's': case 'small': case
'strike':
                case 'strong': case 'tt': case
'u':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $el = $this->insertElement($token);

                    /* Add that element to the list of active formatting
                    elements. */
                    $this->a_formatting[] = $el;
                break;

                case 'nobr':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* If the stack of open elements has a nobr element in
                     * scope, then this is a parse error; act as if an end
tag
                     * with the tag name "nobr" had been seen,
then once again
                     * reconstruct the active formatting elements, if any.
*/
                    if ($this->elementInScope('nobr')) {
                        $this->emitToken(array(
                            'name' => 'nobr',
                            'type' => HTML5_Tokenizer::ENDTAG,
                        ));
                        $this->reconstructActiveFormattingElements();
                    }

                    /* Insert an HTML element for the token. */
                    $el = $this->insertElement($token);

                    /* Add that element to the list of active formatting
                    elements. */
                    $this->a_formatting[] = $el;
                break;

                // another diversion

                /* A start tag token whose tag name is "button"
*/
                case 'button':
                    /* If the stack of open elements has a button element
in scope,
                    then this is a parse error; act as if an end tag with
the tag
                    name "button" had been seen, then reprocess
the token. (We don't
                    do that. Unnecessary.) (I hope you're right! --
ezyang) */
                    if($this->elementInScope('button')) {
                        $this->emitToken(array(
                            'name' => 'button',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    /* Insert a marker at the end of the list of active
                    formatting elements. */
                    $this->a_formatting[] = self::MARKER;

                    $this->flag_frameset_ok = false;
                break;

                case 'applet': case 'marquee': case
'object':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    /* Insert a marker at the end of the list of active
                    formatting elements. */
                    $this->a_formatting[] = self::MARKER;

                    $this->flag_frameset_ok = false;
                break;

                // spec diversion

                /* A start tag whose tag name is "table" */
                case 'table':
                    /* If the stack of open elements has a p element in
scope,
                    then act as if an end tag with the tag name p had been
seen. */
                    if($this->quirks_mode !== self::QUIRKS_MODE
&&
                    $this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    $this->flag_frameset_ok = false;

                    /* Change the insertion mode to "in table".
*/
                    $this->mode = self::IN_TABLE;
                break;

                /* A start tag whose tag name is one of: "area",
"basefont",
                "bgsound", "br", "embed",
"img", "param", "spacer", "wbr" */
                case 'area': case 'basefont': case
'bgsound': case 'br':
                case 'embed': case 'img': case
'input': case 'keygen': case 'spacer':
                case 'wbr':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    /* Immediately pop the current node off the stack of
open elements. */
                    array_pop($this->stack);

                    // YYY: Acknowledge the token's self-closing flag,
if it is set.

                    $this->flag_frameset_ok = false;
                break;

                case 'param': case 'source':
                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    /* Immediately pop the current node off the stack of
open elements. */
                    array_pop($this->stack);

                    // YYY: Acknowledge the token's self-closing flag,
if it is set.
                break;

                /* A start tag whose tag name is "hr" */
                case 'hr':
                    /* If the stack of open elements has a p element in
scope,
                    then act as if an end tag with the tag name p had been
seen. */
                    if($this->elementInScope('p')) {
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    }

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    /* Immediately pop the current node off the stack of
open elements. */
                    array_pop($this->stack);

                    // YYY: Acknowledge the token's self-closing flag,
if it is set.

                    $this->flag_frameset_ok = false;
                break;

                /* A start tag whose tag name is "image" */
                case 'image':
                    /* Parse error. Change the token's tag name to
"img" and
                    reprocess it. (Don't ask.) */
                    $token['name'] = 'img';
                    $this->emitToken($token);
                break;

                /* A start tag whose tag name is "isindex" */
                case 'isindex':
                    /* Parse error. */

                    /* If the form element pointer is not null,
                    then ignore the token. */
                    if($this->form_pointer === null) {
                        /* Act as if a start tag token with the tag name
"form" had
                        been seen. */
                        /* If the token has an attribute called
"action", set
                         * the action attribute on the resulting form
                         * element to the value of the "action"
attribute of
                         * the token. */
                        $attr = array();
                        $action = $this->getAttr($token,
'action');
                        if ($action !== false) {
                            $attr[] = array('name' =>
'action', 'value' => $action);
                        }
                        $this->emitToken(array(
                            'name' => 'form',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                            'attr' => $attr
                        ));

                        /* Act as if a start tag token with the tag name
"hr" had
                        been seen. */
                        $this->emitToken(array(
                            'name' => 'hr',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                            'attr' => array()
                        ));

                        /* Act as if a start tag token with the tag name
"p" had
                        been seen. */
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                            'attr' => array()
                        ));

                        /* Act as if a start tag token with the tag name
"label"
                        had been seen. */
                        $this->emitToken(array(
                            'name' => 'label',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                            'attr' => array()
                        ));

                        /* Act as if a stream of character tokens had been
seen. */
                        $prompt = $this->getAttr($token,
'prompt');
                        if ($prompt === false) {
                            $prompt = 'This is a searchable index.
'.
                            'Insert your search keywords here: ';
                        }
                        $this->emitToken(array(
                            'data' => $prompt,
                            'type' =>
HTML5_Tokenizer::CHARACTER,
                        ));

                        /* Act as if a start tag token with the tag name
"input"
                        had been seen, with all the attributes from the
"isindex"
                        token, except with the "name" attribute
set to the value
                        "isindex" (ignoring any explicit
"name" attribute). */
                        $attr = array();
                        foreach ($token['attr'] as $keypair) {
                            if ($keypair['name'] ===
'name' || $keypair['name'] === 'action' ||
                                $keypair['name'] ===
'prompt') continue;
                            $attr[] = $keypair;
                        }
                        $attr[] = array('name' =>
'name', 'value' => 'isindex');

                        $this->emitToken(array(
                            'name' => 'input',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                            'attr' => $attr
                        ));

                        /* Act as if an end tag token with the tag name
"label"
                        had been seen. */
                        $this->emitToken(array(
                            'name' => 'label',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));

                        /* Act as if an end tag token with the tag name
"p" had
                        been seen. */
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));

                        /* Act as if a start tag token with the tag name
"hr" had
                        been seen. */
                        $this->emitToken(array(
                            'name' => 'hr',
                            'type' =>
HTML5_Tokenizer::STARTTAG
                        ));

                        /* Act as if an end tag token with the tag name
"form" had
                        been seen. */
                        $this->emitToken(array(
                            'name' => 'form',
                            'type' => HTML5_Tokenizer::ENDTAG
                        ));
                    } else {
                        $this->ignored = true;
                    }
                break;

                /* A start tag whose tag name is "textarea" */
                case 'textarea':
                    $this->insertElement($token);

                    /* If the next token is a U+000A LINE FEED (LF)
                     * character token, then ignore that token and move on
to
                     * the next one. (Newlines at the start of textarea
                     * elements are ignored as an authoring convenience.)
                     * need flag, see also <pre> */
                    $this->ignore_lf_token = 2;

                    $this->original_mode = $this->mode;
                    $this->flag_frameset_ok = false;
                    $this->mode = self::IN_CDATA_RCDATA;

                    /* Switch the tokeniser's content model flag to
the
                    RCDATA state. */
                    $this->content_model = HTML5_Tokenizer::RCDATA;
                break;

                /* A start tag token whose tag name is "xmp" */
                case 'xmp':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    $this->flag_frameset_ok = false;

                    $this->insertCDATAElement($token);
                break;

                case 'iframe':
                    $this->flag_frameset_ok = false;
                    $this->insertCDATAElement($token);
                break;

                case 'noembed': case 'noscript':
                    // XSCRIPT: should check scripting flag
                    $this->insertCDATAElement($token);
                break;

                /* A start tag whose tag name is "select" */
                case 'select':
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    /* Insert an HTML element for the token. */
                    $this->insertElement($token);

                    $this->flag_frameset_ok = false;

                    /* If the insertion mode is one of in table",
"in caption",
                     * "in column group", "in table
body", "in row", or "in
                     * cell", then switch the insertion mode to
"in select in
                     * table". Otherwise, switch the insertion mode 
to "in
                     * select". */
                    if (
                        $this->mode === self::IN_TABLE || $this->mode
=== self::IN_CAPTION ||
                        $this->mode === self::IN_COLUMN_GROUP ||
$this->mode ==+self::IN_TABLE_BODY ||
                        $this->mode === self::IN_ROW || $this->mode
=== self::IN_CELL
                    ) {
                        $this->mode = self::IN_SELECT_IN_TABLE;
                    } else {
                        $this->mode = self::IN_SELECT;
                    }
                break;

                case 'option': case 'optgroup':
                    if ($this->elementInScope('option')) {
                        $this->emitToken(array(
                            'name' => 'option',
                            'type' => HTML5_Tokenizer::ENDTAG,
                        ));
                    }
                    $this->reconstructActiveFormattingElements();
                    $this->insertElement($token);
                break;

                case 'rp': case 'rt':
                    /* If the stack of open elements has a ruby element in
scope, then generate
                     * implied end tags. If the current node is not then a
ruby element, this is
                     * a parse error; pop all the nodes from the current
node up to the node
                     * immediately before the bottommost ruby element on
the stack of open elements.
                     */
                    if ($this->elementInScope('ruby')) {
                        $this->generateImpliedEndTags();
                    }
                    $peek = false;
                    do {
                        if ($peek) {
                            // parse error
                        }
                        $peek = array_pop($this->stack);
                    } while ($peek->tagName !== 'ruby');
                    $this->stack[] = $peek; // we popped one too many
                    $this->insertElement($token);
                break;

                // spec diversion

                case 'math':
                    $this->reconstructActiveFormattingElements();
                    $token = $this->adjustMathMLAttributes($token);
                    $token = $this->adjustForeignAttributes($token);
                    $this->insertForeignElement($token,
self::NS_MATHML);
                    if (isset($token['self-closing'])) {
                        // XERROR: acknowledge the token's
self-closing flag
                        array_pop($this->stack);
                    }
                    if ($this->mode !== self::IN_FOREIGN_CONTENT) {
                        $this->secondary_mode = $this->mode;
                        $this->mode = self::IN_FOREIGN_CONTENT;
                    }
                break;

                case 'svg':
                    $this->reconstructActiveFormattingElements();
                    $token = $this->adjustSVGAttributes($token);
                    $token = $this->adjustForeignAttributes($token);
                    $this->insertForeignElement($token, self::NS_SVG);
                    if (isset($token['self-closing'])) {
                        // XERROR: acknowledge the token's
self-closing flag
                        array_pop($this->stack);
                    }
                    if ($this->mode !== self::IN_FOREIGN_CONTENT) {
                        $this->secondary_mode = $this->mode;
                        $this->mode = self::IN_FOREIGN_CONTENT;
                    }
                break;

                case 'caption': case 'col': case
'colgroup': case 'frame': case 'head':
                case 'tbody': case 'td': case
'tfoot': case 'th': case 'thead': case
'tr':
                    // parse error
                break;

                /* A start tag token not covered by the previous entries */
                default:
                    /* Reconstruct the active formatting elements, if any.
*/
                    $this->reconstructActiveFormattingElements();

                    $this->insertElement($token);
                    /* This element will be a phrasing  element. */
                break;
            }
            break;

            case HTML5_Tokenizer::ENDTAG:
            switch($token['name']) {
                /* An end tag with the tag name "body" */
                case 'body':
                    /* If the second element in the stack of open elements
is
                    not a body element, this is a parse error. Ignore the
token.
                    (innerHTML case) */
                    if(count($this->stack) < 2 ||
$this->stack[1]->tagName !== 'body') {
                        $this->ignored = true;

                    /* Otherwise, if there is a node in the stack of open
                     * elements that is not either a dd element, a dt
                     * element, an li element, an optgroup element, an
                     * option element, a p element, an rp element, an rt
                     * element, a tbody element, a td element, a tfoot
                     * element, a th element, a thead element, a tr
element,
                     * the body element, or the html element, then this is
a
                     * parse error. */
                    } else {
                        // XERROR: implement this check for parse error
                    }

                    /* Change the insertion mode to "after body".
*/
                    $this->mode = self::AFTER_BODY;
                break;

                /* An end tag with the tag name "html" */
                case 'html':
                    /* Act as if an end tag with tag name "body"
had been seen,
                    then, if that token wasn't ignored, reprocess the
current
                    token. */
                    $this->emitToken(array(
                        'name' => 'body',
                        'type' => HTML5_Tokenizer::ENDTAG
                    ));

                    if (!$this->ignored) $this->emitToken($token);
                break;

                case 'address': case 'article': case
'aside': case 'blockquote':
                case 'center': case 'datagrid': case
'details': case 'dir':
                case 'div': case 'dl': case
'fieldset': case 'figure': case 'footer':
                case 'header': case 'hgroup': case
'listing': case 'menu':
                case 'nav': case 'ol': case
'pre': case 'section': case 'ul':
                    /* If the stack of open elements has an element in
scope
                    with the same tag name as that of the token, then
generate
                    implied end tags. */
                    if($this->elementInScope($token['name']))
{
                        $this->generateImpliedEndTags();

                        /* Now, if the current node is not an element with
                        the same tag name as that of the token, then this
                        is a parse error. */
                        // XERROR: implement parse error logic

                        /* If the stack of open elements has an element in
                        scope with the same tag name as that of the token,
                        then pop elements from this stack until an element
                        with that tag name has been popped from the stack.
*/
                        do {
                            $node = array_pop($this->stack);
                        } while ($node->tagName !==
$token['name']);
                    } else {
                        // parse error
                    }
                break;

                /* An end tag whose tag name is "form" */
                case 'form':
                    /* Let node be the element that the form element
pointer is set to. */
                    $node = $this->form_pointer;
                    /* Set the form element pointer  to null. */
                    $this->form_pointer = null;
                    /* If node is null or the stack of open elements does
not 
                        * have node in scope, then this is a parse error;
ignore the token. */
                    if ($node === null || !in_array($node,
$this->stack)) {
                        // parse error
                        $this->ignored = true;
                    } else {
                        /* 1. Generate implied end tags. */
                        $this->generateImpliedEndTags();
                        /* 2. If the current node is not node, then this is
a parse error.  */
                        if (end($this->stack) !== $node) {
                            // parse error
                        }
                        /* 3. Remove node from the stack of open elements.
*/
                        array_splice($this->stack, array_search($node,
$this->stack, true), 1);
                    }

                break;

                /* An end tag whose tag name is "p" */
                case 'p':
                    /* If the stack of open elements has a p element in
scope,
                    then generate implied end tags, except for p elements.
*/
                    if($this->elementInScope('p')) {
                        /* Generate implied end tags, except for elements
with
                         * the same tag name as the token. */
                       
$this->generateImpliedEndTags(array('p'));

                        /* If the current node is not a p element, then
this is
                        a parse error. */
                        // XERROR: implement

                        /* Pop elements from the stack of open elements 
until
                         * an element with the same tag name as the token
has
                         * been popped from the stack. */
                        do {
                            $node = array_pop($this->stack);
                        } while ($node->tagName !== 'p');

                    } else {
                        // parse error
                        $this->emitToken(array(
                            'name' => 'p',
                            'type' =>
HTML5_Tokenizer::STARTTAG,
                        ));
                        $this->emitToken($token);
                    }
                break;

                /* An end tag whose tag name is "dd",
"dt", or "li" */
                case 'dd': case 'dt': case
'li':
                    if($this->elementInScope($token['name']))
{
                       
$this->generateImpliedEndTags(array($token['name']));

                        /* If the current node is not an element with the
same
                        tag name as the token, then this is a parse error.
*/
                        // XERROR: implement parse error

                        /* Pop elements from the stack of open elements 
until
                         * an element with the same tag name as the token
has
                         * been popped from the stack. */
                        do {
                            $node = array_pop($this->stack);
                        } while ($node->tagName !==
$token['name']);

                    } else {
                        // parse error
                    }
                break;

                /* An end tag whose tag name is one of: "h1",
"h2", "h3", "h4",
                "h5", "h6" */
                case 'h1': case 'h2': case
'h3': case 'h4': case 'h5': case
'h6':
                    $elements = array('h1', 'h2',
'h3', 'h4', 'h5', 'h6');

                    /* If the stack of open elements has in scope an
element whose
                    tag name is one of "h1", "h2",
"h3", "h4", "h5", or "h6", then
                    generate implied end tags. */
                    if($this->elementInScope($elements)) {
                        $this->generateImpliedEndTags();

                        /* Now, if the current node is not an element with
the same
                        tag name as that of the token, then this is a parse
error. */
                        // XERROR: implement parse error

                        /* If the stack of open elements has in scope an
element
                        whose tag name is one of "h1",
"h2", "h3", "h4", "h5", or
                        "h6", then pop elements from the stack
until an element
                        with one of those tag names has been popped from
the stack. */
                        do {
                            $node = array_pop($this->stack);
                        } while (!in_array($node->tagName, $elements));
                    } else {
                        // parse error
                    }
                break;

                /* An end tag whose tag name is one of: "a",
"b", "big", "em",
                "font", "i", "nobr",
"s", "small", "strike", "strong",
"tt", "u" */
                case 'a': case 'b': case
'big': case 'code': case 'em': case
'font':
                case 'i': case 'nobr': case
's': case 'small': case 'strike':
                case 'strong': case 'tt': case
'u':
                    // XERROR: generally speaking this needs parse error
logic
                    /* 1. Let the formatting element be the last element in
                    the list of active formatting elements that:
                        * is between the end of the list and the last scope
                        marker in the list, if any, or the start of the
list
                        otherwise, and
                        * has the same tag name as the token.
                    */
                    while(true) {
                        for($a = count($this->a_formatting) - 1; $a
>= 0; $a--) {
                            if($this->a_formatting[$a] === self::MARKER)
{
                                break;

                            } elseif($this->a_formatting[$a]->tagName
=== $token['name']) {
                                $formatting_element =
$this->a_formatting[$a];
                                $in_stack = in_array($formatting_element,
$this->stack, true);
                                $fe_af_pos = $a;
                                break;
                            }
                        }

                        /* If there is no such node, or, if that node is
                        also in the stack of open elements but the element
                        is not in scope, then this is a parse error. Abort
                        these steps. The token is ignored. */
                        if(!isset($formatting_element) || ($in_stack
&&
                       
!$this->elementInScope($token['name']))) {
                            $this->ignored = true;
                            break;

                        /* Otherwise, if there is such a node, but that
node
                        is not in the stack of open elements, then this is
a
                        parse error; remove the element from the list, and
                        abort these steps. */
                        } elseif(isset($formatting_element) &&
!$in_stack) {
                            unset($this->a_formatting[$fe_af_pos]);
                            $this->a_formatting =
array_merge($this->a_formatting);
                            break;
                        }

                        /* Otherwise, there is a formatting element and
that
                         * element is in the stack and is in scope. If the
                         * element is not the current node, this is a parse
                         * error. In any case, proceed with the algorithm
as
                         * written in the following steps. */
                        // XERROR: implement me

                        /* 2. Let the furthest block be the topmost node in
the
                        stack of open elements that is lower in the stack
                        than the formatting element, and is not an element
in
                        the phrasing or formatting categories. There might
                        not be one. */
                        $fe_s_pos = array_search($formatting_element,
$this->stack, true);
                        $length = count($this->stack);

                        for($s = $fe_s_pos + 1; $s < $length; $s++) {
                            $category =
$this->getElementCategory($this->stack[$s]);

                            if($category !== self::PHRASING &&
$category !== self::FORMATTING) {
                                $furthest_block = $this->stack[$s];
                                break;
                            }
                        }

                        /* 3. If there is no furthest block, then the UA
must
                        skip the subsequent steps and instead just pop all
                        the nodes from the bottom of the stack of open
                        elements, from the current node up to the
formatting
                        element, and remove the formatting element from the
                        list of active formatting elements. */
                        if(!isset($furthest_block)) {
                            for($n = $length - 1; $n >= $fe_s_pos; $n--)
{
                                array_pop($this->stack);
                            }

                            unset($this->a_formatting[$fe_af_pos]);
                            $this->a_formatting =
array_merge($this->a_formatting);
                            break;
                        }

                        /* 4. Let the common ancestor be the element
                        immediately above the formatting element in the
stack
                        of open elements. */
                        $common_ancestor = $this->stack[$fe_s_pos - 1];

                        /* 5. Let a bookmark note the position of the
                        formatting element in the list of active formatting
                        elements relative to the elements on either side
                        of it in the list. */
                        $bookmark = $fe_af_pos;

                        /* 6. Let node and last node  be the furthest
block.
                        Follow these steps: */
                        $node = $furthest_block;
                        $last_node = $furthest_block;

                        while(true) {
                            for($n = array_search($node, $this->stack,
true) - 1; $n >= 0; $n--) {
                                /* 6.1 Let node be the element immediately
                                prior to node in the stack of open
elements. */
                                $node = $this->stack[$n];

                                /* 6.2 If node is not in the list of active
                                formatting elements, then remove node from
                                the stack of open elements and then go back
                                to step 1. */
                                if(!in_array($node, $this->a_formatting,
true)) {
                                    array_splice($this->stack, $n, 1);

                                } else {
                                    break;
                                }
                            }

                            /* 6.3 Otherwise, if node is the formatting
                            element, then go to the next step in the
overall
                            algorithm. */
                            if($node === $formatting_element) {
                                break;

                            /* 6.4 Otherwise, if last node is the furthest
                            block, then move the aforementioned bookmark to
                            be immediately after the node in the list of
                            active formatting elements. */
                            } elseif($last_node === $furthest_block) {
                                $bookmark = array_search($node,
$this->a_formatting, true) + 1;
                            }

                            /* 6.5 Create an element for the token for
which
                             * the element node was created, replace the
entry
                             * for node in the list of active formatting
                             * elements with an entry for the new element,
                             * replace the entry for node in the stack of
open
                             * elements with an entry for the new element,
and
                             * let node be the new element. */
                            // we don't know what the token is anymore
                            $clone = $node->cloneNode();
                            $a_pos = array_search($node,
$this->a_formatting, true);
                            $s_pos = array_search($node, $this->stack,
true);
                            $this->a_formatting[$a_pos] = $clone;
                            $this->stack[$s_pos] = $clone;
                            $node = $clone;

                            /* 6.6 Insert last node into node, first
removing
                            it from its previous parent node if any. */
                            if($last_node->parentNode !== null) {
                               
$last_node->parentNode->removeChild($last_node);
                            }

                            $node->appendChild($last_node);

                            /* 6.7 Let last node be node. */
                            $last_node = $node;

                            /* 6.8 Return to step 1 of this inner set of
steps. */
                        }

                        /* 7. If the common ancestor node is a table,
tbody,
                         * tfoot, thead, or tr element, then, foster parent
                         * whatever last node ended up being in the
previous
                         * step, first removing it from its previous parent
                         * node if any. */
                        if ($last_node->parentNode) { // common step
                           
$last_node->parentNode->removeChild($last_node);
                        }
                        if (in_array($common_ancestor->tagName,
array('table', 'tbody', 'tfoot',
'thead', 'tr'))) {
                            $this->fosterParent($last_node);
                        /* Otherwise, append whatever last node  ended up
being
                         * in the previous step to the common ancestor
node,
                         * first removing it from its previous parent node
if
                         * any. */
                        } else {
                            $common_ancestor->appendChild($last_node);
                        }

                        /* 8. Create an element for the token for which the
                         * formatting element was created. */
                        $clone = $formatting_element->cloneNode();

                        /* 9. Take all of the child nodes of the furthest
                        block and append them to the element created in the
                        last step. */
                        while($furthest_block->hasChildNodes()) {
                            $child = $furthest_block->firstChild;
                            $furthest_block->removeChild($child);
                            $clone->appendChild($child);
                        }

                        /* 10. Append that clone to the furthest block. */
                        $furthest_block->appendChild($clone);

                        /* 11. Remove the formatting element from the list
                        of active formatting elements, and insert the new
element
                        into the list of active formatting elements at the
                        position of the aforementioned bookmark. */
                        $fe_af_pos = array_search($formatting_element,
$this->a_formatting, true);
                        array_splice($this->a_formatting, $fe_af_pos,
1);

                        $af_part1 = array_slice($this->a_formatting, 0,
$bookmark - 1);
                        $af_part2 = array_slice($this->a_formatting,
$bookmark);
                        $this->a_formatting = array_merge($af_part1,
array($clone), $af_part2);

                        /* 12. Remove the formatting element from the stack
                        of open elements, and insert the new element into
the stack
                        of open elements immediately below the position of
the
                        furthest block in that stack. */
                        $fe_s_pos = array_search($formatting_element,
$this->stack, true);
                        array_splice($this->stack, $fe_s_pos, 1);

                        $fb_s_pos = array_search($furthest_block,
$this->stack, true);
                        $s_part1 = array_slice($this->stack, 0,
$fb_s_pos + 1);
                        $s_part2 = array_slice($this->stack, $fb_s_pos +
1);
                        $this->stack = array_merge($s_part1,
array($clone), $s_part2);

                        /* 13. Jump back to step 1 in this series of steps.
*/
                        unset($formatting_element, $fe_af_pos, $fe_s_pos,
$furthest_block);
                    }
                break;

                case 'applet': case 'button': case
'marquee': case 'object':
                    /* If the stack of open elements has an element in
scope whose
                    tag name matches the tag name of the token, then
generate implied
                    tags. */
                    if($this->elementInScope($token['name']))
{
                        $this->generateImpliedEndTags();

                        /* Now, if the current node is not an element with
the same
                        tag name as the token, then this is a parse error.
*/
                        // XERROR: implement logic

                        /* Pop elements from the stack of open elements 
until
                         * an element with the same tag name as the token
has
                         * been popped from the stack. */
                        do {
                            $node = array_pop($this->stack);
                        } while ($node->tagName !==
$token['name']);

                        /* Clear the list of active formatting elements up
to the
                         * last marker. */
                        $keys = array_keys($this->a_formatting,
self::MARKER, true);
                        $marker = end($keys);

                        for($n = count($this->a_formatting) - 1; $n >
$marker; $n--) {
                            array_pop($this->a_formatting);
                        }
                    } else {
                        // parse error
                    }
                break;

                case 'br':
                    // Parse error
                    $this->emitToken(array(
                        'name' => 'br',
                        'type' => HTML5_Tokenizer::STARTTAG,
                    ));
                break;

                /* An end tag token not covered by the previous entries */
                default:
                    for($n = count($this->stack) - 1; $n >= 0; $n--)
{
                        /* Initialise node to be the current node (the
bottommost
                        node of the stack). */
                        $node = $this->stack[$n];

                        /* If node has the same tag name as the end tag
token,
                        then: */
                        if($token['name'] === $node->tagName)
{
                            /* Generate implied end tags. */
                            $this->generateImpliedEndTags();

                            /* If the tag name of the end tag token does
not
                            match the tag name of the current node, this is
a
                            parse error. */
                            // XERROR: implement this

                            /* Pop all the nodes from the current node up
to
                            node, including node, then stop these steps. */
                            // XSKETCHY
                            do {
                                $pop = array_pop($this->stack);
                            } while ($pop !== $node);
                            break;

                        } else {
                            $category =
$this->getElementCategory($node);

                            if($category !== self::FORMATTING &&
$category !== self::PHRASING) {
                                /* Otherwise, if node is in neither the
formatting
                                category nor the phrasing category, then
this is a
                                parse error. Stop this algorithm. The end
tag token
                                is ignored. */
                                $this->ignored = true;
                                break;
                                // parse error
                            }
                        }
                        /* Set node to the previous entry in the stack of
open elements. Loop. */
                    }
                break;
            }
            break;
        }
        break;

    case self::IN_CDATA_RCDATA:
        if (
            $token['type'] === HTML5_Tokenizer::CHARACTER ||
            $token['type'] === HTML5_Tokenizer::SPACECHARACTER
        ) {
            $this->insertText($token['data']);
        } elseif ($token['type'] === HTML5_Tokenizer::EOF) {
            // parse error
            /* If the current node is a script  element, mark the script
             * element as "already executed". */
            // probably not necessary
            array_pop($this->stack);
            $this->mode = $this->original_mode;
            $this->emitToken($token);
        } elseif ($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'script') {
            array_pop($this->stack);
            $this->mode = $this->original_mode;
            // we're ignoring all of the execution stuff
        } elseif ($token['type'] === HTML5_Tokenizer::ENDTAG) {
            array_pop($this->stack);
            $this->mode = $this->original_mode;
        }
    break;

    case self::IN_TABLE:
        $clear = array('html', 'table');

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER
&&
        /* If the current table is tainted, then act as described in
         * the "anything else" entry below. */
        // Note: hsivonen has a test that fails due to this line
        // because he wants to convince Hixie not to do taint
        !$this->currentTableIsTainted()) {
            /* Append the character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
            attribute set to the data given in the comment token. */
            $this->insertComment($token['data']);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        /* A start tag whose tag name is "caption" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'caption') {
            /* Clear the stack back to a table context. */
            $this->clearStackToTableContext($clear);

            /* Insert a marker at the end of the list of active
            formatting elements. */
            $this->a_formatting[] = self::MARKER;

            /* Insert an HTML element for the token, then switch the
            insertion mode to "in caption". */
            $this->insertElement($token);
            $this->mode = self::IN_CAPTION;

        /* A start tag whose tag name is "colgroup" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'colgroup') {
            /* Clear the stack back to a table context. */
            $this->clearStackToTableContext($clear);

            /* Insert an HTML element for the token, then switch the
            insertion mode to "in column group". */
            $this->insertElement($token);
            $this->mode = self::IN_COLUMN_GROUP;

        /* A start tag whose tag name is "col" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'col') {
            $this->emitToken(array(
                'name' => 'colgroup',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));

            $this->emitToken($token);

        /* A start tag whose tag name is one of: "tbody",
"tfoot", "thead" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('tbody', 'tfoot', 'thead'))) {
            /* Clear the stack back to a table context. */
            $this->clearStackToTableContext($clear);

            /* Insert an HTML element for the token, then switch the
insertion
            mode to "in table body". */
            $this->insertElement($token);
            $this->mode = self::IN_TABLE_BODY;

        /* A start tag whose tag name is one of: "td",
"th", "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        in_array($token['name'], array('td',
'th', 'tr'))) {
            /* Act as if a start tag token with the tag name
"tbody" had been
            seen, then reprocess the current token. */
            $this->emitToken(array(
                'name' => 'tbody',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));

            $this->emitToken($token);

        /* A start tag whose tag name is "table" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'table') {
            /* Parse error. Act as if an end tag token with the tag name
"table"
            had been seen, then, if that token wasn't ignored,
reprocess the
            current token. */
            $this->emitToken(array(
                'name' => 'table',
                'type' => HTML5_Tokenizer::ENDTAG
            ));

            if (!$this->ignored) $this->emitToken($token);

        /* An end tag whose tag name is "table" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'table') {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. (fragment case) */
            if(!$this->elementInScope($token['name'], true)) {
                $this->ignored = true;

            /* Otherwise: */
            } else {
                do {
                    $node = array_pop($this->stack);
                } while ($node->tagName !== 'table');

                /* Reset the insertion mode appropriately. */
                $this->resetInsertionMode();
            }

        /* An end tag whose tag name is one of: "body",
"caption", "col",
        "colgroup", "html", "tbody",
"td", "tfoot", "th", "thead",
"tr" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('body', 'caption', 'col',
'colgroup', 'html', 'tbody', 'td',
        'tfoot', 'th', 'thead',
'tr'))) {
            // Parse error. Ignore the token.

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'style' ||
$token['name'] === 'script')) {
            $this->processWithRulesFor($token, self::IN_HEAD);

        } elseif ($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'input' &&
        // assignment is intentional
        /* If the token does not have an attribute with the name
"type", or
         * if it does, but that attribute's value is not an ASCII
         * case-insensitive match for the string "hidden", then:
act as
         * described in the "anything else" entry below. */
        ($type = $this->getAttr($token, 'type')) &&
strtolower($type) === 'hidden') {
            // I.e., if its an input with the type attribute ==
'hidden'
            /* Otherwise */
            // parse error
            $this->insertElement($token);
            array_pop($this->stack);
        } elseif ($token['type'] === HTML5_Tokenizer::EOF) {
            /* If the current node is not the root html element, then this
is a parse error. */
            if (end($this->stack)->tagName !== 'html') {
                // Note: It can only be the current node in the fragment
case.
                // parse error
            }
            /* Stop parsing. */
        /* Anything else */
        } else {
            /* Parse error. Process the token as if the insertion mode was
"in
            body", with the following exception: */

            $old = $this->foster_parent;
            $this->foster_parent = true;
            $this->processWithRulesFor($token, self::IN_BODY);
            $this->foster_parent = $old;
        }
    break;

    case self::IN_CAPTION:
        /* An end tag whose tag name is "caption" */
        if($token['type'] === HTML5_Tokenizer::ENDTAG &&
$token['name'] === 'caption') {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. (fragment case) */
            if(!$this->elementInScope($token['name'], true)) {
                $this->ignored = true;
                // Ignore

            /* Otherwise: */
            } else {
                /* Generate implied end tags. */
                $this->generateImpliedEndTags();

                /* Now, if the current node is not a caption element, then
this
                is a parse error. */
                // XERROR: implement

                /* Pop elements from this stack until a caption element has
                been popped from the stack. */
                do {
                    $node = array_pop($this->stack);
                } while ($node->tagName !== 'caption');

                /* Clear the list of active formatting elements up to the
last
                marker. */
               
$this->clearTheActiveFormattingElementsUpToTheLastMarker();

                /* Switch the insertion mode to "in table". */
                $this->mode = self::IN_TABLE;
            }

        /* A start tag whose tag name is one of: "caption",
"col", "colgroup",
        "tbody", "td", "tfoot",
"th", "thead", "tr", or an end tag whose tag
        name is "table" */
        } elseif(($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('caption', 'col', 'colgroup',
'tbody', 'td', 'tfoot', 'th',
        'thead', 'tr'))) || ($token['type']
=== HTML5_Tokenizer::ENDTAG &&
        $token['name'] === 'table')) {
            /* Parse error. Act as if an end tag with the tag name
"caption"
            had been seen, then, if that token wasn't ignored,
reprocess the
            current token. */
            $this->emitToken(array(
                'name' => 'caption',
                'type' => HTML5_Tokenizer::ENDTAG
            ));

            if (!$this->ignored) $this->emitToken($token);

        /* An end tag whose tag name is one of: "body",
"col", "colgroup",
        "html", "tbody", "td",
"tfoot", "th", "thead", "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('body', 'col', 'colgroup',
'html', 'tbody', 'tfoot', 'th',
        'thead', 'tr'))) {
            // Parse error. Ignore the token.
            $this->ignored = true;

        /* Anything else */
        } else {
            /* Process the token as if the insertion mode was "in
body". */
            $this->processWithRulesFor($token, self::IN_BODY);
        }
    break;

    case self::IN_COLUMN_GROUP:
        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Append the character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
            attribute set to the data given in the comment token. */
            $this->insertToken($token['data']);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* A start tag whose tag name is "col" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'col') {
            /* Insert a col element for the token. Immediately pop the
current
            node off the stack of open elements. */
            $this->insertElement($token);
            array_pop($this->stack);
            // XERROR: Acknowledge the token's self-closing flag, if
it is set.

        /* An end tag whose tag name is "colgroup" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'colgroup') {
            /* If the current node is the root html element, then this is a
            parse error, ignore the token. (fragment case) */
            if(end($this->stack)->tagName === 'html') {
                $this->ignored = true;

            /* Otherwise, pop the current node (which will be a colgroup
            element) from the stack of open elements. Switch the insertion
            mode to "in table". */
            } else {
                array_pop($this->stack);
                $this->mode = self::IN_TABLE;
            }

        /* An end tag whose tag name is "col" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'col') {
            /* Parse error. Ignore the token. */
            $this->ignored = true;

        /* An end-of-file token */
        /* If the current node is the root html  element */
        } elseif($token['type'] === HTML5_Tokenizer::EOF
&& end($this->stack)->tagName === 'html') {
            /* Stop parsing */

        /* Anything else */
        } else {
            /* Act as if an end tag with the tag name "colgroup"
had been seen,
            and then, if that token wasn't ignored, reprocess the
current token. */
            $this->emitToken(array(
                'name' => 'colgroup',
                'type' => HTML5_Tokenizer::ENDTAG
            ));

            if (!$this->ignored) $this->emitToken($token);
        }
    break;

    case self::IN_TABLE_BODY:
        $clear = array('tbody', 'tfoot',
'thead', 'html');

        /* A start tag whose tag name is "tr" */
        if($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'tr') {
            /* Clear the stack back to a table body context. */
            $this->clearStackToTableContext($clear);

            /* Insert a tr element for the token, then switch the insertion
            mode to "in row". */
            $this->insertElement($token);
            $this->mode = self::IN_ROW;

        /* A start tag whose tag name is one of: "th",
"td" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'th' ||   
$token['name'] === 'td')) {
            /* Parse error. Act as if a start tag with the tag name
"tr" had
            been seen, then reprocess the current token. */
            $this->emitToken(array(
                'name' => 'tr',
                'type' => HTML5_Tokenizer::STARTTAG,
                'attr' => array()
            ));

            $this->emitToken($token);

        /* An end tag whose tag name is one of: "tbody",
"tfoot", "thead" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        in_array($token['name'], array('tbody',
'tfoot', 'thead'))) {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. */
            if(!$this->elementInScope($token['name'], true)) {
                // Parse error
                $this->ignored = true;

            /* Otherwise: */
            } else {
                /* Clear the stack back to a table body context. */
                $this->clearStackToTableContext($clear);

                /* Pop the current node from the stack of open elements.
Switch
                the insertion mode to "in table". */
                array_pop($this->stack);
                $this->mode = self::IN_TABLE;
            }

        /* A start tag whose tag name is one of: "caption",
"col", "colgroup",
        "tbody", "tfoot", "thead", or an end
tag whose tag name is "table" */
        } elseif(($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('caption', 'col', 'colgroup',
'tbody', 'tfoot', 'thead'))) ||
        ($token['type'] === HTML5_Tokenizer::ENDTAG &&
$token['name'] === 'table')) {
            /* If the stack of open elements does not have a tbody, thead,
or
            tfoot element in table scope, this is a parse error. Ignore the
            token. (fragment case) */
            if(!$this->elementInScope(array('tbody',
'thead', 'tfoot'), true)) {
                // parse error
                $this->ignored = true;

            /* Otherwise: */
            } else {
                /* Clear the stack back to a table body context. */
                $this->clearStackToTableContext($clear);

                /* Act as if an end tag with the same tag name as the
current
                node ("tbody", "tfoot", or
"thead") had been seen, then
                reprocess the current token. */
                $this->emitToken(array(
                    'name' =>
end($this->stack)->tagName,
                    'type' => HTML5_Tokenizer::ENDTAG
                ));

                $this->emitToken($token);
            }

        /* An end tag whose tag name is one of: "body",
"caption", "col",
        "colgroup", "html", "td",
"th", "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('body', 'caption', 'col',
'colgroup', 'html', 'td', 'th',
'tr'))) {
            /* Parse error. Ignore the token. */
            $this->ignored = true;

        /* Anything else */
        } else {
            /* Process the token as if the insertion mode was "in
table". */
            $this->processWithRulesFor($token, self::IN_TABLE);
        }
    break;

    case self::IN_ROW:
        $clear = array('tr', 'html');

        /* A start tag whose tag name is one of: "th",
"td" */
        if($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'th' ||
$token['name'] === 'td')) {
            /* Clear the stack back to a table row context. */
            $this->clearStackToTableContext($clear);

            /* Insert an HTML element for the token, then switch the
insertion
            mode to "in cell". */
            $this->insertElement($token);
            $this->mode = self::IN_CELL;

            /* Insert a marker at the end of the list of active formatting
            elements. */
            $this->a_formatting[] = self::MARKER;

        /* An end tag whose tag name is "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'tr') {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. (fragment case) */
            if(!$this->elementInScope($token['name'], true)) {
                // Ignore.
                $this->ignored = true;

            /* Otherwise: */
            } else {
                /* Clear the stack back to a table row context. */
                $this->clearStackToTableContext($clear);

                /* Pop the current node (which will be a tr element) from
the
                stack of open elements. Switch the insertion mode to
"in table
                body". */
                array_pop($this->stack);
                $this->mode = self::IN_TABLE_BODY;
            }

        /* A start tag whose tag name is one of: "caption",
"col", "colgroup",
        "tbody", "tfoot", "thead",
"tr" or an end tag whose tag name is "table" */
        } elseif(($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('caption', 'col', 'colgroup',
'tbody', 'tfoot', 'thead', 'tr')))
||
        ($token['type'] === HTML5_Tokenizer::ENDTAG &&
$token['name'] === 'table')) {
            /* Act as if an end tag with the tag name "tr" had
been seen, then,
            if that token wasn't ignored, reprocess the current token.
*/
            $this->emitToken(array(
                'name' => 'tr',
                'type' => HTML5_Tokenizer::ENDTAG
            ));
            if (!$this->ignored) $this->emitToken($token);

        /* An end tag whose tag name is one of: "tbody",
"tfoot", "thead" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        in_array($token['name'], array('tbody',
'tfoot', 'thead'))) {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. */
            if(!$this->elementInScope($token['name'], true)) {
                $this->ignored = true;

            /* Otherwise: */
            } else {
                /* Otherwise, act as if an end tag with the tag name
"tr" had
                been seen, then reprocess the current token. */
                $this->emitToken(array(
                    'name' => 'tr',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));

                $this->emitToken($token);
            }

        /* An end tag whose tag name is one of: "body",
"caption", "col",
        "colgroup", "html", "td",
"th" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('body', 'caption', 'col',
'colgroup', 'html', 'td', 'th'))) {
            /* Parse error. Ignore the token. */
            $this->ignored = true;

        /* Anything else */
        } else {
            /* Process the token as if the insertion mode was "in
table". */
            $this->processWithRulesFor($token, self::IN_TABLE);
        }
    break;

    case self::IN_CELL:
        /* An end tag whose tag name is one of: "td",
"th" */
        if($token['type'] === HTML5_Tokenizer::ENDTAG &&
        ($token['name'] === 'td' ||
$token['name'] === 'th')) {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as that of the token, then this is
a
            parse error and the token must be ignored. */
            if(!$this->elementInScope($token['name'], true)) {
                $this->ignored = true;

            /* Otherwise: */
            } else {
                /* Generate implied end tags, except for elements with the
same
                tag name as the token. */
               
$this->generateImpliedEndTags(array($token['name']));

                /* Now, if the current node is not an element with the same
tag
                name as the token, then this is a parse error. */
                // XERROR: Implement parse error code

                /* Pop elements from this stack until an element with the
same
                tag name as the token has been popped from the stack. */
                do {
                    $node = array_pop($this->stack);
                } while ($node->tagName !== $token['name']);

                /* Clear the list of active formatting elements up to the
last
                marker. */
               
$this->clearTheActiveFormattingElementsUpToTheLastMarker();

                /* Switch the insertion mode to "in row". (The
current node
                will be a tr element at this point.) */
                $this->mode = self::IN_ROW;
            }

        /* A start tag whose tag name is one of: "caption",
"col", "colgroup",
        "tbody", "td", "tfoot",
"th", "thead", "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& in_array($token['name'],
        array('caption', 'col', 'colgroup',
'tbody', 'td', 'tfoot', 'th',
        'thead', 'tr'))) {
            /* If the stack of open elements does not have a td or th
element
            in table scope, then this is a parse error; ignore the token.
            (fragment case) */
            if(!$this->elementInScope(array('td',
'th'), true)) {
                // parse error
                $this->ignored = true;

            /* Otherwise, close the cell (see below) and reprocess the
current
            token. */
            } else {
                $this->closeCell();
                $this->emitToken($token);
            }

        /* An end tag whose tag name is one of: "body",
"caption", "col",
        "colgroup", "html" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('body', 'caption', 'col',
'colgroup', 'html'))) {
            /* Parse error. Ignore the token. */
            $this->ignored = true;

        /* An end tag whose tag name is one of: "table",
"tbody", "tfoot",
        "thead", "tr" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& in_array($token['name'],
        array('table', 'tbody', 'tfoot',
'thead', 'tr'))) {
            /* If the stack of open elements does not have a td or th
element
            in table scope, then this is a parse error; ignore the token.
            (innerHTML case) */
            if(!$this->elementInScope(array('td',
'th'), true)) {
                // Parse error
                $this->ignored = true;

            /* Otherwise, close the cell (see below) and reprocess the
current
            token. */
            } else {
                $this->closeCell();
                $this->emitToken($token);
            }

        /* Anything else */
        } else {
            /* Process the token as if the insertion mode was "in
body". */
            $this->processWithRulesFor($token, self::IN_BODY);
        }
    break;

    case self::IN_SELECT:
        /* Handle the token as follows: */

        /* A character token */
        if(
            $token['type'] === HTML5_Tokenizer::CHARACTER ||
            $token['type'] === HTML5_Tokenizer::SPACECHARACTER
        ) {
            /* Append the token's character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
            attribute set to the data given in the comment token. */
            $this->insertComment($token['data']);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::INBODY);

        /* A start tag token whose tag name is "option" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'option') {
            /* If the current node is an option element, act as if an end
tag
            with the tag name "option" had been seen. */
            if(end($this->stack)->tagName === 'option') {
                $this->emitToken(array(
                    'name' => 'option',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));
            }

            /* Insert an HTML element for the token. */
            $this->insertElement($token);

        /* A start tag token whose tag name is "optgroup" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'optgroup') {
            /* If the current node is an option element, act as if an end
tag
            with the tag name "option" had been seen. */
            if(end($this->stack)->tagName === 'option') {
                $this->emitToken(array(
                    'name' => 'option',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));
            }

            /* If the current node is an optgroup element, act as if an end
tag
            with the tag name "optgroup" had been seen. */
            if(end($this->stack)->tagName === 'optgroup') {
                $this->emitToken(array(
                    'name' => 'optgroup',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));
            }

            /* Insert an HTML element for the token. */
            $this->insertElement($token);

        /* An end tag token whose tag name is "optgroup" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'optgroup') {
            /* First, if the current node is an option element, and the
node
            immediately before it in the stack of open elements is an
optgroup
            element, then act as if an end tag with the tag name
"option" had
            been seen. */
            $elements_in_stack = count($this->stack);

            if($this->stack[$elements_in_stack - 1]->tagName ===
'option' &&
            $this->stack[$elements_in_stack - 2]->tagName ===
'optgroup') {
                $this->emitToken(array(
                    'name' => 'option',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));
            }

            /* If the current node is an optgroup element, then pop that
node
            from the stack of open elements. Otherwise, this is a parse
error,
            ignore the token. */
            if(end($this->stack)->tagName === 'optgroup') {
                array_pop($this->stack);
            } else {
                // parse error
                $this->ignored = true;
            }

        /* An end tag token whose tag name is "option" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'option') {
            /* If the current node is an option element, then pop that node
            from the stack of open elements. Otherwise, this is a parse
error,
            ignore the token. */
            if(end($this->stack)->tagName === 'option') {
                array_pop($this->stack);
            } else {
                // parse error
                $this->ignored = true;
            }

        /* An end tag whose tag name is "select" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'select') {
            /* If the stack of open elements does not have an element in
table
            scope with the same tag name as the token, this is a parse
error.
            Ignore the token. (fragment case) */
            if(!$this->elementInScope($token['name'], true)) {
                $this->ignored = true;
                // parse error

            /* Otherwise: */
            } else {
                /* Pop elements from the stack of open elements until a
select
                element has been popped from the stack. */
                do {
                    $node = array_pop($this->stack);
                } while ($node->tagName !== 'select');

                /* Reset the insertion mode appropriately. */
                $this->resetInsertionMode();
            }

        /* A start tag whose tag name is "select" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'select') {
            /* Parse error. Act as if the token had been an end tag with
the
            tag name "select" instead. */
            $this->emitToken(array(
                'name' => 'select',
                'type' => HTML5_Tokenizer::ENDTAG
            ));

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        ($token['name'] === 'input' ||
$token['name'] === 'textarea')) {
            // parse error
            $this->emitToken(array(
                'name' => 'select',
                'type' => HTML5_Tokenizer::ENDTAG
            ));
            $this->emitToken($token);

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'script') {
            $this->processWithRulesFor($token, self::IN_HEAD);

        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            // XERROR: If the current node is not the root html element,
then this is a parse error.
            /* Stop parsing */

        /* Anything else */
        } else {
            /* Parse error. Ignore the token. */
            $this->ignored = true;
        }
    break;

    case self::IN_SELECT_IN_TABLE:

        if($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        in_array($token['name'], array('caption',
'table', 'tbody',
        'tfoot', 'thead', 'tr',
'td', 'th'))) {
            // parse error
            $this->emitToken(array(
                'name' => 'select',
                'type' => HTML5_Tokenizer::ENDTAG,
            ));
            $this->emitToken($token);

        /* An end tag whose tag name is one of: "caption",
"table", "tbody",
        "tfoot", "thead", "tr",
"td", "th" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        in_array($token['name'], array('caption',
'table', 'tbody', 'tfoot', 'thead',
'tr', 'td', 'th')))  {
            /* Parse error. */
            // parse error

            /* If the stack of open elements has an element in table scope
with
            the same tag name as that of the token, then act as if an end
tag
            with the tag name "select" had been seen, and
reprocess the token.
            Otherwise, ignore the token. */
            if($this->elementInScope($token['name'], true)) {
                $this->emitToken(array(
                    'name' => 'select',
                    'type' => HTML5_Tokenizer::ENDTAG
                ));

                $this->emitToken($token);
            } else {
                $this->ignored = true;
            }
        } else {
            $this->processWithRulesFor($token, self::IN_SELECT);
        }
    break;

    case self::IN_FOREIGN_CONTENT:
        if ($token['type'] === HTML5_Tokenizer::CHARACTER ||
        $token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            $this->insertText($token['data']);
        } elseif ($token['type'] === HTML5_Tokenizer::COMMENT) {
            $this->insertComment($token['data']);
        } elseif ($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // XERROR: parse error
        } elseif ($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'script' &&
end($this->stack)->tagName === 'script' &&
        end($this->stack)->namespaceURI === self::NS_SVG) {
            array_pop($this->stack);
            // a bunch of script running mumbo jumbo
        } elseif (
            ($token['type'] === HTML5_Tokenizer::STARTTAG
&&
                ((
                    $token['name'] !== 'mglyph'
&&
                    $token['name'] !== 'malignmark'
&&
                    end($this->stack)->namespaceURI ===
self::NS_MATHML &&
                    in_array(end($this->stack)->tagName,
array('mi', 'mo', 'mn', 'ms',
'mtext'))
                ) ||
                (
                    $token['name'] === 'svg' &&
                    end($this->stack)->namespaceURI ===
self::NS_MATHML &&
                    end($this->stack)->tagName ===
'annotation-xml'
                ) ||
                (
                    end($this->stack)->namespaceURI === self::NS_SVG
&&
                    in_array(end($this->stack)->tagName,
array('foreignObject', 'desc', 'title'))
                ) ||
                (
                    // XSKETCHY
                    end($this->stack)->namespaceURI === self::NS_HTML
                ))
            ) || $token['type'] === HTML5_Tokenizer::ENDTAG
        ) {
            $this->processWithRulesFor($token,
$this->secondary_mode);
            /* If, after doing so, the insertion mode is still "in
foreign 
             * content", but there is no element in scope that has a
namespace 
             * other than the HTML namespace, switch the insertion mode to
the 
             * secondary insertion mode. */
            if ($this->mode === self::IN_FOREIGN_CONTENT) {
                $found = false;
                // this basically duplicates elementInScope()
                for ($i = count($this->stack) - 1; $i >= 0; $i--) {
                    $node = $this->stack[$i];
                    if ($node->namespaceURI !== self::NS_HTML) {
                        $found = true;
                        break;
                    } elseif (in_array($node->tagName,
array('table', 'html',
                    'applet', 'caption',
'td', 'th', 'button', 'marquee',
                    'object')) || ($node->tagName ===
'foreignObject' &&
                    $node->namespaceURI === self::NS_SVG)) {
                        break;
                    }
                }
                if (!$found) {
                    $this->mode = $this->secondary_mode;
                }
            }
        } elseif ($token['type'] === HTML5_Tokenizer::EOF || (
        $token['type'] === HTML5_Tokenizer::STARTTAG &&
        (in_array($token['name'], array('b',
"big", "blockquote", "body", "br", 
        "center", "code", "dd",
"div", "dl", "dt", "em",
"embed", "h1", "h2", 
        "h3", "h4", "h5", "h6",
"head", "hr", "i", "img",
"li", "listing", 
        "menu", "meta", "nobr",
"ol", "p", "pre", "ruby",
"s",  "small", 
        "span", "strong", "strike", 
"sub", "sup", "table", "tt",
"u", "ul", 
        "var")) || ($token['name'] === 'font'
&& ($this->getAttr($token, 'color') ||
        $this->getAttr($token, 'face') ||
$this->getAttr($token, 'size')))))) {
            // XERROR: parse error
            do {
                $node = array_pop($this->stack);
            } while ($node->namespaceURI !== self::NS_HTML);
            $this->stack[] = $node;
            $this->mode = $this->secondary_mode;
            $this->emitToken($token);
        } elseif ($token['type'] === HTML5_Tokenizer::STARTTAG) {
            static $svg_lookup = array(
                'altglyph' => 'altGlyph',
                'altglyphdef' => 'altGlyphDef',
                'altglyphitem' => 'altGlyphItem',
                'animatecolor' => 'animateColor',
                'animatemotion' => 'animateMotion',
                'animatetransform' =>
'animateTransform',
                'clippath' => 'clipPath',
                'feblend' => 'feBlend',
                'fecolormatrix' => 'feColorMatrix',
                'fecomponenttransfer' =>
'feComponentTransfer',
                'fecomposite' => 'feComposite',
                'feconvolvematrix' =>
'feConvolveMatrix',
                'fediffuselighting' =>
'feDiffuseLighting',
                'fedisplacementmap' =>
'feDisplacementMap',
                'fedistantlight' =>
'feDistantLight',
                'feflood' => 'feFlood',
                'fefunca' => 'feFuncA',
                'fefuncb' => 'feFuncB',
                'fefuncg' => 'feFuncG',
                'fefuncr' => 'feFuncR',
                'fegaussianblur' =>
'feGaussianBlur',
                'feimage' => 'feImage',
                'femerge' => 'feMerge',
                'femergenode' => 'feMergeNode',
                'femorphology' => 'feMorphology',
                'feoffset' => 'feOffset',
                'fepointlight' => 'fePointLight',
                'fespecularlighting' =>
'feSpecularLighting',
                'fespotlight' => 'feSpotLight',
                'fetile' => 'feTile',
                'feturbulence' => 'feTurbulence',
                'foreignobject' => 'foreignObject',
                'glyphref' => 'glyphRef',
                'lineargradient' =>
'linearGradient',
                'radialgradient' =>
'radialGradient',
                'textpath' => 'textPath',
            );
            $current = end($this->stack);
            if ($current->namespaceURI === self::NS_MATHML) {
                $token = $this->adjustMathMLAttributes($token);
            }
            if ($current->namespaceURI === self::NS_SVG &&
            isset($svg_lookup[$token['name']])) {
                $token['name'] =
$svg_lookup[$token['name']];
            }
            if ($current->namespaceURI === self::NS_SVG) {
                $token = $this->adjustSVGAttributes($token);
            }
            $token = $this->adjustForeignAttributes($token);
            $this->insertForeignElement($token,
$current->namespaceURI);
            if (isset($token['self-closing'])) {
                array_pop($this->stack);
                // XERROR: acknowledge self-closing flag
            }
        }
    break;

    case self::AFTER_BODY:
        /* Handle the token as follows: */

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Process the token as it would be processed if the insertion
mode
            was "in body". */
            $this->processWithRulesFor($token, self::IN_BODY);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the first element in the stack of
open
            elements (the html element), with the data attribute set to the
            data given in the comment token. */
            $comment =
$this->dom->createComment($token['data']);
            $this->stack[0]->appendChild($comment);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* An end tag with the tag name "html" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&& $token['name'] === 'html') {
            /*     If the parser was originally created as part of the HTML
             *     fragment parsing algorithm, this is a parse error;
ignore
             *     the token. (fragment case) */
            $this->ignored = true;
            // XERROR: implement this

            $this->mode = self::AFTER_AFTER_BODY;

        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            /* Stop parsing */

        /* Anything else */
        } else {
            /* Parse error. Set the insertion mode to "in body"
and reprocess
            the token. */
            $this->mode = self::IN_BODY;
            $this->emitToken($token);
        }
    break;

    case self::IN_FRAMESET:
        /* Handle the token as follows: */

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        U+000D CARRIAGE RETURN (CR), or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Append the character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
            attribute set to the data given in the comment token. */
            $this->insertComment($token['data']);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        /* A start tag with the tag name "frameset" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'frameset') {
            $this->insertElement($token);

        /* An end tag with the tag name "frameset" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'frameset') {
            /* If the current node is the root html element, then this is a
            parse error; ignore the token. (fragment case) */
            if(end($this->stack)->tagName === 'html') {
                $this->ignored = true;
                // Parse error

            } else {
                /* Otherwise, pop the current node from the stack of open
                elements. */
                array_pop($this->stack);

                /* If the parser was not originally created as part of the
HTML 
                 * fragment parsing algorithm  (fragment case), and the
current 
                 * node is no longer a frameset element, then switch the 
                 * insertion mode to "after frameset". */
                $this->mode = self::AFTER_FRAMESET;
            }

        /* A start tag with the tag name "frame" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'frame') {
            /* Insert an HTML element for the token. */
            $this->insertElement($token);

            /* Immediately pop the current node off the stack of open
elements. */
            array_pop($this->stack);

            // XERROR: Acknowledge the token's self-closing flag, if
it is set.

        /* A start tag with the tag name "noframes" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'noframes') {
            /* Process the token using the rules for the "in
head" insertion mode. */
            $this->processwithRulesFor($token, self::IN_HEAD);

        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            // XERROR: If the current node is not the root html element,
then this is a parse error.
            /* Stop parsing */
        /* Anything else */
        } else {
            /* Parse error. Ignore the token. */
            $this->ignored = true;
        }
    break;

    case self::AFTER_FRAMESET:
        /* Handle the token as follows: */

        /* A character token that is one of one of U+0009 CHARACTER
TABULATION,
        U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM FEED
(FF),
        U+000D CARRIAGE RETURN (CR), or U+0020 SPACE */
        if($token['type'] === HTML5_Tokenizer::SPACECHARACTER) {
            /* Append the character to the current node. */
            $this->insertText($token['data']);

        /* A comment token */
        } elseif($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the current node with the data
            attribute set to the data given in the comment token. */
            $this->insertComment($token['data']);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE) {
            // parse error

        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'html') {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* An end tag with the tag name "html" */
        } elseif($token['type'] === HTML5_Tokenizer::ENDTAG
&&
        $token['name'] === 'html') {
            $this->mode = self::AFTER_AFTER_FRAMESET;

        /* A start tag with the tag name "noframes" */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&&
        $token['name'] === 'noframes') {
            $this->processWithRulesFor($token, self::IN_HEAD);

        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            /* Stop parsing */

        /* Anything else */
        } else {
            /* Parse error. Ignore the token. */
            $this->ignored = true;
        }
    break;

    case self::AFTER_AFTER_BODY:
        /* A comment token */
        if($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the Document object with the data
            attribute set to the data given in the comment token. */
            $comment =
$this->dom->createComment($token['data']);
            $this->dom->appendChild($comment);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE ||
        $token['type'] === HTML5_Tokenizer::SPACECHARACTER ||
        ($token['type'] === HTML5_Tokenizer::STARTTAG &&
$token['name'] === 'html')) {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* An end-of-file token */
        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            /* OMG DONE!! */
        } else {
            // parse error
            $this->mode = self::IN_BODY;
            $this->emitToken($token);
        }
    break;

    case self::AFTER_AFTER_FRAMESET:
        /* A comment token */
        if($token['type'] === HTML5_Tokenizer::COMMENT) {
            /* Append a Comment node to the Document object with the data
            attribute set to the data given in the comment token. */
            $comment =
$this->dom->createComment($token['data']);
            $this->dom->appendChild($comment);

        } elseif($token['type'] === HTML5_Tokenizer::DOCTYPE ||
        $token['type'] === HTML5_Tokenizer::SPACECHARACTER ||
        ($token['type'] === HTML5_Tokenizer::STARTTAG &&
$token['name'] === 'html')) {
            $this->processWithRulesFor($token, self::IN_BODY);

        /* An end-of-file token */
        } elseif($token['type'] === HTML5_Tokenizer::EOF) {
            /* OMG DONE!! */
        } elseif($token['type'] === HTML5_Tokenizer::STARTTAG
&& $token['name'] === 'nofrmaes') {
            $this->processWithRulesFor($token, self::IN_HEAD);
        } else {
            // parse error
        }
    break;
    }
        // end funky indenting
        }

    private function insertElement($token, $append = true) {
        $el = $this->dom->createElementNS(self::NS_HTML,
$token['name']);

        if (!empty($token['attr'])) {
            foreach($token['attr'] as $attr) {
                if(!$el->hasAttribute($attr['name'])) {
                    $el->setAttribute($attr['name'],
$attr['value']);
                }
            }
        }
        if ($append) {
            $this->appendToRealParent($el);
            $this->stack[] = $el;
        }

        return $el;
    }

    private function insertText($data) {
        if ($data === '') return;
        if ($this->ignore_lf_token) {
            if ($data[0] === "\n") {
                $data = substr($data, 1);
                if ($data === false) return;
            }
        }
        $text = $this->dom->createTextNode($data);
        $this->appendToRealParent($text);
    }

    private function insertComment($data) {
        $comment = $this->dom->createComment($data);
        $this->appendToRealParent($comment);
    }

    private function appendToRealParent($node) {
        // this is only for the foster_parent case
        /* If the current node is a table, tbody, tfoot, thead, or tr
        element, then, whenever a node would be inserted into the current
        node, it must instead be inserted into the foster parent element.
*/
        if(!$this->foster_parent ||
!in_array(end($this->stack)->tagName,
        array('table', 'tbody', 'tfoot',
'thead', 'tr'))) {
            end($this->stack)->appendChild($node);
        } else {
            $this->fosterParent($node);
        }
    }

    private function elementInScope($el, $table = false) {
        if(is_array($el)) {
            foreach($el as $element) {
                if($this->elementInScope($element, $table)) {
                    return true;
                }
            }

            return false;
        }

        $leng = count($this->stack);

        for($n = 0; $n < $leng; $n++) {
            /* 1. Initialise node to be the current node (the bottommost
node of
            the stack). */
            $node = $this->stack[$leng - 1 - $n];

            if($node->tagName === $el) {
                /* 2. If node is the target node, terminate in a match
state. */
                return true;

            // these are the common states for "in scope" and
"in table scope"
            } elseif($node->tagName === 'table' ||
$node->tagName === 'html') {
                return false;

            // these are only valid for "in scope"
            } elseif(!$table &&
            (in_array($node->tagName, array('applet',
'caption', 'td',
                'th', 'button', 'marquee',
'object')) ||
                $node->tagName === 'foreignObject' &&
$node->namespaceURI === self::NS_SVG)) {
                return false;
            }

            /* Otherwise, set node to the previous entry in the stack of
open
            elements and return to step 2. (This will never fail, since the
loop
            will always terminate in the previous step if the top of the
stack
            is reached.) */
        }
    }

    private function reconstructActiveFormattingElements() {
        /* 1. If there are no entries in the list of active formatting
elements,
        then there is nothing to reconstruct; stop this algorithm. */
        $formatting_elements = count($this->a_formatting);

        if($formatting_elements === 0) {
            return false;
        }

        /* 3. Let entry be the last (most recently added) element in the
list
        of active formatting elements. */
        $entry = end($this->a_formatting);

        /* 2. If the last (most recently added) entry in the list of active
        formatting elements is a marker, or if it is an element that is in
the
        stack of open elements, then there is nothing to reconstruct; stop
this
        algorithm. */
        if($entry === self::MARKER || in_array($entry, $this->stack,
true)) {
            return false;
        }

        for($a = $formatting_elements - 1; $a >= 0; true) {
            /* 4. If there are no entries before entry in the list of
active
            formatting elements, then jump to step 8. */
            if($a === 0) {
                $step_seven = false;
                break;
            }

            /* 5. Let entry be the entry one earlier than entry in the list
of
            active formatting elements. */
            $a--;
            $entry = $this->a_formatting[$a];

            /* 6. If entry is neither a marker nor an element that is also
in
            thetack of open elements, go to step 4. */
            if($entry === self::MARKER || in_array($entry, $this->stack,
true)) {
                break;
            }
        }

        while(true) {
            /* 7. Let entry be the element one later than entry in the list
of
            active formatting elements. */
            if(isset($step_seven) && $step_seven === true) {
                $a++;
                $entry = $this->a_formatting[$a];
            }

            /* 8. Perform a shallow clone of the element entry to obtain
clone. */
            $clone = $entry->cloneNode();

            /* 9. Append clone to the current node and push it onto the
stack
            of open elements  so that it is the new current node. */
            $this->appendToRealParent($clone);
            $this->stack[] = $clone;

            /* 10. Replace the entry for entry in the list with an entry
for
            clone. */
            $this->a_formatting[$a] = $clone;

            /* 11. If the entry for clone in the list of active formatting
            elements is not the last entry in the list, return to step 7.
*/
            if(end($this->a_formatting) !== $clone) {
                $step_seven = true;
            } else {
                break;
            }
        }
    }

    private function clearTheActiveFormattingElementsUpToTheLastMarker() {
        /* When the steps below require the UA to clear the list of active
        formatting elements up to the last marker, the UA must perform the
        following steps: */

        while(true) {
            /* 1. Let entry be the last (most recently added) entry in the
list
            of active formatting elements. */
            $entry = end($this->a_formatting);

            /* 2. Remove entry from the list of active formatting elements.
*/
            array_pop($this->a_formatting);

            /* 3. If entry was a marker, then stop the algorithm at this
point.
            The list has been cleared up to the last marker. */
            if($entry === self::MARKER) {
                break;
            }
        }
    }

    private function generateImpliedEndTags($exclude = array()) {
        /* When the steps below require the UA to generate implied end
tags,
        then, if the current node is a dd element, a dt element, an li
element,
        a p element, a td element, a th  element, or a tr element, the UA
must
        act as if an end tag with the respective tag name had been seen and
        then generate implied end tags again. */
        $node = end($this->stack);
        $elements = array_diff(array('dd', 'dt',
'li', 'p', 'td', 'th',
'tr'), $exclude);

        while(in_array(end($this->stack)->tagName, $elements)) {
            array_pop($this->stack);
        }
    }

    private function getElementCategory($node) {
        if (!is_object($node)) debug_print_backtrace();
        $name = $node->tagName;
        if(in_array($name, $this->special))
            return self::SPECIAL;

        elseif(in_array($name, $this->scoping))
            return self::SCOPING;

        elseif(in_array($name, $this->formatting))
            return self::FORMATTING;

        else
            return self::PHRASING;
    }

    private function clearStackToTableContext($elements) {
        /* When the steps above require the UA to clear the stack back to a
        table context, it means that the UA must, while the current node is
not
        a table element or an html element, pop elements from the stack of
open
        elements. */
        while(true) {
            $name = end($this->stack)->tagName;

            if(in_array($name, $elements)) {
                break;
            } else {
                array_pop($this->stack);
            }
        }
    }

    private function resetInsertionMode($context = null) {
        /* 1. Let last be false. */
        $last = false;
        $leng = count($this->stack);

        for($n = $leng - 1; $n >= 0; $n--) {
            /* 2. Let node be the last node in the stack of open elements.
*/
            $node = $this->stack[$n];

            /* 3. If node is the first node in the stack of open elements,
then 
             * set last to true and set node to the context  element.
(fragment 
             * case) */
            if($this->stack[0]->isSameNode($node)) {
                $last = true;
                $node = $context;
            }

            /* 4. If node is a select element, then switch the insertion
mode to
            "in select" and abort these steps. (fragment case) */
            if($node->tagName === 'select') {
                $this->mode = self::IN_SELECT;
                break;

            /* 5. If node is a td or th element, then switch the insertion
mode
            to "in cell" and abort these steps. */
            } elseif($node->tagName === 'td' ||
$node->nodeName === 'th') {
                $this->mode = self::IN_CELL;
                break;

            /* 6. If node is a tr element, then switch the insertion mode
to
            "in    row" and abort these steps. */
            } elseif($node->tagName === 'tr') {
                $this->mode = self::IN_ROW;
                break;

            /* 7. If node is a tbody, thead, or tfoot element, then switch
the
            insertion mode to "in table body" and abort these
steps. */
            } elseif(in_array($node->tagName, array('tbody',
'thead', 'tfoot'))) {
                $this->mode = self::IN_TABLE_BODY;
                break;

            /* 8. If node is a caption element, then switch the insertion
mode
            to "in caption" and abort these steps. */
            } elseif($node->tagName === 'caption') {
                $this->mode = self::IN_CAPTION;
                break;

            /* 9. If node is a colgroup element, then switch the insertion
mode
            to "in column group" and abort these steps.
(innerHTML case) */
            } elseif($node->tagName === 'colgroup') {
                $this->mode = self::IN_COLUMN_GROUP;
                break;

            /* 10. If node is a table element, then switch the insertion
mode
            to "in table" and abort these steps. */
            } elseif($node->tagName === 'table') {
                $this->mode = self::IN_TABLE;
                break;

            /* 11. If node is an element from the MathML namespace or the
SVG 
             * namespace, then switch the insertion mode to "in
foreign 
             * content", let the secondary insertion mode be "in
body", and 
             * abort these steps. */
            } elseif($node->namespaceURI === self::NS_SVG ||
            $node->namespaceURI === self::NS_MATHML) {
                $this->mode = self::IN_FOREIGN_CONTENT;
                $this->secondary_mode = self::IN_BODY;
                break;

            /* 12. If node is a head element, then switch the insertion
mode
            to "in body" ("in body"! not "in
head"!) and abort these steps.
            (fragment case) */
            } elseif($node->tagName === 'head') {
                $this->mode = self::IN_BODY;
                break;

            /* 13. If node is a body element, then switch the insertion
mode to
            "in body" and abort these steps. */
            } elseif($node->tagName === 'body') {
                $this->mode = self::IN_BODY;
                break;

            /* 14. If node is a frameset element, then switch the insertion
            mode to "in frameset" and abort these steps.
(fragment case) */
            } elseif($node->tagName === 'frameset') {
                $this->mode = self::IN_FRAMESET;
                break;

            /* 15. If node is an html element, then: if the head element
            pointer is null, switch the insertion mode to "before
head",
            otherwise, switch the insertion mode to "after head".
In either
            case, abort these steps. (fragment case) */
            } elseif($node->tagName === 'html') {
                $this->mode = ($this->head_pointer === null)
                    ? self::BEFORE_HEAD
                    : self::AFTER_HEAD;

                break;

            /* 16. If last is true, then set the insertion mode to "in
body"
            and    abort these steps. (fragment case) */
            } elseif($last) {
                $this->mode = self::IN_BODY;
                break;
            }
        }
    }

    private function closeCell() {
        /* If the stack of open elements has a td or th element in table
scope,
        then act as if an end tag token with that tag name had been seen.
*/
        foreach(array('td', 'th') as $cell) {
            if($this->elementInScope($cell, true)) {
                $this->emitToken(array(
                    'name' => $cell,
                    'type' => HTML5_Tokenizer::ENDTAG
                ));

                break;
            }
        }
    }

    private function processWithRulesFor($token, $mode) {
        /* "using the rules for the m insertion mode", where m is
one of these
         * modes, the user agent must use the rules described under the m
         * insertion mode's section, but must leave the insertion mode
         * unchanged unless the rules in m themselves switch the insertion
mode
         * to a new value. */
        return $this->emitToken($token, $mode);
    }

    private function insertCDATAElement($token) {
        $this->insertElement($token);
        $this->original_mode = $this->mode;
        $this->mode = self::IN_CDATA_RCDATA;
        $this->content_model = HTML5_Tokenizer::CDATA;
    }

    private function insertRCDATAElement($token) {
        $this->insertElement($token);
        $this->original_mode = $this->mode;
        $this->mode = self::IN_CDATA_RCDATA;
        $this->content_model = HTML5_Tokenizer::RCDATA;
    }

    private function getAttr($token, $key) {
        if (!isset($token['attr'])) return false;
        $ret = false;
        foreach ($token['attr'] as $keypair) {
            if ($keypair['name'] === $key) $ret =
$keypair['value'];
        }
        return $ret;
    }

    private function getCurrentTable() {
        /* The current table is the last table  element in the stack of
open 
         * elements, if there is one. If there is no table element in the
stack 
         * of open elements (fragment case), then the current table is the 
         * first element in the stack of open elements (the html element).
*/
        for ($i = count($this->stack) - 1; $i >= 0; $i--) {
            if ($this->stack[$i]->tagName === 'table') {
                return $this->stack[$i];
            }
        }
        return $this->stack[0];
    }

    private function getFosterParent() {
        /* The foster parent element is the parent element of the last
        table element in the stack of open elements, if there is a
        table element and it has such a parent element. If there is no
        table element in the stack of open elements (innerHTML case),
        then the foster parent element is the first element in the
        stack of open elements (the html  element). Otherwise, if there
        is a table element in the stack of open elements, but the last
        table element in the stack of open elements has no parent, or
        its parent node is not an element, then the foster parent
        element is the element before the last table element in the
        stack of open elements. */
        for($n = count($this->stack) - 1; $n >= 0; $n--) {
            if($this->stack[$n]->tagName === 'table') {
                $table = $this->stack[$n];
                break;
            }
        }

        if(isset($table) && $table->parentNode !== null) {
            return $table->parentNode;

        } elseif(!isset($table)) {
            return $this->stack[0];

        } elseif(isset($table) && ($table->parentNode === null
||
        $table->parentNode->nodeType !== XML_ELEMENT_NODE)) {
            return $this->stack[$n - 1];
        }
    }

    public function fosterParent($node) {
        $foster_parent = $this->getFosterParent();
        $table = $this->getCurrentTable(); // almost equivalent to last
table element, except it can be html
        /* When a node node is to be foster parented, the node node  must
be 
         * inserted into the foster parent element, and the current table
must 
         * be marked as tainted. (Once the current table has been tainted, 
         * whitespace characters are inserted into the foster parent
element 
         * instead of the current node.) */
        $table->tainted = true;
        /* If the foster parent element is the parent element of the last
table 
         * element in the stack of open elements, then node must be
inserted 
         * immediately before the last table element in the stack of open 
         * elements in the foster parent element; otherwise, node must be 
         * appended to the foster parent element. */
        if ($table->tagName === 'table' &&
$table->parentNode->isSameNode($foster_parent)) {
            $foster_parent->insertBefore($node, $table);
        } else {
            $foster_parent->appendChild($node);
        }
    }

    /**
     * For debugging, prints the stack
     */
    private function printStack() {
        $names = array();
        foreach ($this->stack as $i => $element) {
            $names[] = $element->tagName;
        }
        echo "  -> stack [" . implode(', ', $names)
. "]\n";
    }

    /**
     * For debugging, prints active formatting elements
     */
    private function printActiveFormattingElements() {
        if (!$this->a_formatting) return;
        $names = array();
        foreach ($this->a_formatting as $node) {
            if ($node === self::MARKER) $names[] = 'MARKER';
            else $names[] = $node->tagName;
        }
        echo "  -> active formatting [" . implode(',
', $names) . "]\n";
    }

    public function currentTableIsTainted() {
        return !empty($this->getCurrentTable()->tainted);
    }

    /**
     * Sets up the tree constructor for building a fragment.
     */
    public function setupContext($context = null) {
        $this->fragment = true;
        if ($context) {
            $context = $this->dom->createElementNS(self::NS_HTML,
$context);
            /* 4.1. Set the HTML parser's tokenization  stage's
content model
             * flag according to the context element, as follows: */
            switch ($context->tagName) {
            case 'title': case 'textarea':
                $this->content_model = HTML5_Tokenizer::RCDATA;
                break;
            case 'style': case 'script': case
'xmp': case 'iframe':
            case 'noembed': case 'noframes':
                $this->content_model = HTML5_Tokenizer::CDATA;
                break;
            case 'noscript':
                // XSCRIPT: assuming scripting is enabled
                $this->content_model = HTML5_Tokenizer::CDATA;
                break;
            case 'plaintext':
                $this->content_model = HTML5_Tokenizer::PLAINTEXT;
                break;
            }
            /* 4.2. Let root be a new html element with no attributes. */
            $root = $this->dom->createElementNS(self::NS_HTML,
'html');
            $this->root = $root;
            /* 4.3 Append the element root to the Document node created
above. */
            $this->dom->appendChild($root);
            /* 4.4 Set up the parser's stack of open elements so that
it 
             * contains just the single element root. */
            $this->stack = array($root);
            /* 4.5 Reset the parser's insertion mode appropriately. */
            $this->resetInsertionMode($context);
            /* 4.6 Set the parser's form element pointer  to the
nearest node 
             * to the context element that is a form element (going
straight up 
             * the ancestor chain, and including the element itself, if it
is a 
             * form element), or, if there is no such form element, to
null. */
            $node = $context;
            do {
                if ($node->tagName === 'form') {
                    $this->form_pointer = $node;
                    break;
                }
            } while ($node = $node->parentNode);
        }
    }

    public function adjustMathMLAttributes($token) {
        foreach ($token['attr'] as &$kp) {
            if ($kp['name'] === 'definitionurl') {
                $kp['name'] = 'definitionURL';
            }
        }
        return $token;
    }

    public function adjustSVGAttributes($token) {
        static $lookup = array(
            'attributename' => 'attributeName',
            'attributetype' => 'attributeType',
            'basefrequency' => 'baseFrequency',
            'baseprofile' => 'baseProfile',
            'calcmode' => 'calcMode',
            'clippathunits' => 'clipPathUnits',
            'contentscripttype' =>
'contentScriptType',
            'contentstyletype' =>
'contentStyleType',
            'diffuseconstant' => 'diffuseConstant',
            'edgemode' => 'edgeMode',
            'externalresourcesrequired' =>
'externalResourcesRequired',
            'filterres' => 'filterRes',
            'filterunits' => 'filterUnits',
            'glyphref' => 'glyphRef',
            'gradienttransform' =>
'gradientTransform',
            'gradientunits' => 'gradientUnits',
            'kernelmatrix' => 'kernelMatrix',
            'kernelunitlength' =>
'kernelUnitLength',
            'keypoints' => 'keyPoints',
            'keysplines' => 'keySplines',
            'keytimes' => 'keyTimes',
            'lengthadjust' => 'lengthAdjust',
            'limitingconeangle' =>
'limitingConeAngle',
            'markerheight' => 'markerHeight',
            'markerunits' => 'markerUnits',
            'markerwidth' => 'markerWidth',
            'maskcontentunits' =>
'maskContentUnits',
            'maskunits' => 'maskUnits',
            'numoctaves' => 'numOctaves',
            'pathlength' => 'pathLength',
            'patterncontentunits' =>
'patternContentUnits',
            'patterntransform' =>
'patternTransform',
            'patternunits' => 'patternUnits',
            'pointsatx' => 'pointsAtX',
            'pointsaty' => 'pointsAtY',
            'pointsatz' => 'pointsAtZ',
            'preservealpha' => 'preserveAlpha',
            'preserveaspectratio' =>
'preserveAspectRatio',
            'primitiveunits' => 'primitiveUnits',
            'refx' => 'refX',
            'refy' => 'refY',
            'repeatcount' => 'repeatCount',
            'repeatdur' => 'repeatDur',
            'requiredextensions' =>
'requiredExtensions',
            'requiredfeatures' =>
'requiredFeatures',
            'specularconstant' =>
'specularConstant',
            'specularexponent' =>
'specularExponent',
            'spreadmethod' => 'spreadMethod',
            'startoffset' => 'startOffset',
            'stddeviation' => 'stdDeviation',
            'stitchtiles' => 'stitchTiles',
            'surfacescale' => 'surfaceScale',
            'systemlanguage' => 'systemLanguage',
            'tablevalues' => 'tableValues',
            'targetx' => 'targetX',
            'targety' => 'targetY',
            'textlength' => 'textLength',
            'viewbox' => 'viewBox',
            'viewtarget' => 'viewTarget',
            'xchannelselector' =>
'xChannelSelector',
            'ychannelselector' =>
'yChannelSelector',
            'zoomandpan' => 'zoomAndPan',
        );
        foreach ($token['attr'] as &$kp) {
            if (isset($lookup[$kp['name']])) {
                $kp['name'] = $lookup[$kp['name']];
            }
        }
        return $token;
    }

    public function adjustForeignAttributes($token) {
        static $lookup = array(
            'xlink:actuate' => array('xlink',
'actuate', self::NS_XLINK),
            'xlink:arcrole' => array('xlink',
'arcrole', self::NS_XLINK),
            'xlink:href' => array('xlink',
'href', self::NS_XLINK),
            'xlink:role' => array('xlink',
'role', self::NS_XLINK),
            'xlink:show' => array('xlink',
'show', self::NS_XLINK),
            'xlink:title' => array('xlink',
'title', self::NS_XLINK),
            'xlink:type' => array('xlink',
'type', self::NS_XLINK),
            'xml:base' => array('xml',
'base', self::NS_XML),
            'xml:lang' => array('xml',
'lang', self::NS_XML),
            'xml:space' => array('xml',
'space', self::NS_XML),
            'xmlns' => array(null, 'xmlns',
self::NS_XMLNS),
            'xmlns:xlink' => array('xmlns',
'xlink', self::NS_XMLNS),
        );
        foreach ($token['attr'] as &$kp) {
            if (isset($lookup[$kp['name']])) {
                $kp['name'] = $lookup[$kp['name']];
            }
        }
        return $token;
    }

    public function insertForeignElement($token, $namespaceURI) {
        $el = $this->dom->createElementNS($namespaceURI,
$token['name']);
        if (!empty($token['attr'])) {
            foreach ($token['attr'] as $kp) {
                $attr = $kp['name'];
                if (is_array($attr)) {
                    $ns = $attr[2];
                    $attr = $attr[1];
                } else {
                    $ns = self::NS_HTML;
                }
                if (!$el->hasAttributeNS($ns, $attr)) {
                    // XSKETCHY: work around godawful libxml bug
                    if ($ns === self::NS_XLINK) {
                        $el->setAttribute('xlink:'.$attr,
$kp['value']);
                    } elseif ($ns === self::NS_HTML) {
                        // Another godawful libxml bug
                        $el->setAttribute($attr,
$kp['value']);
                    } else {
                        $el->setAttributeNS($ns, $attr,
$kp['value']);
                    }
                }
            }
        }
        $this->appendToRealParent($el);
        $this->stack[] = $el;
        // XERROR: see below
        /* If the newly created element has an xmlns attribute in the XMLNS

         * namespace  whose value is not exactly the same as the
element's 
         * namespace, that is a parse error. Similarly, if the newly
created 
         * element has an xmlns:xlink attribute in the XMLNS namespace
whose 
         * value is not the XLink Namespace, that is a parse error. */
    }

    public function save() {
        $this->dom->normalize();
        if (!$this->fragment) {
            return $this->dom;
        } else {
            if ($this->root) {
                return $this->root->childNodes;
            } else {
                return $this->dom->childNodes;
            }
        }
    }
}

PK�X�[�V�)offlajnparams/compat/libraries/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[&{�K��offlajnparams/formrenderer.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
#
-------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if(isset($_REQUEST['offlajnformrenderer'])){
  if(isset($_REQUEST['key'])){
    // fix for T3 plugin
    if (!class_exists("T3")) {
      class T3 {
        function detect() {}
      }
    }
    if (!class_exists("Plazart")) {
      class Plazart {
        function detect() {}
      }
    }
    if(defined('WP_ADMIN')){
      OfflajnJPluginHelper::importPlugin('system',
'dojoloader');
    }else{
      JPluginHelper::importPlugin('system',
'dojoloader');
    }
    if(isset(${'_SESSION'}['theme']) &&
isset(${'_SESSION'}['theme']['forms'][$_REQUEST['key']])){
      $env = ${'_SESSION'}['theme'];
      $theme =
${'_SESSION'}['theme']['forms'][$_REQUEST['key']];

      $lang = JFactory::getLanguage();
      $lang->load($env['module'],
JPATH_SITE.'/modules/'.$env['module']);

      if($theme == 'default2') $theme='default';
      $origtheme = $theme;
     
require_once(${'_SESSION'}['OFFLAJNADMINPARAMPATH'].'/offlajndashboard/offlajndashboard.php');

      $xml = $env['themesdir'].$theme.'/theme.xml';
      if($theme == 'default') $theme.=2;
      $params = new OfflajnJParameter('', $xml,
'module' );
      $params->theme = $theme;

      $_xml = &$params->getXML();
      for($x = 0; count($_xml['_default']->_children) > $x;
$x++){
        $node = &$_xml['_default']->_children[$x];
        if(isset($node->_attributes['folder'])){
          $node->_attributes['folder'] =
str_replace('/', DIRECTORY_SEPARATOR,
'/modules/'.$env['module'].'/themes/'.$theme.$node->_attributes['folder']);
        }
      }
      //$params->setRaw($env['raw']);
      if(@$env['formdata']['theme'] == $origtheme){
        $params->bind($env['formdata']);
      }
      echo $params->render($env['c']);
      plgSystemDojoloader::customBuild();

      $document = JFactory::getDocument();
      $document->_metaTags = array();
      $head = $document->getBuffer('head');

      echo
preg_replace('/<(meta|title).*/','',$head);

      exit;
    }else if(isset($_REQUEST['control']) &&
isset(${'_SESSION'}[$_REQUEST['control']]) &&
isset(${'_SESSION'}[$_REQUEST['control']]['forms'][$_REQUEST['key']])){
      $env = ${'_SESSION'}[$_REQUEST['control']];
      $type =
${'_SESSION'}[$_REQUEST['control']]['forms'][$_REQUEST['key']];

      $lang = JFactory::getLanguage();
      $lang->load($env['module'],
JPATH_SITE.'/modules/'.$env['module']);

     
require_once(${'_SESSION'}['OFFLAJNADMINPARAMPATH'].'/offlajndashboard/offlajndashboard.php');

      $xml = $env['typesdir'].$type.'/config.xml';
      $params = new OfflajnJParameter('', $xml,
'module' );
      $params->type = $type;

      $params->bind($env['formdata']);
      echo $params->render($env['c']);
      plgSystemDojoloader::customBuild();

      $document = JFactory::getDocument();
      $document->_metaTags = array();
      $head = $document->getBuffer('head');

      echo
preg_replace('/<(meta|title).*/','',$head);
      exit;
    }else if(isset(${'_SESSION'}['slidertype'])
&&
isset(${'_SESSION'}['slidertype']['forms'][$_REQUEST['key']])){
      $env = ${'_SESSION'}['slidertype'];
      $type =
${'_SESSION'}['slidertype']['forms'][$_REQUEST['key']];

     
require_once(${'_SESSION'}['OFFLAJNADMINPARAMPATH'].'/offlajndashboard/offlajndashboard.php');

      $xml =
$env['typesdir'].'/'.$type.'/type.xml';
      $params = new OfflajnJParameter('', $xml,
'module' );

      if($type == $env['formdata']['type']){
        $params->bind($env['formdata']);
      }

      echo $params->render($env['c']);
      plgSystemDojoloader::customBuild();

      $document = JFactory::getDocument();

      if(defined('WP_ADMIN')){
        foreach($document->_styleSheets AS $k => $s){
          unset($document->_styleSheets[$k]);
          $document->_styleSheets[smartslider_translate_url($k)] = $s;
        }
        foreach($document->_scripts AS $k => $s){
          $document->_scripts[smartslider_translate_url($k)] = $s;
          unset($document->_scripts[$k]);
        }
      }

      $document->_metaTags = array();
      $head = $document->getBuffer('head');

      echo
preg_replace('/<(meta|title).*/','',$head);
      exit;
    }else if(isset(${'_SESSION'}['slidertype'])
&&
isset(${'_SESSION'}['slidertype']['forms'][$_REQUEST['key2']])
      &&
isset(${'_SESSION'}['slidertype'][${'_SESSION'}['slidertype']['forms'][$_REQUEST['key2']]]['theme'][$_REQUEST['key']])){
      $env = ${'_SESSION'}['slidertype'];
      $type =
${'_SESSION'}['slidertype']['forms'][$_REQUEST['key2']];
      $theme =
${'_SESSION'}['slidertype'][${'_SESSION'}['slidertype']['forms'][$_REQUEST['key2']]]['theme'][$_REQUEST['key']];

     
require_once(${'_SESSION'}['OFFLAJNADMINPARAMPATH'].'/offlajndashboard/offlajndashboard.php');

      $xml =
$env['typesdir'].'/'.$type.'/'.$theme.'/theme.xml';
      $params = new OfflajnJParameter('', $xml,
'module' );

      if($type == $env['formdata']['type'] &&
$theme == $env['formdata']['theme']){
        $params->bind($env['formdata']);
      }

      echo $params->render($env['c']);
      plgSystemDojoloader::customBuild();

      $document = JFactory::getDocument();

      if(defined('WP_ADMIN')){
        foreach($document->_styleSheets AS $k => $s){
          $document->_styleSheets[smartslider_translate_url($k)] = $s;
          unset($document->_styleSheets[$k]);
        }
        foreach($document->_scripts AS $k => $s){
          $document->_scripts[smartslider_translate_url($k)] = $s;
          unset($document->_scripts[$k]);
        }
      }
      $document->_metaTags = array();
      $head = $document->getBuffer('head');

      echo
preg_replace('/<(meta|title).*/','',$head);
      exit;
    }
  }
  echo 'Error';exit;
}
?>PK�X�[-0���offlajnparams/generalinfo.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
# -------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
defined( '_JEXEC' ) or die( 'Restricted access' );

$version = JRequest::getString('v', '',
'GET');
$hash = JRequest::getString('hash', '',
'POST');
$post = JRequest::get('POST');
$hash = isset($post['hash']) ?
'&hash='.$post['hash'].'&u='.JURI::root()
: '';

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL =>
'http://offlajn.com/index2.php?option=com_offlajn_update_info&format=raw&v='.$version.$hash
));
$resp = curl_exec($curl);
curl_close($curl);

echo $resp;
exit;PK�X�[�НGWWofflajnparams/imageuploader.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
#
-------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

$files = JRequest::get('FILES');

if (isset($_REQUEST['identifier']) &&
isset(${'_SESSION'}['offlajnupload']) &&
isset(${'_SESSION'}['offlajnupload'][$_REQUEST['identifier']]))
{
  if (defined('DEMO')) {
    echo json_encode(array('err'=>'Upload NOT allowed on
the DEMO site!') );
    exit;
  }
  $folder =
${'_SESSION'}['offlajnupload'][$_REQUEST['identifier']];
  if(isset($files['img'])){
    preg_match('/([^\s]+(\.(?i)(jpe?g|png|gif|bmp|svg))$)/',
$files['img']['name'], $out);
    if(count($out) == 0){
      echo
json_encode(array('err'=>$files['img']['name'].'
is NOT an image') );
      exit;
    }
    move_uploaded_file($files['img']['tmp_name'],
$folder.'/'.$files['img']['name']);
    echo json_encode( array('name' =>
$files['img']['name']) );
    exit;
  }
  preg_match('/([^\s]+(\.(?i)(jpe?g|png|gif|bmp|svg))$)/',
$_REQUEST['name'], $out);
  if(count($out) == 0){
    echo
json_encode(array('err'=>$_REQUEST['name'].' is
NOT an image') );
    exit;
  }
	// Open temp file
	$out = fopen($folder.'/'.$_REQUEST['name'],
"wb");
	if ($out) {
		// Read binary input stream and append it to temp file
		$in = fopen("php://input", "rb");

		if ($in) {
			while ($buff = fread($in, 4096))
				fwrite($out, $buff);
		}
		fclose($in);
		fclose($out);
	}
  echo json_encode(array());
  exit;
}
?>PK�X�[e,fC��offlajnparams/importexport.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
# -------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
defined( '_JEXEC' ) or die( 'Restricted access' );

$app = JFactory::getApplication();
if (!$app->isAdmin()) return;

function deleteTmpDir($dirPath) {
  if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') $dirPath
.= '/';
  $files = glob($dirPath . '*', GLOB_MARK);
  foreach ($files as $file) {
    is_dir($file) ? deleteTmpDir($file) : unlink($file);
  }
  rmdir($dirPath);
}

$get = JRequest::get('GET');
$files = JRequest::get('FILES');

// create redirect
unset($get['task']);
$redirect = 'index.php?'.http_build_query($get);
// file extension check
if (isset($files['offlajnimport']) &&
preg_match('/\.zip$/i',
$files['offlajnimport']['name'])) {

	// create tmp folder
	$tmp = tempnam(sys_get_temp_dir(), '');
	if (file_exists($tmp)) unlink($tmp);
	mkdir($tmp);

	// unzip to tmp folder
	jimport('joomla.filesystem.archive');
	$zip = JArchive::getAdapter('zip');
	$zip->extract($files['offlajnimport']['tmp_name'],
$tmp);

	if (file_exists($tmp.'/module.json')) {

		// add images
		$images = array();
		if (file_exists($tmp.'/images.json')) {
			$images = json_decode( file_get_contents($tmp.'/images.json')
);
			foreach ($images as $img) {
				$from = $tmp.'/images/'.$img->file;
				$to = JPATH_SITE.$img->path.$img->file;
				if (preg_match('/\.(png|bmp|gif|jpg)$/i', $to) &&
!preg_match('/[\/\\]\.\.+[\/\\]/'))
					file_exists($to) or rename($from, $to);
			}
		}
		// get new params
		$params = json_decode(file_get_contents($tmp.'/module.json'),
true);
		if ($params) {
			// get current params
			$db = JFactory::getDbo();
			$id = (int) $get['id'];
			$db->setQuery("SELECT id, params FROM #__modules WHERE id = $id
LIMIT 1");
			$module = $db->loadObject();
			if ($module && @$module->id > 0) {
				// override with new params
				$p = json_decode($module->params, true);
				if (!is_array($p)) $p = array();
				foreach ($params as $tabName => $tab) {
					if (is_array($tab)) {
						if (!isset($p[$tabName])) $p[$tabName] = array();
						foreach ($tab as $param => $val) {
							if (is_array($val)) {
								if (!isset($p[$tabName][$param])) $p[$tabName][$param] = array();
								foreach ($val as $key => $value) {
									$p[$tabName][$param][$key] = $value;
								}
							} else {
								if ($param == 'custom_css') // custom CSS fix
									$val =
preg_replace('/([#\.]\S+?)'.$params['originalId'].'/',
'${1}'.$module->id, $val);
								$p[$tabName][$param] = $val;
							}
						}
					}
				}
				// update img paths
				$root = JURI::root();
				foreach ($images as $img) {
					// combine check
					$img->param = explode('[', $img->param);
					$index = isset($img->param[1]) ? (int) $img->param[1] : 0;
					$img->param = $img->param[0];
					// update img param
					$ip = explode('/', $img->param);
					$imgparam = count($ip) == 2 ? $p[ $ip[0] ][ $ip[1] ] : $p[ $ip[0] ][
$ip[1] ][ $ip[2] ];
					$parts = explode('|*|', $imgparam);
					$parts[$index] = preg_replace('/([^:])\/\/+/',
'$1/', $root . $img->path . $img->file);
					count($ip) == 2 ? ($p[ $ip[0] ][ $ip[1] ] = implode('|*|',
$parts)) : ($p[ $ip[0] ][ $ip[1] ][ $ip[2] ] = implode('|*|',
$parts));
				}
				// update params
				$module->params = json_encode($p);
				$module->showtitle = (int) $params['showtitle'];
				$res = $db->updateObject('#__modules', $module,
'id');

				if ($res) {
					$app->enqueueMessage(JText::_('Module successfully
imported'));
				} else $app->enqueueMessage(JText::_('Database error during
update'), 'warning');
			} else $app->enqueueMessage(JText::_('Module not found, please
first save the module'), 'warning');
		} else $app->enqueueMessage(JText::_('Corrupt file:
module.json'), 'warning');
	} else $app->enqueueMessage(JText::_('File not found:
module.json'), 'warning');
	deleteTmpDir($tmp);
} else $app->enqueueMessage(JText::_('Invalid file
extension'), 'warning');

$app->redirect($redirect);PK�X�[
�H''offlajnparams/index.htmlnu�[���<html><head></head><body></body></html>PK�X�[^���ZZofflajnparams/manifest.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" group="system"
version="1.5" method="upgrade">
	<name>System - Offlajn Params</name>
	<description></description>
	<version>1.2.0</version>
	<creationDate>Marc 2016</creationDate>
	<author>Balint Polgarfi</author>
	<authorEmail>info@offlajn.com</authorEmail>
	<authorUrl>https://offlajn.com</authorUrl>
	<copyright>2012-2019 Offlajn.com</copyright>
	<license>https://gnu.org/licenses/gpl-2.0.html</license>

	<!-- Files -->
	<files>
		<folder>compat</folder>
		<filename
plugin="offlajnparams">offlajnparams.php</filename>
		<filename>offlajnjoomlacompat.php</filename>
		<filename>tab15.tpl.php</filename>
		<filename>tab16.tpl.php</filename>
		<filename>offlajnparams.xml</filename>
		<filename>index.html</filename>
		<filename>menuloader.php</filename>
		<filename>imageuploader.php</filename>
		<filename>formrenderer.php</filename>
		<filename>importexport.php</filename>
		<filename>relatednews.php</filename>
		<filename>generalinfo.php</filename>
	</files>

	<!-- Parameters -->
	<params></params>
</extension>PK�X�[�Ƣ�&&offlajnparams/menuloader.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
# -------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
defined( '_JEXEC' ) or die( 'Restricted access' );

class OfflajnMenuTypes {

	private static function getMenuHtml(&$menuItems) {
		$children = array();
		if ($menuItems) {
			foreach ($menuItems as &$item){
				$pt = $item->parent_id;
				$list = isset($children[$pt]) ? $children[$pt] : array();
				array_push($list, $item);
				$children[$pt] = $list;
			}
		}

		// initializing $parent as the root
		$parent = 0;
		$parent_stack = array();
		$loop = !empty( $children[0] );
		$html  = array();

		while ( $loop && ( ($option = each($children[$parent])) ||
$parent ) ) {
			if ( $option === false ) {
				$parent = array_pop( $parent_stack );
				// HTML for menu item containing childrens (close)
				$html[] = '</dl></dd>';

			} elseif ( !empty( $children[$option['value']->id] ) ) {
				// HTML for menu item containing childrens (open)
				$html[] = '<dt><i
class="otl-toggle"></i><label><input
type="checkbox" value="'.
$option['value']->id .'">'.
$option['value']->title
.'</label></dt>';
				$html[] = '<dd><dl>';

				array_push( $parent_stack, $option['value']->parent_id );
				$parent = $option['value']->id;

			} else {
				// HTML for menu item with no children (aka "leaf")
				$html[] = '<dt><i
class="otl-leaf"></i><label><input
type="checkbox" value="'.
$option['value']->id .'">'.
$option['value']->title
.'</label></dt>';
			}
		}

		return implode( '', $html );
	}

	public static function getJoomlaMenuItems() {
		// get Joomla menus
		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('jm-', id) AS id,
'jroot' AS parent_id, title, menutype FROM `#__menu_types` ORDER
BY menutype");
		$menuTypes = $db->loadObjectList('menutype');
		if ($db->getErrorNum()) return '';

		// get Joomla menu-items
		$db->setQuery("SELECT CONCAT('j-', id) AS id,
CONCAT('j-', parent_id) AS parent_id, title, menutype
			FROM `#__menu` WHERE published = 1 ORDER BY menutype, lft,
parent_id");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		// update parent id of level1 menuitems
		foreach ($menuItems as &$menuItem) {
			if ($menuItem->parent_id == 'j-1') {
				$menuItem->parent_id = $menuTypes[$menuItem->menutype]->id;
			}
		}

		// add menu types to menu items
		$rootMenuItem = array_shift($menuItems);
		$rootMenuItem->id = 'jroot';
		$rootMenuItem->title = 'Joomla Menus';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuTypes, $rootMenuItem);
		$menuItems = array_merge($menuTypes, $menuItems);

		return self::getMenuHtml($menuItems);
	}

	public static function getJoomlaContentItems() {
		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('jc-', id) AS id, title,
CONCAT('jc-', parent_id) AS parent_id FROM `#__categories`
			WHERE published = 1 AND (extension = 'com_content' OR
extension = 'system') ORDER BY lft");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$menuItems[0] = new stdClass();
		$menuItems[0]->id = 'jc-1';
		$menuItems[0]->title = 'Joomla Contents';
		$menuItems[0]->parent_id = 0;

		return self::getMenuHtml($menuItems);
	}

	public static function getK2Items() {
		if (!file_exists(JPATH_ROOT.'/components/com_k2')) return
'';

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('k2-', id) AS id, name AS
title, CONCAT('k2-', parent) AS parent_id
			FROM `#__k2_categories` WHERE published = 1 ORDER BY parent,
ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'k2-0';
		$rootMenuItem->title = 'K2';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

	public static function getZooItems() {
		if (!file_exists(JPATH_ROOT.'/components/com_zoo')) return
'';

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('za-', id) AS id,
'zoo' AS parent_id, name AS title FROM `#__zoo_application` ORDER
BY name");
		$apps = $db->loadObjectList('id');
		if ($db->getErrorNum()) return '';

		$db->setQuery("SELECT CONCAT('zc-', id) AS id,
CONCAT('zc-', parent) AS parent_id, name AS title,
CONCAT('za-', application_id) as app_id
			FROM `#__zoo_category` WHERE published = 1 ORDER BY parent,
ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		// update parent id of level1 menuitems
		foreach ($menuItems as &$menuItem) {
			if ($menuItem->parent_id == 'zc-0') {
				$menuItem->parent_id = $apps[$menuItem->app_id]->id;
			}
		}

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'zoo';
		$rootMenuItem->title = 'Zoo';
		$rootMenuItem->parent_id = 0;
		array_unshift($apps, $rootMenuItem);
		$menuItems = array_merge($apps, $menuItems);

		return self::getMenuHtml($menuItems);
	}

	public static function getHikashopItems() {
		if (!file_exists(JPATH_ROOT.'/components/com_hikashop')) return
'';

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('hs-', category_id) AS id,
category_name AS title, CONCAT('hs-', category_parent_id) AS
parent_id
			FROM `#__hikashop_category` WHERE category_published = 1 AND
category_type = 'product' ORDER BY category_ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'hs-1';
		$rootMenuItem->title = 'HikaShop';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

	public static function getJoomshoppingItems() {
		if (!file_exists(JPATH_ROOT.'/components/com_jshopping'))
return '';

		$lang = JFactory::getLanguage()->getTag();
		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('js-', category_id) AS id,
`name_$lang` AS title, CONCAT('js-', category_parent_id) AS
parent_id
			FROM `#__jshopping_categories` WHERE category_publish = 1 ORDER BY
ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'js-0';
		$rootMenuItem->title = 'JoomShopping';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

	public static function getMijoshopItems() {
		if
(!file_exists(JPATH_ROOT.'/components/com_mijoshop/mijoshop/mijoshop.php'))
return '';

		require_once(JPATH_ROOT.'/components/com_mijoshop/mijoshop/mijoshop.php');
		$lang = '';
		$config =
MijoShop::get('opencart')->get('config');
		if (is_object($config)) {
			$lang = 'AND cd.language_id =
'.$config->get('config_language_id');
		}

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('ms-', c.category_id) AS
id, cd.name AS title, CONCAT('ms-', c.parent_id) AS parent_id
			FROM `#__mijoshop_category` AS c LEFT JOIN
`#__mijoshop_category_description` AS cd ON c.category_id =
cd.category_child_id
			WHERE c.status = 1 $lang ORDER BY c.sort_order");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'ms-0';
		$rootMenuItem->title = 'MijoShop';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

	public static function getRedshopItems() {
		if (!file_exists(JPATH_ROOT.'/components/com_redshop')) return
'';

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('rs-', c.category_id) AS
id, c.category_name AS title, CONCAT('rs-',
cx.category_parent_id) AS parent_id
			FROM `#__redshop_category` AS c LEFT JOIN `#__redshop_category_xref` AS
cx ON c.category_id = cx.category_child_id
			WHERE c.published = 1 ORDER BY c.ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'rs-0';
		$rootMenuItem->title = 'RedShop';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

	public static function getVirtuemartItems() {
		if
(!file_exists(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php'))
return '';

		require_once(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php');
		VmConfig::loadConfig();
		$lang = VMLANG;

		$db = JFactory::getDBO();
		$db->setQuery("SELECT CONCAT('vm-',
cc.category_child_id) AS id, cl.category_name AS title,
CONCAT('vm-', cc.category_parent_id) AS parent_id
			FROM `#__virtuemart_categories` AS c
			LEFT JOIN `#__virtuemart_categories_$lang` AS cl ON
c.virtuemart_category_id = cl.virtuemart_category_id
			LEFT JOIN `#__virtuemart_category_categories` AS cc ON
c.virtuemart_category_id = cc.category_child_id
			WHERE c.published = 1 ORDER BY c.ordering");
		$menuItems = $db->loadObjectList();
		if ($db->getErrorNum()) return '';

		$rootMenuItem = new stdClass();
		$rootMenuItem->id = 'vm-0';
		$rootMenuItem->title = 'VirtueMart';
		$rootMenuItem->parent_id = 0;
		array_unshift($menuItems, $rootMenuItem);

		return self::getMenuHtml($menuItems);
	}

}

foreach (get_class_methods('OfflajnMenuTypes') as $method) {
	echo call_user_func(array('OfflajnMenuTypes', $method));
}

exit;PK�X�[�%		%offlajnparams/offlajnjoomlacompat.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
# -------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if(version_compare(JVERSION,'3.0.0','l')) {
  function offlajn_jimport($key, $base = null) {
    return jimport($key);
  }
} else {
  defined('DS') or define('DS', DIRECTORY_SEPARATOR);
  define('OFFLAJN_COMPAT',
dirname(__FILE__).'/compat/libraries');

  function OfflajnJoomlaCompatFixArray($a) {
    if (is_array($a) || is_object($a)) {
      foreach($a AS $k => $v){
        if(is_array($v)){
          $a[$k] = OfflajnJoomlaCompatFixArray($v);
        }elseif(isset($a[$k][0]) && $a[$k][0] == '{'){
          $a[$k] = str_replace('\\"', '"',
$a[$k]);
        }
      }
    }
    return $a;
  }

  $jpost = JFactory::getApplication()->input->post;
  $jform = $jpost->get('jform', array(), null);

  if ($jpost->getCmd('task') == 'module.apply'
&& isset($jform['params']) &&
isset($jform['params']['moduleparametersTab'])) {
    ${'_POST'} =
OfflajnJoomlaCompatFixArray(${'_POST'});
  }

  function offlajn_jimport($path) {
    $path = str_replace('joomla', 'coomla', $path);
    return JLoader::import($path, OFFLAJN_COMPAT);
  }
}
PK�X�[�1s�:�:offlajnparams/offlajnparams.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
#
-------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

$er = error_reporting();
if ($er & E_STRICT || $er & E_DEPRECATED)
  error_reporting($er & ~E_STRICT & ~E_DEPRECATED);

jimport( 'joomla.plugin.plugin' );
require_once dirname(__FILE__).'/offlajnjoomlacompat.php';

$option = isset($_REQUEST['option']) ?
$_REQUEST['option'] : '';
$task = isset($_REQUEST['task']) ? $_REQUEST['task'] :
'';

if ($option == 'offlajnupload')
  require_once(dirname(__FILE__).'/imageuploader.php');
switch ($task) {
  case 'offlajnimport':
require_once(dirname(__FILE__).'/importexport.php');
  case 'offlajnmenu':
require_once(dirname(__FILE__).'/menuloader.php');
  case 'offlajninfo':
require_once(dirname(__FILE__).'/generalinfo.php');
  case 'offlajnnews':
require_once(dirname(__FILE__).'/relatednews.php');
}

require_once(dirname(__FILE__).'/formrenderer.php');

class  plgSystemOfflajnParams extends JPlugin
{
  function __construct(& $subject, $config){
		parent::__construct($subject, $config);
	}

  function onBeforeCompileHead() {
    $gsap = array();
    $latest = '';
    $version = '0.0.0';
    $scripts = &JFactory::getDocument()->_scripts;
    // get latest GSAP script
    foreach ($scripts as $src => $attr) {
      if
(preg_match('#^(https?:)?//cdnjs\.cloudflare\.com/ajax/libs/gsap/(\d+\.\d+\.\d+)/(TweenMax|TweenLite)\.min\.js(\?.*)?$#',
$src, $match)) {
        $gsap[] = $src;
        if (version_compare($version, $match[2], '<')) {
          $latest = $src;
          $version = $match[2];
        }
      }
    }
    $gsapCdn = $this->params->get('gsap_cdn', 0);
    // remove older GSAP scripts
    foreach ($gsap as $src) {
      if (!$gsapCdn || $src != $latest) {
        unset($scripts[$src]);
      }
    }
    if (!$gsapCdn && !empty($gsap)) {
      $scripts = array(rtrim(JURI::root(true),
'/').'/plugins/system/offlajnparams/compat/greensock.js'
=> array('mime' => 'text/javascript',
'defer' => '', 'async' =>
'')) + $scripts;
    }
  }

  function addNewTab($id, $title, $text, $position = 'last',
$class=''){
    global $offlajnParams;
    if($position != 'first') $position = 'last';
    $offlajnParams[$position][] = self::renderNewTab($id, $title, $text,
$class);
  }

  function renderNewTab($id, $title, $text, $class=''){
    ob_start();
    if(version_compare(JVERSION,'1.6.0','ge'))
      include(dirname(__FILE__).'/tab16.tpl.php');
    else
      include(dirname(__FILE__).'/tab15.tpl.php');

    return ob_get_clean();
  }

  function getElementById(&$dom, $id){
    $xpath = new DOMXPath($dom);
    return
$xpath->query("//*[@id='$id']")->item(0);
  }

  function getElementByClass(&$dom, $class, $item = 0){
    $xpath = new DOMXPath($dom);
    return
$xpath->query("//*[@class='$class']")->item($item);
  }

	function onAfterDispatch(){
    global $offlajnParams, $offlajnDashboard;
    $app = JFactory::getApplication();
    if (!defined('OFFLAJNADMIN') ||
isset($_REQUEST['output']) &&
$_REQUEST['output'] == 'json') {
        return;
    }

    $doc = JFactory::getDocument();
    $c = $doc->getBuffer('component');

		$dom = new DomDocument();
    if(function_exists("mb_convert_encoding")) {
      @$dom->loadHtml('<?xml
encoding="UTF-8"><div>'.mb_convert_encoding($c,
'HTML-ENTITIES', "UTF-8").'</div>');
    } else {
      @$dom->loadHtml('<?xml
encoding="UTF-8"><div>'.htmlspecialchars_decode(utf8_decode(htmlentities($c,
ENT_COMPAT, 'utf-8', false))).'</div>');
    }
		$lis = array();

    $moduleparams = "";
    $advanced = JRequest::getCmd('option') ==
'com_advancedmodules';

    if(version_compare(JVERSION,'3.0.0','ge')
&& !$this->getElementById($dom, 'module-sliders')) {

      // Joomla 3.0.3 fix
      if(version_compare(JVERSION,'3.1.99','ge')) {
        $moduleparams = $this->getElementByClass($dom,
'span9');
      }elseif(version_compare(JVERSION,'3.0.3','ge'))
{
        $moduleparams = $this->getElementById($dom,
'collapse0');
      }else{
        $moduleparams = $this->getElementById($dom,
'options-basic');
      }
      if ($advanced){
        $moduleparams =
version_compare(JVERSION,'3.2.2','ge')?
          $this->getElementByClass($dom, 'span9') :
          $this->getElementByClass($dom, 'span6', 1);
      }
      if($moduleparams){
        $element = $dom->createElement('div');
        $element->setAttribute
('id','content-box');
        $moduleparams->appendChild($element);
        $moduleparams = $element;
        $element = $dom->createElement('div');
        $element->setAttribute
('id','module-sliders');
        $element->setAttribute
('class','pane-sliders');
        $moduleparams->appendChild($element);
        $moduleparams = $element;
      }
    }elseif(version_compare(JVERSION,'1.6.0','ge')) {
      $moduleparams = $this->getElementById($dom,
'module-sliders');
    }else{
      $moduleparams = $this->getElementById($dom,
'menu-pane');
    }
    if($moduleparams){
      $removed = array();
      while($cNode = $moduleparams->firstChild){
        $removed[] = $moduleparams->removeChild($cNode);
      }
      if(version_compare(JVERSION,'1.6.0','ge')) {
        array_splice($removed, 0, 2);
      }else{
        array_splice($removed, 0, 1);
      }
      $html = '<div>';
      $html.= isset($offlajnDashboard) ? $offlajnDashboard : '';
      $html.= isset($offlajnParams['first']) &&
is_array($offlajnParams['first']) ?
implode("\n",$offlajnParams['first']) : '';
      $html.= isset($offlajnParams['last']) &&
is_array($offlajnParams['last']) ?
implode("\n",$offlajnParams['last']) : '';
      $html.= '</div>';
      $tabsDom = new DomDocument();
      if(function_exists("mb_convert_encoding")) {
        @$tabsDom->loadHtml('<?xml
encoding="UTF-8">'.mb_convert_encoding($html,
'HTML-ENTITIES', "UTF-8"));
      } else {
        @$tabsDom->loadHtml('<?xml
encoding="UTF-8">'.htmlspecialchars_decode(utf8_decode(htmlentities($html,
ENT_COMPAT, 'utf-8', false))));
      }

      $node = $dom->importNode(
$tabsDom->getElementsByTagName('div')->item(0), true );
      while($cNode = $node->firstChild){
        if(@$cNode->tagName == 'div')
          $moduleparams->appendChild($cNode);
        else
          $node->removeChild($cNode);
      }

      if(count($removed) > 0){
        foreach($removed as $r){
          if($r instanceof DOMElement){
            $r->setAttribute("class",
$r->getAttribute("class")." legacy");
            $moduleparams->appendChild($r);
          }
        }
      }

      if(!version_compare(JVERSION,'1.6.0','ge')) {
        $tables = $dom->getElementsByTagName('table');
        foreach ($tables as $table) {
          $table->setAttribute("cellspacing", "0");
        }
      }

      $params = $moduleparams->getElementsByTagName('h3');
      foreach ($params as $param) {
        $span =
$param->getElementsByTagName('span')->item(0);
        $titleWords = explode(" ", $span->textContent);
        $titleWords[count($titleWords)-1] =
"<b>".$titleWords[count($titleWords)-1]."</b>";
        $newTitle = implode(' ', $titleWords);

        $span->removeChild($span->firstChild);
        $newText = $dom->createCDATASection($newTitle);
        $span->appendChild($newText);
      }

      $j=0;
      foreach ($moduleparams->childNodes as $param) {
        $param->setAttribute("id",
"offlajnpanel-".$j);
        $j++;
      }
    }

    if (!isset($doc->_script['text/javascript']))
$doc->_script['text/javascript'] = array();
    $doc->_script['text/javascript'] =
preg_replace("/window.addEvent.*?pane-toggler.*?\}\);.*?\}\);/i",
'',  $doc->_script['text/javascript']);

    $doc->_script['text/javascript'].='
      window.addEvent && window.addEvent("domready",
function(){
        if(document.formvalidator)
          document.formvalidator.isValid = function() {return true;};
      });';

    if(version_compare(JVERSION,'3.0.0','ge')) {
      if($moduleparams && $moduleparams->parentNode){
        function getInnerHTML($Node){
             $Document = new DOMDocument();
            
$Document->appendChild($Document->importNode($Node,true));
             return $Document->saveHTML();
        }
        $nc = getInnerHTML($moduleparams->parentNode);
      }else{
        $nc = $dom->saveHTML();
      }

      if (stripos('<body', $nc) !== false) {
        $nc = preg_replace("/.*?<body>/si", '', 
$nc, 1);
        $nc = preg_replace("/<\/body>.*/si", '',
$nc, 1);
      }

      $pattern =
'/<div\s*class="tab-pane"\s*id="options-basic".*?>/';

      if (version_compare(JVERSION,'3.1.99','ge')) {
        $pattern = '/<div\s*class="span9".*?>/';
      } elseif (version_compare(JVERSION,'3.0.3','ge'))
{
        $pattern = '/<div\s*class="accordion-body collapse
in"\s*id="collapse0".*?>/';
      }
      if ($advanced) {
        $pattern = version_compare(JVERSION,'3.2.2',
'ge')?
          '/<div\s*class="span9".*?>/' :
         
'/<\/div>\s*<div\s*class="span6".*?>/';
      }
      preg_match($pattern, $c, $matches);
      if(count($matches) > 0){
        $c = str_replace($matches[0], $matches[0].$nc, $c);
      }else{
        $c = $nc;
      }
    }else{
      $c = $dom->saveHtml();
      $c = preg_replace("/.*?<body><div>/si",
'',  $c, 1);
      $c = preg_replace("/<\/div><\/body>.*/si",
'',  $c, 1);
    }

    $doc->setBuffer($c, 'component');
	}

	function onAfterInitialise()
	{
		$app = JFactory::getApplication();
    $db = JFactory::getDbo();

    if ($app->isAdmin() && @$_REQUEST['option'] ==
'com_installer' && @$_REQUEST['view'] ==
'update') {
      $db->setQuery("SELECT * FROM #__updates WHERE detailsurl LIKE
'http://offlajn.com/%'");
      $updates = json_encode( $db->loadObjectList('update_id')
);
      $doc = JFactory::getDocument();
      if (version_compare(JVERSION, '3.0.0', 'l')) {
       
$doc->addScript('https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js');
      } else JHtml::_('jquery.framework');
      $doc->addScriptDeclaration(";(function($) {
        offUpdates = $updates;
        offEnableUpdate = function(cid, key) {
          offUpdates[cid].extra_query = 'key='+key;
          offUpdates[cid].node.checked = true;
         
$.post('index.php?option=com_installer&task=update.extra_query',
{q: 'key='+key, cid: cid}, function() {
            alert('Valid key, Thank you!');
          });
        };
        $(function() {
          $('input[name=\"cid[]\"]').each(function() {
            if (this.value in offUpdates) {
              this.parentNode.nextElementSibling.innerHTML += '<a
href=\"https://www.youtube.com/watch?v=Fr6ooBbq9QE\"
target=\"_blank\"><span class=\"icon-info\"
style=\"vertical-align:middle\"></span>[More
Info]</a>';
            }
          });
        });
        $(document.documentElement).on('change',
'input[name=\"cid[]\"]', function(e) {
          if (this.checked && this.value in offUpdates) {
            var cid = this.value;
            var title = offUpdates[cid].name + '\\n';
            if (offUpdates[cid].extra_query) {
              var end = parseInt(offUpdates[cid].extra_query.substr(4, 6),
36) * 1000;
              if (end < Date.now()) {
                offUpdates[cid].extra_query = '';
                alert(title + '\\nYour license has been expired on
'+ new Date(end).toDateString() +'.\\nPlease renew your license
for updates!');
              }
            }
            if (!offUpdates[cid].extra_query) { // get update key
              this.checked = false;
              var key = prompt(title + 'Please insert your update
key:');
              if (key) {
                if (key.length != 38) return alert('Invalid
key!');
                offUpdates[cid].node = this;
                offUpdates[cid].node.disabled = true;
                var pkg =
offUpdates[cid].detailsurl.match(/([^\/]+)\.xml?$/)[1];
               
$.getScript(location.protocol+'//offlajn.com/index2.php?option=com_update&task=validate&cid='+cid+'&pkg='+pkg+'&key='+key,
function() {
                  offUpdates[cid].node.disabled = false;
                });
              }
            }
          }
        }).on('change',
'input[name=\"checkall-toggle\"]', function() {
          $('input[name=\"cid[]\"]').change();
        });
      })(jQuery);");
    }
    if ($app->isAdmin() && @$_REQUEST['option'] ==
'com_installer' && @$_REQUEST['task'] ==
'update.extra_query') {
      $cid = (int) $_REQUEST['cid'];
      $q = @$_REQUEST['q'];
      if (!preg_match('/key=\w+/', $q)) die('nok');
      $db->setQuery("UPDATE #__updates
        SET extra_query = '$q' WHERE update_id = $cid AND
detailsurl LIKE 'http://offlajn.com/%' LIMIT 1");
      $db->query();
      $db->setQuery("UPDATE #__update_sites
        SET extra_query = '$q' WHERE update_site_id = (SELECT
update_site_id FROM #__updates
          WHERE update_id = $cid AND detailsurl LIKE
'http://offlajn.com/%' LIMIT 1) LIMIT 1");
      $db->query();
      die('ok');
    }


		if(!$app->isAdmin() ||
!isset(${'_SESSION'}['offlajnurl']) ||
!isset(${'_SESSION'}['offlajnurl'][$_SERVER['REQUEST_URI']])){
			return;
		}
    //if(version_compare(JVERSION,'3.0.0','ge'))
return;

		$template_style_id = 2;
		if(version_compare(JVERSION,'1.6.0','ge')) {
		  if(version_compare(JVERSION,'3.0.0','ge')) {
        $db->setQuery('SELECT template, params FROM
#__template_styles WHERE template LIKE "isis"');
      } else {
        $db->setQuery('SELECT template, params FROM
#__template_styles WHERE `client_id` = 1 AND `id`= '.
(int)$template_style_id.' ORDER BY id ASC');
      }
		  $row = $db->loadObject();

  		if(!$row){
  			return;
  		}

  		if(empty($row->template)){
  			return;
  		}

  		if(file_exists(JPATH_THEMES.'/'.$row->template)){
  		  $tmpl = $app->getTemplate(true);
  		  $tmpl->template = $row->template;
    		$tmpl->params = new JRegistry($row->params);
  		}
		}else{
		  if($app->getTemplate() != 'khepri'){
  		  $db->setQuery('UPDATE #__templates_menu SET template =
"khepri" WHERE menuid = 0 AND client_id = 1');
  		  $db->query();
        header('LOCATION: '.$_SERVER['REQUEST_URI']);
        exit;
  		}
		}
	}

}
PK�X�[/2�//offlajnparams/offlajnparams.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" group="system"
version="2.5" method="upgrade">
	<name>System - Offlajn Params</name>
	<description></description>
	<version>1.2.1</version>
	<creationDate>Marc 2016</creationDate>
	<author>Balint Polgarfi</author>
	<authorEmail>info@offlajn.com</authorEmail>
	<authorUrl>https://offlajn.com</authorUrl>
	<copyright>2012-2019 Offlajn.com</copyright>
	<license>https://gnu.org/licenses/gpl-2.0.html</license>
	<files>
		<folder>compat</folder>
		<filename
plugin="offlajnparams">offlajnparams.php</filename>
		<filename>offlajnjoomlacompat.php</filename>
		<filename>tab15.tpl.php</filename>
		<filename>tab16.tpl.php</filename>
		<filename>offlajnparams.xml</filename>
		<filename>index.html</filename>
		<filename>menuloader.php</filename>
		<filename>imageuploader.php</filename>
		<filename>formrenderer.php</filename>
		<filename>importexport.php</filename>
		<filename>relatednews.php</filename>
		<filename>generalinfo.php</filename>
	</files>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field name="gsap_cdn" type="radio"
default="0" label="Load GSAP from CDN">
					<option value="1">JYes</option>
					<option value="0">JNo</option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>PK�X�[�I
$$offlajnparams/relatednews.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
# -------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
defined( '_JEXEC' ) or die( 'Restricted access' );

$tag = urlencode(JRequest::getString('tag', '',
'GET'));

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL =>
'http://offlajn.com/index2.php?option=com_offlajn_related_news&format=raw&tag='.$tag
));
$resp = curl_exec($curl);
curl_close($curl);

echo $resp;
exit;PK�X�[���Vooofflajnparams/tab15.tpl.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
#
-------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<div class="panel <?php echo $class; ?>">
  <h3 id="<?php echo $id; ?>-title"
class="jpane-toggler title jpane-toggler-down"><span
style="background-image: none;"><?php echo $title;
?></span></h3>
  <div class="jpane-slider content">
    <?php echo $text; ?>
    <div style="clear: left;" id="<?php echo $id;
?>-details">
    </div>
  </div>
</div>PK�X�[���r\\offlajnparams/tab16.tpl.phpnu�[���<?php
/**
 * mod_vertical_menu - Vertical Menu
 *
 * @author    Balint Polgarfi
 * @copyright 2014-2019 Offlajn.com
 * @license   https://gnu.org/licenses/gpl-2.0.html
 * @link      https://offlajn.com
 */
?><?php
/*-------------------------------------------------------------------------
# plg_offlajnparams - Offlajn Params
#
-------------------------------------------------------------------------
# @ author    Balint Polgarfi
# @ copyright Copyright (C) 2016 Offlajn.com  All Rights Reserved.
# @ license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# @ website   http://www.offlajn.com
-------------------------------------------------------------------------*/
?><?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<div class="panel <?php echo $class; ?>">
  <h3 id="<?php echo $id; ?>-title" class="title
pane-toggler-down"><a href="" onclick="return
false;"><span><?php echo $title;
?></span></a></h3>
  <div class="pane-slider content pane-down"
style="padding-top: 0px; border-top: medium none; padding-bottom: 0px;
border-bottom: medium none; height: auto;">
    <fieldset class="panelform" id="<?php echo $id;
?>-fieldset" >
      <?php echo $text; ?>
      <div style="clear: left;" id="<?php echo $id;
?>-details">
      </div>

    </fieldset>
    <div class="clr"></div>
  </div>
</div>PK�X�[	�Ǖ�p3p/p3p.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.p3p
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Joomla! P3P Header Plugin.
 *
 * @since  1.6
 * @deprecate  4.0  Obsolete
 */
class PlgSystemP3p extends JPlugin
{
	/**
	 * After initialise.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 * @deprecate  4.0  Obsolete
	 */
	public function onAfterInitialise()
	{
		// Get the header.
		$header = $this->params->get('header', 'NOI ADM DEV
PSAi COM NAV OUR OTRo STP IND DEM');
		$header = trim($header);

		// Bail out on empty header (why would anyone do that?!).
		if (empty($header))
		{
			return;
		}

		// Replace any existing P3P headers in the response.
		JFactory::getApplication()->setHeader('P3P',
'CP="' . $header . '"', true);
	}
}
PK�X�[0Z�EEp3p/p3p.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_p3p</name>
	<author>Joomla! Project</author>
	<creationDate>September 2010</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_P3P_XML_DESCRIPTION</description>
	<files>
		<filename plugin="p3p">p3p.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_p3p.ini</language>
		<language
tag="en-GB">en-GB.plg_system_p3p.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="header"
					type="text"
					label="PLG_P3P_HEADER_LABEL"
					description="PLG_P3P_HEADER_DESCRIPTION"
					default="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
					size="37"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[T�x�
�
 privacyconsent/field/privacy.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.privacyconsent
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('JPATH_PLATFORM') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;

JFormHelper::loadFieldClass('radio');

/**
 * Provides input for privacy
 *
 * @since  3.9.0
 */
class JFormFieldprivacy extends JFormFieldRadio
{
	/**
	 * The form field type.
	 *
	 * @var    string
	 * @since  3.9.0
	 */
	protected $type = 'privacy';

	/**
	 * Method to get the field input markup.
	 *
	 * @return  string   The field input markup.
	 *
	 * @since   3.9.0
	 */
	protected function getInput()
	{
		// Display the message before the field
		echo
$this->getRenderer('plugins.system.privacyconsent.message')->render($this->getLayoutData());

		return parent::getInput();
	}

	/**
	 * Method to get the field label markup.
	 *
	 * @return  string  The field label markup.
	 *
	 * @since   3.9.0
	 */
	protected function getLabel()
	{
		if ($this->hidden)
		{
			return '';
		}

		return
$this->getRenderer('plugins.system.privacyconsent.label')->render($this->getLayoutData());

	}

	/**
	 * Method to get the data to be passed to the layout for rendering.
	 *
	 * @return  array
	 *
	 * @since   3.9.4
	 */
	protected function getLayoutData()
	{
		$data = parent::getLayoutData();

		$article = false;
		$privacyArticle = $this->element['article'] > 0 ? (int)
$this->element['article'] : 0;

		if ($privacyArticle &&
Factory::getApplication()->isClient('site'))
		{
			$db    = Factory::getDbo();
			$query = $db->getQuery(true)
				->select($db->quoteName(array('id', 'alias',
'catid', 'language')))
				->from($db->quoteName('#__content'))
				->where($db->quoteName('id') . ' = ' . (int)
$privacyArticle);
			$db->setQuery($query);
			$article = $db->loadObject();

			JLoader::register('ContentHelperRoute', JPATH_BASE .
'/components/com_content/helpers/route.php');

			$slug = $article->alias ? ($article->id . ':' .
$article->alias) : $article->id;
			$article->link  = ContentHelperRoute::getArticleRoute($slug,
$article->catid, $article->language);
		}

		$extraData = array(
			'privacynote' =>
!empty($this->element['note']) ?
$this->element['note'] :
Text::_('PLG_SYSTEM_PRIVACYCONSENT_NOTE_FIELD_DEFAULT'),
			'options' => $this->getOptions(),
			'value'   => (string) $this->value,
			'translateLabel' => $this->translateLabel,
			'translateDescription' => $this->translateDescription,
			'translateHint' => $this->translateHint,
			'privacyArticle' => $privacyArticle,
			'article' => $article,
		);

		return array_merge($data, $extraData);
	}
}
PK�X�[VZ�0privacyconsent/privacyconsent/privacyconsent.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
	<fields name="privacyconsent">
		<fieldset
			name="privacyconsent"
			label="PLG_SYSTEM_PRIVACYCONSENT_LABEL"
		>
			<field
				name="privacy"
				type="privacy"
				label="PLG_SYSTEM_PRIVACYCONSENT_FIELD_LABEL"
				description="PLG_SYSTEM_PRIVACYCONSENT_FIELD_DESC"
				default="0"
				filter="integer"
				required="true"
				>
				<option
value="1">PLG_SYSTEM_PRIVACYCONSENT_OPTION_AGREE</option>
				<option value="0">JNO</option>
			</field>
		</fieldset>
	</fields>
</form>
PK�X�[X��MM!privacyconsent/privacyconsent.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.privacyconsent
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\Utilities\ArrayHelper;

/**
 * An example custom privacyconsent plugin.
 *
 * @since  3.9.0
 */
class PlgSystemPrivacyconsent extends JPlugin
{
	/**
	 * Load the language file on instantiation.
	 *
	 * @var    boolean
	 * @since  3.9.0
	 */
	protected $autoloadLanguage = true;

	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.9.0
	 */
	protected $app;

	/**
	 * Database object.
	 *
	 * @var    JDatabaseDriver
	 * @since  3.9.0
	 */
	protected $db;

	/**
	 * Constructor
	 *
	 * @param   object  &$subject  The object to observe
	 * @param   array   $config    An array that holds the plugin
configuration
	 *
	 * @since   3.9.0
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		JFormHelper::addFieldPath(__DIR__ . '/field');
	}

	/**
	 * Adds additional fields to the user editing form
	 *
	 * @param   JForm  $form  The form to be altered.
	 * @param   mixed  $data  The associated data for the form.
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onContentPrepareForm($form, $data)
	{
		if (!($form instanceof JForm))
		{
			$this->_subject->setError('JERROR_NOT_A_FORM');

			return false;
		}

		// Check we are manipulating a valid form - we only display this on user
registration form and user profile form.
		$name = $form->getName();

		if (!in_array($name, array('com_users.profile',
'com_users.registration')))
		{
			return true;
		}

		// We only display this if user has not consented before
		if (is_object($data))
		{
			$userId = isset($data->id) ? $data->id : 0;

			if ($userId > 0 && $this->isUserConsented($userId))
			{
				return true;
			}
		}

		// Add the privacy policy fields to the form.
		JForm::addFormPath(__DIR__ . '/privacyconsent');
		$form->loadFile('privacyconsent');

		$privacyArticleId = $this->getPrivacyArticleId();
		$privacynote      = $this->params->get('privacy_note');

		// Push the privacy article ID into the privacy field.
		$form->setFieldAttribute('privacy', 'article',
$privacyArticleId, 'privacyconsent');
		$form->setFieldAttribute('privacy', 'note',
$privacynote, 'privacyconsent');
	}

	/**
	 * Method is called before user data is stored in the database
	 *
	 * @param   array    $user   Holds the old user data.
	 * @param   boolean  $isNew  True if a new user is stored.
	 * @param   array    $data   Holds the new user data.
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 * @throws  InvalidArgumentException on missing required data.
	 */
	public function onUserBeforeSave($user, $isNew, $data)
	{
		// // Only check for front-end user creation/update profile
		if ($this->app->isClient('administrator'))
		{
			return true;
		}

		$userId = ArrayHelper::getValue($user, 'id', 0,
'int');

		// User already consented before, no need to check it further
		if ($userId > 0 && $this->isUserConsented($userId))
		{
			return true;
		}

		// Check that the privacy is checked if required ie only in registration
from frontend.
		$option = $this->app->input->getCmd('option');
		$task   = $this->app->input->get->getCmd('task');
		$form   = $this->app->input->post->get('jform',
array(), 'array');

		if ($option == 'com_users' && in_array($task,
array('registration.register', 'profile.save'))
			&&
empty($form['privacyconsent']['privacy']))
		{
			throw new
InvalidArgumentException(Text::_('PLG_SYSTEM_PRIVACYCONSENT_FIELD_ERROR'));
		}

		return true;
	}

	/**
	 * Saves user privacy confirmation
	 *
	 * @param   array    $data    entered user data
	 * @param   boolean  $isNew   true if this is a new user
	 * @param   boolean  $result  true if saving the user worked
	 * @param   string   $error   error message
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterSave($data, $isNew, $result, $error)
	{
		// Only create an entry on front-end user creation/update profile
		if ($this->app->isClient('administrator'))
		{
			return true;
		}

		// Get the user's ID
		$userId = ArrayHelper::getValue($data, 'id', 0,
'int');

		// If user already consented before, no need to check it further
		if ($userId > 0 && $this->isUserConsented($userId))
		{
			return true;
		}

		$option = $this->app->input->getCmd('option');
		$task   = $this->app->input->get->getCmd('task');
		$form   = $this->app->input->post->get('jform',
array(), 'array');

		if ($option == 'com_users'
			&&in_array($task, array('registration.register',
'profile.save'))
			&&
!empty($form['privacyconsent']['privacy']))
		{
			$userId = ArrayHelper::getValue($data, 'id', 0,
'int');

			// Get the user's IP address
			$ip =
$this->app->input->server->get('REMOTE_ADDR',
'', 'string');

			// Get the user agent string
			$userAgent =
$this->app->input->server->get('HTTP_USER_AGENT',
'', 'string');

			// Create the user note
			$userNote = (object) array(
				'user_id' => $userId,
				'subject' =>
'PLG_SYSTEM_PRIVACYCONSENT_SUBJECT',
				'body'    =>
Text::sprintf('PLG_SYSTEM_PRIVACYCONSENT_BODY', $ip, $userAgent),
				'created' => Factory::getDate()->toSql(),
			);

			try
			{
				$this->db->insertObject('#__privacy_consents',
$userNote);
			}
			catch (Exception $e)
			{
				// Do nothing if the save fails
			}

			$userId = ArrayHelper::getValue($data, 'id', 0,
'int');

			$message = array(
				'action'      => 'consent',
				'id'          => $userId,
				'title'       => $data['name'],
				'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$userId,
				'userid'      => $userId,
				'username'    => $data['username'],
				'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$userId,
			);

			JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_actionlogs/models',
'ActionlogsModel');

			/* @var ActionlogsModelActionlog $model */
			$model = JModelLegacy::getInstance('Actionlog',
'ActionlogsModel');
			$model->addLog(array($message),
'PLG_SYSTEM_PRIVACYCONSENT_CONSENT',
'plg_system_privacyconsent', $userId);
		}

		return true;
	}

	/**
	 * Remove all user privacy consent information for the given user ID
	 *
	 * Method is called after user data is deleted from the database
	 *
	 * @param   array    $user     Holds the user data
	 * @param   boolean  $success  True if user was successfully stored in the
database
	 * @param   string   $msg      Message
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterDelete($user, $success, $msg)
	{
		if (!$success)
		{
			return false;
		}

		$userId = ArrayHelper::getValue($user, 'id', 0,
'int');

		if ($userId)
		{
			// Remove user's consent
			try
			{
				$query = $this->db->getQuery(true)
					->delete($this->db->quoteName('#__privacy_consents'))
					->where($this->db->quoteName('user_id') . ' =
' . (int) $userId);
				$this->db->setQuery($query);
				$this->db->execute();
			}
			catch (Exception $e)
			{
				$this->_subject->setError($e->getMessage());

				return false;
			}
		}

		return true;
	}

	/**
	 * If logged in users haven't agreed to privacy consent, redirect
them to profile edit page, ask them to agree to
	 * privacy consent before allowing access to any other pages
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onAfterRoute()
	{
		// Run this in frontend only
		if ($this->app->isClient('administrator'))
		{
			return;
		}

		$userId = Factory::getUser()->id;

		// Check to see whether user already consented, if not, redirect to user
profile page
		if ($userId > 0)
		{
			// If user consented before, no need to check it further
			if ($this->isUserConsented($userId))
			{
				return;
			}

			$option = $this->app->input->getCmd('option');
			$task   = $this->app->input->get('task');
			$view   = $this->app->input->getString('view',
'');
			$layout = $this->app->input->getString('layout',
'');
			$id     = $this->app->input->getInt('id');

			$privacyArticleId = $this->getPrivacyArticleId();

			/*
			 * If user is already on edit profile screen or view privacy article
			 * or press update/apply button, or logout, do nothing to avoid infinite
redirect
			 */
			if ($option == 'com_users' && in_array($task,
array('profile.save', 'profile.apply',
'user.logout', 'user.menulogout'))
				|| ($option == 'com_content' && $view ==
'article' && $id == $privacyArticleId)
				|| ($option == 'com_users' && $view ==
'profile' && $layout == 'edit'))
			{
				return;
			}

			// Redirect to com_users profile edit
			$this->app->enqueueMessage($this->getRedirectMessage(),
'notice');
			$link =
'index.php?option=com_users&view=profile&layout=edit';
			$this->app->redirect(\JRoute::_($link, false));
		}
	}

	/**
	 * Event to specify whether a privacy policy has been published.
	 *
	 * @param   array  &$policy  The privacy policy status data, passed by
reference, with keys "published", "editLink" and
"articlePublished".
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onPrivacyCheckPrivacyPolicyPublished(&$policy)
	{
		// If another plugin has already indicated a policy is published, we
won't change anything here
		if ($policy['published'])
		{
			return;
		}

		$articleId = $this->params->get('privacy_article');

		if (!$articleId)
		{
			return;
		}

		// Check if the article exists in database and is published
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName(array('id',
'state')))
			->from($this->db->quoteName('#__content'))
			->where($this->db->quoteName('id') . ' = '
. (int) $articleId);
		$this->db->setQuery($query);

		$article = $this->db->loadObject();

		// Check if the article exists
		if (!$article)
		{
			return;
		}

		// Check if the article is published
		if ($article->state == 1)
		{
			$policy['articlePublished'] = true;
		}

		$policy['published'] = true;
		$policy['editLink']  =
JRoute::_('index.php?option=com_content&task=article.edit&id='
. $articleId);
	}

	/**
	 * Returns the configured redirect message and falls back to the default
version.
	 *
	 * @return  string  redirect message
	 *
	 * @since   3.9.0
	 */
	private function getRedirectMessage()
	{
		$messageOnRedirect =
trim($this->params->get('messageOnRedirect',
''));

		if (empty($messageOnRedirect))
		{
			return
Text::_('PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_DEFAULT');
		}

		return $messageOnRedirect;
	}

	/**
	 * Method to check if the given user has consented yet
	 *
	 * @param   integer  $userId  ID of uer to check
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	private function isUserConsented($userId)
	{
		$query = $this->db->getQuery(true);
		$query->select('COUNT(*)')
			->from('#__privacy_consents')
			->where('user_id = ' . (int) $userId)
			->where('subject = ' .
$this->db->quote('PLG_SYSTEM_PRIVACYCONSENT_SUBJECT'))
			->where('state = 1');
		$this->db->setQuery($query);

		return (int) $this->db->loadResult() > 0;
	}

	/**
	 * Get privacy article ID. If the site is a multilingual website and there
is associated article for the
	 * current language, ID of the associated article will be returned
	 *
	 * @return  integer
	 *
	 * @since   3.9.0
	 */
	private function getPrivacyArticleId()
	{
		$privacyArticleId =
$this->params->get('privacy_article');

		if ($privacyArticleId > 0 &&
JLanguageAssociations::isEnabled())
		{
			$privacyAssociated =
JLanguageAssociations::getAssociations('com_content',
'#__content', 'com_content.item', $privacyArticleId);
			$currentLang = JFactory::getLanguage()->getTag();

			if (isset($privacyAssociated[$currentLang]))
			{
				$privacyArticleId = $privacyAssociated[$currentLang]->id;
			}
		}

		return $privacyArticleId;
	}

	/**
	 * The privacy consent expiration check code is triggered after the page
has fully rendered.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onAfterRender()
	{
		if (!$this->params->get('enabled', 0))
		{
			return;
		}

		$cacheTimeout = (int) $this->params->get('cachetimeout',
30);
		$cacheTimeout = 24 * 3600 * $cacheTimeout;

		// Do we need to run? Compare the last run timestamp stored in the
plugin's options with the current
		// timestamp. If the difference is greater than the cache timeout we
shall not execute again.
		$now  = time();
		$last = (int) $this->params->get('lastrun', 0);

		if ((abs($now - $last) < $cacheTimeout))
		{
			return;
		}

		// Update last run status
		$this->params->set('lastrun', $now);
		$db    = $this->db;
		$query = $db->getQuery(true)
			->update($db->quoteName('#__extensions'))
			->set($db->quoteName('params') . ' = ' .
$db->quote($this->params->toString('JSON')))
			->where($db->quoteName('type') . ' = ' .
$db->quote('plugin'))
			->where($db->quoteName('folder') . ' = ' .
$db->quote('system'))
			->where($db->quoteName('element') . ' = ' .
$db->quote('privacyconsent'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risky to continue
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();
			$this->clearCacheGroups(array('com_plugins'), array(0, 1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		// Delete the expired privacy consents
		$this->invalidateExpiredConsents();

		// Remind for privacy consents near to expire
		$this->remindExpiringConsents();

	}

	/**
	 * Method to send the remind for privacy consents renew
	 *
	 * @return  integer
	 *
	 * @since   3.9.0
	 */
	private function remindExpiringConsents()
	{
		// Load the parameters.
		$expire = (int) $this->params->get('consentexpiration',
365);
		$remind = (int) $this->params->get('remind', 30);
		$now    = JFactory::getDate()->toSql();
		$period = '-' . ($expire - $remind);

		$db    = $this->db;
		$query = $db->getQuery(true)
			->select($db->quoteName(array('r.id',
'r.user_id', 'u.email')))
			->from($db->quoteName('#__privacy_consents',
'r'))
			->leftJoin($db->quoteName('#__users', 'u') .
' ON u.id = r.user_id')
			->where($db->quoteName('subject') . ' = ' .
$db->quote('PLG_SYSTEM_PRIVACYCONSENT_SUBJECT'))
			->where($db->quoteName('remind') . ' = 0');
		$query->where($query->dateAdd($db->quote($now), $period,
'DAY') . ' > ' .
$db->quoteName('created'));

		try
		{
			$users = $db->setQuery($query)->loadObjectList();
		}
		catch (JDatabaseException $exception)
		{
			return false;
		}

		$app      = JFactory::getApplication();
		$linkMode = $app->get('force_ssl', 0) == 2 ?
Route::TLS_FORCE : Route::TLS_IGNORE;

		foreach ($users as $user)
		{
			$token       =
JApplicationHelper::getHash(JUserHelper::genRandomPassword());
			$hashedToken = JUserHelper::hashPassword($token);

			// The mail
			try
			{
				$substitutions = array(
					'[SITENAME]' => $app->get('sitename'),
					'[URL]'      => JUri::root(),
					'[TOKENURL]' => JRoute::link('site',
'index.php?option=com_privacy&view=remind&remind_token='
. $token, false, $linkMode, true),
					'[FORMURL]'  => JRoute::link('site',
'index.php?option=com_privacy&view=remind', false, $linkMode,
true),
					'[TOKEN]'    => $token,
					'\\n'        => "\n",
				);

				$emailSubject =
JText::_('PLG_SYSTEM_PRIVACYCONSENT_EMAIL_REMIND_SUBJECT');
				$emailBody =
JText::_('PLG_SYSTEM_PRIVACYCONSENT_EMAIL_REMIND_BODY');

				foreach ($substitutions as $k => $v)
				{
					$emailSubject = str_replace($k, $v, $emailSubject);
					$emailBody    = str_replace($k, $v, $emailBody);
				}

				$mailer = JFactory::getMailer();
				$mailer->setSubject($emailSubject);
				$mailer->setBody($emailBody);
				$mailer->addRecipient($user->email);

				$mailResult = $mailer->Send();

				if ($mailResult instanceof JException)
				{
					return false;
				}
				elseif ($mailResult === false)
				{
					return false;
				}

				// Update the privacy_consents item to not send the reminder again
				$query->clear()
					->update($db->quoteName('#__privacy_consents'))
					->set($db->quoteName('remind') . ' = 1 ')
					->set($db->quoteName('token') . ' = ' .
$db->quote($hashedToken))
					->where($db->quoteName('id') . ' = ' . (int)
$user->id);
				$db->setQuery($query);

				try
				{
					$db->execute();
				}
				catch (RuntimeException $e)
				{
					return false;
				}
			}
			catch (phpmailerException $exception)
			{
				return false;
			}
		}
	}

	/**
	 * Method to delete the expired privacy consents
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	private function invalidateExpiredConsents()
	{
		// Load the parameters.
		$expire = (int) $this->params->get('consentexpiration',
365);
		$now    = JFactory::getDate()->toSql();
		$period = '-' . $expire;

		$db    = $this->db;
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('id',
'user_id')))
			->from($db->quoteName('#__privacy_consents'))
			->where($query->dateAdd($db->quote($now), $period,
'DAY') . ' > ' .
$db->quoteName('created'))
			->where($db->quoteName('subject') . ' = ' .
$db->quote('PLG_SYSTEM_PRIVACYCONSENT_SUBJECT'))
			->where($db->quoteName('state') . ' = 1');
		$db->setQuery($query);

		try
		{
			$users = $db->loadObjectList();
		}
		catch (RuntimeException $e)
		{
			return false;
		}

		// Do not process further if no expired consents found
		if (empty($users))
		{
			return true;
		}

		// Push a notification to the site's super users
		JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/models', 'MessagesModel');
		JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/tables');
		/** @var MessagesModelMessage $messageModel */
		$messageModel = JModelLegacy::getInstance('Message',
'MessagesModel');

		foreach ($users as $user)
		{
			$query = $db->getQuery(true)
				->update($db->quoteName('#__privacy_consents'))
				->set('state = 0')
				->where($db->quoteName('id') . ' = ' . (int)
$user->id);
			$db->setQuery($query);

			try
			{
				$db->execute();
			}
			catch (RuntimeException $e)
			{
				return false;
			}

			$messageModel->notifySuperUsers(
				JText::_('PLG_SYSTEM_PRIVACYCONSENT_NOTIFICATION_USER_PRIVACY_EXPIRED_SUBJECT'),
				JText::sprintf('PLG_SYSTEM_PRIVACYCONSENT_NOTIFICATION_USER_PRIVACY_EXPIRED_MESSAGE',
JFactory::getUser($user->user_id)->username)
			);
		}

		return true;
	}
	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since    3.9.0
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = JFactory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => $client_id ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache')
					);

					$cache = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}
}
PK�X�[�m|�a
a
!privacyconsent/privacyconsent.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
	<name>plg_system_privacyconsent</name>
	<author>Joomla! Project</author>
	<creationDate>April 2018</creationDate>
	<copyright>(C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.9.0</version>
	<description>PLG_SYSTEM_PRIVACYCONSENT_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="privacyconsent">privacyconsent.php</filename>
		<folder>privacyconsent</folder>
		<folder>field</folder>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_privacyconsent.ini</language>
		<language
tag="en-GB">en-GB.plg_system_privacyconsent.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic"
addfieldpath="/administrator/components/com_content/models/fields">
				<field
					name="privacy_note"
					type="textarea"
					label="PLG_SYSTEM_PRIVACYCONSENT_NOTE_FIELD_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_NOTE_FIELD_DESC"
					hint="PLG_SYSTEM_PRIVACYCONSENT_NOTE_FIELD_DEFAULT"
					class="span12"
					rows="7"
					cols="20"
					filter="html"
				/>
				<field
					name="privacy_article"
					type="modal_article"
					label="PLG_SYSTEM_PRIVACYCONSENT_FIELD_ARTICLE_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_FIELD_ARTICLE_DESC"
					select="true"
					new="true"
					edit="true"
					clear="true"
					filter="integer"
				/>
				<field
					name="messageOnRedirect"
					type="textarea"
					label="PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_DESC"
					hint="PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_DEFAULT"
					class="span12"
					rows="7"
					cols="20"
					filter="html"
				/>
			</fieldset>
			<fieldset
				name="expiration"
				label="PLG_SYSTEM_PRIVACYCONSENT_EXPIRATION_FIELDSET_LABEL"
			>
				<field
					name="enabled"
					type="radio"
					label="PLG_SYSTEM_PRIVACYCONSENT_FIELD_ENABLED_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_FIELD_ENABLED_DESC"
					class="btn-group btn-group-yesno"
					default="0"
					filter="integer"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>
				<field
					name="cachetimeout"
					type="integer"
					label="PLG_SYSTEM_PRIVACYCONSENT_CACHETIMEOUT_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_CACHETIMEOUT_DESC"
					first="0"
					last="120"
					step="1"
					default="30"
					filter="int"
					validate="number"
				/>
				<field
					name="consentexpiration"
					type="integer"
					label="PLG_SYSTEM_PRIVACYCONSENT_CONSENTEXPIRATION_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_CONSENTEXPIRATION_DESC"
					first="180"
					last="720"
					step="30"
					default="360"
					filter="int"
					validate="number"
				/>
				<field
					name="remind"
					type="integer"
					label="PLG_SYSTEM_PRIVACYCONSENT_REMINDBEFORE_LABEL"
					description="PLG_SYSTEM_PRIVACYCONSENT_REMINDBEFORE_DESC"
					first="0"
					last="120"
					step="1"
					default="30"
					filter="int"
					validate="number"
				/>
				<field
					name="lastrun"
					type="hidden"
					default="0"
					filter="integer"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[1�r��redirect/form/excludes.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
	<fieldset>
		<field
			name="term"
			type="text"
			label="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_TERM_LABEL"
			description="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_TERM_DESC"
			required="true"
		/>
		<field
			name="regexp"
			type="checkbox"
			label="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_LABEL"
			description="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_DESC"
			filter="integer"
		/>
	</fieldset>
</form>
PK�X�[�xp%p%redirect/redirect.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.redirect
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;

/**
 * Plugin class for redirect handling.
 *
 * @since  1.6
 */
class PlgSystemRedirect extends JPlugin
{
	/**
	 * Affects constructor behavior. If true, language files will be loaded
automatically.
	 *
	 * @var    boolean
	 * @since  3.4
	 */
	protected $autoloadLanguage = false;

	/**
	 * The global exception handler registered before the plugin was
instantiated
	 *
	 * @var    callable
	 * @since  3.6
	 */
	private static $previousExceptionHandler;

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   1.6
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		// Set the JError handler for E_ERROR to be the class' handleError
method.
		JError::setErrorHandling(E_ERROR, 'callback',
array('PlgSystemRedirect', 'handleError'));

		// Register the previously defined exception handler so we can forward
errors to it
		self::$previousExceptionHandler =
set_exception_handler(array('PlgSystemRedirect',
'handleException'));
	}

	/**
	 * Method to handle an error condition from JError.
	 *
	 * @param   JException  $error  The JException object to be handled.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public static function handleError(JException $error)
	{
		self::doErrorHandling($error);
	}

	/**
	 * Method to handle an uncaught exception.
	 *
	 * @param   Exception|Throwable  $exception  The Exception or Throwable
object to be handled.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 * @throws  InvalidArgumentException
	 */
	public static function handleException($exception)
	{
		// If this isn't a Throwable then bail out
		if (!($exception instanceof Throwable) && !($exception instanceof
Exception))
		{
			throw new InvalidArgumentException(
				sprintf('The error handler requires an Exception or Throwable
object, a "%s" object was given instead.',
get_class($exception))
			);
		}

		self::doErrorHandling($exception);
	}

	/**
	 * Internal processor for all error handlers
	 *
	 * @param   Exception|Throwable  $error  The Exception or Throwable object
to be handled.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	private static function doErrorHandling($error)
	{
		$app = JFactory::getApplication();

		if ($app->isClient('administrator') || ((int)
$error->getCode() !== 404))
		{
			// Proxy to the previous exception handler if available, otherwise just
render the error page
			if (self::$previousExceptionHandler)
			{
				call_user_func_array(self::$previousExceptionHandler, array($error));
			}
			else
			{
				JErrorPage::render($error);
			}
		}

		$uri = JUri::getInstance();

		// These are the original URLs
		$orgurl                =
rawurldecode($uri->toString(array('scheme', 'host',
'port', 'path', 'query',
'fragment')));
		$orgurlRel             =
rawurldecode($uri->toString(array('path', 'query',
'fragment')));

		// The above doesn't work for sub directories, so do this
		$orgurlRootRel         = str_replace(JUri::root(), '',
$orgurl);

		// For when users have added / to the url
		$orgurlRootRelSlash    = str_replace(JUri::root(), '/',
$orgurl);
		$orgurlWithoutQuery    =
rawurldecode($uri->toString(array('scheme', 'host',
'port', 'path', 'fragment')));
		$orgurlRelWithoutQuery =
rawurldecode($uri->toString(array('path',
'fragment')));

		// These are the URLs we save and use
		$url                =
StringHelper::strtolower(rawurldecode($uri->toString(array('scheme',
'host', 'port', 'path', 'query',
'fragment'))));
		$urlRel             =
StringHelper::strtolower(rawurldecode($uri->toString(array('path',
'query', 'fragment'))));

		// The above doesn't work for sub directories, so do this
		$urlRootRel         = str_replace(JUri::root(), '', $url);

		// For when users have added / to the url
		$urlRootRelSlash    = str_replace(JUri::root(), '/', $url);
		$urlWithoutQuery    =
StringHelper::strtolower(rawurldecode($uri->toString(array('scheme',
'host', 'port', 'path',
'fragment'))));
		$urlRelWithoutQuery =
StringHelper::strtolower(rawurldecode($uri->toString(array('path',
'fragment'))));

		$plugin = JPluginHelper::getPlugin('system',
'redirect');

		$params = new Registry($plugin->params);

		$excludes = (array) $params->get('exclude_urls');

		$skipUrl = false;

		foreach ($excludes as $exclude)
		{
			if (empty($exclude->term))
			{
				continue;
			}

			if (!empty($exclude->regexp))
			{
				// Only check $url, because it includes all other sub urls
				if (preg_match('/' . $exclude->term . '/i',
$orgurlRel))
				{
					$skipUrl = true;
					break;
				}
			}
			else
			{
				if (StringHelper::strpos($orgurlRel, $exclude->term) !== false)
				{
					$skipUrl = true;
					break;
				}
			}
		}

		// Why is this (still) here?
		if ($skipUrl || (strpos($url, 'mosConfig_') !== false) ||
(strpos($url, '=http://') !== false))
		{
			JErrorPage::render($error);
		}

		$db = JFactory::getDbo();

		$query = $db->getQuery(true);

		$query->select('*')
			->from($db->quoteName('#__redirect_links'))
			->where(
				'('
				. $db->quoteName('old_url') . ' = ' .
$db->quote($url)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($urlRel)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($urlRootRel)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($urlRootRelSlash)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($urlWithoutQuery)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($urlRelWithoutQuery)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurl)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurlRel)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurlRootRel)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurlRootRelSlash)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurlWithoutQuery)
				. ' OR '
				. $db->quoteName('old_url') . ' = ' .
$db->quote($orgurlRelWithoutQuery)
				. ')'
			);

		$db->setQuery($query);

		$redirect = null;

		try
		{
			$redirects = $db->loadAssocList();
		}
		catch (Exception $e)
		{
			JErrorPage::render(new
Exception(JText::_('PLG_SYSTEM_REDIRECT_ERROR_UPDATING_DATABASE'),
500, $e));
		}

		$possibleMatches = array_unique(
			array(
				$url,
				$urlRel,
				$urlRootRel,
				$urlRootRelSlash,
				$urlWithoutQuery,
				$urlRelWithoutQuery,
				$orgurl,
				$orgurlRel,
				$orgurlRootRel,
				$orgurlRootRelSlash,
				$orgurlWithoutQuery,
				$orgurlRelWithoutQuery,
			)
		);

		foreach ($possibleMatches as $match)
		{
			if (($index = array_search($match, array_column($redirects,
'old_url'))) !== false)
			{
				$redirect = (object) $redirects[$index];

				if ((int) $redirect->published === 1)
				{
					break;
				}
			}
		}

		// A redirect object was found and, if published, will be used
		if ($redirect !== null && ((int) $redirect->published === 1))
		{
			if (!$redirect->header || (bool)
JComponentHelper::getParams('com_redirect')->get('mode',
false) === false)
			{
				$redirect->header = 301;
			}

			if ($redirect->header < 400 && $redirect->header >=
300)
			{
				$urlQuery = $uri->getQuery();

				$oldUrlParts = parse_url($redirect->old_url);

				if ($urlQuery !== '' &&
empty($oldUrlParts['query']))
				{
					$redirect->new_url .= '?' . $urlQuery;
				}

				$dest = JUri::isInternal($redirect->new_url) ||
strpos($redirect->new_url, 'http') === false ?
					JRoute::_($redirect->new_url) : $redirect->new_url;

				// In case the url contains double // lets remove it
				$destination = str_replace(JUri::root() . '/', JUri::root(),
$dest);

				$app->redirect($destination, (int) $redirect->header);
			}

			JErrorPage::render(new RuntimeException($error->getMessage(),
$redirect->header, $error));
		}
		// No redirect object was found so we create an entry in the redirect
table
		elseif ($redirect === null)
		{
			$params = new Registry(JPluginHelper::getPlugin('system',
'redirect')->params);

			if ((bool) $params->get('collect_urls', 1))
			{
				if (!$params->get('includeUrl', 1))
				{
					$url = $urlRel;
				}

				$data = (object) array(
					'id' => 0,
					'old_url' => $url,
					'referer' =>
$app->input->server->getString('HTTP_REFERER',
''),
					'hits' => 1,
					'published' => 0,
					'created_date' => JFactory::getDate()->toSql()
				);

				try
				{
					$db->insertObject('#__redirect_links', $data,
'id');
				}
				catch (Exception $e)
				{
					JErrorPage::render(new
Exception(JText::_('PLG_SYSTEM_REDIRECT_ERROR_UPDATING_DATABASE'),
500, $e));
				}
			}
		}
		// We have an unpublished redirect object, increment the hit counter
		else
		{
			$redirect->hits++;

			try
			{
				$db->updateObject('#__redirect_links', $redirect,
'id');
			}
			catch (Exception $e)
			{
				JErrorPage::render(new
Exception(JText::_('PLG_SYSTEM_REDIRECT_ERROR_UPDATING_DATABASE'),
500, $e));
			}
		}

		// Proxy to the previous exception handler if available, otherwise just
render the error page
		if (self::$previousExceptionHandler)
		{
			call_user_func_array(self::$previousExceptionHandler, array($error));
		}
		else
		{
			JErrorPage::render($error);
		}
	}
}
PK�X�[�uuredirect/redirect.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_redirect</name>
	<author>Joomla! Project</author>
	<creationDate>April 2009</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SYSTEM_REDIRECT_XML_DESCRIPTION</description>
	<files>
		<folder>form</folder>
		<filename plugin="redirect">redirect.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_redirect.ini</language>
		<language
tag="en-GB">en-GB.plg_system_redirect.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="collect_urls"
					type="radio"
					label="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_LABEL"
					description="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JENABLED</option>
					<option value="0">JDISABLED</option>
				</field>
				<field
					name="includeUrl"
					type="radio"
					label="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_LABEL"
					description="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_DESC"
					default="1"
					filter="integer"
					class="btn-group btn-group-yesno"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>
				<field
					name="exclude_urls"
					type="subform"
					label="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_LABEL"
					description="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_DESC"
					multiple="true"
					formsource="plugins/system/redirect/form/excludes.xml"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,reds_redirect/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�*�>>reds_redirect/reds_redirect.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php

class plgSystemReds_redirect extends JPlugin {

	function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
	}

	function onAfterRoute()
	{
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getVar('option');
			$redsProdId = $app->input->getInt('pid');
			$redsCatId = $app->input->getInt('cid');
			$redsOrderId = $app->input->getInt('oid');
		} else {
			$option = JRequest::getVar('option');
			$redsProdId = JRequest::getInt('pid');
			$redsCatId = JRequest::getInt('cid');
			$redsOrderId = JRequest::getInt('oid');
		}
		if($option != 'com_redshop' )
			return true;

		$url = null; //HIKASHOP_LIVE;
		$db = JFactory::getDBO();
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		$query='SHOW TABLES LIKE
'.$db->Quote($db->getPrefix().substr(hikashop_table('reds_prod'),3));

		$db->setQuery($query);
		$table = $db->loadResult();
		if(empty($table))
			return true;

		if( !empty($redsProdId) && $redsProdId > 0 ) {
			$query = "SELECT a.hk_id, b.product_name as 'name' FROM
`#__hikashop_reds_prod` a INNER JOIN `#__hikashop_product` b ON a.hk_id =
b.product_id WHERE a.reds_id = " . $redsProdId . ";";
			$baseUrl = 'product&task=show';
		} else if( !empty($redsCatId)  && $redsCatId > 0 ) {
			$id = 'reds-fallback';
			$alias = 'hikashop-menu-for-module-'.$id;
			$db->setQuery('SELECT id FROM
'.hikashop_table('menu',false).' WHERE
alias=\''.$alias.'\''); //Set ?
			$itemId = $db->loadResult();
			if(empty($itemId)) {
				$options = new stdClass();
				$config =& hikashop_config();
				$options->hikashop_params =
$config->get('default_params',null);
				$classMenu = hikashop_get('class.menus');
				$classMenu->loadParams($options);
				$options->hikashop_params['content_type'] =
'category';
				$options->hikashop_params['layout_type']='div';
				$options->hikashop_params['content_synchronize']='1';
				if($options->hikashop_params['columns']==1){
					$options->hikashop_params['columns']=3;
				}
				$classMenu->createMenu($options->hikashop_params, $id);
				$itemId = $options->hikashop_params['itemid'];
			}
			$query = "SELECT a.hk_id, b.category_name as 'name' FROM
`#__hikashop_reds_cat` a INNER JOIN `#__hikashop_category` b ON a.hk_id =
b.category_id WHERE a.reds_id = " . $redsCatId . " and
a.category_type = 'category';";
			$baseUrl = 'category&task=listing&Itemid='.$itemId;
		}elseif(!empty($redsOrderId)){
			$db->setQuery('SELECT order_id FROM
'.hikashop_table('order').' WHERE
order_reds_id='.$redsOrderId);
			$hikaOrderId = $db->loadResult();
			if(!empty($hikaOrderId)){
				$url =
hikashop_completeLink('order&task=show&cid='.$hikaOrderId,
false, true);
				$app->redirect($url);
				return true;
			}
		}

		if( !empty($query) && !empty($baseUrl) ) {
			$db->setQuery($query);
			$link = $db->loadObject();
			if( $link ) {
				if(method_exists($app,'stringURLSafe')) {
					$name = $app->stringURLSafe(strip_tags($link->name));
				} else {
					$name = JFilterOutput::stringURLSafe(strip_tags($link->name));
				}
				$url =
hikashop_completeLink($baseUrl.'&cid='.$link->hk_id.'&name='.$name,
false, true);
			}
		}

		if( $url )
			$app->redirect($url,'','message',true);
	}
}
PK�X�[��B��reds_redirect/reds_redirect.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop - Redshop Fallback Redirect Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>HikaShop</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to redirect imported data from
Redshop</description>
	<files>
		<filename
plugin="reds_redirect">reds_redirect.php</filename>
	</files>
	<params/>
	<config/>
</extension>
PK�X�[&����;regularlabs/language/ar-AA/ar-AA.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - مستخدم
بواسطة تطبيقات Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]تطبيقات Regular Labs
تعتمد على هذا المنتج ولن تعمل
بدونه.<br><br>تتضمن تطبيقات Regular
Labs:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="لا تقم بحذف أو
تعطيل هذا المنتج إذا كنت تستخدم أي تطبيق
من تطبيقات Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="وصف"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="وصف"
; COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="ميديا"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
; COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="إعدادات"
; COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
; RL_ACTION_INSTALL="Install"
; RL_ACTION_UNINSTALL="Uninstall"
RL_ACTION_UPDATE="التحديث"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
; RL_ADVANCED="Advanced"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="الكل"
RL_ALL_DESC="سيتم عرض وتشغيل الموديل إذا
كانت <strong>جميع</strong> التعيينات
المحددة أدناه متطابقة."
RL_ALL_RIGHTS_RESERVED="جميع الحقوق محفوظة"
RL_ALSO_ON_CHILD_ITEMS="تتضمن القوائم الفرعية"
RL_ALSO_ON_CHILD_ITEMS_DESC="تطبيق التخصيص على
القوائم الرئيسية وما تحتها من قوائم
فرعية؟"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="أو"
RL_ANY_DESC="سيتم عرض وتشغيل الموديل إذا كان
<strong>أي</strong> (واحد أو أكثر) من
التعيينات المحددة أدناه
متطابقة.<br>المجموعات التي تم تعيينها
إلى 'الكل' سيتم تجاهلها."
; RL_ARE_YOU_SURE="Are you sure?"
RL_ARTICLE="مقالة"
RL_ARTICLE_AUTHORS="الكاتب"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="مقالات"
; RL_ARTICLES_DESC="Select the articles to assign to."
; RL_AS_EXPORTED="As exported"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="أستراليا"
RL_AUTHORS="الكاتب"
; RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
; RL_BEHAVIOR="Behaviour"
; RL_BEHAVIOUR="Behaviour"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="كلاهما"
RL_BOTTOM="أسفل"
RL_BROWSERS="برامج التصفح"
; RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind
that browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="نص الزر"
RL_BUTTON_TEXT_DESC="هذا النص سوف يظهر على الزر
المناسب عند التعديل"
RL_CACHE_TIME="وقت التخزين مؤقت"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="أقسام فرعية"
RL_CATEGORIES_DESC="اختر الأقسام الفرعية
للتعيين إليها."
; RL_CATEGORY="Category"
RL_CHANGELOG="سجل التغييرات"
; RL_CLASSNAME="CSS Class"
; RL_COLLAPSE="Collapse"
RL_COM="التعليقات"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="التطبيقات"
RL_COMPONENTS_DESC="اختر التطبيق المراد ربط هذا
الموديل به."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="المحتوى"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
; RL_COPY_OF="Copy of %s"
RL_COPYRIGHT="حقوق النشر"
; RL_COUNTRIES="Countries"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
; RL_CURRENT_VERSION="Your current version is %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="الحقول الاضافية"
RL_DATE="التاريخ"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="التاريخ والوقت"
RL_DATE_TIME_DESC="عند تعيين الوقت والتاريخ
سيتم استخدام توقيت السيرفر، وليس توقيت
أجهزة الزوار."
; RL_DATE_TO="To"
RL_DAYS="أيام الأسبوع"
RL_DAYS_DESC="حدد أيام الأسبوع للتعيين
إليها."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="الجوال"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
; RL_DIRECTION="Direction"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="تعطيل في التطبيقات"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="طريقة عرض الرابط"
RL_DISPLAY_LINK_DESC="كيف تريد أن يظهر شكل
الرابط?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="عرض التلميحات"
RL_DISPLAY_TOOLTIP_DESC="تمكين هذا الخيار سيعمل
على إظهار معلومات إضافية عند تمرير
الماوس على الرابط/الأيقونة؟"
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="تفعيل"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="تمكين في المقالات"
RL_ENABLE_IN_COMPONENTS="تمكين في التطبيقات"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="إتاحة في الواجهة
الأمامية"
RL_ENABLE_IN_FRONTEND_DESC="إذا كان ممكنا ، سوف
تكون متاحة أيضا زر في الواجهة
الأمامية."
RL_ENABLE_OTHER_AREAS="تمكين في المناطق
الأخرى"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
; RL_EXCLUDE="Exclude"
RL_EXPAND="توسيع"
RL_EXPORT="إلغاء"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
; RL_FALL="Fall / Autumn"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="الفلاتر"
RL_FINISH_PUBLISHING="تاريخ نهاية النشر"
RL_FINISH_PUBLISHING_DESC="أدخل تاريخ تعطيل هذا
الموديل"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
; RL_FRONTEND="Frontend"
; RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="الإرتفاع"
RL_HEMISPHERE="نصف الكرة الأرضية"
RL_HEMISPHERE_DESC="حدد أين يقع موقع الويب
الخاص بك من نصف الكرة الأرضية"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="أيقونة فقط"
; RL_IGNORE="Ignore"
; RL_IMAGE="Image"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="استيراد"
; RL_IMPORT_ITEMS="Import Items"
; RL_INCLUDE="Include"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
; RL_INCLUDE_NO_ITEMID="Include no Itemid"
; RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in
URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="مادة"
; RL_ITEM_IDS="Item IDs"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="عناصر"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 أقسام"
RL_LANGUAGE="لغات"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="اللغات"
RL_LANGUAGES_DESC="اختر اللغات المراد ربط هذا
الموديل وعرضه بها."
RL_LAYOUT="المخطط"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="رابط نصي"
RL_LINK_TEXT_DESC="سيتم عرض الرابط كنص."
RL_LIST="قائمة"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
; RL_LOAD_MOOTOOLS="Load Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
; RL_LOW="Low"
; RL_LTR="Left-to-Right"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="أسلوب التطابق"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="متوسط"
RL_MENU_ITEMS="القوائم"
RL_MENU_ITEMS_DESC="حدد القوائم المراد تعيين
وتخصيص هذه القائمة إليها."
RL_META_KEYWORDS="الكلمات الدلالية
الرئيسية"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
; RL_MINIMIZE="Minimize"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="وحدة"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="الشهور"
RL_MONTHS_DESC="اختر الشهور للتعيين."
RL_MORE_INFO="للمزيد من المعلومات"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="يتوفر إصدار أحدث من
الحالي"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="عادي"
RL_NORTHERN="الشمالي"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="فقط"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="تظهر هذه الرسالة لإدارة
الموقع (Super Administrators) فقط."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="مناطق أخرى"
; RL_OTHER_OPTIONS="Other Options"
; RL_OTHER_SETTINGS="Other Settings"
RL_OTHERS="أخرى"
RL_PAGE_TYPES="أنواع الصفحة"
; RL_PAGE_TYPES_DESC="Select on what page types the assignment should
be active."
RL_PHP="كود PHP"
RL_PHP_DESC="أدخل قطعة من كود PHP. يجب أن تكون
قيمة هذا الكود إما true أو
false.<br><br>على سبيل
المثال:<br><br>[[%1:code%]]"
; RL_PLACE_HTML_COMMENTS="Place HTML comments"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
; RL_PLG_EDITORS-XTD="Editor Button Plugin"
; RL_PLG_FIELDS="Field Plugin"
; RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="المنتجات"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="تعيينات النشر"
; RL_PUBLISHING_SETTINGS="Publish items"
; RL_RANDOM="Random"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="مجلد"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="المواسم"
RL_SEASONS_DESC="اختر المواسم للتعيين."
RL_SELECT="اختر"
; RL_SELECT_A_CATEGORY="Select a Category"
; RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="اختر المقال"
; RL_SELECT_FIELD="Select Field"
; RL_SELECTED="Selected"
RL_SELECTION="التحديد"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
; RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="أظهر الأيقونات"
RL_SHOW_ICON_DESC="سيتم اضافة ايقونه خاصه في
صندوق الادوات اذا تم اختيارها"
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="بسيط"
; RL_SLIDES="Slides"
RL_SOUTHERN="الجنوبي"
; RL_SPECIFIC="Specific"
RL_SPRING="الربيع"
RL_START="بداية"
RL_START_PUBLISHING="تاريخ بداية النشر"
RL_START_PUBLISHING_DESC="أدخل تاريخ بداية نشر
وعرض هذا الموديل"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="الصيف"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
; RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
RL_TAG_SYNTAX_DESC="الكلمة التي ستستخدم في
العلامات.<br><br><strong>ملاحظة:</strong>
إذا قمت بتغيير هذه الكلمة, فإن جميع
العلامات الموجودة لن تعمل بعد الآن."
RL_TAGS="العلامات"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="القوالب"
RL_TEMPLATES_DESC="اختر القوالب المراد عرض
وربط هذا الموديل بها."
; RL_TEXT="Text"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="نص فقط"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="هذه
الإضافة تحتاج %s لتعمل بشكل صحيح!"
RL_TIME="الوقت"
RL_TIME_FINISH_PUBLISHING_DESC="أدخل وقت إنتهاء
النشر.<br><br><strong>التنسيق:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="أدخل وقت إبتداء
النشر.<br><br><strong>التنسيق:</strong>
23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="أداة تلميح"
RL_TOP="أعلى"
RL_TOTAL="مجموع"
RL_TYPES="أصناف"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
; RL_UNSELECTED="Unselected"
; RL_UPDATE_TO="Update to version %s"
RL_URL="رابط"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
; RL_URL_PARTS="URL matches"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="مجموعة الأعضاء"
RL_USER_GROUPS="محموعة جوملا"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="رقم العضو IDs"
RL_USER_IDS_DESC="أدخل رقم العضو ids المسموح له
بمشاهدة هذا الموديل. استخدم الفاصلة
للفصل بينها."
RL_USERS="الأعضاء"
RL_UTF8="UTF-8"
RL_VIDEO="فيديو"
RL_VIEW="عرض"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="العرض"
RL_WINTER="الشتاء"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO أقسام"
PK�X�[�t�uu?regularlabs/language/ar-AA/ar-AA.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - مستخدم
بواسطة تطبيقات Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[������;regularlabs/language/ar-SA/ar-SA.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - مستخدم
بواسطة تطبيقات Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]تطبيقات Regular Labs
تعتمد على هذا المنتج ولن تعمل
بدونه.<br><br>تتضمن تطبيقات Regular
Labs:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="لا تقم بحذف أو
تعطيل هذا المنتج إذا كنت تستخدم أي تطبيق
من تطبيقات Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
; COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Description"
; COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Description"
; COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
; COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
; COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
; COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setup"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
; RL_ACTION_INSTALL="Install"
; RL_ACTION_UNINSTALL="Uninstall"
RL_ACTION_UPDATE="التحديث"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
; RL_ADVANCED="Advanced"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="الكل"
RL_ALL_DESC="سيتم عرض وتشغيل الموديل إذا
كانت <strong>جميع</strong> التعيينات
المحددة أدناه متطابقة."
RL_ALL_RIGHTS_RESERVED="جميع الحقوق محفوظة"
RL_ALSO_ON_CHILD_ITEMS="تتضمن القوائم الفرعية"
RL_ALSO_ON_CHILD_ITEMS_DESC="تطبيق التخصيص على
القوائم الرئيسية وما تحتها من قوائم
فرعية؟"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="أو"
RL_ANY_DESC="سيتم عرض وتشغيل الموديل إذا كان
<strong>أي</strong> (واحد أو أكثر) من
التعيينات المحددة أدناه
متطابقة.<br>المجموعات التي تم تعيينها
إلى 'الكل' سيتم تجاهلها."
; RL_ARE_YOU_SURE="Are you sure?"
; RL_ARTICLE="Article"
; RL_ARTICLE_AUTHORS="Authors"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="مقالات"
; RL_ARTICLES_DESC="Select the articles to assign to."
; RL_AS_EXPORTED="As exported"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="أستراليا"
; RL_AUTHORS="Authors"
; RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
; RL_BEHAVIOR="Behaviour"
; RL_BEHAVIOUR="Behaviour"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="كلاهما"
RL_BOTTOM="الكل"
RL_BROWSERS="برامج التصفح"
; RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind
that browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="نص الزر"
RL_BUTTON_TEXT_DESC="هذا النص سوف يظهر على الزر
المناسب عند التعديل"
; RL_CACHE_TIME="Cache Time"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="أقسام فرعية"
RL_CATEGORIES_DESC="اختر الأقسام الفرعية
للتعيين إليها."
; RL_CATEGORY="Category"
RL_CHANGELOG="سجل التغييرات"
; RL_CLASSNAME="CSS Class"
; RL_COLLAPSE="Collapse"
RL_COM="التعليقات"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="التطبيقات"
RL_COMPONENTS_DESC="اختر التطبيق المراد ربط هذا
الموديل به."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
; RL_CONTENT="Content"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
; RL_COPY_OF="Copy of %s"
RL_COPYRIGHT="حقوق النشر"
; RL_COUNTRIES="Countries"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
; RL_CURRENT_VERSION="Your current version is %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
; RL_CUSTOM_FIELD="Custom Field"
; RL_CUSTOM_FIELDS="Custom Fields"
RL_DATE="التاريخ"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="التاريخ والوقت"
RL_DATE_TIME_DESC="عند تعيين الوقت والتاريخ
سيتم استخدام توقيت السيرفر، وليس توقيت
أجهزة الزوار."
; RL_DATE_TO="To"
RL_DAYS="أيام الأسبوع"
RL_DAYS_DESC="حدد أيام الأسبوع للتعيين
إليها."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
; RL_DIRECTION="Direction"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="تعطيل في التطبيقات"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="طريقة عرض الرابط"
RL_DISPLAY_LINK_DESC="كيف تريد أن يظهر شكل
الرابط?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="عرض التلميحات"
RL_DISPLAY_TOOLTIP_DESC="تمكين هذا الخيار سيعمل
على إظهار معلومات إضافية عند تمرير
الماوس على الرابط/الأيقونة؟"
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
; RL_ENABLE="Enable"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="تمكين في المقالات"
RL_ENABLE_IN_COMPONENTS="تمكين في التطبيقات"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="إتاحة في الواجهة
الأمامية"
RL_ENABLE_IN_FRONTEND_DESC="إذا كان ممكنا ، سوف
تكون متاحة أيضا زر في الواجهة
الأمامية."
RL_ENABLE_OTHER_AREAS="تمكين في المناطق
الأخرى"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
; RL_EXCLUDE="Exclude"
; RL_EXPAND="Expand"
; RL_EXPORT="Export"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
; RL_FALL="Fall / Autumn"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
; RL_FILTERS="Filters"
RL_FINISH_PUBLISHING="تاريخ نهاية النشر"
RL_FINISH_PUBLISHING_DESC="أدخل تاريخ تعطيل هذا
الموديل"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
; RL_FRONTEND="Frontend"
; RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="الإرتفاع"
RL_HEMISPHERE="نصف الكرة الأرضية"
RL_HEMISPHERE_DESC="حدد أين يقع موقع الويب
الخاص بك من نصف الكرة الأرضية"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="أيقونة فقط"
; RL_IGNORE="Ignore"
; RL_IMAGE="Image"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="استيراد"
; RL_IMPORT_ITEMS="Import Items"
; RL_INCLUDE="Include"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
; RL_INCLUDE_NO_ITEMID="Include no Itemid"
; RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in
URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
; RL_ITEM="Item"
; RL_ITEM_IDS="Item IDs"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="عناصر"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 أقسام"
; RL_LANGUAGE="Language"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="اللغات"
RL_LANGUAGES_DESC="اختر اللغات المراد ربط هذا
الموديل وعرضه بها."
; RL_LAYOUT="Layout"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="رابط نصي"
RL_LINK_TEXT_DESC="سيتم عرض الرابط كنص."
; RL_LIST="List"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
; RL_LOAD_MOOTOOLS="Load Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
; RL_LOW="Low"
; RL_LTR="Left-to-Right"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="أسلوب التطابق"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
; RL_MEDIUM="Medium"
RL_MENU_ITEMS="القوائم"
RL_MENU_ITEMS_DESC="حدد القوائم المراد تعيين
وتخصيص هذه القائمة إليها."
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
; RL_MINIMIZE="Minimize"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="رقم الموديل (ID)"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="الشهور"
RL_MONTHS_DESC="اختر الشهور للتعيين."
RL_MORE_INFO="للمزيد من المعلومات"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="يتوفر إصدار أحدث من
الحالي"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
; RL_NORMAL="Normal"
RL_NORTHERN="الشمالي"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="فقط"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="تظهر هذه الرسالة لإدارة
الموقع (Super Administrators) فقط."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="مناطق أخرى"
; RL_OTHER_OPTIONS="Other Options"
; RL_OTHER_SETTINGS="Other Settings"
RL_OTHERS="أخرى"
RL_PAGE_TYPES="أنواع الصفحة"
; RL_PAGE_TYPES_DESC="Select on what page types the assignment should
be active."
RL_PHP="كود PHP"
RL_PHP_DESC="أدخل قطعة من كود PHP. يجب أن تكون
قيمة هذا الكود إما true أو
false.<br><br>على سبيل
المثال:<br><br>[[%1:code%]]"
; RL_PLACE_HTML_COMMENTS="Place HTML comments"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
; RL_PLG_EDITORS-XTD="Editor Button Plugin"
; RL_PLG_FIELDS="Field Plugin"
; RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
; RL_PRODUCTS="Products"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="تعيينات النشر"
; RL_PUBLISHING_SETTINGS="Publish items"
; RL_RANDOM="Random"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
; RL_RESIZE_IMAGES_FOLDER="Folder"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="المواسم"
RL_SEASONS_DESC="اختر المواسم للتعيين."
RL_SELECT="اختر"
; RL_SELECT_A_CATEGORY="Select a Category"
; RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="اختر المقال"
; RL_SELECT_FIELD="Select Field"
; RL_SELECTED="Selected"
RL_SELECTION="التحديد"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
; RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="أظهر الأيقونات"
RL_SHOW_ICON_DESC="سيتم اضافة ايقونه خاصه في
صندوق الادوات اذا تم اختيارها"
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
; RL_SIMPLE="Simple"
; RL_SLIDES="Slides"
RL_SOUTHERN="الجنوبي"
; RL_SPECIFIC="Specific"
RL_SPRING="الربيع"
; RL_START="Start"
RL_START_PUBLISHING="تاريخ بداية النشر"
RL_START_PUBLISHING_DESC="أدخل تاريخ بداية نشر
وعرض هذا الموديل"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="الصيف"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
; RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
RL_TAG_SYNTAX_DESC="الكلمة التي ستستخدم في
العلامات.<br><br><strong>ملاحظة:</strong>
إذا قمت بتغيير هذه الكلمة, فإن جميع
العلامات الموجودة لن تعمل بعد الآن."
; RL_TAGS="Tags"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="القوالب"
RL_TEMPLATES_DESC="اختر القوالب المراد عرض
وربط هذا الموديل بها."
; RL_TEXT="Text"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="نص فقط"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="هذه
الإضافة تحتاج %s لتعمل بشكل صحيح!"
RL_TIME="الوقت"
RL_TIME_FINISH_PUBLISHING_DESC="أدخل وقت إنتهاء
النشر.<br><br><strong>التنسيق:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="أدخل وقت إبتداء
النشر.<br><br><strong>التنسيق:</strong>
23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="أداة تلميح"
; RL_TOP="Top"
RL_TOTAL="مجموع"
; RL_TYPES="Types"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
; RL_UNSELECTED="Unselected"
; RL_UPDATE_TO="Update to version %s"
RL_URL="رابط"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
; RL_URL_PARTS="URL matches"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="مجموعة الأعضاء"
; RL_USER_GROUPS="User Groups"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="رقم العضو IDs"
RL_USER_IDS_DESC="أدخل رقم العضو ids المسموح له
بمشاهدة هذا الموديل. استخدم الفاصلة
للفصل بينها."
RL_USERS="الأعضاء"
RL_UTF8="UTF-8"
; RL_VIDEO="Video"
RL_VIEW="عرض"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="العرض"
RL_WINTER="الشتاء"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO أقسام"
PK�X�[�t�uu?regularlabs/language/ar-SA/ar-SA.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - مستخدم
بواسطة تطبيقات Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[������;regularlabs/language/bg-BG/bg-BG.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs
библиотека"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs библиотека -
използвана от разширенията на Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs библиотека"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Разширенията
на Regular Labs се нуждаят от този плъгин, за да
работят иначе няма да
работят.<br><br>разширенията на Regular
Labs включват:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Не деинсталирайте
или изключвайте този плъгин ако
използвате което и е да Regular Labs
разширение."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="писание"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="писание"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="поведение"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Настройки
по подразбиране"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Медия"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Опции на
администратор модула"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Опции за
бутона за редактиране"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Опции за
сигурността"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Настройка"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="стилизиране"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Инсталиране"
RL_ACTION_UNINSTALL="Деинсталирай"
RL_ACTION_UPDATE="Обнови"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Администратор"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="разширен"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ВСИЧКИ"
; RL_ALL_DESC="Will be published if <strong>ALL</strong>
of below assignments are matched."
RL_ALL_RIGHTS_RESERVED="всички права са
запазени"
RL_ALSO_ON_CHILD_ITEMS="също така на унаследени
елементи"
RL_ALSO_ON_CHILD_ITEMS_DESC="желаете ли да го
присвоите за унаследени елементи от
избраните елементи?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
; RL_ANY="ANY"
; RL_ANY_DESC="Will be published if <strong>ANY</strong>
(one or more) of below assignments are matched.<br>Assignment groups
where 'Ignore' is selected will be ignored."
RL_ARE_YOU_SURE="Наистина ли?"
RL_ARTICLE="статия"
RL_ARTICLE_AUTHORS="автори"
RL_ARTICLE_AUTHORS_DESC="изберете авторите, които
желаете да добавите."
RL_ARTICLES="стати"
RL_ARTICLES_DESC="изберете статиите които
искате да добавите."
RL_AS_EXPORTED="като експортнати"
RL_ASSIGNMENTS="Възложени задачи"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Aвстралия"
RL_AUTHORS="автори"
RL_AUTO="автоматично"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="поведение"
RL_BEHAVIOUR="поведение"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="И двете"
RL_BOTTOM="най-долу"
RL_BROWSERS="Браузъри"
; RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind
that browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
RL_BUTTON_ICON="иконка на бутон"
RL_BUTTON_ICON_DESC="изберете кой бутон желаете
да покажете в бутона."
RL_BUTTON_TEXT="текст на бтон"
RL_BUTTON_TEXT_DESC="Този текст ще се покаже в
редактор бутона."
RL_CACHE_TIME="време за кеширане"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="категории"
RL_CATEGORIES_DESC="изберете категориите към
които да се присвои."
; RL_CATEGORY="Category"
RL_CHANGELOG="лог с промени"
; RL_CLASSNAME="CSS Class"
; RL_COLLAPSE="Collapse"
RL_COM="компонент"
RL_COMBINE_ADMIN_MENU="комбиниране с
администратор менюто"
RL_COMBINE_ADMIN_MENU_DESC="изберете, за да
комбинирате всички Regular Labs - компоненти в
подменю в администратор менюто."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Компоненти"
RL_COMPONENTS_DESC="изберете компонентите,
които желаете да зададете."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="съдържание"
RL_CONTENT_KEYWORDS="ключови думу на
съдържанието"
RL_CONTENT_KEYWORDS_DESC="Въведете ключовите
думи, които сте намерили в съдържанието и
да ги зададете. Използвайте запетаи да
отделите ключовите думи."
RL_CONTINENTS="континенти"
RL_CONTINENTS_DESC="изберете континентите,
които желаете да зададете."
RL_COOKIECONFIRM="Cookie Confirm"
RL_COOKIECONFIRM_COOKIES="бисквитките са
разрешени"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="копие от %s"
RL_COPYRIGHT="права за ползваме"
RL_COUNTRIES="Държави"
RL_COUNTRIES_DESC="изберете държавите, които
желаете да зададете."
RL_CSS_CLASS="Class (CSS)"
RL_CSS_CLASS_DESC="дефинирайте css име на клас
за цели свързани със стилизирането."
RL_CURRENT="Текущо"
RL_CURRENT_DATE="текуща дата/време:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Вашата текуща версия е %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="код по поръчка"
RL_CUSTOM_CODE_DESC="въведете кодът, който
редактор бутона да вмъкне съдържанието
си (вместо кода по подразбиране)."
RL_CUSTOM_FIELD="поле по поръчка"
RL_CUSTOM_FIELDS="полета по поръчка"
RL_DATE="Дата"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="повтарящо се"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="дата и време"
; RL_DATE_TIME_DESC="The date and time assignments use the date/time
of your servers, not that of the visitors system."
; RL_DATE_TO="To"
RL_DAYS="дни на седмицата"
; RL_DAYS_DESC="Select days of the week to assign to."
RL_DEFAULT_ORDERING="подредба по
подразбиране"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
RL_DEFAULT_SETTINGS="Настройки по
подразбиране"
RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Мобилен телефон"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="посока"
RL_DIRECTION_DESC="изберете посока"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="изключване при
компонентите"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
RL_DISPLAY_EDITOR_BUTTON="покажи редактор
бутона"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="покажи линк"
RL_DISPLAY_LINK_DESC="Как желаете линка да се
показва?"
RL_DISPLAY_TOOLBAR_BUTTON="покажи бутона за
лентата с инструментите"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="покажи подсказващо
съобщение"
RL_DISPLAY_TOOLTIP_DESC="изберете да покажете
подсказващо съобщение с допълнителна
информация когато мишката се постави
върху линка/иконката."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="id номера на
потребителя"
RL_DYNAMIC_TAG_USER_NAME="името на потребителя"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="името за вход на
потребителя"
RL_DYNAMIC_TAGS="динамични етикети"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Вклюване"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="включи в"
RL_ENABLE_IN_ADMIN="включи в администратор"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="включи в статии"
RL_ENABLE_IN_COMPONENTS="включи в компоненти"
RL_ENABLE_IN_DESC="изберете дали искате да
включите в предната част на сайта или в
администраторската секция или и на двете
места."
RL_ENABLE_IN_FRONTEND="включи в предната част на
сайта"
; RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in
the frontend."
RL_ENABLE_OTHER_AREAS="включи за други
области"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="изключи от"
RL_EXPAND="разшири"
RL_EXPORT="Експортиране"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="допълнителни параметри"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="есен"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="име на поле"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="стойност на поле"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="необходимите %s файлове не
са намерени!"
RL_FILTERS="филтри"
RL_FINISH_PUBLISHING="приключване на
публикуването"
RL_FINISH_PUBLISHING_DESC="въведете датата за
приключване на публукиването"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="За повече функционалности
моля закупете PRO версията."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="предната част"
RL_GALLERY="Галерия"
RL_GEO="гео локализация"
RL_GEO_DESC="Гео локализацията не е винаги
100&#37; точна. Гео локацията се базира на
IP адреса на посетителя. Не всички IP
адреси са фиксирани или познати."
RL_GEO_GEOIP_COPYRIGHT_DESC="Този продукт включва
GeoLite2 дани създадени с MaxMind, достъпни от
[[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="искам Pro! версията"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="възходящ достъп"
RL_HEADING_ACCESS_DESC="нисходящ достъп"
RL_HEADING_CATEGORY_ASC="възходяща категория"
RL_HEADING_CATEGORY_DESC="нисходяща категория"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
RL_HEADING_TYPE_ASC="въвеждане възходящо"
RL_HEADING_TYPE_DESC="въвеждане нисходящо"
RL_HEIGHT="Височина"
RL_HEMISPHERE="полукълбо"
RL_HEMISPHERE_DESC="Изберете полукълбото,
където се намира уеб-сайта Ви"
RL_HIGH="Високо"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="начална страница"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="само иконка"
RL_IGNORE="пренебрегвам"
RL_IMAGE="изображение"
RL_IMAGE_ALT="Alt на изображение"
RL_IMAGE_ALT_DESC="Alt стойността на
изображението."
RL_IMAGE_ATTRIBUTES="атрибути на
изображението"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Импортиране"
RL_IMPORT_ITEMS="вмъкване на елементи"
RL_INCLUDE="включи"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="включи no Itemid"
; RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in
URL?"
RL_INITIALISE_EVENT="инициализирай при
събитие"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Постави"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP адреси / Диапазон"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP адреси"
RL_IS_FREE_VERSION="Това е Безплатната / FREE
версия на %s."
RL_ITEM="елемент"
RL_ITEM_IDS="ID-та на елемент"
RL_ITEM_IDS_DESC="въведете ID на елементите към
който желаете да ги зададете.
Използвайте запетаи, за да ги отделите от
id-тата."
RL_ITEMS="елементи"
; RL_ITEMS_DESC="Select the items to assign to."
RL_JCONTENT="Джумла! съдържание"
RL_JED_REVIEW="харесвате това разширение?
[[%1:start link%]]оставете ревю на JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Вие използвате
Джумла 2.5 версията %1$s на Джумла 3. Моля
преинсталирайте %1$s , за да отстраните
този проблем."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Категории"
RL_LANGUAGE="Език"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="езици"
; RL_LANGUAGES_DESC="Select the languages to assign to."
RL_LAYOUT="изглед"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="нива"
; RL_LEVELS_DESC="Select the levels to assign to."
RL_LIB="библиотека"
RL_LINK_TEXT="текст на линк"
RL_LINK_TEXT_DESC="Текстът, който желаете да
покажете като линк."
RL_LIST="списък"
RL_LOAD_BOOTSTRAP_FRAMEWORK="зареди
Bootstrap фреймуорк"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="изключете, за да не
се инициализира Bootstrap  фреймуорка."
RL_LOAD_JQUERY="зареди jQuery скрипт"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="зареди Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
RL_LOAD_STYLESHEET="зареди файловете със
стилове"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
RL_LOW="Ниско"
RL_LTR="отляво надясно"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Метод за съвпадение"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="максимизирай"
RL_MEDIA_VERSIONING="използвай версии на
медията"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Средно име"
RL_MENU_ITEMS="меню елементи"
; RL_MENU_ITEMS_DESC="Select the menu items to assign to."
RL_META_KEYWORDS="мета ключови думи"
RL_META_KEYWORDS_DESC="въведете намерените
ключови думи в мета ключовите думи към
които искате да ги зададете. Използвайте
запетаи, за да ги отделите от ключовите
думи."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="минимизирай"
RL_MOBILE_BROWSERS="мобилни браузъри"
RL_MOD="Модул"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="месеци"
; RL_MONTHS_DESC="Select months to assign to."
RL_MORE_INFO="повече информация"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d елементите са
актуализирани."
RL_N_ITEMS_UPDATED_1="един елемент е
актуализиран"
RL_NEW_CATEGORY="създайте нова категория"
RL_NEW_CATEGORY_ENTER="създайте ново име на
категория"
RL_NEW_VERSION_AVAILABLE="има нова версия"
RL_NEW_VERSION_OF_AVAILABLE="Има достъпна %s нова
версия"
RL_NO_ICON="без иконка"
RL_NO_ITEMS_FOUND="Няма намерени продукти"
RL_NORMAL="нормално"
; RL_NORTHERN="Northern"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="само"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>само достъпно в PRO
версията!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(само достъпно в
PRO версията)"
RL_ONLY_VISIBLE_TO_ADMIN="Това съобщение ще се
покаже само на (супер) администратори."
RL_OPTION_SELECT="- изберете -"
RL_OPTION_SELECT_CLIENT="- изберете клиент -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="операционни системи"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="други области"
RL_OTHER_OPTIONS="други опции"
RL_OTHER_SETTINGS="други настройки"
RL_OTHERS="други"
RL_PAGE_TYPES="типове страница"
; RL_PAGE_TYPES_DESC="Select on what page types the assignment should
be active."
RL_PHP="поръчков PHP код"
; RL_PHP_DESC="Enter a piece of PHP code to evaluate. The code must
return the value true or false.<br><br>For
instance:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="поставете
HTML коментари"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="плъгин бутон за
редактора"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="системен плъгин"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="пощенски кодове"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
RL_POWERED_BY="Осъществено от %s"
RL_PRODUCTS="Продукти"
RL_PUBLISHED_DESC="Вие може да използвате това
(временно), за да изключите този
елемент."
; RL_PUBLISHING_ASSIGNMENTS="Publishing Assignments"
RL_PUBLISHING_SETTINGS="публикувай елементи"
RL_RANDOM="по случаен принцип"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="региони / области"
; RL_REGIONS_DESC="Select the regions / states to assign to."
RL_REGULAR_EXPRESSIONS="използвай регулярни
изрази"
RL_REGULAR_EXPRESSIONS_DESC="изберете това, за да
използвате стойността като регулярен
израз."
RL_REMOVE_IN_DISABLED_COMPONENTS="премахни от
изключените компоненти"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Отрежи"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Карта"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="отдясно наляво"
RL_SAVE_CONFIG="след съхраняване на опциите
това няма да изкача при зареждане на
страницата повече."
RL_SEASONS="сезони"
; RL_SEASONS_DESC="Select seasons to assign to."
RL_SELECT="изберете"
RL_SELECT_A_CATEGORY="изберете категория"
RL_SELECT_ALL="изберете всички"
RL_SELECT_AN_ARTICLE="изберете статия"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="избрани"
RL_SELECTION="избор"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="Опции на администратор
модула"
RL_SETTINGS_EDITOR_BUTTON="Опции за бутона за
редактиране"
RL_SETTINGS_SECURITY="Опции за сигурността"
RL_SHOW_ASSIGNMENTS="покажи задачите"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
RL_SHOW_COPYRIGHT="покажи правото на
ползване"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="покажи бутон иконка"
; RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the
Editor Button."
RL_SHOW_UPDATE_NOTIFICATION="покажи уведомленията
за актуализации"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
; RL_SIMPLE="Simple"
; RL_SLIDES="Slides"
; RL_SOUTHERN="Southern"
; RL_SPECIFIC="Specific"
; RL_SPRING="Spring"
RL_START="Начало"
RL_START_PUBLISHING="старт на публикуването"
RL_START_PUBLISHING_DESC="въведете дата за
започване на публикуването"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="стилизиране"
RL_SUMMER="лято"
RL_TABLE_NOT_FOUND="необходимата%s таблица на
базата данни не е намерена!"
RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
; RL_TAG_SYNTAX_DESC="The word to be used in the
tags.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAGS="етикети"
RL_TAGS_DESC="въведете етикетите към които
искате да ги зададете. Използвайте
запетаи, за да ги отделите етикетети."
RL_TEMPLATES="шаблони"
RL_TEMPLATES_DESC="изберете шаблони, които
желаете да ги зададете."
RL_TEXT="Текст"
RL_TEXT_HTML="текст (HTML)"
RL_TEXT_ONLY="само текст"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="За да
работи това разширение то се нуждае от %s ,
за да работи правилно!"
RL_TIME="Време"
RL_TIME_FINISH_PUBLISHING_DESC="Въведете времето за
спиране на
публикуването.<br><br><strong>Формат:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Въведете времето за
спиране на
публикуването.<br><br><strong>Формат:</strong>
23:59"
RL_TOGGLE="превключи"
RL_TOOLTIP="подсказка"
RL_TOP="най-горен"
RL_TOTAL="общо"
RL_TYPES="типове"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
; RL_UNSELECTED="Unselected"
RL_UPDATE_TO="актуализирай до версия %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL съвпадения"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="използвай код по
поръчка"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
RL_USE_SIMPLE_BUTTON="използвай обикновен
бутон"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
; RL_USER_GROUP_LEVELS="User Group Levels"
RL_USER_GROUPS="потребителски групи"
RL_USER_GROUPS_DESC="изберете потребителски
групи към които да се зададе."
RL_USER_IDS="потребителски ID-та"
; RL_USER_IDS_DESC="Enter the user ids to assign to. Use commas to
separate ids."
RL_USERS="потребители"
RL_UTF8="UTF-8"
RL_VIDEO="Видео"
RL_VIEW="Изглед"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Ширина"
RL_WINTER="зима"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO категории"
PK�X�[|Yx,��?regularlabs/language/bg-BG/bg-BG.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs
библиотека"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs библиотека -
използвана от разширенията на Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs библиотека"
PK�X�[�'���;regularlabs/language/ca-ES/ca-ES.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - emprat per Regular
Labs extensions"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Les extensions Regular Labs
necesiten aquest plugin i no funcionarien sense
ell.<br><br>Regular Labs extensions
inclouen:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="No desinstaleu o desactiveu aquest
plugin si feu servir extensions de Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Etiqueta sintaxi"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descripció"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descripció"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportament"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Multimèdia"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opcions del
mòdul d'administració"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opcions del
botó d'edició"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Paràmetres de
seguretat"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Configuració"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="CSS"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Etiqueta sintaxi"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Instal·lar"
; RL_ACTION_UNINSTALL="Uninstall"
RL_ACTION_UPDATE="Actualitza"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avançat"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Subscripcions Akeeba"
RL_ALL="TOT"
RL_ALL_DESC="Es publicarà si <strong>TOT</strong>
coincideix amb els assignaments de sota."
RL_ALL_RIGHTS_RESERVED="Tots els drets reservats"
RL_ALSO_ON_CHILD_ITEMS="També als elements que pengen"
RL_ALSO_ON_CHILD_ITEMS_DESC="Ho voleu assignar també als elements que
pengen dels elements seleccionats?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="Qualsevol"
RL_ANY_DESC="Es publicarà si <strong>QUALSEVOL</strong>
(una o més) de les assignacions següents coincideixen.<br>Si
l'assignació dels grups tenen l'opció 'Ignora'
seleccionada, s'ignoraran."
RL_ARE_YOU_SURE="N'esteu segur?"
RL_ARTICLE="Article"
RL_ARTICLE_AUTHORS="Autors"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Articles"
RL_ARTICLES_DESC="Trieu els articles als quals assignar."
RL_AS_EXPORTED="Com a exportat"
; RL_ASSIGNMENTS="Assignments"
RL_ASSIGNMENTS_DESC="Escollint les assignacions específiques podeu
limitar on aquest %s aparexierà o si s'hauria de
publicar.<br>Per publicar-ho a totes les pàgines, simplement no
especifiquis cap assignació."
RL_AUSTRALIA="Austràlia"
RL_AUTHORS="Autors"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Comportament"
RL_BEHAVIOUR="Comportament"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Has desactivat la iniciació de
l'estructura Bootstrap. %s necessita l'estructura Bootstrap per
funcionar. Assegura't que la teva plantilla i la resta
d'extensions carreguin els scripts necessaris."
RL_BOTH="Tots dos"
RL_BOTTOM="Inferior"
RL_BROWSERS="Navegadors"
RL_BROWSERS_DESC="Seleccioneu els navegadors per assignar. Recordeu
que la detecció del navegador no sempre és 100&#37; acurada. Els
usuaris poden confiurar el navegador per imitar-ne d'altres"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Botó de text"
RL_BUTTON_TEXT_DESC="Aquest text es mostrarà al botó de
l'editor."
RL_CACHE_TIME="Temps de &quot;Cache&quot;"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Categories"
RL_CATEGORIES_DESC="Seleccioneu les categories per assignar."
; RL_CATEGORY="Category"
RL_CHANGELOG="Registre de canvis"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Col·lapsa"
RL_COM="Component"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Components"
RL_COMPONENTS_DESC="Seleccioneu els components per assignar."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Contingut"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="Continents"
RL_CONTINENTS_DESC="Seleccioneu els continents per assignar."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Copia de %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Països"
RL_COUNTRIES_DESC="Seleccioneu els països per assignar."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
RL_CURRENT_DATE="Data/hora actual
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="La versió actual és %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Codi personalitzat"
RL_CUSTOM_CODE_DESC="Introduïu el codi que el botó d'edició
hauria d'inserir al contingut (en comptes del codi per defecte)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Camps adicionals"
RL_DATE="Dia"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Dia i hora"
RL_DATE_TIME_DESC="Les assignacions del dia i l'hora es fan a
partir del vostre servidor, no del dels vostres visitants."
; RL_DATE_TO="To"
RL_DAYS="Dies de la setmana"
RL_DAYS_DESC="Seleccioneu el dies de la setmana per assignar."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
RL_DEFAULTS="Per Defecte"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Adreça"
RL_DIRECTION_DESC="Seleccioneu l'adreça"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Inhabilita als components"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Mostra l'enllaç"
RL_DISPLAY_LINK_DESC="Com voleu que es mostri l'enllaç?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Mostra l'indicador de funció"
RL_DISPLAY_TOOLTIP_DESC="Seleccioneu si voleu mostrar l'indicador
de funció amb informació extra quan el ratolí passi per sobre de
l'enllaç o la icona."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Aixo posa el númº de repetició.<br>Si
trobeu el que busqueu, 4 cops, el comptador us mostrarà numeracions del 1
al 4."
RL_DYNAMIC_TAG_DATE="Format Data %1$s %2$sphp strftime(). Exemple:
%3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Un numero al atzar entre un rang de
numeros"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="el numero ID del usuari"
RL_DYNAMIC_TAG_USER_NAME="El nom de usuari"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="El Tag usuari extreu dades del usuari
loggejat. Si el visitant no ha fet el login en tag serà esborrat."
RL_DYNAMIC_TAG_USER_USERNAME="El nom login del usuari"
RL_DYNAMIC_TAGS="Tags Dinamics"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Activa"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Habilita als articles"
RL_ENABLE_IN_COMPONENTS="Habilita als components"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Activa al frontal"
RL_ENABLE_IN_FRONTEND_DESC="Si ho activeu, també estarà disponible
al frontal."
RL_ENABLE_OTHER_AREAS="Habilita altres àrees"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Exclou"
RL_EXPAND="Expandeix"
RL_EXPORT="Exporta"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Tardor"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nom del camp"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Valor del camp"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="No s'han trobat els fitxers requerits
%s!"
RL_FILTERS="Filtres"
RL_FINISH_PUBLISHING="Acaba la publicació"
RL_FINISH_PUBLISHING_DESC="Entreu la data en què acaba la
publicació"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Per a més funcionalitats podeu comprar la versió
PRO."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontal"
RL_GALLERY="Galeria"
RL_GEO="Geolocalitzant"
RL_GEO_DESC="La geolocalització no és sempre 100&#37; acurada.
La geolocalitzacio es basa en l'adreça IP del visitant. No totes les
adreces IP són fixes o conegudes."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Fes-te Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Alçada"
RL_HEMISPHERE="Hemisferi"
RL_HEMISPHERE_DESC="Seleccioneu l'hemisferi en què el vostre
website esta situat"
RL_HIGH="Alta"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Pàgina d'inici"
RL_HOME_PAGE_DESC="En comptes de triar l'element de la pàgina
d'inici (per defecte) mitjançant els elements del menú, només
quadrarà la pagina inici real, no una URL que tingui la mateixa ID que la
pàgina d'inici<br><br>Això podria no funcionar en
algunes extensions SEF de tercers."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Només la icona"
RL_IGNORE="Ignora"
RL_IMAGE="Imatge"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importa"
RL_IMPORT_ITEMS="Importa els elements"
RL_INCLUDE="Inclou"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="No incloure Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Assigna també quan no hi ha Itemid de menu
a la URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Inserir"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
RL_IS_FREE_VERSION="Aquesta és la versió GRATUÏTA de %s."
RL_ITEM="Element"
RL_ITEM_IDS="ID de l'element"
RL_ITEM_IDS_DESC="Introduïu les ID de l'element per assignar.
Feu servir comes per separar les ID."
RL_ITEMS="Elements"
RL_ITEMS_DESC="Selecciona els elements als que assignar."
RL_JCONTENT="Joomla! Contingut"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="Categories K2"
RL_LANGUAGE="Idioma"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Llengües"
RL_LANGUAGES_DESC="Seleccioneu les llengües per assignar"
RL_LAYOUT="Disseny"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Nivells"
RL_LEVELS_DESC="Trieu els nivell als quals assignar."
; RL_LIB="Library"
RL_LINK_TEXT="Text de l'enllaç"
RL_LINK_TEXT_DESC="El text per mostrar com a enllaç."
RL_LIST="Llista"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Carrega estructura Bootstrap"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Deshabilita perquè no
s'iniciï l'estructura Bootstrap"
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Carrega MooTools"
RL_LOAD_MOOTOOLS_DESC="Seleccioneu per carregar el script MooTools. Ho
podeu inhabilitar si teniu conflictes amb la plantilla o altres
extensions."
RL_LOAD_STYLESHEET="Carrega CSS"
RL_LOAD_STYLESHEET_DESC="Seleccioneu carregar CSS de l'extensió.
Ho podeu desactivar si poseu el vostre CSS, com a les CSS de
plantilles."
RL_LOW="Baixa"
RL_LTR="D'esquerra a dreta"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Mètode d'aparellament"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximitza"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Mitjà"
RL_MENU_ITEMS="Elements del menú"
RL_MENU_ITEMS_DESC="Seleccioneu els elements del menú per
assignar"
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimitza"
RL_MOBILE_BROWSERS="Navegadors mòbils"
RL_MOD="Mòdul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mesos"
RL_MONTHS_DESC="Seleccioneu els mesos per assignar"
RL_MORE_INFO="Més informació"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d elements actualitzats."
RL_N_ITEMS_UPDATED_1="S'ha actualitzat un element"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Hi ha una nova versió disponible"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
RL_NO_ICON="Sense icona"
RL_NO_ITEMS_FOUND="No s'ha trobat cap element."
RL_NORMAL="Normal"
RL_NORTHERN="Nord"
RL_NOT="No"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Només"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Només disponible per a la versió
PRO!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Aquest missatge només es mostra als (super)
administradors"
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Sistemes operatius"
RL_OS_DESC="Trieu els sistemes operatius als que assignar. Pens que la
detecció de sistema operatiu mail es perfecta al 100&#37;. Els usuaris
poden configurar els seus navegadors per imitar altres sistemes
operatius."
; RL_OTHER="Other"
RL_OTHER_AREAS="Altres àrees"
RL_OTHER_OPTIONS="Altres opcions"
RL_OTHER_SETTINGS="Altres paràmetres"
RL_OTHERS="Altres"
RL_PAGE_TYPES="Tipus pàgines"
RL_PAGE_TYPES_DESC="Trieu en quins tipus de pàgines s'ha
d'activar."
; RL_PHP="Custom PHP"
RL_PHP_DESC="Entreu unes línies de codi PHP per a comprovar. El codi
ha de retornar un valor true or false.<br><br>Per
exemple:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Situeu comentaris HTML"
RL_PLACE_HTML_COMMENTS_DESC="Per defecte els comentaris HTML es
col·loquen al voltant de l'extensió.<br><br>Aquests
comentaris us poden ajudar als problemes quan no obteniu els resultats
esperats.<br><br>si preferiu no tenir aquests comentaris al
HTML, desactiveu l'opció."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Connector del botó d'edició"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Connector del sistema"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Productes"
RL_PUBLISHED_DESC="Ho podeu fer servir per inhabilitar (temporalment)
aquest element."
RL_PUBLISHING_ASSIGNMENTS="Publicant les assignacions"
RL_PUBLISHING_SETTINGS="Paràmetres de publicació"
RL_RANDOM="Aleatori"
RL_REDSHOP="RedShop"
RL_REGEX="Expressions Regulars"
RL_REGIONS="Regions / Estats"
RL_REGIONS_DESC="Seleccioneu els estats / regions per assignar."
RL_REGULAR_EXPRESSIONS="Utilitza expressions regulars"
RL_REGULAR_EXPRESSIONS_DESC="Selecciona per tractar el valor com una
expressió regular"
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Escapça"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Mapa"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="De dreta a esquerra"
RL_SAVE_CONFIG="Un cop guardades totes les opcions, ja no faran una
finestra emergent cada cop que carregels pàgina"
RL_SEASONS="Estacions de l'any"
RL_SEASONS_DESC="Trieu les estacions de l'any per assignar"
RL_SELECT="Selecciona"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Selecciona-ho tot"
RL_SELECT_AN_ARTICLE="Selecciona un article"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Seleccionat"
RL_SELECTION="Selecció"
RL_SELECTION_DESC="Trieu si incloure o excloure la selecció per
l'assignació.<br><br><strong>Inclou</strong><br>Publinomés
als
seleccionats.<br><br><strong>Exclou</strong><br>Publica
a tot arreu excepte a la selecció."
RL_SETTINGS_ADMIN_MODULE="Opcions del mòdul
d'administració"
RL_SETTINGS_EDITOR_BUTTON="Opcions del botó d'edició"
RL_SETTINGS_SECURITY="Paràmetres de seguretat"
RL_SHOW_ASSIGNMENTS="Mostra les assignacions"
RL_SHOW_ASSIGNMENTS_DESC="Trieu si mostrar només les assignacions que
puguin limitar Et pots anar aclimatant a la nostra entrevista."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Tots els tipus d'assignació
no seleccionats estan ocultas de la vista"
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Mostra la icona del botó"
RL_SHOW_ICON_DESC="Si ho heu seleccionat, la icona es mostrarà al
botó d'edició."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Simple"
RL_SLIDES="Persianes"
RL_SOUTHERN="Sud"
; RL_SPECIFIC="Specific"
RL_SPRING="Primavera"
RL_START="Inici"
RL_START_PUBLISHING="Inicia la publicació"
RL_START_PUBLISHING_DESC="Introduïu el dia en què comença la
publicació"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="CSS"
RL_SUMMER="Estiu"
RL_TABLE_NOT_FOUND="No s'ha trobat la base de dades %s
requerida!"
RL_TABS="Etiquetes"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Etiqueta sintaxi"
RL_TAG_SYNTAX_DESC="La paraula a emprar en els
tags.<br><br><strong>Nota:</strong> si canvieu
aquesta, totes les ja existents no funcionaràn."
RL_TAGS="Etiquetes"
RL_TAGS_DESC="Intriduïu les etiquetes per assignar. Feu servir comes
per separar les etiquetes."
RL_TEMPLATES="Plantilles"
RL_TEMPLATES_DESC="Seleccioneu les plantilles per assignar"
RL_TEXT="Text"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Només text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="L'extensió
necessita %s per funcionar correctament!"
RL_TIME="Hora"
RL_TIME_FINISH_PUBLISHING_DESC="Introduïu l'hora per acabar la
publicació.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Introduïu l'hora per iniciar la
publicació.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Canvia"
RL_TOOLTIP="Indicador de funció"
RL_TOP="Superior"
RL_TOTAL="Total"
RL_TYPES="Tipus"
RL_TYPES_DESC="Trieu els tipus als quals assignar."
RL_UNSELECT_ALL="Desselecciona-ho tot"
RL_UNSELECTED="Desseleccionat"
RL_UPDATE_TO="Actualitzat a la versió %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="La URL coincideix"
RL_URL_PARTS_DESC="Introduïu (una part de) les URL perquè
coincideixi.<br>Feu servir una nova línia per a cada coincidència
diferent."
RL_URL_PARTS_REGEX="Les parts URL seran cercades emprant expressions
regulars. <strong>Assegureu-vos doncs d'usar una correcta
sintaxi.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Per a l'assignació a categories i
article (ítem), consulta la secció de contingut Joomla d'aquí
dalt"
RL_USE_CUSTOM_CODE="Utilitza el codi personalitzat"
RL_USE_CUSTOM_CODE_DESC="Si està seleccionat, el botó d'edició
inserirà el codi personalitzat donat."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Nivell de grup usuaris"
RL_USER_GROUPS="Grups d'usuaris"
RL_USER_GROUPS_DESC="Seleccioneu els grups usuaris per assignar."
RL_USER_IDS="ID d'usuari"
RL_USER_IDS_DESC="Introduïu les ID dels usuaris per assignar. Feu
servir comes per separar les ID."
RL_USERS="Usuaris"
RL_UTF8="UTF-8"
RL_VIDEO="Vídeo"
RL_VIEW="Vista"
RL_VIEW_DESC="Seleccioneu quina vista per defecte hem d'usar al
crear un element nou."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Amplada"
RL_WINTER="Hivern"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categories ZOO"
PK�X�[I}<Obb?regularlabs/language/ca-ES/ca-ES.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - emprat per Regular
Labs extensions"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[h�	܆܆;regularlabs/language/cs-CZ/cs-CZ.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systém - Knihovna Regular Labs"
PLG_SYSTEM_REGULARLABS_DESC="Knihovna Regular Labs - podpůrný
zásuvný modul, který potřebují ke svému chodu všechna rozšíření
Regular Labs"
REGULAR_LABS_LIBRARY="Knihovna Regular Labs"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Rozšíření Regular Labs
potřebují tento zásuvný modul a bez něj nebudou fungovat
korektně.<br><br>Regular Labs rozšíření
zahrnují:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Pokud používáte jakékoliv
rozšíření od Regular Labs, neodinstalovávejte nebo nezakazujte tento
zásuvný modul."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntaxe tagů"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Popis"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Popis"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Chování"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Výchozí
nastavení"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Média"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Nastavení modulu
administrace"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Tlačítko
editace Nastavení"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Nastavení
bezpečnosti"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Nastavení"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Stylizace"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntaxe tagů"

RL_ACCESS_LEVELS="Úroveň přístupu"
RL_ACCESS_LEVELS_DESC="Vyberte úrovně přístupu, ke kterým bude
tento modul přiřazen."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
RL_ACTION_CREATE="Vytvořit"
RL_ACTION_DELETE="Smazat"
RL_ACTION_INSTALL="Instalovat"
RL_ACTION_UNINSTALL="Odinstalovat"
RL_ACTION_UPDATE="Aktualizovat"
RL_ACTIONLOG_EVENTS="Události do logu"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Pokročilé"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="VŠEM"
RL_ALL_DESC="Bude zveřejněno, budou-li splněny
<strong>VŠECHNY</strong> podmínky pro přiřazení."
RL_ALL_RIGHTS_RESERVED="Všechna práva vyhrazena"
RL_ALSO_ON_CHILD_ITEMS="Také pro položky nižší úrovně"
RL_ALSO_ON_CHILD_ITEMS_DESC="Přiřadit také všem položkám
nižší úrovně u vybraných položek menu?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="JAKÉKOLIV"
RL_ANY_DESC="Bude zveřejněno, když nastane
<strong>JAKÁKOLIV</strong> (nebo více) z podmínek pro
přiřazení.<br>Skupiny, ve kterých je vybráno 'Ignore'
budou ignorovány."
RL_ARE_YOU_SURE="Jste si jist(-a)?"
RL_ARTICLE="Článek"
RL_ARTICLE_AUTHORS="Autoři"
RL_ARTICLE_AUTHORS_DESC="Vyberte si autory, ke kterým bude tento
modul přiřazen."
RL_ARTICLES="Články"
RL_ARTICLES_DESC="Vyberte články, ke kterým bude tento modul
přiřazen."
RL_AS_EXPORTED="Jako exportované"
RL_ASSIGNMENTS="Přiřazení"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Austrálie"
RL_AUTHORS="Autoři"
RL_AUTO="Automaticky"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Chování"
RL_BEHAVIOUR="Chování"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Zakázali jste spustit Bootstrap
Framework. %s potřebuje funkci Bootstrap Framework. Ujistěte se, že
šablona nebo jiná rozšíření načtou potřebné skripty a nahradí
požadované funkce."
RL_BOTH="Oba"
RL_BOTTOM="Dole"
RL_BROWSERS="Prohlížeče"
RL_BROWSERS_DESC="Vyberte prohlížeče, ke kterým bude modul
přiřazen. Pamatujte, že detekce prohlížeče nefunguje vždy
stoprocentně. Uživatelé mohou mít nastaven svůj prohlížeč tak, aby
napodoboval jiné prohlížeče."
RL_BUTTON_ICON="Ikona tlačítka"
RL_BUTTON_ICON_DESC="Vyberte ikonu, kterou chcete zobrazit v
tlačítku."
RL_BUTTON_TEXT="Název Tlačítka"
RL_BUTTON_TEXT_DESC="Tento název bude zobrazen v Tlačítku
Editora."
RL_CACHE_TIME="Délka mezipaměti"
RL_CACHE_TIME_DESC="Maximální délka času v minutách pro uložení
souboru do mezipaměti před jeho obnovením. Ponechte prázdné pro
použití globálního nastavení."
RL_CATEGORIES="Kategorie"
RL_CATEGORIES_DESC="Vyberte si kategorie, ke kterým bude tento modul
přiřazen."
; RL_CATEGORY="Category"
RL_CHANGELOG="Seznam změn"
RL_CLASSNAME="Třída CSS"
RL_COLLAPSE="Sbalit"
RL_COM="Komponenta"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenty"
RL_COMPONENTS_DESC="Zaškrtněte komponenty, ke kterým bude tento
modul přiřazen."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Pole obsahu"
RL_CONTENT_KEYWORDS="Klíčová slova obsahu"
RL_CONTENT_KEYWORDS_DESC="Zadejte klíčová slova obsažená v
obsahu, který chcete přiřadit. K oddělení klíčových slov použijte
čárky."
RL_CONTINENTS="Kontinenty"
; RL_CONTINENTS_DESC="Select the continents to assign to."
RL_COOKIECONFIRM="Potvrdit Cookie"
RL_COOKIECONFIRM_COOKIES="Cookies povoleny"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Kopie %s"
RL_COPYRIGHT="Autorská práva"
RL_COUNTRIES="Země"
RL_COUNTRIES_DESC="Vyberte si země, ke kterým bude tento modul
přiřazen."
RL_CSS_CLASS="Třída (CSS)"
RL_CSS_CLASS_DESC="Definujte css názvy tříd pro účely
vzhledu."
RL_CURRENT="Aktuální"
RL_CURRENT_DATE="Aktuální datum/čas:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Vaše současná verze je %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Vlastní kód"
RL_CUSTOM_CODE_DESC="Vložte kód, který má Tlačítko Editora
vložit do obsahu (namísto výchozího kódu)."
RL_CUSTOM_FIELD="Vlastní pole"
RL_CUSTOM_FIELDS="Extra Uživatelské položky"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Opakování"
RL_DATE_RECURRING_DESC="Aplikuje časové rozmezí v každém roce. (
Rok z předchozího výběru bude ignorován )"
RL_DATE_TIME="Datum & Čas"
RL_DATE_TIME_DESC="Přiřazení k datumu a času - používejte
datum/čas vašeho serveru - ne čas systému návštěvníků."
; RL_DATE_TO="To"
RL_DAYS="Dny v týdnu"
RL_DAYS_DESC="Vyberte dny týdne, ke kterým bude tento modul
přiřazen."
RL_DEFAULT_ORDERING="Výchozí řazení"
RL_DEFAULT_ORDERING_DESC="Nastavuje výchozí řazení položek v
seznamu."
RL_DEFAULT_SETTINGS="Výchozí nastavení"
RL_DEFAULTS="Výchozí"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobil"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Zařízení"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Směrování"
RL_DIRECTION_DESC="Vyberte směrování"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Zakázat v komponentách"
RL_DISABLE_ON_COMPONENTS_DESC="Vyberte, ve kterých komponentách
frontendu NEBUDE povoleno použití tohoto rozšíření."
RL_DISPLAY_EDITOR_BUTTON="Zobrazit tlačítko editoru"
RL_DISPLAY_EDITOR_BUTTON_DESC="Vyberte, chcete-li zobrazit tlačítko
v editoru."
RL_DISPLAY_LINK="Zobrazit odkaz"
RL_DISPLAY_LINK_DESC="Jak chcete, aby se odkaz zobrazoval?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Zobrazit popisek"
RL_DISPLAY_TOOLTIP_DESC="Vyberte, jestli zobrazovat popisek, který se
objeví po najetí kurzoru na odkaz nebo ikonu."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Použití datumu %1$sphp strftime() format%2$s.
Příklad: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
RL_DYNAMIC_TAG_LOWERCASE="Převod textu uvnitř tagů na malá
písmena."
RL_DYNAMIC_TAG_RANDOM="Náhodné číslo v zadaném rozsahu"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
RL_DYNAMIC_TAG_UPPERCASE="Převod textu uvnitř tagů na velká
písmena."
RL_DYNAMIC_TAG_USER_ID="ID číslo uživatele"
RL_DYNAMIC_TAG_USER_NAME="Jméno uživatele"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="Přihlašovací jméno"
RL_DYNAMIC_TAGS="Dynamické Tagy"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Povolit"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Povolit v"
RL_ENABLE_IN_ADMIN="Povolit v administraci"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Povolit v článcích"
RL_ENABLE_IN_COMPONENTS="Povolit v komponentách"
RL_ENABLE_IN_DESC="Zvolte, zda chcete povolit na frontendu nebo na
straně administrátora, nebo na obou."
RL_ENABLE_IN_FRONTEND="Povolit ve frontendu"
RL_ENABLE_IN_FRONTEND_DESC="Je-li povoleno, bude též dostupná i ve
frontendu."
RL_ENABLE_OTHER_AREAS="Povolit pro jiné oblasti"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Vyloučit"
RL_EXPAND="Rozšířit"
RL_EXPORT="Exportovat"
RL_EXPORT_FORMAT="Formát exportu"
RL_EXPORT_FORMAT_DESC="Vyberte formát souboru pro exportované
soubory."
RL_EXTRA_PARAMETERS="Extra parametry"
RL_EXTRA_PARAMETERS_DESC="Zadejte další parametry, které nelze
nastavit s dostupnými nastaveními"
RL_FALL="Podzim"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Název pole"
RL_FIELD_PARAM_MULTIPLE="Multiple"
RL_FIELD_PARAM_MULTIPLE_DESC="Povolit více hodnot, které mohou být
vybrány."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Hodnota pole"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Požadované %s soubory nenalezeny!"
RL_FILTERS="Filtry"
RL_FINISH_PUBLISHING="Konec zveřejnění"
RL_FINISH_PUBLISHING_DESC="Vložte datum konce zveřejnění"
RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Pokud chcete získat více funkcí, můžete
zakoupit verzi PRO ."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Starý NoNumber Framework se nezdá být
používán žádnými dalšími rozšířeními, které jste
nainstalovali. Je to pravděpodobně bezpečné tento plugin zakázat nebo
odinstalovat."
; RL_FROM_TO="From-To"
RL_FRONTEND="Uživatelská část"
RL_GALLERY="Galerie"
RL_GEO="Geolokace"
RL_GEO_DESC="Zeměpisná poloha není vždy 100&#37; přesná.
Geolokace je založena na IP adrese návštěvníka. Ne všechny IP adresy
jsou pevné nebo známé."
RL_GEO_GEOIP_COPYRIGHT_DESC="Tento produkt obsahuje GeoLite2 data
vytvořené MaxMind, dostupné na [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Knihovna GeoIP Regular Labs není
nainstalována. Chcete-li použít přiřazení pomocí geolokace, musíte
[[%1:link start%]]nainstalovat knihovnu Regular Labs GeoIP [[%2:link
end%]]."
RL_GO_PRO="Přejít na Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Nadpis 1"
RL_HEADING_2="Nadpis 2"
RL_HEADING_3="Nadpis 3"
RL_HEADING_4="Nadpis 4"
RL_HEADING_5="Nadpis 5"
RL_HEADING_6="Nadpis 6"
RL_HEADING_ACCESS_ASC="Přístup vzestupně"
RL_HEADING_ACCESS_DESC="Přístup sestupně"
RL_HEADING_CATEGORY_ASC="Kategorie vzestupně"
RL_HEADING_CATEGORY_DESC="Kategorie sestupně"
RL_HEADING_CLIENTID_ASC="Místo vzestupně"
RL_HEADING_CLIENTID_DESC="Místo sestupně"
RL_HEADING_COLOR_ASC="Barva vzestupně"
RL_HEADING_COLOR_DESC="Barva sestupně"
RL_HEADING_DEFAULT_ASC="Výchozí vzestupně"
RL_HEADING_DEFAULT_DESC="Výchozí sestupně"
RL_HEADING_DESCRIPTION_ASC="Poznámka vzestupně"
RL_HEADING_DESCRIPTION_DESC="Poznámka sestupně"
RL_HEADING_ID_ASC="ID vzestupně"
RL_HEADING_ID_DESC="ID sestupně"
RL_HEADING_LANGUAGE_ASC="Jazyk vzestupně"
RL_HEADING_LANGUAGE_DESC="Jazyk sestupně"
RL_HEADING_ORDERING_ASC="Řazení vzestupně"
RL_HEADING_ORDERING_DESC="Řazení sestupně"
RL_HEADING_PAGES_ASC="Položky menu vzestupně"
RL_HEADING_PAGES_DESC="Položky menu sestupně"
RL_HEADING_POSITION_ASC="Umístění vzestupně"
RL_HEADING_POSITION_DESC="Umístění sestupně"
RL_HEADING_STATUS_ASC="Stav vzestupně"
RL_HEADING_STATUS_DESC="Stav sestupně"
RL_HEADING_STYLE_ASC="Styl vzestupně"
RL_HEADING_STYLE_DESC="Styl sestupně"
RL_HEADING_TEMPLATE_ASC="Šablona vzestupně"
RL_HEADING_TEMPLATE_DESC="Šablona sestupně"
RL_HEADING_TITLE_ASC="Název vzestupně"
RL_HEADING_TITLE_DESC="Název sestupně"
RL_HEADING_TYPE_ASC="Typ vzestupně"
RL_HEADING_TYPE_DESC="Typ sestupně"
RL_HEIGHT="Výška"
RL_HEMISPHERE="Zemská polokoule"
RL_HEMISPHERE_DESC="Vyberte polokouli, ve které se nachází váš
web"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Úvodní stránka"
RL_HOME_PAGE_DESC="Není jako výběr nabídky (položky) úvodní
stránky (výchozí) přes položky nabídky (menu), zde bude zohledněna
skutečná úvodní stránka, nikoli jakákoliv URL, která má totožné
ID položky jako má položka úvodní stránky.<br><br>Toto
nemusí fungovat se všemi SEF rozšířeními 3. stran."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Pouze ikona"
RL_IGNORE="Ignorovat"
RL_IMAGE="Obrázek"
RL_IMAGE_ALT="Alternativní popis obrázku"
RL_IMAGE_ALT_DESC="Hodnota alternativního popisu obrázku."
RL_IMAGE_ATTRIBUTES="Atributy obrázku"
RL_IMAGE_ATTRIBUTES_DESC="Extra atributy obrázku, např.:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importovat"
RL_IMPORT_ITEMS="Položky pro import"
RL_INCLUDE="Zahrnout"
RL_INCLUDE_CHILD_ITEMS="Zahrnout podřízené položky"
RL_INCLUDE_CHILD_ITEMS_DESC="Zahrnout také podřízené položky
vybraných položek?"
RL_INCLUDE_NO_ITEMID="Použít, i když není přiřazeno položce
menu"
RL_INCLUDE_NO_ITEMID_DESC="Přiřadit, i když není k ID přiřazena
položka menu?"
RL_INITIALISE_EVENT="Inicializace na událost"
RL_INITIALISE_EVENT_DESC="Nastavte interní událost Joomla, na které
má být plugin inicializován. M měňte pouze v případě, že se
vyskytnou problémy, při nichž modul nefunguje."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Vložit"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP adresy / rozsahy"
RL_IP_RANGES_DESC="Čárkou a/nebo entrem oddělený seznam IP adres a
IP rozsahů.
Například:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP adresy"
RL_IS_FREE_VERSION="Toto je nekomerční volná verze produktu
%s."
RL_ITEM="Položka"
RL_ITEM_IDS="ID položek"
RL_ITEM_IDS_DESC="Vložte ID položek, pro které má být přiřaden.
Použijte čárky pro oddělení jednotlivých ID."
RL_ITEMS="Položky"
RL_ITEMS_DESC="Vyberte položky, ke kterým bude tento modul
přiřazen."
RL_JCONTENT="Joomla! Pole obsahu"
RL_JED_REVIEW="Líbí se vám toto rozšíření? [[%1:start
link%]]Zanechte prosím recenzi na JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Používáte %1$s verzi Joomla 2.5 na
Joomla 3. Prosím přeinstalujte %1$s pro vyřešení tohoto
problému."
RL_JQUERY_DISABLED="Zakázali jste skripty jQuery. %spotřebuje funkce
z jQuery. Ujistěte se, že šablona nebo jiná rozšíření načte
potřebné skripty, které nahrazují požadované funkce."
RL_K2="K2"
RL_K2_CATEGORIES="Kategorie K2"
RL_LANGUAGE="Jazyk"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Jazyky"
RL_LANGUAGES_DESC="Vyberte jazyky, ke kterým bude tento modul
přiřazen."
RL_LAYOUT="Vzhled"
RL_LAYOUT_DESC="Vyberte rozvržení, které chcete použít. Toto
rozložení můžete v komponentě nebo šabloně přepsat."
; RL_LESS_THAN="Less than"
RL_LEVELS="Úrovně"
RL_LEVELS_DESC="Vyberte úrovně, ke kterým bude tento modul
přiřazen."
RL_LIB="Knihovna"
RL_LINK_TEXT="Text odkazu"
RL_LINK_TEXT_DESC="Tento text se objeví jako odkaz."
RL_LIST="Seznam"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Nahrát Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
RL_LOAD_JQUERY="Nahrát jQuery skript"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Načíst jádro MooTools"
RL_LOAD_MOOTOOLS_DESC="Vyberte pro načtení jádra MooTools scriptu.
Toto můžete vypnout v případě konfliktu, tedy pokud vaše šablona,
nebo jiné rozšíření používá svou vlastní verzi MooTools."
RL_LOAD_STYLESHEET="Načíst seznam stylů"
RL_LOAD_STYLESHEET_DESC="Vyberte pro načtení grafických stylů.
Toto můžete vypnout tehdy, když použijete vlastní všechny styly v
některém jiném seznamu stylů, např. v kaskádovém stylu
šablony."
; RL_LOW="Low"
RL_LTR="Z leva do prava"
RL_MATCH_ALL="Úplná shoda"
RL_MATCH_ALL_DESC="Vyberte, chcete-li, aby přiřazení prošlo, pouze
pokud jsou všechny vybrané položky splněny."
RL_MATCHING_METHOD="Metodika použití"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximalizovat"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Střední"
RL_MENU_ITEMS="Položky menu"
RL_MENU_ITEMS_DESC="Vyberte položky menu, ke kterým bude tento modul
přiřazen."
RL_META_KEYWORDS="Meta klíčová slova"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimalizovat"
RL_MOBILE_BROWSERS="Mobilní prohlížeče"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Měsíce"
RL_MONTHS_DESC="Vyberte měsíce, ke kterým bude tento modul
přiřazen."
RL_MORE_INFO="Více informací"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="Úspěšně bylo aktualizováno položek: %d"
RL_N_ITEMS_UPDATED_1="Jedna položka bola aktualizována"
RL_NEW_CATEGORY="Vytvořit novou kategorii"
RL_NEW_CATEGORY_ENTER="Zadejte název nové kategorie."
RL_NEW_VERSION_AVAILABLE="Již existuje novější verze"
RL_NEW_VERSION_OF_AVAILABLE="Je dostupná nová verze %s"
RL_NO_ICON="Bez ikony"
RL_NO_ITEMS_FOUND="Žádné položky k dispozici."
RL_NORMAL="Standardní"
RL_NORTHERN="Severní"
RL_NOT="Ne"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Pouze"
RL_ONLY_AVAILABLE_IN_JOOMLA="K dispozici pouze v Joomla %s nebo
vyšší."
RL_ONLY_AVAILABLE_IN_PRO="<em>Dostupné pouze v PRO
verzi!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Dostupné pouze v PRO
verzi!)"
RL_ONLY_VISIBLE_TO_ADMIN="Tato zpráva bude zobrazena pouze (Super)
administrátorům."
RL_OPTION_SELECT="- Zvolte -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operační systémy"
RL_OS_DESC="Vyberte operační systémy, ke kterým bude modul
přiřazen. Pamatujte, že detekce operačních systémů nefunguje vždy
stoprocentně. Uživatelé mohou mít nastaven svůj prohlížeč tak, aby
napodoboval jiný operační systém."
; RL_OTHER="Other"
RL_OTHER_AREAS="Ostatní oblasti"
RL_OTHER_OPTIONS="Další nastavení"
RL_OTHER_SETTINGS="Ostatní nastavení"
RL_OTHERS="Jiné"
RL_PAGE_TYPES="Typy stránek"
RL_PAGE_TYPES_DESC="Vyberte, u kterého typu stránek by mělo být
přiřazení aktivní."
RL_PHP="Vlastní PHP"
RL_PHP_DESC="Vložte kus PHP kódu, ke kterému má být tento modul
přiřazen. Kód musí vrátit hodnotu pravda (true) nebo nepravda
(false).<br><br>Např.:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Vložte HTML komentáře"
RL_PLACE_HTML_COMMENTS_DESC="Předvoleny jsou HTML komentáře
umístěné v blízkosti výstupu tohoto
rozšíření.<br><br>Tyto komentáře pomohou s hledáním
problému, když se nedostaví žádaný
výstup.<br><br>Preferujete-li nemít tyto komentáře ve
vašem HTML výstupu, vypněte tuto možnost."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Doplněk Tlačítka Editora"
RL_PLG_FIELDS="Doplněk Pole"
RL_PLG_SYSTEM="Systémový Doplněk (Plugin)"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="PSČ"
RL_POSTALCODES_DESC="Čárkou oddělený seznam PSČ (12345) nebo
rozsahu PSČ (12300-12500).<br>Toto může být použito pouze pro
[[%1:start link%]] omezený počet zemí a IP adres [[%2:end link%]]."
RL_POWERED_BY="Používá %s"
RL_PRODUCTS="Produkty"
RL_PUBLISHED_DESC="Toto můžete použít k (dočasnému)
znefunkčnění této položky."
RL_PUBLISHING_ASSIGNMENTS="Publikování přiřazení"
RL_PUBLISHING_SETTINGS="Publikování položek"
RL_RANDOM="Náhodný"
RL_REDSHOP="RedShop"
RL_REGEX="Regulární výrazy"
RL_REGIONS="Regiony / Státy"
; RL_REGIONS_DESC="Select the regions / states to assign to."
RL_REGULAR_EXPRESSIONS="Použít regulární výrazy"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
RL_REMOVE_IN_DISABLED_COMPONENTS="Odstranit v zakázaných
komponentách"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
RL_RESIZE_IMAGES="Změna velikosti obrázků"
RL_RESIZE_IMAGES_CROP="Oříznout"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Složka"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
RL_RESIZE_IMAGES_QUALITY="Kvalita JPG"
RL_RESIZE_IMAGES_QUALITY_DESC="Kvalita změněných obrázků. Vyberte
si z nabídky Nízká, Střední nebo Vysoká. Čím vyšší je kvalita,
tím větší jsou výsledné soubory.<br>Ovlivní to pouze jpeg
obrázy."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
RL_RESIZE_IMAGES_WIDTH_DESC="Nastavte šířku velikosti obrázku v
pixelech (tedy 320)."
RL_RTL="Z prava do leva"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Období"
RL_SEASONS_DESC="Období, ke kterému bude tento modul
přiřazen."
RL_SELECT="Vyberte"
RL_SELECT_A_CATEGORY="Vyberte kategorii"
RL_SELECT_ALL="Vybrat vše"
RL_SELECT_AN_ARTICLE="Vyberte článek"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Vybráno"
RL_SELECTION="Výběr"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="Nastavení modulu administrace"
RL_SETTINGS_EDITOR_BUTTON="Tlačítko editace Nastavení"
RL_SETTINGS_SECURITY="Nastavení bezpečnosti"
RL_SHOW_ASSIGNMENTS="Zobrazit přiřazené"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
RL_SHOW_COPYRIGHT="Zobrazit autorská práva"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
RL_SHOW_HELP_MENU="Zobrazit položku nabídky nápověda"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Ukázat ikonu Tlačítka"
RL_SHOW_ICON_DESC="Je-li vybráno, ikona bude zobrazena v Tlačítku
Editora."
RL_SHOW_UPDATE_NOTIFICATION="Zobrazit oznámení o aktualizaci"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Jestliže je vybráno, zobrazí se
oznámení o aktualizaci v hlavním zobrazení složky, když je k
dispozici nová verze tohoto rozšíření."
RL_SIMPLE="Jednoduché"
; RL_SLIDES="Slides"
RL_SOUTHERN="Jižní"
; RL_SPECIFIC="Specific"
RL_SPRING="Jaro"
RL_START="Start"
RL_START_PUBLISHING="Začátek zveřejnění"
RL_START_PUBLISHING_DESC="Vložte datum začátku zveřejnění
modulu"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Styl"
RL_SUMMER="Léto"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Záložky"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Syntaxe tagů"
RL_TAG_SYNTAX_DESC="Slovo použité v
tagu<br><br><strong>Poznámka:</strong>Změníte-li,
přestanou všechny existující tagy fungovat."
RL_TAGS="Tagy"
RL_TAGS_DESC="Vložte tagy, pro které má být přiřaden. Použijte
čárky pro oddělení jednotlivých tagů."
RL_TEMPLATES="Šablony"
RL_TEMPLATES_DESC="Vyberte šablony, ke kterým má být tento modul
přiřazen."
RL_TEXT="Text"
RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Pouze text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Toto
rozšíření potřebuje k tomu aby fungovalo správně %s !"
RL_TIME="Čas"
RL_TIME_FINISH_PUBLISHING_DESC="Vložte čas konce
zveřejnění.<br><br><strong>Formát:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Vložte čas začátku
zveřejnění.<br><br><strong>Formát:</strong>
23:59"
RL_TOGGLE="Přepnout"
RL_TOOLTIP="Tooltip"
RL_TOP="Nahoře"
RL_TOTAL="Celkem"
RL_TYPES="Typy"
RL_TYPES_DESC="Vyberte typy, které chcete přiřadit."
RL_UNSELECT_ALL="Odznačit vše"
RL_UNSELECTED="Nevybrané"
RL_UPDATE_TO="Aktualizace na verzi %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Přiřazení k URL"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="Použít vlastní kód"
RL_USE_CUSTOM_CODE_DESC="Je-li označeno, Tlačítko Editora vloží
definovaný vlastní kód namísto výchozího kódu."
RL_USE_SIMPLE_BUTTON="Použít jednoduché tlačítko"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Úrovně uživatelských skupin"
RL_USER_GROUPS="Uživatelské skupiny"
RL_USER_GROUPS_DESC="Vyberte skupiny uživatelů, pro které bude
přiřazeno."
RL_USER_IDS="Uživatelské ID"
RL_USER_IDS_DESC="Vložte uživatelská ID, ke kterým chcete tento
modul přiřadit. Pro oddělení použijte čárku."
RL_USERS="Uživatelé"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Náhled"
RL_VIEW_DESC="Vyberte, jaký bude předvolený náhled při
vytvoření nové položky."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Šířka"
RL_WINTER="Zima"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Kategorie ZOO"
PK�X�[�6�l��?regularlabs/language/cs-CZ/cs-CZ.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systém - Knihovna Regular Labs"
PLG_SYSTEM_REGULARLABS_DESC="Knihovna Regular Labs - podpůrný
zásuvný modul, který potřebují ke svému chodu všechna rozšíření
Regular Labs"
REGULAR_LABS_LIBRARY="Knihovna Regular Labs"
PK�X�[�7�v����;regularlabs/language/da-DK/da-DK.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - brugt af Regular
Labs udvidelserne"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs udvidelserne
behøver denne programudvidelse og vil ikke fungere uden
denne.<br><br>Regular Labs udvidelser
inkluderer:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Undlad at afinstallere eller
deaktivere denne programudvidelse, hvis du benytter andre Regular Labs
udvidelser."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Kode syntaks"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beskrivelse"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beskrivelse"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Adfærd"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Standard
indstillinger"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Medier"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
modul indstillinger"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Tekstbehandlerknap
indstillinger"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Sikkerheds
indstillinger"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Opsætning"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Design"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Kode syntaks"

RL_ACCESS_LEVELS="Adgangsniveau"
RL_ACCESS_LEVELS_DESC="Vælg hvilket adgangsniveau der skal
tilknyttes."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Installer"
RL_ACTION_UNINSTALL="Afinstaller"
RL_ACTION_UPDATE="Opdater"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Administrator"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avanceret"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLE"
RL_ALL_DESC="Vil blive publiceret hvis
<strong>ALLE</strong> af nedenstående tildelinger
matcher."
RL_ALL_RIGHTS_RESERVED="Alle rettigheder forbeholdt"
RL_ALSO_ON_CHILD_ITEMS="Også underliggende elmenter"
RL_ALSO_ON_CHILD_ITEMS_DESC="Også tildel til underliggende elementer
af de valgte elementer?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="De underordnede elementer
henviser til faktiske under-elementer i det ovenstående valg. De henviser
ikke til link på valgte sider."
RL_ANY="NOGLE"
RL_ANY_DESC="Vil blive publiceret hvis
<strong>NOGLE</strong> (en eller flere) af nedenstående
tildelinger er matchet.<br>Tildelingsgrupper hvor 'Ignore'
er valgt vil blive ignoreret."
RL_ARE_YOU_SURE="Er du sikker?"
RL_ARTICLE="Artikel"
RL_ARTICLE_AUTHORS="Forfattere"
RL_ARTICLE_AUTHORS_DESC="Vælg de forfattere der skal tilknyttes
til."
RL_ARTICLES="Artikler"
RL_ARTICLES_DESC="Vælg de artikler der skal tilknyttes til."
RL_AS_EXPORTED="Som eksporteret"
RL_ASSIGNMENTS="Tildelinger"
RL_ASSIGNMENTS_DESC="Ved at vælge bestemte tilknytninger kan du
begrænse hvor %s skal eller ikke skal udgives.<br>Du kan blot
undlade at vælge tilknytninger for at udgive på alle sider."
RL_AUSTRALIA="Australien"
RL_AUTHORS="Forfattere"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Adfærd"
RL_BEHAVIOUR="Adfærd"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Du har forhindret Bootstrap
Frameworket fra at blive sat igang. %s har brug for Bootstrap Frameworket
for at fungere korrekt. Sørg for at din skabelon eller andre udvidelser
henter de nødvendige instrukser der kræves for at erstatte den
nødvendige funktionalitet."
RL_BOTH="Begge"
RL_BOTTOM="Bund"
RL_BROWSERS="Browsere"
RL_BROWSERS_DESC="Vælg browsere der skal tildeles til. Husk på at
browser detektering aldrig er 100&#37; vandtæt. Brugere kan indstille
deres browser til at imitere andre browsere."
RL_BUTTON_ICON="Knap ikon"
RL_BUTTON_ICON_DESC="Vælg hvilket ikon der skal vises på
knappen."
RL_BUTTON_TEXT="Knap tekst"
RL_BUTTON_TEXT_DESC="Denne tekst vil vises i tekstbehandler
knappen."
RL_CACHE_TIME="Lagrings tid"
RL_CACHE_TIME_DESC="Den maksimale varighed i minutter for lagring af
en lager fil før det opdateres. Feltet efterlades tomt for at bruge de
globale indstillinger."
RL_CATEGORIES="Kategorier"
RL_CATEGORIES_DESC="Vælg kategorier, der skal tildeles til."
; RL_CATEGORY="Category"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="CSS-klasse"
RL_COLLAPSE="Sammenfold"
RL_COM="Komponent"
RL_COMBINE_ADMIN_MENU="Kombinér administrator menu"
RL_COMBINE_ADMIN_MENU_DESC="Vælg for at kombinere alle Regular Labs -
komponenter til en undermenu i administrator menuen."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenter"
RL_COMPONENTS_DESC="Vælg de komponenter der skal tildeles til."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Indhold"
RL_CONTENT_KEYWORDS="Indholds nøgleord"
RL_CONTENT_KEYWORDS_DESC="Indtast de nøgleord der skal tilknyttes fra
indholdet. Brug komma til at adskille nøgleordene."
RL_CONTINENTS="Kontinenter"
RL_CONTINENTS_DESC="Vælg hvilke kontinenter der skal
tilknyttes."
RL_COOKIECONFIRM="Cookie bekræftelse"
RL_COOKIECONFIRM_COOKIES="Cookies tilladt"
RL_COOKIECONFIRM_COOKIES_DESC="Valg om cookies er tilladt eller ikke
tilladt, baseret på konfigurationen af cookie bekræftelse (ved
Twentronix) og gæstens valg af at acceptere eller afslå cookies."
RL_COPY_OF="Kopi af %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Lande"
RL_COUNTRIES_DESC="Vælg hvilke lande der skal tilknyttes."
RL_CSS_CLASS="Klasse (CSS)"
RL_CSS_CLASS_DESC="Definér et css klassenavn til design
formål."
RL_CURRENT="Nuværende"
RL_CURRENT_DATE="Nuværende dato/tid:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Din nuværende version er %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Brugerdefineret kode"
RL_CUSTOM_CODE_DESC="Indtast koden som redigerings knappen skal
indsætte i indholdet (i stedet for standard koden)."
RL_CUSTOM_FIELD="Brugerdefineret felt"
RL_CUSTOM_FIELDS="Brugerdefinerede felter"
RL_DATE="Dato"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Gentagende"
RL_DATE_RECURRING_DESC="Vælg for at tilføje datoområde hvert år.
(Således at årgangen i området ignoreres)"
RL_DATE_TIME="Dato & tid"
RL_DATE_TIME_DESC="Dato og tid tildelinger bruger dato/tid for dine
servere, ikke den besøgendes system."
; RL_DATE_TO="To"
RL_DAYS="Dage i ugen"
RL_DAYS_DESC="Vælg dage i ugen, der skal tildeles til."
RL_DEFAULT_ORDERING="Standard sortering"
RL_DEFAULT_ORDERING_DESC="Indstil standard sorteringen for listens
elementer"
RL_DEFAULT_SETTINGS="Standard indstillinger"
RL_DEFAULTS="Standarder"
RL_DEVICE_DESKTOP="Computer"
RL_DEVICE_MOBILE="Mobil"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Enheder"
RL_DEVICES_DESC="Vælg hvilke enheder der skal tilknyttes. Husk at
enheds detektering ikke altid er 100&#37; pålidelig. Brugere kan få
deres enheder til at efterligne andre enheder."
RL_DIRECTION="Retning"
RL_DIRECTION_DESC="Vælg retningen"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Vælg i hvilke administrator
komponenter der IKKE må gøres brug af denne udvidelse."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Vælg i hvilke komponenter der IKKE
må gøres brug af denne udvidelse."
RL_DISABLE_ON_COMPONENTS="Deaktiver på komponenter"
RL_DISABLE_ON_COMPONENTS_DESC="Vælg i hvilke front dels komponenter
denne udvidelse IKKE skal aktiveres."
RL_DISPLAY_EDITOR_BUTTON="Vis redigerings knap"
RL_DISPLAY_EDITOR_BUTTON_DESC="Vælg for at vise en redigerings
knap."
RL_DISPLAY_LINK="Vis link"
RL_DISPLAY_LINK_DESC="Hvordan vil du have link vist?"
RL_DISPLAY_TOOLBAR_BUTTON="Vis værktøjslinje knap"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Vælg for at vise en knap i
værktøjslinjen."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Vis værktøjstip"
RL_DISPLAY_TOOLTIP_DESC="Vælg at vise et værktøjstip med ekstra
information når musen holdes over link/ikon."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Dette indsætter antallet af
forekomster.<br>Hvis din søgning bliver fundet, eksempelvis 4 gange,
så vide optællingen vise antallet fra 1 til 4 respektivt."
RL_DYNAMIC_TAG_DATE="Dato vha. %1$sphp strftime() format%2$s.
Eksempel: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Brug escape dynamiske værdier (tilføj
skråstreger til anførselstegn)"
RL_DYNAMIC_TAG_LOWERCASE="Konverter tekst indenfor koder til små
tegns casus."
RL_DYNAMIC_TAG_RANDOM="Et tilfældigt tal inden for det opgivne
interval"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="En sprog streng der skal oversættes til tekst
(baseret på det aktive sprog)"
RL_DYNAMIC_TAG_UPPERCASE="Konverter tekst indenfor koder til Store
Tegns Casus."
RL_DYNAMIC_TAG_USER_ID="Brugerens id-nummer"
RL_DYNAMIC_TAG_USER_NAME="Brugerens navn"
RL_DYNAMIC_TAG_USER_OTHER="Alle andre forhåndenværende data fra
brugeren eller den forbundne kontakt. F.eks: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Bruger koden placerer data fra
indloggede bruger. Hvis gæsten ikke er logget ind, vil koden blive
fjernet."
RL_DYNAMIC_TAG_USER_USERNAME="Brugerens login-navn"
RL_DYNAMIC_TAGS="Dynamiske tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktivér"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Aktivér i"
RL_ENABLE_IN_ADMIN="Aktivér i administrator"
RL_ENABLE_IN_ADMIN_DESC="Hvis aktiveret, vil plugin'et også
virke i administrator delen af webstedet.<br><br>Normalt er det
ikke nødvendigt. Og der kan opstå uventede ting, ss. nedsat hastighed i
administrator delen og plugin koder der afvikles i områder hvor de ikke
skal."
RL_ENABLE_IN_ARTICLES="Aktivér i artikler"
RL_ENABLE_IN_COMPONENTS="Aktivér i komponenter"
RL_ENABLE_IN_DESC="Vælg om der skal aktiveres i front delen,
administrator delen eller begge."
RL_ENABLE_IN_FRONTEND="Aktiver i front del"
RL_ENABLE_IN_FRONTEND_DESC="Hvis aktiveret vil det også være
tilgængelig i front delen."
RL_ENABLE_OTHER_AREAS="Aktiver andre områder"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Ekskludér"
RL_EXPAND="Udvid"
RL_EXPORT="Eksport"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Ekstra parametre"
RL_EXTRA_PARAMETERS_DESC="Indtast ekstra parametre der ikke kan
vælges med de forhåndenværende indstillinger"
RL_FALL="Efterår / Forår"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Feltnavn"
RL_FIELD_PARAM_MULTIPLE="Flere"
RL_FIELD_PARAM_MULTIPLE_DESC="Tillad valg af flere værdier."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Feltværdi"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Nødvendige %s filer ikke fundet!"
RL_FILTERS="Filtre"
RL_FINISH_PUBLISHING="Afslut udgivelse"
RL_FINISH_PUBLISHING_DESC="Indtast dato for afslutning af
udgivelse"
RL_FIX_HTML="Ret HTML"
RL_FIX_HTML_DESC="Vælg for at lade udvidelsen rette de html struktur
fejl den finder. Dette er ofte nødvendigt for at håndtere omgivende html
koder.<br><br>Slå kun dette fra hvis du har problemer med
det."
RL_FLEXICONTENT="FLEXI indhold"
RL_FOR_MORE_GO_PRO="Du kan få flere funktioner ved at købe PRO
versionen."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="NoNumber Framework ser ikke ud til at
blive brugt af andre udvidelser du har installeret. Det er sandsynligvis
sikkert at deaktivere og afinstallere dette plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Galleri"
RL_GEO="Geo Lokalisering"
RL_GEO_DESC="Geo Lokalisering er ikke altid 100&#37; akkurat. Geo
Lokalisering er baseret på den gæstens IP adresse. Ikke alle IP adresser
er faste eller kendte."
RL_GEO_GEOIP_COPYRIGHT_DESC="Dette produkt indeholder GeoLite2 data
skabt af MaxMind, tilgængeligt fra [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Regular Labs GeoIP bibliotek er ikke
installeret. Du skal [[%1:link start%]]installere Regular Labs GeoIP
bibliotek[[%2:link end%]] for at være istand til at bruge Geo
Lokaliserings tilknytninger."
RL_GO_PRO="Køb Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Overskrift 1"
RL_HEADING_2="Overskrift 2"
RL_HEADING_3="Overskrift 3"
RL_HEADING_4="Overskrift 4"
RL_HEADING_5="Overskrift 5"
RL_HEADING_6="Overskrift 6"
RL_HEADING_ACCESS_ASC="Adgang stigende"
RL_HEADING_ACCESS_DESC="Adgang faldende"
RL_HEADING_CATEGORY_ASC="Kategori stigende"
RL_HEADING_CATEGORY_DESC="Kategori faldende"
RL_HEADING_CLIENTID_ASC="Lokation stigende"
RL_HEADING_CLIENTID_DESC="Lokation faldende"
RL_HEADING_COLOR_ASC="Farve stigende"
RL_HEADING_COLOR_DESC="Farve faldende"
RL_HEADING_DEFAULT_ASC="Standard stigende"
RL_HEADING_DEFAULT_DESC="Standard faldende"
RL_HEADING_DESCRIPTION_ASC="Beskrivelse stigende"
RL_HEADING_DESCRIPTION_DESC="Beskrivelse faldende"
RL_HEADING_ID_ASC="ID stigende"
RL_HEADING_ID_DESC="ID faldende"
RL_HEADING_LANGUAGE_ASC="Sprog stigende"
RL_HEADING_LANGUAGE_DESC="Sprog faldende"
RL_HEADING_ORDERING_ASC="Rækkefølge stigende"
RL_HEADING_ORDERING_DESC="Rækkefølge faldende"
RL_HEADING_PAGES_ASC="Menu elementer stigende"
RL_HEADING_PAGES_DESC="Menu elementer faldende"
RL_HEADING_POSITION_ASC="Position stigende"
RL_HEADING_POSITION_DESC="Position faldende"
RL_HEADING_STATUS_ASC="Status stigende"
RL_HEADING_STATUS_DESC="Status faldende"
RL_HEADING_STYLE_ASC="Design stigende"
RL_HEADING_STYLE_DESC="Design faldende"
RL_HEADING_TEMPLATE_ASC="Skabelon stigende"
RL_HEADING_TEMPLATE_DESC="Skabelon faldende"
RL_HEADING_TITLE_ASC="Titel stigende"
RL_HEADING_TITLE_DESC="Titel faldende"
RL_HEADING_TYPE_ASC="Type stigende"
RL_HEADING_TYPE_DESC="Type faldende"
RL_HEIGHT="Højde"
RL_HEMISPHERE="Halvkugle"
RL_HEMISPHERE_DESC="Vælg den halvkugle hvor dit website befinder
sig"
RL_HIGH="Høj"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Gå til forsiden"
RL_HOME_PAGE_DESC="Ulig valg af startside (standard) element via menu
elementerne, vil dette kun sammenligne den ægte hjemmeside, ikke noget URL
som har samme element-id som startmenu elementet.<br><br>Dette
vil muligvis ikke virke i alle 3. parts SEF udvidelser."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Kun ikon"
RL_IGNORE="Ignorer"
RL_IMAGE="Billede"
RL_IMAGE_ALT="Billed alternativ tekst"
RL_IMAGE_ALT_DESC="Alternativ tekst værdi for billedet."
RL_IMAGE_ATTRIBUTES="Billed egenskaber"
RL_IMAGE_ATTRIBUTES_DESC="Ekstra egenskaber for billedet, ss.
alt=&quot;Mit billede&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Import elementer"
RL_INCLUDE="Inkludér"
RL_INCLUDE_CHILD_ITEMS="Medtag underelementer"
RL_INCLUDE_CHILD_ITEMS_DESC="Skal under-elementerne af de valgte
elementer medtages?"
RL_INCLUDE_NO_ITEMID="Inkludér ikke element-id"
RL_INCLUDE_NO_ITEMID_DESC="Tildel også selvom menu element-id ikke er
med i URL'en?"
RL_INITIALISE_EVENT="Initialiser ved Event"
RL_INITIALISE_EVENT_DESC="indstil det interne Joomla! event for
hvilket plugin'et skal initialiseres. Det anbefales at du kun ændrer
dette vis du har problemer med at plugin'et virker."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Indsæt"
RL_INSERT_DATE_NAME="Indsæt dato / navn"
RL_IP_RANGES="IP adresser / områder"
RL_IP_RANGES_DESC="En komma og/eller vognretur separeret liste af IP
adresser og IP områder.
F.eks:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP adresser"
RL_IS_FREE_VERSION="Dette er en gratis version af %s."
RL_ITEM="Element"
RL_ITEM_IDS="Element ID'er"
RL_ITEM_IDS_DESC="Indtast elementets ID'ere der skal tilknyttes.
Brug kommaer til at separere ID'erne."
RL_ITEMS="Elementer"
RL_ITEMS_DESC="Vælg elementerne der skal tilknyttes."
RL_JCONTENT="Joomla! Indhold"
RL_JED_REVIEW="Synes du om denne udvidelse? [[%1:start link%]]Efterlad
en anmeldelse på JED'en[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Du kører en Joomla! 2.5 version af
%1$s på Joomla! 3. Vær venlig at re-installere %1$s for at rette
problemet."
RL_JQUERY_DISABLED="Du har deaktiveret jQuery scriptet. %s har brug
for jQuery for at fungere korrekt. Sørg for, at din skabelon eller andre
udvidelser indlæser de nødvendige scripter for at erstatte den
nødvendige funktionalitet."
RL_K2="K2"
RL_K2_CATEGORIES="K2 kategorier"
RL_LANGUAGE="Sprog"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Sprog"
RL_LANGUAGES_DESC="Vælg sprogene, der skal tildeles til."
RL_LAYOUT="Layout"
RL_LAYOUT_DESC="Vælg det layout der skal bruges. Du kan tilsidesætte
dette layout i komponenten eller skabelonen."
; RL_LESS_THAN="Less than"
RL_LEVELS="Niveauer"
RL_LEVELS_DESC="Vælg de niveauer der skal tilknyttes."
RL_LIB="Bibliotek"
RL_LINK_TEXT="Link tekst"
RL_LINK_TEXT_DESC="Teksten som vises som link."
RL_LIST="Liste"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Hent Bootstrap Frameworket"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Deaktivér for ikke at initialisere
Bootstrap Frameworket."
RL_LOAD_JQUERY="Hent jQuery scriptet"
RL_LOAD_JQUERY_DESC="Vælg for at hente kerne jQuery scriptet. Du kan
deaktivere dette hvis du oplever konflikter pga. din skabelon eller
udvidelser henter deres egen version af jQuery."
RL_LOAD_MOOTOOLS="Indlæs kerne MooTools"
RL_LOAD_MOOTOOLS_DESC="Vælg at hente kerne MooTools scriptet. Du kan
deaktivere dette, hvis du oplever konflikter pga. din skabelon eller
udvidelser henter deres egen version af MooTools."
RL_LOAD_STYLESHEET="Hent stilark"
RL_LOAD_STYLESHEET_DESC="Vælg for at hente udvidelsens stilark. Du
kan deaktivere dette hvis du placerer alle dine egne stilarter i et andet
stilark, ss. skabelon stilarket."
RL_LOW="Lav"
RL_LTR="Venstre mod højre"
RL_MATCH_ALL="Sammenlign alle"
RL_MATCH_ALL_DESC="Vælg kun at lade tilknytningen bestå hvis alle
valgte elementer er sammenlignede."
RL_MATCHING_METHOD="Matchende metode"
RL_MATCHING_METHOD_DESC="Skal alle eller en af tilknytningerne
sammenlignes?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maksimum liste tælling"
RL_MAX_LIST_COUNT_DESC="Det maksimale antal af elementer der skal
vises i multi-valgs lister. Hvis det totale antal af elementer er højere,
vil udvalgs feltet blive vist som et tekstfelt.<br><br>Du kan
indstille denne værdi lavere hvis du oplever langvarige side-hentninger
pga. et højt antal elementer i lister."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maksimér"
RL_MEDIA_VERSIONING="Brug medie versionering"
RL_MEDIA_VERSIONING_DESC="Vælg for at tilføje udvidelses
versionsnumre til slutningen af medie (js/css) url'er, for at få
browsere til at tvangs-hente den korrekte fil."
RL_MEDIUM="Medium"
RL_MENU_ITEMS="Menu elementer"
RL_MENU_ITEMS_DESC="Vælg det menu element, der skal tildeles
til."
RL_META_KEYWORDS="Metanøgleord"
RL_META_KEYWORDS_DESC="Indtast nøgleord der skal tilknyttes fra meta
nøgleordene. Brug komma til at separere nøgleordene."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimér"
RL_MOBILE_BROWSERS="Mobil browsere"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Måneder"
RL_MONTHS_DESC="Vælg måneder, der skal tilknyttes."
RL_MORE_INFO="Mere info"
RL_MY_STRING="Min streng!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d indlæg opdateret."
RL_N_ITEMS_UPDATED_1="Et indlæg er blevet opdateret"
RL_NEW_CATEGORY="Opret en ny kategori"
RL_NEW_CATEGORY_ENTER="Indtast et nyt kategorinavn"
RL_NEW_VERSION_AVAILABLE="En ny version er tilgængelig"
RL_NEW_VERSION_OF_AVAILABLE="En ny version af %s er tilgængelig"
RL_NO_ICON="Intet ikon"
RL_NO_ITEMS_FOUND="Ingen indlæg er fundet."
RL_NORMAL="Normal"
RL_NORTHERN="Nordlige"
RL_NOT="Ikke"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Kun"
RL_ONLY_AVAILABLE_IN_JOOMLA="Kun tilgængelig i Joomla! %s eller
højere."
RL_ONLY_AVAILABLE_IN_PRO="<em>Kun tilgængelig i PRO
versionen!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Kun tilgængelig i PRO
versionen)"
RL_ONLY_VISIBLE_TO_ADMIN="Denne besked vil kun vises for (Super)
Administratorer."
RL_OPTION_SELECT="- Vælg -"
RL_OPTION_SELECT_CLIENT="- Vælg klient -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operativsystemer"
RL_OS_DESC="Vælg hvilke operativsystemer der skal tilknyttes. Husk at
operativsystem sporing ikke altid er 100&#37; pålidelig. Brugere kan
indstille deres browsere til at angive andre operativsystemer."
; RL_OTHER="Other"
RL_OTHER_AREAS="Andre områder"
RL_OTHER_OPTIONS="Andre egenskaber"
RL_OTHER_SETTINGS="Andre indstillinger"
RL_OTHERS="Andre"
RL_PAGE_TYPES="Sidetyper"
RL_PAGE_TYPES_DESC="Vælg på hvilken sidetype tildelingen skal være
aktiv."
RL_PHP="Brugerdefineret PHP"
RL_PHP_DESC="Indtast en stump PHP kode som skal evalueres. Koden skal
returnere enten true eller false.<br><br>For
eksempel:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Placer HTML kommentarer"
RL_PLACE_HTML_COMMENTS_DESC="Som standard placeres HTML kommentarer
rundt om uddata fra denne udvidelse.<br><br>Disse kommentarer
kan hjælpe dig med fejlfinding, når du ikke får det resultat du
forventer.<br><br>Slå denne valgmulighed fra, hvis du
foretrækker ikke at have disse kommentarer i din HTML."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Tekstbehandlerknap plugin"
RL_PLG_FIELDS="Felt plugin"
RL_PLG_SYSTEM="System plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postnumre"
RL_POSTALCODES_DESC="En komma separeret liste af postnumre (12345)
eller postnummer områder (12300-12500).<br>Dette kan kun bruges til
[[%1:start link%]]et begrænset antal lande og IP adresser[[%2:end
link%]]."
RL_POWERED_BY="Drevet af %s"
RL_PRODUCTS="Produkter"
RL_PUBLISHED_DESC="Du kan benytte dette til (midlertidigt) at
deaktivere dette element."
RL_PUBLISHING_ASSIGNMENTS="Udgivelses tilknytninger"
RL_PUBLISHING_SETTINGS="Udgiv indlæg"
RL_RANDOM="Tilfældig"
RL_REDSHOP="RedShop"
RL_REGEX="Alm. udtryk"
RL_REGIONS="Regioner / Landsdele"
RL_REGIONS_DESC="Vælg regioner / landsdele der skal tilknyttes"
RL_REGULAR_EXPRESSIONS="Brug alm. udtryk"
RL_REGULAR_EXPRESSIONS_DESC="Vælg at behandle værdierne som alm.
udtryk"
RL_REMOVE_IN_DISABLED_COMPONENTS="Fjern fra deaktiverede
komponenter"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Hvis valgt, vil plugin
syntaksen fjernes fra komponenten. Hvis ikke, vil den originale plugin
syntaks forblive intakt."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Beskær"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Mappe"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Højre mod venstre"
RL_SAVE_CONFIG="Egenskaberne vil ikke længere dukke op ved side
hentning efter de er gemt."
RL_SEASONS="Årstider"
RL_SEASONS_DESC="Vælg årstider der skal tildeles til."
RL_SELECT="Vælg"
RL_SELECT_A_CATEGORY="Vælg kategori"
RL_SELECT_ALL="Vælg alle"
RL_SELECT_AN_ARTICLE="Vælg en artikel"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Markeret"
RL_SELECTION="Markering"
RL_SELECTION_DESC="Vælg om valget af tilknytning skal medtages eller
udelades.<br><br><strong>Medtag</strong><br>Udgiv
kun
valget.<br><br><strong>Udeluk</strong><br>Udgiv
overalt undtagen valget."
RL_SETTINGS_ADMIN_MODULE="Administrator modul egenskaber"
RL_SETTINGS_EDITOR_BUTTON="Tekstbehandler knap egenskaber"
RL_SETTINGS_SECURITY="Sikkerheds egenskaber"
RL_SHOW_ASSIGNMENTS="Vis tilknytninger"
RL_SHOW_ASSIGNMENTS_DESC="Vælg kun at vise de valgte tilknytninger.
Du kan bruge dette til at få en ren oversigt over de aktive
tilknytninger."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Alle tilknytningstyper der ikke er
valgt er nu skjulte."
RL_SHOW_COPYRIGHT="Vis ophavsret"
RL_SHOW_COPYRIGHT_DESC="Hvis valgt, vil ekstra ophavsrets oplysninger
blive vist i administrator delen. Regular Labs udvidelser viser aldrig
ophavsrets oplysninger eller tilbageførende links på front delen."
RL_SHOW_HELP_MENU="Vis hjælpemenu element"
RL_SHOW_HELP_MENU_DESC="Vælg for at vise et link til Regular Labs
websted i administrator hjælpemenuen."
RL_SHOW_ICON="Vis knap ikon"
RL_SHOW_ICON_DESC="Hvis valgt, vil ikonet vises i
tekstbehandlerknappen."
RL_SHOW_UPDATE_NOTIFICATION="Vis opdaterings noter"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Hvis valgt, vil en opdaterings note
blive vist i hovedkomponenten hver gang der er en ny version tilgængelig
for denne udvidelse."
RL_SIMPLE="Simpel"
RL_SLIDES="Dele"
RL_SOUTHERN="Sydlige"
; RL_SPECIFIC="Specific"
RL_SPRING="Forår"
RL_START="Start"
RL_START_PUBLISHING="Start udgivelse"
RL_START_PUBLISHING_DESC="Indtast dato for udgivelses start"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Fjern omgivende koder"
RL_STRIP_SURROUNDING_TAGS_DESC="Vælg altid at fjerne html koder (div,
p, span) der omgiver plugin koden. Hvis slukket, vil plugin'et prøve
på at fjerne koder der ødelægger html strukturen (ss. p indeni p
koder)."
RL_STYLING="Design"
RL_SUMMER="Sommer"
RL_TABLE_NOT_FOUND="Nødvendig %s database tabel ikke fundet!"
RL_TABS="Tabs"
RL_TAG_CHARACTERS="Kode tegn"
RL_TAG_CHARACTERS_DESC="De tegn der omgiver kode
syntaksen.<br><br><strong>Bemærk:</strong> Hvis du
ændrer dette, vil eksisterende koder ikke virke længere."
RL_TAG_SYNTAX="Kode syntaks"
RL_TAG_SYNTAX_DESC="Ordet som skal bruges i
koderne.<br><br><strong>Bemærk:</strong> Hvis du
ændrer dette, vil eksisterende koder ikke virke længere."
RL_TAGS="Mærkater"
RL_TAGS_DESC="Indtast de mærkater der skal tilknyttes. Brug komma til
at separere mærkaterne."
RL_TEMPLATES="Skabeloner"
RL_TEMPLATES_DESC="Vælg skabeloner, der skal tilknyttes."
RL_TEXT="Tekst"
RL_TEXT_HTML="Tekst (HTML)"
RL_TEXT_ONLY="Kun tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Denne
udvidelse skal bruge %s for at virke korrekt!"
RL_TIME="Tid"
RL_TIME_FINISH_PUBLISHING_DESC="Indtast sluttidspunkt for
udgivelsen.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Indtast starttidspunkt for
udgivelsen.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Skift"
RL_TOOLTIP="Værktøjsvink"
RL_TOP="Top"
RL_TOTAL="Total"
RL_TYPES="Typer"
RL_TYPES_DESC="Vælg typer der skal tilknyttes."
RL_UNSELECT_ALL="Afmarkér alle"
RL_UNSELECTED="Umarkerede"
RL_UPDATE_TO="Opdatér til version %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL sammenfald"
RL_URL_PARTS_DESC="Indtast (del af) URL'er som skal
matches..<br>Brug en ny linie for hvert match."
RL_URL_PARTS_REGEX="Url dele vil blive matchet vha. regulære udtryk.
<strong>Så sørg for, at der benyttes gyldig regex
syntaks.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="For kategori & artikel (element)
tilknytninger, se ovennævnte Joomla! indholds sektion."
RL_USE_CUSTOM_CODE="Brug brugerdefineret kode"
RL_USE_CUSTOM_CODE_DESC="Hvis valgt, vil redigerings knappen i stedet
indsætte den givne brugerdefinerede kode."
RL_USE_SIMPLE_BUTTON="Brug simpel knap"
RL_USE_SIMPLE_BUTTON_DESC="Vælg for at bruge en simpel indsætnings
knap, der nøjes med at indsætte eksempel syntaks i redigeringen."
RL_USER_GROUP_LEVELS="Brugergruppe niveauer"
RL_USER_GROUPS="Brugergruppe"
RL_USER_GROUPS_DESC="Vælg brugergruppe, der skal tildeles til."
RL_USER_IDS="Bruger ID'er"
RL_USER_IDS_DESC="Indtast de bruger id'er, der skal tildeles til.
Brug komma til at adskille id'er."
RL_USERS="Brugere"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Visning"
RL_VIEW_DESC="Vælg hvilken standard visning der skal bruges, når der
oprettes en ny nyt emne."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Bredde"
RL_WINTER="Vinter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorier"
PK�X�[�E��bb?regularlabs/language/da-DK/da-DK.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - brugt af Regular
Labs udvidelserne"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[9��O�O�;regularlabs/language/de-DE/de-DE.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Bibliothek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Bibliothek - benutzt von
Regular Labs Erweiterungen"
REGULAR_LABS_LIBRARY="Regular Labs Bibliothek"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Die Regular Labs
Erweiterungen benötigen dieses Plugin, um zu
funktionieren.<br><br>Regular Labs Erweiterungen
beinhaltet:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Falls Du eine Regular Labs
Erweiterung nutzt, deinstalliere oder deaktiviere dieses Plugin
keinesfalls!"

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Protokoll der
Benutzeraktionen"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag-Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beschreibung"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beschreibung"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Verhalten"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Standardeinstellungen"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Medien"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Moduloptionen"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Optionen"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Sicherheits-Einstellungen"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Einstellungen"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag-Syntax"

RL_ACCESS_LEVELS="Zugangsebenen"
RL_ACCESS_LEVELS_DESC="Zugangsebenen auswählen, die zugewiesen werden
sollen."
RL_ACTION_CHANGE_DEFAULT="Standard ändern"
RL_ACTION_CHANGE_STATE="Ändere Veröffentlichungs-Status"
RL_ACTION_CREATE="Erstelle"
RL_ACTION_DELETE="Lösche"
RL_ACTION_INSTALL="Installieren"
RL_ACTION_UNINSTALL="Deinstallieren"
RL_ACTION_UPDATE="Aktualisieren"
RL_ACTIONLOG_EVENTS="Zu protokollierende Ereignisse"
RL_ACTIONLOG_EVENTS_DESC="Wählen Sie die Aktionen aus, die in das
Benutzeraktionsprotokoll aufgenommen werden sollen."
RL_ADMIN="Administrator"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Erweitert"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLE"
RL_ALL_DESC="Wird publiziert wenn <strong>alle</strong>
der unten stehenden Zuordnungen zutreffen."
RL_ALL_RIGHTS_RESERVED="Alle Rechte vorbehalten"
RL_ALSO_ON_CHILD_ITEMS="Auch für Untermenüpunkte"
RL_ALSO_ON_CHILD_ITEMS_DESC="Zuordnung auch auf die Untermenüpunkte
des gewählten Punktes?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Die untergeordneten Elemente
beziehen sich auf die tatsächlichen Unterpositionen in der obigen Auswahl.
Sie beziehen sich nicht auf Links auf ausgewählten Seiten."
RL_ANY="irgendein"
RL_ANY_DESC="Wird veröffentlicht wenn
<strong>irgendeine</strong> (eine oderer mehrere) der unten
stehenden Zuordnungen zutreffen.<br>Zuordnungsgruppen in denen
'Ignorieren' ausgewählt ist, werden ignoriert."
RL_ARE_YOU_SURE="Bist du dir sicher?"
RL_ARTICLE="Beitrag"
RL_ARTICLE_AUTHORS="Autoren"
RL_ARTICLE_AUTHORS_DESC="Autoren auswählen, die zugewiesen werden
sollen"
RL_ARTICLES="Beiträge"
RL_ARTICLES_DESC="Beiträge auswählen, die zugewiesen werden
sollen"
RL_AS_EXPORTED="wie exportiert"
RL_ASSIGNMENTS="Zuordnungen"
RL_ASSIGNMENTS_DESC="Durch die Auswahl der jeweiligen Zuweisungen
können Sie einschränken wo dies/e/r %s veröffentlicht werden soll oder
nicht.<br>Um es auf allen Seiten zu veröffentlichen, weisen Sie
einfach nichts zu."
RL_AUSTRALIA="Australien"
RL_AUTHORS="Autoren"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Verhalten"
RL_BEHAVIOUR="Verhalten"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Sie haben das Bootstrap-Framework
deaktiviert. %s benötigt das Bootstrap-Framework um zu funktionieren.
Stellen Sie sicher, dass Ihr Template oder andere Erweiterungen die
notwendigen Skripte laden um die erforderliche Funktionaliät zu
ersetzen."
RL_BOTH="Beide"
RL_BOTTOM="Unten"
RL_BROWSERS="Browser"
RL_BROWSERS_DESC="Wählen Sie die zuzuordnenden Browser aus. Denken
Sie daran, dass Browser-Erkennung nicht immer 100&#37; genau ist.
Benutzer können ihren Browser so einstellen, das sie andere Browser zu
imitieren"
RL_BUTTON_ICON="Button-Icon"
RL_BUTTON_ICON_DESC="Icon auswählen, das im Button angezeigt werden
soll."
RL_BUTTON_TEXT="Text für Button"
RL_BUTTON_TEXT_DESC="Dieser Text wird im Editor Button
angezeigt."
RL_CACHE_TIME="Cache-Zeit"
RL_CACHE_TIME_DESC="Die Höchstzeit in Minuten, die eine
Zwischenspeicherungsdatei gespeichert werden soll, bevor sie erneuert wird.
Leer lassen um die globalen Einstellungen zu verwenden."
RL_CATEGORIES="Kategorien"
RL_CATEGORIES_DESC="Kategorien auswählen, die zugewiesen werden
sollen."
; RL_CATEGORY="Category"
RL_CHANGELOG="Änderungsprotokoll (engl.)"
RL_CLASSNAME="CSS-Klasse"
RL_COLLAPSE="Einklappen"
RL_COM="Komponente"
RL_COMBINE_ADMIN_MENU="Admin-Menü zusammenfassen"
RL_COMBINE_ADMIN_MENU_DESC="Alle Regular Labs-Komponenten in einem
Untermenü des Admin-Menüs anzeigen."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenten"
RL_COMPONENTS_DESC="Komponenten auswählen, die zugewiesen werden
sollen."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Inhalt"
RL_CONTENT_KEYWORDS="Inhaltsschlüsselwörter"
RL_CONTENT_KEYWORDS_DESC="Schlüsselwörter im Inhalt, durch Komma
getrennt, zur Zuweisung eingeben."
RL_CONTINENTS="Kontinente"
RL_CONTINENTS_DESC="Kontinente auswählen, die zugewiesen werden
sollen."
RL_COOKIECONFIRM="Cookie-Bestätigung"
RL_COOKIECONFIRM_COOKIES="Cookies erlaubt"
RL_COOKIECONFIRM_COOKIES_DESC="Zuweisen, ob Cookies erlaubt oder
verboten sein sollen, basierend auf der Konfiguration von Cookie Confirm
(von Twentronix) und der Entscheidung des Besuchers Cookies zu akzeptieren
oder zu verweigern."
RL_COPY_OF="Kopie von %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Länder"
RL_COUNTRIES_DESC="Länder auswählen, die zugewiesen werden
sollen."
RL_CSS_CLASS="Klasse (CSS)"
RL_CSS_CLASS_DESC="Eine CSS-Klasse für Designzwecke definieren."
RL_CURRENT="Aktuell"
RL_CURRENT_DATE="Aktuelles Datum/Zeit:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Die aktuelle Version ist %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Benutzerdefinierter Code"
RL_CUSTOM_CODE_DESC="Geben Sie den Code ein, den der Editor-Button in
den Inhalt einfügen soll (anstelle des Standardcodes)."
RL_CUSTOM_FIELD="Benutzerdefiniertes Feld"
RL_CUSTOM_FIELDS="Benutzerdefinierte Felder"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Wiederholung"
RL_DATE_RECURRING_DESC="Gewählter Zeitraum soll jährlich wiederholt
werden (so dass das gewählte Jahr im Datum ignoriert wird)."
RL_DATE_TIME="Datum & Uhrzeit"
RL_DATE_TIME_DESC="Die gewählte Datums- bzw. Uhrzeitangabe entspricht
der Serverzeit und nicht der des Besuchersystems."
; RL_DATE_TO="To"
RL_DAYS="Wochentage"
RL_DAYS_DESC="Wochentage auswählen, die zugewiesen werden
sollen."
RL_DEFAULT_ORDERING="Standard-Sortierung"
RL_DEFAULT_ORDERING_DESC="Bestimmen Sie die Standard-Sortierung der
Listeneinträge."
RL_DEFAULT_SETTINGS="Standardeinstellungen"
RL_DEFAULTS="Standard"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobiltelefon"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Geräte"
RL_DEVICES_DESC="Wählen Sie die zuzuordnenden Geräte aus. Denken Sie
daran, dass Geräteerkennung nicht immer 100&#37; genau ist. Benutzer
können ihr Gerät so einstellen, dass sie andere Geräte imitieren"
RL_DIRECTION="Richtung"
RL_DIRECTION_DESC="Richtung auswählen"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Auswählen, in welchen
Administrator-Komponenten diese Erweiterung NICHT aktiviert werden
soll."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Auswählen, in welchen Komponenten
diese Erweiterung NICHT aktiviert werden soll."
RL_DISABLE_ON_COMPONENTS="Für Komponenten abschalten"
RL_DISABLE_ON_COMPONENTS_DESC="Wählen Sie in welchen
Frontend-Komponenten diese Erweiterung NICHT aktiviert werden soll."
RL_DISPLAY_EDITOR_BUTTON="Editor-Button anzeigen"
RL_DISPLAY_EDITOR_BUTTON_DESC="Auwählen, um den Editor-Button
anzeigen zu lassen."
RL_DISPLAY_LINK="Link anzeigen"
RL_DISPLAY_LINK_DESC="Wie soll der Link dargestellt werden?"
RL_DISPLAY_TOOLBAR_BUTTON="Toolbar-Button anzeigen"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Auswählen, um den Toolbar-Button
anzeigen zu lassen."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Tooltip anzeigen"
RL_DISPLAY_TOOLTIP_DESC="Wenn ausgewählt, wird ein Tooltip mit
zusätzlichen Informationen angezeigt, wenn man mit der Maus über den Link
bzw. das Icon fährt."
RL_DYNAMIC_TAG_ARTICLE_ID="Die ID-Nummer des aktuellen Artikels."
RL_DYNAMIC_TAG_ARTICLE_OTHER="Alle anderen verfügbaren Daten aus dem
aktuellen Artikel."
RL_DYNAMIC_TAG_ARTICLE_TITLE="Der Titel des aktuellen Artikels."
RL_DYNAMIC_TAG_COUNTER="Fügt die Nummer des Auftretens
ein.<br>Wenn die Suche z. B. 4 Treffer liefert, fügt count die
Zahlen 1 bis 4 an den entsprechenden Stellen ein."
RL_DYNAMIC_TAG_DATE="Datum im %1$sPHP strftime() Format%2$s. Beispiel:
%3$s"
RL_DYNAMIC_TAG_ESCAPE="Verwenden, um dynamische Werte zu escapen
(füge Schrägstriche vor Anführungszeichen hinzu)"
RL_DYNAMIC_TAG_LOWERCASE="Text innerhalb der Tags in Kleinbuchstaben
umwandeln."
RL_DYNAMIC_TAG_RANDOM="Eine Zufallszahl im angegebenen Bereich"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Ein Sprach-String zur Übersetzung in Text
(basierend auf der aktiven Sprache)"
RL_DYNAMIC_TAG_UPPERCASE="Text innerhalb der Tags in Großbuchstaben
umwandeln."
RL_DYNAMIC_TAG_USER_ID="ID des Benutzers"
RL_DYNAMIC_TAG_USER_NAME="(Voller) Name des Benutzers"
RL_DYNAMIC_TAG_USER_OTHER="Andere verfügbare Daten des Nutzers oder
des verknüpften Kontakts. Beispiel: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Der 'user' Tag fügt die Daten
des eingeloggten Benutzers ein. Wenn der Besucher nicht eingeloggt ist,
wird der Tag entfernt."
RL_DYNAMIC_TAG_USER_USERNAME="Login-Name (Benutzername) des
Benutzers"
RL_DYNAMIC_TAGS="Dynamische Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktivieren"
RL_ENABLE_ACTIONLOG="Benutzer-Aktionen aufzeichnen"
RL_ENABLE_ACTIONLOG_DESC="Wählen Sie diese Option, um
Benutzeraktionen zu speichern. Diese Aktionen sind im Modul User Actions
Log sichtbar."
RL_ENABLE_IN="Aktivieren in"
RL_ENABLE_IN_ADMIN="Aktivieren im Administrator-Bereich"
RL_ENABLE_IN_ADMIN_DESC="Wenn aktiviert, wirkt das Plugin auch auf der
Administrator-Seite der Website.<br><br>Normalerweise werden
Sie dies nicht benötigen. Und es kann zu unerwünschten Effekten führen,
z.B. der Verlangsamung des Admin-Bereichs oder dass die Plugin-Tags in
Bereichen angewandt werden, in denen Sie dies nicht wünschen."
RL_ENABLE_IN_ARTICLES="In Beiträgen aktivieren"
RL_ENABLE_IN_COMPONENTS="In Komponenten aktivieren"
RL_ENABLE_IN_DESC="Auswählen, ob im Frontend, im
Administrator-Bereich oder in beden aktiviert werden soll."
RL_ENABLE_IN_FRONTEND="Im Frontend aktivieren"
RL_ENABLE_IN_FRONTEND_DESC="Wenn aktiviert, wird es auch im Frontend
verfügbar sein."
RL_ENABLE_OTHER_AREAS="In anderen Bereichen aktivieren"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Ausschließen"
RL_EXPAND="Erweitern"
RL_EXPORT="Export"
RL_EXPORT_FORMAT="Exportformat"
RL_EXPORT_FORMAT_DESC="Wählen Sie das Dateiformat für die
Exportdateien."
RL_EXTRA_PARAMETERS="Weitere Parameter"
RL_EXTRA_PARAMETERS_DESC="Geben Sie weitere Parameter ein, die mit den
verfügbaren Einstellungen nicht gesetzt werden können."
RL_FALL="Herbst"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
RL_FEATURES="Eigenschaften"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Feldname"
RL_FIELD_PARAM_MULTIPLE="Mehrfach"
RL_FIELD_PARAM_MULTIPLE_DESC="Auswahl mehrerer Werte erlauben."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Feldwert"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Erforderliche %s-Dateien nicht gefunden!"
RL_FILTERS="Filter"
RL_FINISH_PUBLISHING="Veröffentlichung bis"
RL_FINISH_PUBLISHING_DESC="Ein Enddatum für die Veröffentlichung
eingeben"
RL_FIX_HTML="HTML reparieren"
RL_FIX_HTML_DESC="Der Erweiterung erlauben, alle gefundenen
HTML-Strukturfehler zu korrigieren. Dies ist oft notwendig, um mit
umgebenden HTML-Tags umzugehen.<br><br>Schalten Sie dies nur
aus, wenn Sie Probleme damit feststellen."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Für weitere Funktionen können Sie die
PRO-Version erwerben."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Die NoNumber Framework scheint nicht von
anderen Erweiterungen genutzt zu werden, die Sie installiert haben. Es ist
wahrscheinlich sicher, das dieses Plugin deaktiviert oder deinstalliert
werden kann."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Galerie"
RL_GEO="Geolokalisierung"
RL_GEO_DESC="Geolokalisierung ist nicht immer 100&-37; genau. Die
Geolokalisierung richtet sich nach der IP-Adresse des Besuchers. Nicht alle
IP-Adressen sind fest oder bekannt."
RL_GEO_GEOIP_COPYRIGHT_DESC="Dieses Produkt beinhaltet GeoLite2-Daten
von MaxMind, erhältlich bei [[%1:link%]]."
RL_GEO_NO_GEOIP_LIBRARY="Die Regular Labs GeoIP-Bibliothek ist nicht
installiert. Sie müssen die [[%1:link start%]]Regular Labs
GeoIP-Bibliothek installieren[[%2:link end%]] um die
Geolokalisierungs-Zuweisungen nutzen zu können."
RL_GO_PRO="Pro erwerben!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Überschrift 1"
RL_HEADING_2="Überschrift 2"
RL_HEADING_3="Überschrift 3"
RL_HEADING_4="Überschrift 4"
RL_HEADING_5="Überschrift 5"
RL_HEADING_6="Überschrift 6"
RL_HEADING_ACCESS_ASC="Zugang aufsteigend"
RL_HEADING_ACCESS_DESC="Zugang absteigend"
RL_HEADING_CATEGORY_ASC="Kategorie aufsteigend"
RL_HEADING_CATEGORY_DESC="Kategorie absteigend"
RL_HEADING_CLIENTID_ASC="Ort aufsteigend"
RL_HEADING_CLIENTID_DESC="Ort absteigend"
RL_HEADING_COLOR_ASC="Farbe aufsteigend"
RL_HEADING_COLOR_DESC="Farbe absteigend"
RL_HEADING_DEFAULT_ASC="Standard aufsteigend"
RL_HEADING_DEFAULT_DESC="Standard absteigend"
RL_HEADING_DESCRIPTION_ASC="Beschreibung aufsteigend"
RL_HEADING_DESCRIPTION_DESC="Beschreibung absteigend"
RL_HEADING_ID_ASC="ID aufsteigend"
RL_HEADING_ID_DESC="ID absteigend"
RL_HEADING_LANGUAGE_ASC="Sprache aufsteigend"
RL_HEADING_LANGUAGE_DESC="Sprache absteigend"
RL_HEADING_ORDERING_ASC="Sortierung aufsteigend"
RL_HEADING_ORDERING_DESC="Sortierung absteigend"
RL_HEADING_PAGES_ASC="Menü-Einträge aufsteigend"
RL_HEADING_PAGES_DESC="Menü-Einträge absteigend"
RL_HEADING_POSITION_ASC="Position aufsteigend"
RL_HEADING_POSITION_DESC="Position absteigend"
RL_HEADING_STATUS_ASC="Status aufsteigend"
RL_HEADING_STATUS_DESC="Status absteigend"
RL_HEADING_STYLE_ASC="Stil aufsteigend"
RL_HEADING_STYLE_DESC="Stil absteigend"
RL_HEADING_TEMPLATE_ASC="Template aufsteigend"
RL_HEADING_TEMPLATE_DESC="Template absteigend"
RL_HEADING_TITLE_ASC="Titel aufsteigend"
RL_HEADING_TITLE_DESC="Titel absteigend"
RL_HEADING_TYPE_ASC="Typ aufsteigend"
RL_HEADING_TYPE_DESC="Typ absteigend"
RL_HEIGHT="Höhe"
RL_HEMISPHERE="Hemisphäre"
RL_HEMISPHERE_DESC="Wähle die Hemisphäre, in der Deine Webseite
gehostet wird."
RL_HIGH="Hoch"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Startseite"
RL_HOME_PAGE_DESC="Anders als bei der Wahl der Startseite (Standard)
über die Menüeinträge, trifft dies nur auf die wirkliche Startseite zu,
nicht bei einer URL mit der gleichen Item-ID wie die
Startseiten-ID.<br><br>Dies funktioniert möglicherweise nicht
mit fremden SEF-Erweiterungen."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="HTML-Tags"
RL_ICON_ONLY="Nur Symbol"
RL_IGNORE="Ignorieren"
RL_IMAGE="Bild"
RL_IMAGE_ALT="Bild Alt"
RL_IMAGE_ALT_DESC="Der Alt-Wert des Bildes"
RL_IMAGE_ATTRIBUTES="Bild-Attribute"
RL_IMAGE_ATTRIBUTES_DESC="Weitere Attribute des Bildes wie:
alt=&quot;Mein Bild&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Import Einträge"
RL_INCLUDE="Einschließen"
RL_INCLUDE_CHILD_ITEMS="Untereinträge einschließen"
RL_INCLUDE_CHILD_ITEMS_DESC="Auch Untereinträge der gewählten
Einträge einschließen?"
RL_INCLUDE_NO_ITEMID="Keine Menü-ID mit einschließen"
RL_INCLUDE_NO_ITEMID_DESC="Auch zuordnen, wenn in der URL keine
Menüeintrags-ID angegeben ist?"
RL_INITIALISE_EVENT="Initialisiere bei Ereignis"
RL_INITIALISE_EVENT_DESC="Das interne Joomla-Ereignis setzen, bei dem
das Plugin initialisiert werden soll. Ändern Sie dies nur, wenn sie
Probleme mit dem Funktionieren des Plugins beobachten."
RL_INPUT_TYPE="Eingabe-Typ"
RL_INPUT_TYPE_ALNUM="Eine Zeichenkette, die nur A-Z oder 0-9 enthält
(keine Berücksichtigung von Groß-/Kleinschreibung)."
RL_INPUT_TYPE_ARRAY="Ein Array."
RL_INPUT_TYPE_BOOLEAN="Ein boolescher Wert."
RL_INPUT_TYPE_CMD="Eine Zeichenkette, die A-Z, 0-9, Unterstriche,
Punkte oder Bindestriche enthält (keine Berücksichtigung von Groß- und
Kleinschreibung)."
RL_INPUT_TYPE_DESC="Wählen Sie einen Eingabe-Typ:"
RL_INPUT_TYPE_FLOAT="Eine Gleitkommazahl oder ein Array von
Gleitkommazahlen."
RL_INPUT_TYPE_INT="Eine ganze Zahl oder ein Array von ganzen
Zahlen."
RL_INPUT_TYPE_STRING="Eine vollständig dekodierte und bereinigte
Zeichenkette (Standard)."
RL_INPUT_TYPE_UINT="Eine ganze Zahl ohne Vorzeichen oder ein Array von
ganzen Zahlen ohne Vorzeichen."
RL_INPUT_TYPE_WORD="Eine Zeichenkette, die nur A-Z oder Unterstriche
enthält (ohne Berücksichtigung der Groß-/Kleinschreibung)."
RL_INSERT="Einfügen"
RL_INSERT_DATE_NAME="Datum und Name einfügen"
RL_IP_RANGES="IP-Adressen / -Bereiche"
RL_IP_RANGES_DESC="Eine durch Komma und/oder Zeilenumbruch getrennte
Liste von IP-Adressen und IP-Bereichen. Zum
Beispiel:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP-Adressen"
RL_IS_FREE_VERSION="Dies ist die kostenlose Version von %s."
RL_ITEM="Eintrag"
RL_ITEM_IDS="Eintrags-IDs"
RL_ITEM_IDS_DESC="Geben Sie die Eintrags-IDs zur Zuweisung ein.
Trennen Sie die IDs durch Komma."
RL_ITEMS="Einträge"
RL_ITEMS_DESC="Einträge zur Zuweisung auswählen."
RL_JCONTENT="Joomla! Inhalt"
RL_JED_REVIEW="Gefällt Ihnen diese Erweiterung? [[%1:start
link%]]Schreiben Sie Ihre Bewertung auf JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Sie verwenden eine Joomla 2.5-Version
von %1$s auf Joomla 3. Bitte reinstallieren Sie %1$s um das Problem zu
beheben."
RL_JQUERY_DISABLED="Sie haben das jQuery-Skript deaktiviert. %s
benötigt jQuery zum Betrieb. Stellen Sie sicher, dass Ihr Template oder
andere Erweiterungen die notwendigen Skripte laden um die erforderlichen
Funktionen zu ersetzen."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Kategorien"
RL_LANGUAGE="Sprache"
RL_LANGUAGE_DESC="Wählen Sie die zuzuordnende Sprache aus."
RL_LANGUAGES="Sprachen"
RL_LANGUAGES_DESC="Sprachen auswählen, die zugewiesen werden
sollen."
RL_LAYOUT="Layout"
RL_LAYOUT_DESC="Wählen Sie das zu verwendende Layout aus. Sie können
dieses Layout in der Komponente oder im Template überschreiben."
; RL_LESS_THAN="Less than"
RL_LEVELS="Ebenen"
RL_LEVELS_DESC="Ebenen auswählen, die zugewiesen werden sollen."
RL_LIB="Bibliothek"
RL_LINK_TEXT="Link-Text"
RL_LINK_TEXT_DESC="Der Text, der als Link angezeigt werden soll."
RL_LIST="Liste"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Bootstrap Framework laden"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Bootstrap Framework
deaktivieren"
RL_LOAD_JQUERY="jQuery-Skript laden"
RL_LOAD_JQUERY_DESC="Kern-jQuery-Skript laden. Sie können dies
deaktivieren, wenn Sie Konflikte beobachten, falls Ihr Template oder andere
Erweiterungen eigene Versionen von jQuery laden."
RL_LOAD_MOOTOOLS="Core MooTools laden"
RL_LOAD_MOOTOOLS_DESC="Auswahl um das Core MooTools Skript zu laden.
Du kannst dies deaktivieren wenn du Konflikte mit MooTools beobachtest,
wenn das Template oder andere Erweiterungen ihre eigene Version von
Mootools laden."
RL_LOAD_STYLESHEET="Stylesheet laden"
RL_LOAD_STYLESHEET_DESC="Auswählen um die Stylesheets der Erweiterung
zu aktivieren. Du kannst dies deaktivieren, wenn du deine eigenen
Stylesheets in ein anderes Stylesheet, wie z.B , das Template Stylesheet
einbindest."
RL_LOW="Niedrig"
RL_LTR="Links-nach-Rechts"
RL_MATCH_ALL="Passen alle"
RL_MATCH_ALL_DESC="Wählen Sie aus, um die Zuordnung zu übergeben,
wenn alle ausgewählten Einträge übereinstimmen."
RL_MATCHING_METHOD="Vergleichsmethode"
RL_MATCHING_METHOD_DESC="Sollen alle oder irgendeine Zuweisung
zutreffen?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maximale Listeneinträge"
RL_MAX_LIST_COUNT_DESC="Maximale Anzahl von Elementen in der
Mehrfach-Auswahl-Liste. Ist die Gesamtzahl höher, wird das Auswahl-Feld
als Textfeld angezeigt.<br><br>Sie können diese Zahl
heruntersetzen, wenn Sie lange Ladezeiten aufgrund hoher Anzahl an
Elementen in Listen beobachten."
RL_MAX_LIST_COUNT_INCREASE="Erhöhe Maximallistenzähler"
RL_MAX_LIST_COUNT_INCREASE_DESC="Es gibt mehr als [[%1:max%]]
Elemente.<br><br>Um langsame Seiten zu vermeiden, wird dieses
Feld als Textfeld anstelle einer dynamischen Auswahlliste
angezeigt.<br><br>Sie können die '[[%2:max
setting%]]]' in den Plugin-Einstellungen der Regular Labs Bibliothek
erhöhen."
RL_MAXIMIZE="Maximieren"
RL_MEDIA_VERSIONING="Medien-Versionierung verwenden"
RL_MEDIA_VERSIONING_DESC="Fügen Sie die Versionsnummer der
Erweiterung an das Ende von Medien-URLs (JS/CSS) zu, um Browser zu zwingen
die korrekte Datei zu laden."
RL_MEDIUM="Mittel"
RL_MENU_ITEMS="Menüeinträge"
RL_MENU_ITEMS_DESC="Menüeinträge auswählen, die zugewiesen werden
sollen."
RL_META_KEYWORDS="Meta-Schlüsselwörter"
RL_META_KEYWORDS_DESC="Schlüsselwörter, welche in den
Meta-Schlüsselwörtern gefunden werden können eingeben. Trennen Sie die
Schlüsselwörter durch Komma."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimieren"
RL_MOBILE_BROWSERS="Mobile Browser"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Monate"
RL_MONTHS_DESC="Monate auswählen, die zugewiesen werden sollen."
RL_MORE_INFO="Weitere Infos"
RL_MY_STRING="Mein Textstring!"
RL_N_ITEMS_ARCHIVED="%s Elemente archiviert."
RL_N_ITEMS_ARCHIVED_1="%s Element archiviert."
RL_N_ITEMS_CHECKED_IN_0="Keine Elemente eingecheckt."
RL_N_ITEMS_CHECKED_IN_1="%d Element eingecheckt."
RL_N_ITEMS_CHECKED_IN_MORE="%d Elemente eingecheckt."
RL_N_ITEMS_DELETED="%s Elemente gelöscht."
RL_N_ITEMS_DELETED_1="%s Element gelöscht."
RL_N_ITEMS_FEATURED="%s Elemente hervorgehoben."
RL_N_ITEMS_FEATURED_1="%s Element hervorgehoben."
RL_N_ITEMS_PUBLISHED="%s Elemente veröffentlicht."
RL_N_ITEMS_PUBLISHED_1="%s Element veröffentlicht."
RL_N_ITEMS_TRASHED="%s Elemente in den Papierkorb verschoben."
RL_N_ITEMS_TRASHED_1="%s Element in den Papierkorb verschoben."
RL_N_ITEMS_UNFEATURED="%s Elemente nicht länger hervorgehoben."
RL_N_ITEMS_UNFEATURED_1="%s Element nicht länger hervorgehoben."
RL_N_ITEMS_UNPUBLISHED="%s Elemente versteckt."
RL_N_ITEMS_UNPUBLISHED_1="%s Element versteckt."
RL_N_ITEMS_UPDATED="%d Einträge aktualisiert."
RL_N_ITEMS_UPDATED_1="Ein Eintrag wurde aktualisiert"
RL_NEW_CATEGORY="Neue Kategorie anlegen"
RL_NEW_CATEGORY_ENTER="Geben Sie einen neuen Kategorienamen ein"
RL_NEW_VERSION_AVAILABLE="Eine neue Version ist verfügbar"
RL_NEW_VERSION_OF_AVAILABLE="Eine neue Version von %s ist
verfügbar."
RL_NO_ICON="Kein Symbol"
RL_NO_ITEMS_FOUND="Keine Einträge gefunden."
RL_NORMAL="Normal"
RL_NORTHERN="Nördlich"
RL_NOT="Nicht"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Nur"
RL_ONLY_AVAILABLE_IN_JOOMLA="Nur verügbar in Joomla %s oder
höher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Nur in PRO-Version
verfügbar!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Nur in der PRO-Version
verfügbar)"
RL_ONLY_VISIBLE_TO_ADMIN="Diese Meldung wird nur (Super)
Administatoren angezeigt."
RL_OPTION_SELECT="- Auswählen -"
RL_OPTION_SELECT_CLIENT="- Client wählen -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Betriebssysteme"
RL_OS_DESC="Wählen Sie die zuzuordnenden Betriebssysteme aus. Denken
Sie daran, dass die Betriebssystemerkennung nicht immer 100&#37; genau
ist. Benutzer können ihren Browser so einstellen, dass sie andere
Betriebssysteme imitieren."
; RL_OTHER="Other"
RL_OTHER_AREAS="Andere Bereiche"
RL_OTHER_OPTIONS="Andere Optionen"
RL_OTHER_SETTINGS="Andere Einstellungen"
RL_OTHERS="Andere"
RL_PAGE_TYPES="Seiten-Typen"
RL_PAGE_TYPES_DESC="Wähle auf welchen Seiten-Typen die Zuordnung
aktiv sein soll."
RL_PHP="Eigenes PHP"
RL_PHP_DESC="Gib einen PHP Code zur Berechnung ein. Der Code muss die
Werte true oder false ausgeben.<br><br>Zum
Beispiel:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="HTML-Kommentare einfügen"
RL_PLACE_HTML_COMMENTS_DESC="Standardmäßig werden HTML-Kommentare
rund um die HTML-Ausgabe dieser Erweiterung
eingefügt.<br><br>Diese Kommentare können bei der Fehlersuche
helfen, wenn die HTML-Ausgabe nicht dem gewünschten Ergebnis
entspricht.<br><br>Wenn du diese Kommentare in der HTML-Ausgabe
nicht möchtest, kannst du das hier deaktivieren."
RL_PLG_ACTIONLOG="Aktionsprotokoll-Plugin"
RL_PLG_EDITORS-XTD="Editor-Button Plugin"
RL_PLG_FIELDS="Feld Plugin"
RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postleitzahlen"
RL_POSTALCODES_DESC="Eine Komma-getrennte Liste von Postleitzahlen
(12345) oder Postleitzahl-Bereichen (12300-12500).<br>Dies kann nur
bei [[%1:start link%]]einer begrenzten Anzahl von Ländern und
IP-Adressen[[%2:end link%]] verwendet werden."
RL_POWERED_BY="Mit freundlicher Unterstützung von %s"
RL_PRODUCTS="Produkte"
RL_PUBLISHED_DESC="Hiermit kann die (temporäre) Deaktivierung des
Eintrags erfolgen."
RL_PUBLISHING_ASSIGNMENTS="Veröffentlichungs Zuordnungen"
RL_PUBLISHING_SETTINGS="Einträge veröffentlichen"
RL_RANDOM="Zufällig"
RL_REDSHOP="RedShop"
RL_REGEX="Reguläre Ausdrücke"
RL_REGIONS="Regionen / Bundesländer"
RL_REGIONS_DESC="Regionen / Bundesländer auswählen, die zugewiesen
werden sollen."
RL_REGULAR_EXPRESSIONS="Reguläre Ausdrücke verwenden"
RL_REGULAR_EXPRESSIONS_DESC="Den Wert als Regulären Ausdruck
verwenden."
RL_REMOVE_IN_DISABLED_COMPONENTS="In deaktivierten Komponenten
entfernen"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Wenn gewählt, wird die
Plugin-Syntax von der Komponente entfernt. Wenn nicht, bleibt die originale
Plugin-Sytax intakt."
RL_RESIZE_IMAGES="Ändern der Bildgröße"
RL_RESIZE_IMAGES_CROP="Beschneiden"
RL_RESIZE_IMAGES_CROP_DESC="Das skalierte Bild hat immer die
eingestellte Breite und Höhe."
RL_RESIZE_IMAGES_DESC="Wenn diese Option ausgewählt ist, werden
automatisch verkleinerte Bilder für Bilder erstellt, wenn sie noch nicht
vorhanden sind. Die verkleinerten Bilder werden mit den folgenden
Einstellungen erstellt."
RL_RESIZE_IMAGES_FILETYPES="Nur bei Dateitypen"
RL_RESIZE_IMAGES_FILETYPES_DESC="Wählen Sie die Dateitypen aus, bei
denen die Größe geändert werden soll."
RL_RESIZE_IMAGES_FOLDER="Ordner"
RL_RESIZE_IMAGES_FOLDER_DESC="Der Ordner, in dem sich die
verkleinerten Bilder befinden. Dies ist ein Unterordner des Ordners, der
Ihre Originalbilder enthält."
RL_RESIZE_IMAGES_HEIGHT_DESC="Stellen Sie die Höhe des verkleinerten
Bildes in Pixeln ein (z.B. 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="Die Höhe wird auf der Grundlage der
oben definierten Breite und des Seitenverhältnisses des Originalbildes
berechnet."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="Die Breite wird auf der Grundlage der
unten definierten Höhe und des Seitenverhältnisses des Originalbildes
berechnet."
RL_RESIZE_IMAGES_QUALITY="JPG-Qualität"
RL_RESIZE_IMAGES_QUALITY_DESC="Die Qualität der verkleinerten Bilder.
Wählen Sie zwischen Niedrig, Mittel und Hoch. Je höher die Qualität,
desto größer die resultierenden Dateien.<br>Dies betrifft nur
JPEG-Bilder."
RL_RESIZE_IMAGES_SCALE="Maßstab"
RL_RESIZE_IMAGES_SCALE_DESC="Das verkleinerte Bild wird auf die
maximale Breite oder Höhe unter Beibehaltung des Seitenverhältnisses
verkleinert."
RL_RESIZE_IMAGES_SCALE_USING="Skalierung mit fester..."
RL_RESIZE_IMAGES_SCALE_USING_DESC="Wählen Sie aus, ob die Größe der
Bilder unter Verwendung der maximalen Breite oder Höhe geändert werden
soll. Die andere Dimension wird basierend auf dem Seitenverhältnis des
Originalbildes berechnet."
RL_RESIZE_IMAGES_TYPE="Methode der Größenänderung"
RL_RESIZE_IMAGES_TYPE_DESC="Stellen Sie die Art der Größenänderung
ein."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Festlegen"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Wählen Sie aus, ob die
Größe der Bilder unter Verwendung der maximalen Breite oder Höhe
geändert werden soll."
RL_RESIZE_IMAGES_WIDTH_DESC="Legen Sie die Breite des verkleinerten
Bildes in Pixeln fest (z.B. 320)."
RL_RTL="Rechts-nach-Links"
RL_SAVE_CONFIG="Nach dem Speichern der Optionen wird es beim Laden der
Seite nicht mehr angezeigt."
RL_SEASONS="Jahreszeiten"
RL_SEASONS_DESC="Jahreszeiten auswählen, die zugewiesen werden
sollen."
RL_SELECT="Auswählen"
RL_SELECT_A_CATEGORY="Eine Kategorie auswählen"
RL_SELECT_ALL="Alle auswählen"
RL_SELECT_AN_ARTICLE="Einen Beitrag auswählen"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Ausgewählt"
RL_SELECTION="Auswahl"
RL_SELECTION_DESC="Auswahl zur Zuweisung einschließen oder
ausschließen.<br><br><strong>Einschließen</strong><br>Nur
bei der Auswahl
veröffentlichen.<br><br><strong>Ausschließen</strong><br>Überall
außer bei der Auswahl veröffentlichen."
RL_SETTINGS_ADMIN_MODULE="Administrator Moduloptionen"
RL_SETTINGS_EDITOR_BUTTON="Editor-Button Optionen"
RL_SETTINGS_SECURITY="Sicherheits-Einstellungen"
RL_SHOW_ASSIGNMENTS="Zuordnungen anzeigen"
RL_SHOW_ASSIGNMENTS_DESC="Nur die ausgewählten Zuordnungen anzeigen.
Sie können dies verwenden, um eine klare Übersicht über die aktivierten
Zuordnungen zu erhalten."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Alle nicht gewählten Zuordnungen
sind jetzt verborgen."
RL_SHOW_COPYRIGHT="Copyright anzeigen"
RL_SHOW_COPYRIGHT_DESC="Wenn gewählt, wird ein Copyright auf der
Admin-Seite angezeigt. Erweiterungen von Regular Labs zeigen nie
Copyright-Informationen oder Links zu Regular Labs im Frontend an."
RL_SHOW_HELP_MENU="Hilfe-Menü anzeigen"
RL_SHOW_HELP_MENU_DESC="Auswählen, um einen Link zur Regular
Labs-Website im Administrator-Hilfe-Menü anzuzeigen."
RL_SHOW_ICON="Button-Icon anzeigen"
RL_SHOW_ICON_DESC="Wenn gewählt, wird ein Icon im Editor Button
angezeigt."
RL_SHOW_UPDATE_NOTIFICATION="Update Benachrichtigung"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Wenn gewählt, wird eine
Update-Benachrichtung in der Hauptkomponente angezeigt, sobald eine neue
Version für diese Erweiterung vorhanden ist."
RL_SIMPLE="Einfach"
RL_SLIDES="Reiter"
RL_SOUTHERN="Südlich"
; RL_SPECIFIC="Specific"
RL_SPRING="Frühling"
RL_START="Start"
RL_START_PUBLISHING="Veröffentlichung ab"
RL_START_PUBLISHING_DESC="Das Startdatum der Veröffentlichung
eingeben"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Umgebende Tags entfernen"
RL_STRIP_SURROUNDING_TAGS_DESC="Auswählen, um HTML-Tags (div, p,
span) um das Plugin-Tag immer zu entfernen. Wenn ausgeschaltet, versucht
das Plugin alle Tags zu entfernen, die die HTML-Struktur zerstören (wie p
innerhalb von p-Tags)."
RL_STYLING="Styling"
RL_SUMMER="Sommer"
RL_TABLE_NOT_FOUND="Erforderliche %s-Datenbanktabelle nicht
gefunden!"
RL_TABS="Tabs"
RL_TAG_CHARACTERS="Tag-Zeichen"
RL_TAG_CHARACTERS_DESC="Die umgebenden Zeichen der
Tag-Syntax.<br><br><strong>Anmerkung:</strong> Wenn
Sie dies ändern, werden alle bestehenden Tags nicht länger
funktionieren."
RL_TAG_SYNTAX="Tag-Syntax"
RL_TAG_SYNTAX_DESC="Das Wort, das in den Tags verwendet
wird.<br><br><strong>Hinweis:</strong> Wenn Sie
dies ändern, werden alle vorhandenen Tags nicht mehr funktionieren."
RL_TAGS="Tags"
RL_TAGS_DESC="Tags eingeben, die zugewiesen werden sollen. Tags durch
Komma trennen."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Templates auswählen, die zugewiesen werden
sollen."
RL_TEXT="Text"
RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Nur Text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Diese
Erweiterung benötigt %s um korrekt zu funktionieren!"
RL_TIME="Zeit"
RL_TIME_FINISH_PUBLISHING_DESC="Endzeitpunkt der Veröffentlichung
eingeben.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Startzeitpunkt der Veröffentlichung
eingeben.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Umschalten"
RL_TOOLTIP="Tooltip"
RL_TOP="Oben"
RL_TOTAL="Gesamt"
RL_TYPES="Typen"
RL_TYPES_DESC="Typen auswählen, die zugewiesen werden sollen."
RL_UNSELECT_ALL="Auswahl aufheben"
RL_UNSELECTED="Nichts ausgewählt"
RL_UPDATE_TO="Update auf Version %s"
RL_URL="URL"
RL_URL_PARAM_NAME="Parameter-Name"
RL_URL_PARAM_NAME_DESC="Geben Sie den Namen des URL-Parameters
ein."
RL_URL_PARTS="Zutreffende URL"
RL_URL_PARTS_DESC="(Teile von) URLs zur Übereinstimmung
eingeben.<br>Für jede Übereinstimmung eine neue Zeile
verwenden."
RL_URL_PARTS_REGEX="URL-Teile werden mit Regulären Ausdrücken
abgeglichen. <strong>Stellen Sie daher sicher, dass der String eine
gültige RegEx-Syntax verwendet.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Für Kategorie- und Beitragszuweisungen
(Item) den obigen Joomla!-Inhaltsbereich ansehen."
RL_USE_CUSTOM_CODE="Benutzerdefinierten Code verwenden"
RL_USE_CUSTOM_CODE_DESC="Wenn gewählt, wird der Editor-Button
stattdessen den benutzerdefinierten Code einfügen."
RL_USE_SIMPLE_BUTTON="Einfachen Button verwenden"
RL_USE_SIMPLE_BUTTON_DESC="Einen einfachen Einfügebutton verwenden,
der einfach einige Beispiel-Syntax in den Editor einfügt."
RL_USER_GROUP_LEVELS="Benutzergruppen Ebenen"
RL_USER_GROUPS="Benutzergruppen"
RL_USER_GROUPS_DESC="Benutzergruppen auswählen, die zugewiesen werden
sollen."
RL_USER_IDS="Benutzer-IDs"
RL_USER_IDS_DESC="Benutzer-IDs für die Zuordnung eingeben. Trenne die
IDs durch Kommas."
RL_USERS="Benutzer"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Ansicht"
RL_VIEW_DESC="Auswählen, welche Standart-Ansicht verwendet wird für
einen neuen Eintrag."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Breite"
RL_WINTER="Winter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorien"
PK�X�[/�\Loo?regularlabs/language/de-DE/de-DE.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Bibliothek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Bibliothek - benutzt von
Regular Labs Erweiterungen"
REGULAR_LABS_LIBRARY="Regular Labs Bibliothek"
PK�X�[�܄�]�]�;regularlabs/language/el-GR/el-GR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
χρησιμοποιείται από τις επεκτάσεις του
Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Η επέκταση Regular
Labs χρειάζεται το πρόσθετο και δεν
λειτουργεί χωρίς αυτό.<br><br>Regular Labs
Η επέκταση περιλαμβάνει:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Μην
απεγκαταστήσετε ή απενεργοποιήσετε αυτό
το πρόσθετο αν χρησιμοποιείτε
οποιαδήποτε επέκταση Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Ετικέτα
σύνταξη"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Περιγραφή"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Περιγραφή"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Συμπεριφορά"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Πολυμέσα"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Ρυθμίσεις
κουμπιού συντάκτη"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Ρυθμίσεις
Ασφάλειας"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Ρύθμιση"
; COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Ετικέτα
σύνταξη"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Εγκατάσταση"
RL_ACTION_UNINSTALL="Απεγκατάσταση"
RL_ACTION_UPDATE="Αναβάθμιση"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Διαχειριστής"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Προχωρημένο"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ΌΛΑ"
RL_ALL_DESC="θα δημοσιευθεί αν
<strong>ALL</strong> οι παραπάνω ορισμοί
ταιριάζουν."
RL_ALL_RIGHTS_RESERVED="Όλα τα δικαιώματα έχουν
εκχωρηθεί"
RL_ALSO_ON_CHILD_ITEMS="Επίσης στα
υποαντικείμενα"
RL_ALSO_ON_CHILD_ITEMS_DESC="Να ορισθούν επίσης,τα
υποαντικείμενα των επιλεγμένων
στοιχείων?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="Οποιοδήποτε"
RL_ANY_DESC="θα δημοσιευθεί αν
<strong>ANY</strong> (ένα ή περισσότερα) από
τα παραπάνω ταιριάζουν.<br>Γκρούπς
εκχωρήσεων με επιλογή 'Ignore' θα
αγνοηθούν."
RL_ARE_YOU_SURE="Είστε σίγουρος?"
RL_ARTICLE="Άρθρο"
RL_ARTICLE_AUTHORS="Συγγραφείς"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Άρθρα"
; RL_ARTICLES_DESC="Select the articles to assign to."
RL_AS_EXPORTED="Όπως εξάχθηκε"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Αυστραλία"
RL_AUTHORS="Συγγραφείς"
RL_AUTO="Αυτόματο"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Συμπεριφορά"
RL_BEHAVIOUR="Συμπεριφορά"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Και τα δύο"
RL_BOTTOM="Κάτω"
RL_BROWSERS="Περιηγητές"
RL_BROWSERS_DESC="Επιλέξτε περιηγητές για να
τους ορίσετε. Λάβετε υπόψη ότι η
ανίχνευση του προγράμματος περιήγησης
δεν είναι ποτέ 100&#37; στεγανό. Οι χρήστες
μπορούν να ρυθμίσουν τον περιηγητή τους
να μιμείται άλλους περιηγητές."
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Κουμπί κειμένου"
RL_BUTTON_TEXT_DESC="Αυτό το κείμενο θα
φαίνεται στο κουμπί συντάκτη."
RL_CACHE_TIME="Χρόνος μνήμης"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Κατηγορίες"
RL_CATEGORIES_DESC="Επιλέξτε τις
κατηγορίες."
; RL_CATEGORY="Category"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="Κλάση CSS"
; RL_COLLAPSE="Collapse"
RL_COM="Εφαρμογή"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Εφαρμογές"
RL_COMPONENTS_DESC="Επιλέξτε εφαρμογές για να
τις ορίσετε."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Προσαρμοσμένο Περιεχόμενο"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Αντιγραφή από %s"
RL_COPYRIGHT="Πνευματικά δικαιώματα"
RL_COUNTRIES="Χώρες"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="Τρέχον"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Η έκδοση που διαθέτετε
είναι η %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
RL_CUSTOM_FIELD="Προσαρμοσμένο Πεδίο"
RL_CUSTOM_FIELDS="Προσαρμοσμένα Πεδία"
RL_DATE="Ημερομηνία"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Επαναλαμβανόμενη"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Ημερομηνία και ώρα"
RL_DATE_TIME_DESC="Η ημερομηνία και ώρα που
ορίστηκε είναι η ημερομηνία/ώρα του server
σας, όχι εκείνο του συστήματος των
επισκεπτών."
; RL_DATE_TO="To"
RL_DAYS="Μέρες της βδομάδας"
RL_DAYS_DESC="Διαλέξτε μέρες τις
βδομάδας."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
RL_DEFAULTS="Προεπιλογές"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
; RL_DIRECTION="Direction"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Απενεργοποίησε
εφαρμογές"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Εμφάνισε σύνδεσμο"
RL_DISPLAY_LINK_DESC="Πώς θέλετε να εμφανίζεται
η διεύθυνση?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Εμφάνιση Tooltip"
RL_DISPLAY_TOOLTIP_DESC="Επιλέξτε για να
εμφανίζεται ένα tooltip με επιπλέον
πληροφορίες όταν το ποντίκι διέρχεται
πάνω από σύνδεσμο/εικονίδιο."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Ημερομηνία που
χρησιμοποιεί %1$sphp strftime() φορμάτ%2$s.
Παράδειγμα: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Ένα τυχαίο νούμερο μέσα
σε δοσμένο εύρος"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="Ο id αριθμός του χρήστη"
RL_DYNAMIC_TAG_USER_NAME="Το όνομα του χρήστη"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="Το όνομα σύνδεσης του
χρήστη"
RL_DYNAMIC_TAGS="Δυναμικές ετικέτες"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Ενεργοποίηση"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Ενεργοποιήση σε άρθρα"
RL_ENABLE_IN_COMPONENTS="Ενεργοποιήση σε
περιεχόμενα"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Ενεργό στο
πρωτοσέλιδο"
RL_ENABLE_IN_FRONTEND_DESC="Ενεργοποιημένο, θα
είναι επίσης διαθέσιμα στο
πρωτοσέλιδο."
RL_ENABLE_OTHER_AREAS="Ενεργοποιήση άλλων
περιοχών"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
; RL_EXCLUDE="Exclude"
RL_EXPAND="Ανάπτυξη"
RL_EXPORT="Εξαγωγή"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Πτώση"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Όνομα Πεδίου"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Φίλτρα"
RL_FINISH_PUBLISHING="Τέλος δημοσίευσης"
RL_FINISH_PUBLISHING_DESC="Δώσε ημερομηνία για το
τέλος της δημοσίευσης"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Πρωτοσέλιδο"
RL_GALLERY="Γκαλερύ"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Ύψος"
RL_HEMISPHERE="Ημισφαίριο"
RL_HEMISPHERE_DESC="Διάλεξε το ημισφαίριο στο
οποίο βρίσκεται η ιστοσελίδα σας"
RL_HIGH="Υψηλή"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Εικονίδιο μόνο"
; RL_IGNORE="Ignore"
RL_IMAGE="Εικόνα"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Εισαγωγή"
RL_IMPORT_ITEMS="Εισαγωγή αντικειμένων"
; RL_INCLUDE="Include"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Μην συμπεριλάβεις κανένα
id αντικειμένου."
RL_INCLUDE_NO_ITEMID_DESC="Επίσης ορίστε πότε
καμιά επιλογή Itemid δεν βρίσκεται στο
URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Εισαγωγή"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="Προϊόν"
; RL_ITEM_IDS="Item IDs"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="Αντικείμενα"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Κατηγορίες"
RL_LANGUAGE="Γλώσσα"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Γλώσσες"
RL_LANGUAGES_DESC="Επιλέξτε γλώσσες για να τις
ορίσετε."
RL_LAYOUT="Διάταξη"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="Κείμενο συνδέσμου"
RL_LINK_TEXT_DESC="Το κείμενο που θα φαίνεται
σαν σύνδεσμος."
RL_LIST="Λίστα"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Φόρτωσε Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Επιλέξτε για να φορτώσετε
το core MooTools script. Μπορείτε να το
απενεργοποιήσετε αν η εμπειρία σας είναι
καλή, αν το πρότυπο ή οι επεκτάσεις έχουν
δικιά τους έκδοση του MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
RL_LOW="Χαμηλή"
; RL_LTR="Left-to-Right"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Μέθοδος αντιστοίχισης"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Μεσαιο"
RL_MENU_ITEMS="Αντικείμενα μενού"
RL_MENU_ITEMS_DESC="Διαλέξτε αντικείμενα
μενού."
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
; RL_MINIMIZE="Minimize"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="Ένθεμα"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Μήνες"
RL_MONTHS_DESC="Επιλέξτε μήνες για να τους
ορίσετε."
RL_MORE_INFO="Περισσότερες πληροφορίες"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Μια καινούργια έκδοση
είναι διαθέσιμη"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="Κανονικό"
RL_NORTHERN="Βόρεια"
RL_NOT="Όχι"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Μόνο"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Το μύνημα αυτό θα
εμφανιστεί μόνο στους (Super)
διαχειριστές."
RL_OPTION_SELECT="-Επιλεξτε-"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="Άλλες περιοχές"
; RL_OTHER_OPTIONS="Other Options"
RL_OTHER_SETTINGS="Άλλες ρυθμίσεις"
RL_OTHERS="Άλλα"
RL_PAGE_TYPES="Τύποι σελίδων"
RL_PAGE_TYPES_DESC="Επιλέξτε σε ποιούς τύπους
σελίδων η εκχωρήση θα πρέπει να είναι
ενεργή."
; RL_PHP="Custom PHP"
RL_PHP_DESC="Εισάγετε ένα κομμάτι του
κώδικα PHP για την αξιολόγηση. Ο κώδικας
πρέπει να επιστρέφει τιμή true ή
false.<br><br>Για
παράδειγμα:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Προσθέστε HTML σχόλια"
RL_PLACE_HTML_COMMENTS_DESC="Εξ΄ορισμού τα HTML
σχόλια τοποθετούνται γύρω από τα της
επέκτασης.<br><br>Αυτά τα σχόλια θα
σας βοηθήσουν να αντιμετωπίσετε
προβλήματα όταν δεν έχετε αυτό που
περιμένετε.<br><br>Αν επιθυμείτε να
μην έχετε αυτά τα σχόλια στο HTML σας,
κλείστε αυτή την επιλογή."
; RL_PLG_ACTIONLOG="Action Log Plugin"
; RL_PLG_EDITORS-XTD="Editor Button Plugin"
; RL_PLG_FIELDS="Field Plugin"
; RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Προϊόντα"
RL_PUBLISHED_DESC="Μπορείτε να
χρησιμοποιήσετε αυτό για να
απενεργοποιήσετε (προσωρινά) αυτό το
αντικείμενο."
RL_PUBLISHING_ASSIGNMENTS="Εκδίδοντας
εκχωρήσεις"
RL_PUBLISHING_SETTINGS="Δημοσιεύοντας
ρυθμίσεις"
RL_RANDOM="Τυχαίο"
RL_REDSHOP="RedShop"
RL_REGEX="Κανονικές εκφράσεις"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Περικοπή"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Φάκελος"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Εποχές"
RL_SEASONS_DESC="Επιλέξτε εποχές."
RL_SELECT="Επιλέξτε"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Επιλογή όλων"
RL_SELECT_AN_ARTICLE="Επιλέξτε ένα άρθρο"
; RL_SELECT_FIELD="Select Field"
; RL_SELECTED="Selected"
RL_SELECTION="Επιλογή"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
RL_SETTINGS_EDITOR_BUTTON="Ρυθμίσεις κουμπιού
συντάκτη"
RL_SETTINGS_SECURITY="Ρυθμίσεις Ασφάλειας"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Δείξε εικονίδιο κουμπιού"
RL_SHOW_ICON_DESC="Επιλεγμένο, το εικονίδιο θα
εμφανίζεται στο κουμπί συντάκτη."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Απλό"
; RL_SLIDES="Slides"
RL_SOUTHERN="Νότια"
; RL_SPECIFIC="Specific"
RL_SPRING="Άνοιξη"
RL_START="Από"
RL_START_PUBLISHING="Έναρξη δημοσίευσης"
RL_START_PUBLISHING_DESC="Δώστε ημερομηνία για
έναρξη δημοσίευσης"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="Καλοκαίρι"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Ετικέτα σύνταξη"
RL_TAG_SYNTAX_DESC="Η λέξη που θα
χρησιμοποιείτε στις
ετικέτες.<br><br><strong>Σημείωση:</strong>
Αν αλλάξετε αυτό, όλες οι υπάρχουσες
ετικέτες δεν θα λειτουργούν πλέον."
RL_TAGS="Ετικέτες"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="Πρότυπα"
RL_TEMPLATES_DESC="Επιλέξτε πρότυπα."
RL_TEXT="Κείμενο"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Μόνο κείμενο"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Αυτή η
επέκταση χρειάζεται %s για να
λειτουργήσει σωστά!"
RL_TIME="Ώρα"
RL_TIME_FINISH_PUBLISHING_DESC="Δώστε το χρόνο για το
τέλος της
δημοσίευσης.<br><br><strong>Φορμάτ:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Δώστε την ώρα για
έναρξη της
δημοσίευσης.<br><br><strong>Φορμάτ:</strong>
23:59"
RL_TOGGLE="Εναλλαγή"
RL_TOOLTIP="Tooltip"
RL_TOP="Επάνω"
RL_TOTAL="Σύνολο"
RL_TYPES="Τύποι"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
; RL_UNSELECTED="Unselected"
; RL_UPDATE_TO="Update to version %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Η URL ταιριάζει"
RL_URL_PARTS_DESC="Δώστε (μέρος) των URLs προς
σύγκριση.<br>Χρησιμοποιήστε μια
καινούργια γραμμή για κάθε διαφορετική
αντιστοιχία."
RL_URL_PARTS_REGEX="Οι Url θα ταιριαστούν
χρησιμοποιώντας τακτικές εκφράσεις.
<strong>Έτσι, βεβαιωθείτε ότι η
συμβολοσειρά χρησιμοποιεί έγκυρη regex
σύνταξη.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Επίπεδα ομάδων του
χρήστη"
; RL_USER_GROUPS="User Groups"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="IDs χρηστών"
RL_USER_IDS_DESC="Επιλέξτε τα ids χρηστών για να
τα ορίσετε. Χρησιμοποιήστε κόμμα για να
τα διαχωρήσετε."
RL_USERS="Χρήστες"
RL_UTF8="UTF-8"
RL_VIDEO="Βίντεο"
RL_VIEW="Προεπισκόπιση"
RL_VIEW_DESC="Επιλέξτε ποια προκαθορισμένη
παρουσίαση θα χρησιμοποιείται όταν
δημιουργείται ένα καινούργιο
αντικείμενο."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Πλάτος"
RL_WINTER="Χειμώνας"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Κατηγορίες ZOO"
PK�X�[�����?regularlabs/language/el-GR/el-GR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
χρησιμοποιείται από τις επεκτάσεις του
Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[������;regularlabs/language/en-GB/en-GB.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - used by Regular
Labs extensions"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]The Regular Labs extensions
need this plugin and will not function without
it.<br><br>Regular Labs extensions
include:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Do not uninstall or disable this
plugin if you are using any Regular Labs extensions."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Description"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Description"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setup"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

RL_ACCESS_LEVELS="Access Levels"
RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
RL_ACTION_CHANGE_DEFAULT="Change Default"
RL_ACTION_CHANGE_STATE="Change Publish State"
RL_ACTION_CREATE="Create"
RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Install"
RL_ACTION_UNINSTALL="Uninstall"
RL_ACTION_UPDATE="Update"
RL_ACTIONLOG_EVENTS="Events To Log"
RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] administrator
module has been unpublished!"
RL_ADVANCED="Advanced"
RL_AFTER="After"
RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALL"
RL_ALL_DESC="Will be published if <strong>ALL</strong> of
below assignments are matched."
RL_ALL_RIGHTS_RESERVED="All Rights Reserved"
RL_ALSO_ON_CHILD_ITEMS="Also on child items"
RL_ALSO_ON_CHILD_ITEMS_DESC="Also assign to child items of the
selected items?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to actual
sub-items in the above selection. They do not refer to links on selected
pages."
RL_ANY="ANY"
RL_ANY_DESC="Will be published if <strong>ANY</strong>
(one or more) of below assignments are matched.<br>Assignment groups
where 'Ignore' is selected will be ignored."
RL_ARE_YOU_SURE="Are you sure?"
RL_ARTICLE="Article"
RL_ARTICLE_AUTHORS="Authors"
RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Articles"
RL_ARTICLES_DESC="Select the articles to assign to."
RL_AS_EXPORTED="As exported"
RL_ASSIGNMENTS="Assignments"
RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Authors"
RL_AUTO="Auto"
RL_BEFORE="Before"
RL_BEFORE_NOW="Before NOW"
RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Behaviour"
RL_BEHAVIOUR="Behaviour"
RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Both"
RL_BOTTOM="Bottom"
RL_BROWSERS="Browsers"
RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind that
browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
RL_BUTTON_ICON="Button Icon"
RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Button Text"
RL_BUTTON_TEXT_DESC="This text will be shown in the Editor
Button."
RL_CACHE_TIME="Cache Time"
RL_CACHE_TIME_DESC="The maximum length of time in minutes for a cache
file to be stored before it is refreshed. Leave empty to use the global
setting."
RL_CATEGORIES="Categories"
RL_CATEGORIES_DESC="Select the categories to assign to."
RL_CATEGORY="Category"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Collapse"
RL_COM="Component"
RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
RL_COMPARISON="Comparison"
RL_COMPONENTS="Components"
RL_COMPONENTS_DESC="Select the components to assign to."
RL_CONTAINS="Contains"
RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Content"
RL_CONTENT_KEYWORDS="Content Keywords"
RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="Continents"
RL_CONTINENTS_DESC="Select the continents to assign to."
RL_COOKIECONFIRM="Cookie Confirm"
RL_COOKIECONFIRM_COOKIES="Cookies allowed"
RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Copy of %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Countries"
RL_COUNTRIES_DESC="Select the countries to assign to."
RL_CSS_CLASS="Class (CSS)"
RL_CSS_CLASS_DESC="Define a css class name for styling purposes."
RL_CURRENT="Current"
RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Your current version is %s"
RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Custom Code"
RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Custom Fields"
RL_DATE="Date"
RL_DATE_DESC="Select the type of date comparison to assign by."
RL_DATE_FROM="From"
RL_DATE_RECURRING="Recurring"
RL_DATE_RECURRING_DESC="Select to apply date range every year. (So the
year in the selection will be ignored)"
RL_DATE_TIME="Date & Time"
RL_DATE_TIME_DESC="The date and time assignments use the date/time of
your servers, not that of the visitors system."
RL_DATE_TO="To"
RL_DAYS="Days of the week"
RL_DAYS_DESC="Select days of the week to assign to."
RL_DEFAULT_ORDERING="Default Ordering"
RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
RL_DEFAULT_SETTINGS="Default Settings"
RL_DEFAULTS="Defaults"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobile"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Devices"
RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Direction"
RL_DIRECTION_DESC="Select the direction"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Disable on Components"
RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components NOT
to enable the use of this extension."
RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Display link"
RL_DISPLAY_LINK_DESC="How do you want the link to be displayed?"
RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Display Tooltip"
RL_DISPLAY_TOOLTIP_DESC="Select to display a tooltip with extra info
when mouse hovers over link/icon."
RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current article."
RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current article."
RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to lowercase."
RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to uppercase."
RL_DYNAMIC_TAG_USER_ID="The id number of the user"
RL_DYNAMIC_TAG_USER_NAME="The name of the user"
RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the logged
in user. If the visitor is not logged in, the tag will be removed."
RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Enable"
RL_ENABLE_ACTIONLOG="Log User Actions"
RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These actions
will be visible in the User Actions Log module."
RL_ENABLE_IN="Enable in"
RL_ENABLE_IN_ADMIN="Enable in administrator"
RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in the
administrator side of the website.<br><br>Normally you will not
need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Enable in articles"
RL_ENABLE_IN_COMPONENTS="Enable in components"
RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Enable in frontend"
RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in
the frontend."
RL_ENABLE_OTHER_AREAS="Enable other areas"
RL_ENDS_WITH="Ends with"
RL_EQUALS="Equals"
RL_EXCLUDE="Exclude"
RL_EXPAND="Expand"
RL_EXPORT="Export"
RL_EXPORT_FORMAT="Export Format"
RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Extra Parameters"
RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Fall / Autumn"
RL_FEATURED_DESC="Select to use the feature state in the
assignment."
RL_FEATURES="Features"
RL_FIELD="Field"
RL_FIELD_CHECKBOXES="Checkboxes"
RL_FIELD_DROPDOWN="Dropdown"
RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Field Name"
RL_FIELD_PARAM_MULTIPLE="Multiple"
RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
RL_FIELD_SELECT_STYLE="Multi-Select Style"
RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a standard
dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Field Value"
RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Filters"
RL_FINISH_PUBLISHING="Finish Publishing"
RL_FINISH_PUBLISHING_DESC="Enter the date to end publishing"
RL_FIX_HTML="Fix HTML"
RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not seem
to be used by any other extensions you have installed. It is probably safe
to disable or uninstall this plugin."
RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Gallery"
RL_GEO="Geolocating"
RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Go Pro!"
RL_GREATER_THAN="Greater than"
RL_HANDLE_HTML_HEAD="Handle HTML Head"
RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Heading 1"
RL_HEADING_2="Heading 2"
RL_HEADING_3="Heading 3"
RL_HEADING_4="Heading 4"
RL_HEADING_5="Heading 5"
RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="Access ascending"
RL_HEADING_ACCESS_DESC="Access descending"
RL_HEADING_CATEGORY_ASC="Category ascending"
RL_HEADING_CATEGORY_DESC="Category descending"
RL_HEADING_CLIENTID_ASC="Location ascending"
RL_HEADING_CLIENTID_DESC="Location descending"
RL_HEADING_COLOR_ASC="Colour ascending"
RL_HEADING_COLOR_DESC="Colour descending"
RL_HEADING_DEFAULT_ASC="Default ascending"
RL_HEADING_DEFAULT_DESC="Default descending"
RL_HEADING_DESCRIPTION_ASC="Description ascending"
RL_HEADING_DESCRIPTION_DESC="Description descending"
RL_HEADING_ID_ASC="ID ascending"
RL_HEADING_ID_DESC="ID descending"
RL_HEADING_LANGUAGE_ASC="Language ascending"
RL_HEADING_LANGUAGE_DESC="Language descending"
RL_HEADING_ORDERING_ASC="Ordering ascending"
RL_HEADING_ORDERING_DESC="Ordering descending"
RL_HEADING_PAGES_ASC="Menu Items ascending"
RL_HEADING_PAGES_DESC="Menu Items descending"
RL_HEADING_POSITION_ASC="Position ascending"
RL_HEADING_POSITION_DESC="Position descending"
RL_HEADING_STATUS_ASC="Status ascending"
RL_HEADING_STATUS_DESC="Status descending"
RL_HEADING_STYLE_ASC="Style ascending"
RL_HEADING_STYLE_DESC="Style descending"
RL_HEADING_TEMPLATE_ASC="Template ascending"
RL_HEADING_TEMPLATE_DESC="Template descending"
RL_HEADING_TITLE_ASC="Title ascending"
RL_HEADING_TITLE_DESC="Title descending"
RL_HEADING_TYPE_ASC="Type ascending"
RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Height"
RL_HEMISPHERE="Hemisphere"
RL_HEMISPHERE_DESC="Select the hemisphere your website is located
in"
RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Home Page"
RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Icon only"
RL_IGNORE="Ignore"
RL_IMAGE="Image"
RL_IMAGE_ALT="Image Alt"
RL_IMAGE_ALT_DESC="The Alt value of the image."
RL_IMAGE_ATTRIBUTES="Image Attributes"
RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Import Items"
RL_INCLUDE="Include"
RL_INCLUDE_CHILD_ITEMS="Include child items"
RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the selected
items?"
RL_INCLUDE_NO_ITEMID="Include no Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in
URL?"
RL_INITIALISE_EVENT="Initialise on Event"
RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
RL_INPUT_TYPE="Input Type"
RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
RL_INPUT_TYPE_ARRAY="An array."
RL_INPUT_TYPE_BOOLEAN="A boolean value."
RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores, periods
or hyphens (not case sensitive)."
RL_INPUT_TYPE_DESC="Select an input type:"
RL_INPUT_TYPE_FLOAT="A floating point number, or an array of floating
point numbers."
RL_INPUT_TYPE_INT="An integer, or an array of integers."
RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Insert"
RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP Addresses / Ranges"
RL_IP_RANGES_DESC="A comma and/or enter separated list of IP addresses
and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Addresses"
RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="Item"
RL_ITEM_IDS="Item IDs"
RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="Items"
RL_ITEMS_DESC="Select the items to assign to."
RL_JCONTENT="Joomla! Content"
RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version of
%1$s on Joomla 3. Please reinstall %1$s to fix the problem."
RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Categories"
RL_LANGUAGE="Language"
RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Languages"
RL_LANGUAGES_DESC="Select the languages to assign to."
RL_LAYOUT="Layout"
RL_LAYOUT_DESC="Select the layout to use. You can override this layout
in the component or template."
RL_LESS_THAN="Less than"
RL_LEVELS="Levels"
RL_LEVELS_DESC="Select the levels to assign to."
RL_LIB="Library"
RL_LINK_TEXT="Link Text"
RL_LINK_TEXT_DESC="The text to display as link."
RL_LIST="List"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
RL_LOAD_JQUERY="Load jQuery Script"
RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Load Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
RL_LOAD_STYLESHEET="Load Stylesheet"
RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet. You
can disable this if you place all your own styles in some other stylesheet,
like the templates stylesheet."
RL_LOW="Low"
RL_LTR="Left-to-Right"
RL_MATCH_ALL="Match All"
RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Matching Method"
RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maximum List Count"
RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in the
multi-select lists. If the total number of items is higher, the selection
field will be displayed as a text field.<br><br>You can set
this number lower if you experience long pageloads due to high number of
items in lists."
RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximize"
RL_MEDIA_VERSIONING="Use Media Versioning"
RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Medium"
RL_MENU_ITEMS="Menu Items"
RL_MENU_ITEMS_DESC="Select the menu items to assign to."
RL_META_KEYWORDS="Meta Keywords"
RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimize"
RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="Module"
RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Months"
RL_MONTHS_DESC="Select months to assign to."
RL_MORE_INFO="More info"
RL_MY_STRING="My string!"
RL_N_ITEMS_ARCHIVED="%s items archived."
RL_N_ITEMS_ARCHIVED_1="%s item archived."
RL_N_ITEMS_CHECKED_IN_0="No items checked in."
RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
RL_N_ITEMS_DELETED="%s items deleted."
RL_N_ITEMS_DELETED_1="%s item deleted."
RL_N_ITEMS_FEATURED="%s items featured."
RL_N_ITEMS_FEATURED_1="%s item featured."
RL_N_ITEMS_PUBLISHED="%s items published."
RL_N_ITEMS_PUBLISHED_1="%s item published."
RL_N_ITEMS_TRASHED="%s items trashed."
RL_N_ITEMS_TRASHED_1="%s item trashed."
RL_N_ITEMS_UNFEATURED="%s items unfeatured."
RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d items updated."
RL_N_ITEMS_UPDATED_1="One item has been updated"
RL_NEW_CATEGORY="Create New Category"
RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="A new version is available"
RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
RL_NO_ICON="No icon"
RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="Normal"
RL_NORTHERN="Northern"
RL_NOT="Not"
RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
RL_NOT_CONTAINS="Does not contain"
RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Only"
RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="This message will only be displayed to
(Super) Administrators."
RL_OPTION_SELECT="- Select -"
RL_OPTION_SELECT_CLIENT="- Select Client -"
RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
RL_ORDERING="Sort Order"
RL_ORDERING_PRIMARY="Primary Sort Order"
RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operating Systems"
RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
RL_OTHER="Other"
RL_OTHER_AREAS="Other Areas"
RL_OTHER_OPTIONS="Other Options"
RL_OTHER_SETTINGS="Other Settings"
RL_OTHERS="Others"
RL_PAGE_TYPES="Page types"
RL_PAGE_TYPES_DESC="Select on what page types the assignment should be
active."
RL_PHP="Custom PHP"
RL_PHP_DESC="Enter a piece of PHP code to evaluate. The code must
return the value true or false.<br><br>For
instance:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Place HTML comments"
RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Editor Button Plugin"
RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="System Plugin"
RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postal Codes"
RL_POSTALCODES_DESC="A comma separated list of postal codes (12345) or
postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Products"
RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="Publishing Assignments"
RL_PUBLISHING_SETTINGS="Publish items"
RL_RANDOM="Random"
RL_REDSHOP="RedShop"
RL_REGEX="Regular Expressions"
RL_REGIONS="Regions / States"
RL_REGIONS_DESC="Select the regions / states to assign to."
RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled Components"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin syntax
will get removed from the component. If not, the original plugins syntax
will remain intact."
RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Crop"
RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the set
width and height."
RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Folder"
RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based on
the Height defined below and the aspect ratio of the original image."
RL_RESIZE_IMAGES_QUALITY="JPG Quality"
RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
RL_RESIZE_IMAGES_SCALE="Scale"
RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to the
maximum width or height maintaining its aspect ratio."
RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
RL_RESIZE_IMAGES_TYPE="Resize Method"
RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Right-to-Left"
RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Seasons"
RL_SEASONS_DESC="Select seasons to assign to."
RL_SELECT="Select"
RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="Select an Article"
RL_SELECT_FIELD="Select Field"
RL_SELECTED="Selected"
RL_SELECTION="Selection"
RL_SELECTION_DESC="Select whether to include or exclude the selection
for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
RL_SETTINGS_SECURITY="Security Options"
RL_SHOW_ASSIGNMENTS="Show Assignments"
RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
RL_SHOW_COPYRIGHT="Show Copyright"
RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
RL_SHOW_HELP_MENU="Show Help Menu Item"
RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Show Button Icon"
RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the
Editor Button."
RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update notification
will be shown in the main component view when there is a new version for
this extension."
RL_SIMPLE="Simple"
RL_SLIDES="Slides"
RL_SOUTHERN="Southern"
RL_SPECIFIC="Specific"
RL_SPRING="Spring"
RL_START="Start"
RL_START_PUBLISHING="Start Publishing"
RL_START_PUBLISHING_DESC="Enter the date to start publishing"
RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the output
of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Styling"
RL_SUMMER="Summer"
RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Tabs"
RL_TAG_CHARACTERS="Tag Characters"
RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Tag Syntax"
RL_TAG_SYNTAX_DESC="The word to be used in the
tags.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAGS="Tags"
RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate the
tags."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Select the templates to assign to."
RL_TEXT="Text"
RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Text only"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="This extension
needs %s to function correctly!"
RL_TIME="Time"
RL_TIME_FINISH_PUBLISHING_DESC="Enter the time to end
publishing.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Enter the time to start
publishing.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Toggle"
RL_TOOLTIP="Tooltip"
RL_TOP="Top"
RL_TOTAL="Total"
RL_TYPES="Types"
RL_TYPES_DESC="Select the types to assign to."
RL_UNSELECT_ALL="Unselect All"
RL_UNSELECTED="Unselected"
RL_UPDATE_TO="Update to version %s"
RL_URL="URL"
RL_URL_PARAM_NAME="Parameter Name"
RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL matches"
RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="Use Custom Code"
RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
RL_USE_SIMPLE_BUTTON="Use Simple Button"
RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button, that
simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="User Group Levels"
RL_USER_GROUPS="User Groups"
RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="User IDs"
RL_USER_IDS_DESC="Enter the user ids to assign to. Use commas to
separate ids."
RL_USERS="Users"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="View"
RL_VIEW_DESC="Select what default view should be used when creating a
new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Width"
RL_WINTER="Winter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Categories"

;; NO NEED TO TRANSLATE THESE
ADDTOMENU="Add to Menu"
ADVANCEDMODULEMANAGER="Advanced Module Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ARTICLESANYWHERE="Articles Anywhere"
ARTICLESFIELD="Articles Field"
BETTERPREVIEW="Better Preview"
BETTERTRASH="Better Trash"
CACHECLEANER="Cache Cleaner"
CDNFORJOOMLA="CDN for Joomla!"
COMPONENTSANYWHERE="Components Anywhere"
CONDITIONALCONTENT="Conditional Content"
CONTENTTEMPLATER="Content Templater"
DBREPLACER="DB Replacer"
DUMMYCONTENT="Dummy Content"
EMAILPROTECTOR="Email Protector"
EXTENSIONMANAGER="Regular Labs Extension Manager"
REGULARLABSEXTENSIONMANAGER="Regular Labs Extension Manager"
GEOIP="GeoIP"
IPLOGIN="IP Login"
KEYBOARDSHORTCUTS="Keyboard Shortcuts"
MODALS="Modals"
MODULESANYWHERE="Modules Anywhere"
QUICKINDEX="Quick Index"
REREPLACER="ReReplacer"
SIMPLEUSERNOTES="Simple User Notes"
SLIDERS="Sliders"
SNIPPETS="Snippets"
SOURCERER="Sourcerer"
TABS="Tabs"
TABSACCORDIONS="Tabs & Accordions"
TOOLTIPS="Tooltips"
WHATNOTHING="What? Nothing!"
;; FOR BACKWARDS COMPATIBILITY
ADD_TO_MENU="Add to Menu"
ADVANCED_MODULE_MANAGER="Advanced Module Manager"
ADVANCED_TEMPLATE_MANAGER="Advanced Template Manager"
ARTICLES_ANYWHERE="Articles Anywhere"
ARTICLES_FIELD="Articles Field"
BETTER_PREVIEW="Better Preview"
BETTER_TRASH="Better Trash"
CACHE_CLEANER="Cache Cleaner"
CDN_FOR_JOOMLA="CDN for Joomla!"
COMPONENTS_ANYWHERE="Components Anywhere"
CONDITIONAL_CONTENT="Conditional Content"
CONTENT_TEMPLATER="Content Templater"
DB_REPLACER="DB Replacer"
DUMMY_CONTENT="Dummy Content"
EMAIL_PROTECTOR="Email Protector"
REGULAR_LABS_EXTENSION_MANAGER="Regular Labs Extension Manager"
IP_LOGIN="IP Login"
KEYBOARD_SHORTCUTS="Keyboard Shortcuts"
MODULES_ANYWHERE="Modules Anywhere"
QUICK_INDEX="Quick Index"
SIMPLE_USER_NOTES="Simple User Notes"
WHAT_NOTHING="What? Nothing!"
PK�X�[�E|i__?regularlabs/language/en-GB/en-GB.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - used by Regular
Labs extensions"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[����;regularlabs/language/es-ES/es-ES.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizado por las
extensiones Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Las extensiones Regular Labs
necesitan este plugin y no funcionarán sin él..<br><br>Las
extensiones Regular Labs incluyen:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="No desinstales o desactives este
plugin si estás usando extensiones Regular Labs."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Registro de acciones del
usuario"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxis de la etiqueta"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descripción"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descripción"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportamiento"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Configuración por
defecto"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opciones del
módulo de administrador"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opciones del
botón del editor"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Opciones de
seguridad"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Configurar"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Estilo"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxis de la
etiqueta"

RL_ACCESS_LEVELS="Niveles de Acceso"
RL_ACCESS_LEVELS_DESC="Selecciona los niveles de acceso a
asignar."
RL_ACTION_CHANGE_DEFAULT="Cambiar predeterminado"
RL_ACTION_CHANGE_STATE="Cambiar estado de publicación"
RL_ACTION_CREATE="Crear"
RL_ACTION_DELETE="Eliminar"
RL_ACTION_INSTALL="Instalar"
RL_ACTION_UNINSTALL="Desinstalar"
RL_ACTION_UPDATE="Actualización"
RL_ACTIONLOG_EVENTS="Eventos para registrar"
RL_ACTIONLOG_EVENTS_DESC="Seleccione las acciones para incluir en el
Registro de acciones del usuario."
RL_ADMIN="Administrador"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avanzado"
RL_AFTER="Después"
RL_AFTER_NOW="Después de ahora"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="TODO"
RL_ALL_DESC="Se publicará si <strong>TODAS</strong> las
asignaciones inferiores se cumplen."
RL_ALL_RIGHTS_RESERVED="Todos los derechos reservados"
RL_ALSO_ON_CHILD_ITEMS="También en ítems hijos"
RL_ALSO_ON_CHILD_ITEMS_DESC="Asignar también a los ítems hijos de
los ítems seleccionados?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Los elementos hijos hacen
referencia al elemento actual en la selección anterior. No se refieren a
enlaces en las paginas seleccionadas."
RL_ANY="ALGUNA"
RL_ANY_DESC="Se publicará si <strong>ALGUNA</strong> (una
o más) de las asignaciones inferiores se cumplen.<br>Se ignorará
los grupos de asignación donde se haya seleccionado
'Ignore'."
RL_ARE_YOU_SURE="¿ Está seguro ?"
RL_ARTICLE="Artículo"
RL_ARTICLE_AUTHORS="Autores"
RL_ARTICLE_AUTHORS_DESC="Selecciona los autores a asignar."
RL_ARTICLES="Artículos"
RL_ARTICLES_DESC="Seleccione los artículos a asignar."
RL_AS_EXPORTED="Como exportado"
RL_ASSIGNMENTS="Asignaciones"
RL_ASSIGNMENTS_DESC="Al seleccionar las asignaciones especiales puedes
limitar donde el %s debería o no ser publicado.<br>Para tenerlo
publicado en todas las paginas, simplemente no especifique ninguna
asignación."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Autores"
RL_AUTO="Auto"
RL_BEFORE="Antes"
RL_BEFORE_NOW="Antes de ahora"
RL_BEGINS_WITH="Inicia con"
RL_BEHAVIOR="Comportamiento"
RL_BEHAVIOUR="Comportamiento"
RL_BETWEEN="Entre"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Has des habilitado el inicio del
Fraamework Bootstrap. %sNecesitan el funcionamiento del Framework
Bootstrap. Asegúrate que tu plantilla u otra extension, cargan los
códigos necesarios para reemplazar la funcionalidad requerida."
RL_BOTH="Ambos"
RL_BOTTOM="Abajo"
RL_BROWSERS="Navegadores"
RL_BROWSERS_DESC="Seleccionar los navegadores a asignar. Ten en cuenta
que la detección del navegador nunca es100&#37; impermeable. Los
usuarios pueden configurar sus navegadores para mimetizar a otros
navegadores."
RL_BUTTON_ICON="Icon ode Botón"
RL_BUTTON_ICON_DESC="Selecciona cual icono se mostrara en el
botón."
RL_BUTTON_TEXT="Texto del Botón"
RL_BUTTON_TEXT_DESC="Este texto será mostrado en el botón del editor
que utilice."
RL_CACHE_TIME="Duración caché"
RL_CACHE_TIME_DESC="El tamaño máximo de tiempo en minutos que se
pueden almacenar los archivos cache antes de la recarga .Dejar vació para
usar los ajustes globales."
RL_CATEGORIES="Categorías"
RL_CATEGORIES_DESC="Selecciona las categorías a asignar."
RL_CATEGORY="Categoría"
RL_CHANGELOG="Registro de cambios"
RL_CLASSNAME="Clase CSS"
RL_COLLAPSE="Colapsar"
RL_COM="Componente"
RL_COMBINE_ADMIN_MENU="Combinar menu de Administrador"
RL_COMBINE_ADMIN_MENU_DESC="Selecciona para combinar todos los
componentes RegularLabs en un submenu, en el menu del administrador."
RL_COMPARISON="Comparación"
RL_COMPONENTS="Componentes"
RL_COMPONENTS_DESC="Selecciona los componentes a asignar."
RL_CONTAINS="Contiene"
RL_CONTAINS_ONE="Contiene uno de"
RL_CONTENT="Contenido"
RL_CONTENT_KEYWORDS="Teclas de Contenido"
RL_CONTENT_KEYWORDS_DESC="Ingrese las palabras clave encontradas en el
contenido para asignar. Use comas para separar las palabras clave."
RL_CONTINENTS="Continentes"
RL_CONTINENTS_DESC="Seleccione los continentes para asignar."
RL_COOKIECONFIRM="Confirmar Cookie"
RL_COOKIECONFIRM_COOKIES="Cookies Permitidas"
RL_COOKIECONFIRM_COOKIES_DESC="Asigna a cuales cookies se las permite
o deshabilita, basado en la configuración de Cookie Confirm (por
Twentronix) y el visitante elige aceptar o denegar cookies."
RL_COPY_OF="Copia de %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Paises"
RL_COUNTRIES_DESC="Selecciona los países a asignar."
RL_CSS_CLASS="Clase(CSS)"
RL_CSS_CLASS_DESC="Define el nombre una clase css para propósitos de
estilizado."
RL_CURRENT="Actual"
RL_CURRENT_DATE="Fecha/hora actual:
<strong>%s</strong>"
RL_CURRENT_USER="Usuario actual"
RL_CURRENT_VERSION="Su versión actual es %s"
RL_CUSTOM="Personalizado"
RL_CUSTOM_CODE="Código personalizado"
RL_CUSTOM_CODE_DESC="Ingrese el código que el botón del editor debe
insertar en el contenido (En lugar del código por defecto)"
RL_CUSTOM_FIELD="Campos Personalizados"
RL_CUSTOM_FIELDS="Campos personalizados"
RL_DATE="Fecha"
RL_DATE_DESC="Seleccione el tipo de comparación de fechas para
asignar."
RL_DATE_FROM="Desde"
RL_DATE_RECURRING="Recurrente"
RL_DATE_RECURRING_DESC="Seleccione para aplicar un rango de fechas
cada año. (Así se ignorara el año en la selección)"
RL_DATE_TIME="Fecha y hora"
RL_DATE_TIME_DESC="La fecha y hora de las asignaciones usa la
fecha/hora de tus servidores, no la de los sistemas visitantes."
RL_DATE_TO="Hasta"
RL_DAYS="Días de la semana"
RL_DAYS_DESC="Selecciona los días de la semana a asignar."
RL_DEFAULT_ORDERING="Ordenamiento predeterminado"
RL_DEFAULT_ORDERING_DESC="Seleccione el orden predeterminado de los
elementos de la lista."
RL_DEFAULT_SETTINGS="Configuración por defecto"
RL_DEFAULTS="Por defecto"
RL_DEVICE_DESKTOP="Escritorio"
RL_DEVICE_MOBILE="Móvil"
RL_DEVICE_TABLET="Tableta"
RL_DEVICES="Dispositivos"
RL_DEVICES_DESC="Seleccione los dispositivos a ser asignados. Tenga en
mente que la detección de dispositivos no es 100&#37; precisa. Los
usuarios pueden configurar que su dispositivo simule a otros."
RL_DIRECTION="Dirección"
RL_DIRECTION_DESC="Seleccione la dirección"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Selecciones en cuales componentes
del Administrador NO se habilitara el uso de esta extensión."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Selecciones en cuales componentes
NO se habilitara el uso de esta extensión."
RL_DISABLE_ON_COMPONENTS="Desactivar en Componentes"
RL_DISABLE_ON_COMPONENTS_DESC="Selecciones en cuales componentes de la
Interfaz NO se habilitara el uso de esta extensión."
RL_DISPLAY_EDITOR_BUTTON="Mostrar Boton de Editor"
RL_DISPLAY_EDITOR_BUTTON_DESC="Seleccione un botón editor a
mostrar."
RL_DISPLAY_LINK="Mostrar enlace"
RL_DISPLAY_LINK_DESC="¿Cómo quiere que el enlace que se
muestra?"
RL_DISPLAY_TOOLBAR_BUTTON="Mostrar Botón de Barra de
Herramientas."
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Seleccione para mostrar un botón en
la barra de herramientas."
RL_DISPLAY_TOOLBAR_BUTTONS="Mostrar botones de la barra de
herramientas"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Mostar Tooltip"
RL_DISPLAY_TOOLTIP_DESC="Seleccione para mostrar un tooltip con
información adicional cuando pase el mouse sobre el enlace/ícono."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Un número aleatorio dentro del rango
determinado"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Una cadena de idioma para traducir a texto
(basada en el idioma activo)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="El número de identificación del
usuario"
RL_DYNAMIC_TAG_USER_NAME="El nombre del usuario"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="El nombre de inicio de sesión del
usuario"
RL_DYNAMIC_TAGS="Etiquetas dinámicas"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Activar"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Habilitar"
RL_ENABLE_IN_ADMIN="Habilitar Administrador"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Activar para artículos"
RL_ENABLE_IN_COMPONENTS="Activar para componentes"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Activar en frontend"
RL_ENABLE_IN_FRONTEND_DESC="Si está activado, sino que también
estará disponible en el frontend."
RL_ENABLE_OTHER_AREAS="Activar para otras áreas"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Excluir"
RL_EXPAND="Expandir"
RL_EXPORT="Exportar"
RL_EXPORT_FORMAT="Exportar Formato"
RL_EXPORT_FORMAT_DESC="Seleccione el formato para exportar los
archivos."
RL_EXTRA_PARAMETERS="Parámetros extra"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Otoño"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nombre del campo"
RL_FIELD_PARAM_MULTIPLE="Multiple"
RL_FIELD_PARAM_MULTIPLE_DESC="Permitir multiples valores a
seleccionar."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Valor de Campo"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="%s archivos requeridos no encontrados"
RL_FILTERS="Filtros"
RL_FINISH_PUBLISHING="Finalizar publicación"
RL_FINISH_PUBLISHING_DESC="Introduce la fecha para finalizar
publicación"
RL_FIX_HTML="Reparar HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Para más funcionalidades pueder comprar la
Pro."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Galeria"
RL_GEO="Geolocalización"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
RL_GEO_GEOIP_COPYRIGHT_DESC="Este producto incluye GeoLite2 datos
creados por MaxMind, disponible en [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Ir Pro"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Titulo 1"
RL_HEADING_2="Titulo 2"
RL_HEADING_3="Titulo 3"
RL_HEADING_4="Titulo 4"
RL_HEADING_5="Titulo 5"
RL_HEADING_6="Titulo 6"
RL_HEADING_ACCESS_ASC="Acceso Ascendente"
RL_HEADING_ACCESS_DESC="Acceso Descendente"
RL_HEADING_CATEGORY_ASC="Categoría Ascendente"
RL_HEADING_CATEGORY_DESC="Categoría Descendente"
RL_HEADING_CLIENTID_ASC="Locación Ascendente"
RL_HEADING_CLIENTID_DESC="Locación Descendente"
RL_HEADING_COLOR_ASC="Color Ascendente"
RL_HEADING_COLOR_DESC="Color Descendente"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
RL_HEADING_DESCRIPTION_ASC="Descripción Ascendente"
RL_HEADING_DESCRIPTION_DESC="Descripción Descendente"
RL_HEADING_ID_ASC="ID ascendente"
RL_HEADING_ID_DESC="ID descencente"
RL_HEADING_LANGUAGE_ASC="Idioma Ascendente"
RL_HEADING_LANGUAGE_DESC="Idioma Descendente"
RL_HEADING_ORDERING_ASC="Orden Ascendente"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
RL_HEADING_STATUS_ASC="aumento"
RL_HEADING_STATUS_DESC="Reducir estado"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
RL_HEADING_TITLE_ASC="Aumentando título"
RL_HEADING_TITLE_DESC="Reduciendo t´tulo"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Altura"
RL_HEMISPHERE="Hemisferio"
RL_HEMISPHERE_DESC="Selecciona el hemisferio en el que está
localizado tu sitio web"
RL_HIGH="Alto"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Página inicial"
RL_HOME_PAGE_DESC="A diferencia de la selección del elemento de la
página de inicio (por defecto) a través de las opciones del menú, esto
sólo coincidirá con la página de inicio real, no cualquier URL que tiene
el mismo Itemid que el elemento de menú de inicio.<br><br>Esto
podría no funcionar para todas las extensiones 3 ª Parte."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Sólo el icono"
RL_IGNORE="Ignorar"
RL_IMAGE="Imagen"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importar"
RL_IMPORT_ITEMS="Importar Items"
RL_INCLUDE="Incluir"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="No incluir ItemID"
RL_INCLUDE_NO_ITEMID_DESC="¿Asignar también cuando no hay un ItemID
de menú activo en la URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Insertar"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="Direcciones IP"
RL_IS_FREE_VERSION="Esta es la versión FREE de %s."
RL_ITEM="Item"
RL_ITEM_IDS="ID de items"
RL_ITEM_IDS_DESC="Ingrese los id de items para asignar. Use comas para
separar los id"
RL_ITEMS="Ítems"
RL_ITEMS_DESC="Seleccione los elementos a asignar."
RL_JCONTENT="Contenido Joomla"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="Categorías K2"
RL_LANGUAGE="Idioma"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Idiomas"
RL_LANGUAGES_DESC="Selecciona los idiomas a asignar."
RL_LAYOUT="Diseño"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Niveles"
RL_LEVELS_DESC="Seleccionar los niveles a asignar."
; RL_LIB="Library"
RL_LINK_TEXT="Texto del Link"
RL_LINK_TEXT_DESC="El texto a mostrar como link."
RL_LIST="Lista"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Cargar MooTools"
RL_LOAD_MOOTOOLS_DESC="Seleccionar para cargar el script MooTools.
Podeis desactivar esto si teneis conflictos con la plantilla u otras
extensiones."
RL_LOAD_STYLESHEET="Cargar hojas de estilos"
RL_LOAD_STYLESHEET_DESC="Elija para cargar las hojas de estilo de las
extensiones. Puede deshabilitar es si quiere cargar sus propios estilos,
como los del template"
RL_LOW="Bajo"
RL_LTR="Izquierda a derecha"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Método emparejamiento"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximizar"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Mediano"
RL_MENU_ITEMS="Ítems de menú"
RL_MENU_ITEMS_DESC="Seleccionar los ítems de menú a asignar."
RL_META_KEYWORDS="Meta palabras clave"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimizar"
RL_MOBILE_BROWSERS="Navegadores dispositivos móviles"
RL_MOD="Módulo"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Meses"
RL_MONTHS_DESC="Seleccionar meses a asignar."
RL_MORE_INFO="Más info"
RL_MY_STRING="Mi cadena!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d items actualizados."
RL_N_ITEMS_UPDATED_1="Un Item fue actalizado"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Una nueva versión está disponible"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
RL_NO_ITEMS_FOUND="No se han encontrado artículos."
RL_NORMAL="Normal"
RL_NORTHERN="Septentrional"
RL_NOT="No"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Solo"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Solo disponible en la versión
PRO!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Este mensaje solo se muestra a (super)
administradores"
RL_OPTION_SELECT="- Seleccionar -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Sistemas Operativos"
RL_OS_DESC="Seleccione los sistemas operativos para asignar. Tenga en
cuenta que la detección del sistema operativo nunca es 100&#37;
transparente. Los usuarios pueden configurar su navegador para imitar otros
sistemas operativos."
; RL_OTHER="Other"
RL_OTHER_AREAS="Otras áreas"
RL_OTHER_OPTIONS="Otras opciones"
RL_OTHER_SETTINGS="Otras configuraciones"
RL_OTHERS="Otros"
RL_PAGE_TYPES="Tipos de página"
RL_PAGE_TYPES_DESC="Seleccionar en qué tipos de página debería
activarse la asignación."
; RL_PHP="Custom PHP"
RL_PHP_DESC="Introduce un trozo de código PHP para evaluar. El
código debe devolver el valor cierto o falso.<br><br>Por
ejemplo:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Colocar comentarios HTML"
RL_PLACE_HTML_COMMENTS_DESC="Por defecto, los comentarios HTML se
colocan alrededor de la salida de esta extensión.<br><br>Estos
comentarios pueden ayudarte a resolver problemas cuando no obtienes la
salida que esperas.<br><br>Si prefieres no dejar estos
comentarios en la salida HTML, desactiva esta opción."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Botón del editor"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Plugin del sistema"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Productos"
RL_PUBLISHED_DESC="Puede utilizar esto para deshabilitar el artículo
(temporalmente)."
RL_PUBLISHING_ASSIGNMENTS="Asignaciones publicadas"
RL_PUBLISHING_SETTINGS="Publicar Items"
RL_RANDOM="Aleatorio"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Recortar"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Carpeta"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Derecha a izquierda"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Estaciones"
RL_SEASONS_DESC="Selecciona las estaciones a asignar."
RL_SELECT="Seleccionar"
RL_SELECT_A_CATEGORY="Seleccione una categoría"
RL_SELECT_ALL="Seleccionar todo"
RL_SELECT_AN_ARTICLE="Selecciona un artículo"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Seleccionar"
RL_SELECTION="Selección"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="Opciones del módulo de administrador"
RL_SETTINGS_EDITOR_BUTTON="Opciones del botón del editor"
RL_SETTINGS_SECURITY="Opciones de seguridad"
RL_SHOW_ASSIGNMENTS="Mostrar asignaciones"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Mostrar icono en el botón"
RL_SHOW_ICON_DESC="Si se selecciona, el icono se mostrará en el
botón del editor."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Simple"
; RL_SLIDES="Slides"
RL_SOUTHERN="Meridional"
; RL_SPECIFIC="Specific"
RL_SPRING="Primavera"
RL_START="Inicio"
RL_START_PUBLISHING="Comenzar publicación"
RL_START_PUBLISHING_DESC="Introducir la fecha para comenzar la
publicación"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Estilo"
RL_SUMMER="Verano"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Pestañas"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Sintaxis de la etiqueta"
RL_TAG_SYNTAX_DESC="La palabra para usar en las
etiquetas.<br><br><strong>Note:</strong>Si cambias
esto, todas las etiquetas existentes hasta ahora dejarán de
funcionar."
RL_TAGS="Etiquetas"
RL_TAGS_DESC="Ingrese las etiquetas para asignar. Separe las etiquetas
con comas"
RL_TEMPLATES="Plantillas"
RL_TEMPLATES_DESC="Selecciona las aplantillas a asignar."
RL_TEXT="Texto"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Sólo texto"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="¡Esta
extensión necesita %s para funcionar correctamente!"
RL_TIME="Hora"
RL_TIME_FINISH_PUBLISHING_DESC="Introduce la hora para finalizar la
publicación.<br><br><strong>Formato:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Introduce la hora para comenzar la
publicación.<br><br><strong>Formato:</strong>
23:59"
RL_TOGGLE="Conmutar"
RL_TOOLTIP="Tooltip"
RL_TOP="Arriba"
RL_TOTAL="Total"
RL_TYPES="Tipos"
RL_TYPES_DESC="Tipos de items"
RL_UNSELECT_ALL="Des-seleccinar todo"
RL_UNSELECTED="Sin seleccionar"
RL_UPDATE_TO="Actualizar versión %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Coincidencias de URL"
RL_URL_PARTS_DESC="Introduce (parte de) las URLs a
emparejar.<br><br>Usa una línea nueva para cada condición
diferente."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="Usar código personalizado"
RL_USE_CUSTOM_CODE_DESC="Si se selecciona, el botón del editor
colocará código dado en su lugar"
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Niveles de grupos de usuarios"
RL_USER_GROUPS="Grupos de usuarios"
RL_USER_GROUPS_DESC="Seleccione el grupo de usuario para asgnar"
RL_USER_IDS="IDs usuarios"
RL_USER_IDS_DESC="Introduce las IDs de usuarios a asignar. Usa comas
para separar las IDs."
RL_USERS="Usuarios"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Ver"
RL_VIEW_DESC="Selecciona el tipo de vista por defecto al crear un
item"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Ancho"
RL_WINTER="Invierno"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categorías ZOO"
PK�X�[�r�kk?regularlabs/language/es-ES/es-ES.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizado por las
extensiones Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�%I��{�{;regularlabs/language/et-EE/et-EE.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Süsteem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - Regular Labs
laienduste jaoks"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs laiendused ei
tööta ilma selle pluginata.<br><br>Regular Labs laiendused
on:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Ära eemalda ega keela seda
pluginat, kuna seda vajavad kõik Regular Labs laiendused."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Kasutajate toimingute
logi"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sildi süntaks"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Kirjeldus"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Kirjeldus"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Käitumine"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Vaikeseaded"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Meedia"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administraatori
mooduli seaded"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Redaktori
laiendusnupu seaded"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Turvalisuse
seaded"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Seadistamine"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Kujundamine"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Taxi süntaks"

RL_ACCESS_LEVELS="Juurdepääsu tasemed"
RL_ACCESS_LEVELS_DESC="Vali juurdepääsutasemed, millega
siduda."
RL_ACTION_CHANGE_DEFAULT="Muuda vaikeväärtust"
RL_ACTION_CHANGE_STATE="Muuda avaldamise staatust"
RL_ACTION_CREATE="Loo"
RL_ACTION_DELETE="Kustuta"
RL_ACTION_INSTALL="Paigalda"
RL_ACTION_UNINSTALL="Eemalda"
RL_ACTION_UPDATE="Uuenda"
RL_ACTIONLOG_EVENTS="Sündmused, mida logida"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Adminnis"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Täpsemalt"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="KÕIK"
RL_ALL_DESC="Avaldatakse kui <strong>KÕIK</strong>
määratud ülesanded klapivad."
RL_ALL_RIGHTS_RESERVED="Kõik õigused kaitstud"
RL_ALSO_ON_CHILD_ITEMS="Ka alamüksustele"
RL_ALSO_ON_CHILD_ITEMS_DESC="Kas rakendada ka valitud elementide
alamüksustele?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Alam esemed viitavad nende
alam-esemetele siin valikus. Nad ei viita linkidele valitud lehtedel."
RL_ANY="MÕNI"
RL_ANY_DESC="Avalikustatakse kui <strong>MÕNI</strong>
üleval olev sidumine klapib.<br>Sidumise grupid, mis on määratud
kui 'eiratud', neid ikkagi eiratakse."
RL_ARE_YOU_SURE="Oled kindel?"
RL_ARTICLE="Artikkel"
RL_ARTICLE_AUTHORS="Autorid"
RL_ARTICLE_AUTHORS_DESC="Vali autorid, millega siduda."
RL_ARTICLES="Artiklid"
RL_ARTICLES_DESC="Vali artiklid, millega siduda."
RL_AS_EXPORTED="Nagu eksporditud"
RL_ASSIGNMENTS="Seosed"
RL_ASSIGNMENTS_DESC="Määrates sidumisi, saad sa piirata kus %s
näidatakse või ei näidata.<br>Kui soovid, et oleks seotud igal
pool, siis pole ühtegi sidumist vaja määrata."
RL_AUSTRALIA="Austraalia"
RL_AUTHORS="Autorid"
RL_AUTO="Automaatne"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Käitumine"
RL_BEHAVIOUR="Käitumine"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Eellaadimine"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Bootstrap raamistik on keelatud. %s
aga vajab seda oma töös. Veendu, et sinu kujundus või mõni muu lisa
laeb vajalikud skriptid."
RL_BOTH="Mõlemad"
RL_BOTTOM="Alla"
RL_BROWSERS="Brauserid"
RL_BROWSERS_DESC="Vali brauserid millega siduda. Tea, et brauseri
tuvastamine pole 100% töötav lahendus."
RL_BUTTON_ICON="Nupu ikoon"
RL_BUTTON_ICON_DESC="Vali, millist ikooni nupul näidatakse."
RL_BUTTON_TEXT="Nupu tekst"
RL_BUTTON_TEXT_DESC="Seda teksti näidatakse redaktori nupu
peal."
RL_CACHE_TIME="Puhvri aeg"
RL_CACHE_TIME_DESC="Maksimaalne aeg minutitets, mil andmeid
puhverdatakse. Tühjaks jättes rakendatakse vaikeseaded."
RL_CATEGORIES="Kategooriad"
RL_CATEGORIES_DESC="Vali kategooriad, millega siduda."
; RL_CATEGORY="Category"
RL_CHANGELOG="Muudatuste logi"
RL_CLASSNAME="CSS klass"
RL_COLLAPSE="Koonda"
RL_COM="Komponent"
RL_COMBINE_ADMIN_MENU="Kombineeri adminiliidese menüüd"
RL_COMBINE_ADMIN_MENU_DESC="Vali, et panna kõik Regular Labsi lisad
adminiliidese menüüs ühe lingi alla alammenüüks."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponendid"
RL_COMPONENTS_DESC="Vali komponendid, millega siduda."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Sisu"
RL_CONTENT_KEYWORDS="Sisu võtmesõnad"
RL_CONTENT_KEYWORDS_DESC="Sisesta võtmesõnad, millega sisu siduda.
Võtmesõnad eralda komaga."
RL_CONTINENTS="Kontinendid"
RL_CONTINENTS_DESC="Vali kontinente, millega siduda."
RL_COOKIECONFIRM="Küpsistega nõustumine"
RL_COOKIECONFIRM_COOKIES="Küpsised lubatud"
RL_COOKIECONFIRM_COOKIES_DESC="Kas küpsised on lubatud või keelatud,
baseerub Cookie Confirm (Twentronix'i toode) skriptil, mille põhjal
kasutajatele antakse valida, kas küpsistega nõustutakse või mitte."
RL_COPY_OF="Koopia %s"
RL_COPYRIGHT="Autoriõigused"
RL_COUNTRIES="Riigid"
RL_COUNTRIES_DESC="Vali riigid, millega siduda."
RL_CSS_CLASS="Klass (CSS)"
RL_CSS_CLASS_DESC="Määra CSS klassi nimi."
RL_CURRENT="Praegune"
RL_CURRENT_DATE="Praegune kuupäev/aeg:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Sinu praegune versioon: %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Oma kood"
RL_CUSTOM_CODE_DESC="Sisesta kood, mida redaktori nupuga artiklisse
sisestada (vaikekoodi asemel)."
RL_CUSTOM_FIELD="Kohandatud väli"
RL_CUSTOM_FIELDS="Kohandatud väljad"
RL_DATE="Kuupäev"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Korduv"
RL_DATE_RECURRING_DESC="Vali iga aasta kuupäevavahemik. (Sel juhul
aastat valikus ignoreeritakse)"
RL_DATE_TIME="Kuupäev & aeg"
RL_DATE_TIME_DESC="Kuupäeva ja aja seaded kasutavad serveri
kuupäeva/aega, mitte külastaja süsteemi omi."
; RL_DATE_TO="To"
RL_DAYS="Nädalapäevadel"
RL_DAYS_DESC="Vali nädalapäevad, millega siduda."
RL_DEFAULT_ORDERING="Vaikejärjestus"
RL_DEFAULT_ORDERING_DESC="Määra nimekirja vaikejärjestus"
RL_DEFAULT_SETTINGS="Vaikeseaded"
RL_DEFAULTS="Vaikeväärtused"
RL_DEVICE_DESKTOP="Lauaarvuti"
RL_DEVICE_MOBILE="Mobiil"
RL_DEVICE_TABLET="Tahvel"
RL_DEVICES="Seadmed"
RL_DEVICES_DESC="Määra seadmed, millega siduda. Tea, et seadmete
tuvastamine pole 100&#37; alati õige."
RL_DIRECTION="Suund"
RL_DIRECTION_DESC="Vali suund"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Vali, millistes admin
komponentides sa EI SOOVI seda lisa kasutada."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Vali, millistes komponentides sa EI
SOOVI seda lisa kasutada."
RL_DISABLE_ON_COMPONENTS="Keela järgmistes komponentides"
RL_DISABLE_ON_COMPONENTS_DESC="Vali, millistes komponentides sa EI
SOOVI seda lisa kasutada."
RL_DISPLAY_EDITOR_BUTTON="Näita redaktori nuppu"
RL_DISPLAY_EDITOR_BUTTON_DESC="Vali, kas redaktori aknas nuppu
näidatakse."
RL_DISPLAY_LINK="Näita linki"
RL_DISPLAY_LINK_DESC="Kuidas sa tahad et linki näidatakse?"
RL_DISPLAY_TOOLBAR_BUTTON="Näita tööriistariba nuppu"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Vali, kas tööriistariba
näidatakse."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Näita infosilti"
RL_DISPLAY_TOOLTIP_DESC="Vali kas näidatakse infosilti lisainfoga,
kui hiirega üle lingi/ikooni liikuda."
RL_DYNAMIC_TAG_ARTICLE_ID="Käesoleva artikli ID number"
RL_DYNAMIC_TAG_ARTICLE_OTHER="Käesoleva artikli ülejäänud
andmed."
RL_DYNAMIC_TAG_ARTICLE_TITLE="Käesoleva artikli pealkiri."
RL_DYNAMIC_TAG_COUNTER="See määrab korduste arvu.<br>Kui su
otsisõna leitakse, siis mitu korda teda asendatakse."
RL_DYNAMIC_TAG_DATE="Kuupäev kasutades %1$sphp strftime()
formaati%2$s. Näiteks: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Kasuta, et jätta välja dünaamilised
väärtused (lisa kaldkriipsud jutumärkidele)"
RL_DYNAMIC_TAG_LOWERCASE="Muuda tekst tagide vahel väikesteks
tähtedeks."
RL_DYNAMIC_TAG_RANDOM="Juhuslik number antud vahemikus"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
RL_DYNAMIC_TAG_UPPERCASE="Muuda tekst tagide vahel suurteks
tähtedeks."
RL_DYNAMIC_TAG_USER_ID="Kasutaja ID"
RL_DYNAMIC_TAG_USER_NAME="Kasutaja nimi"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Kasutaja silt sisestab andmed sisse
loginud kasutaja kohta, silt ise eemaldatakse."
RL_DYNAMIC_TAG_USER_USERNAME="Kasutaja kasutajanimi"
RL_DYNAMIC_TAGS="Dünaamilised sildid"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Luba"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Luba see"
RL_ENABLE_IN_ADMIN="Luba adminliideses"
RL_ENABLE_IN_ADMIN_DESC="Kui on lubatud, siis töötab see plugin ka
adminliideses.<br><br>Tavaliselt seda ei vajata. Pealegi võib
see aeglustada adminiliidese tööd ja võib toimida ka alades, kus sa seda
ei vaja."
RL_ENABLE_IN_ARTICLES="Luba artiklites"
RL_ENABLE_IN_COMPONENTS="Luba komponentides"
RL_ENABLE_IN_DESC="Vali, kas lubada see esilehel või admin poolel
või mõlemal poolel."
RL_ENABLE_IN_FRONTEND="Luba esilehel"
RL_ENABLE_IN_FRONTEND_DESC="Kui on lubatud, siis on see lubatud ka
esilehel."
RL_ENABLE_OTHER_AREAS="Luba teistes alades"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Välista"
RL_EXPAND="Ava"
RL_EXPORT="Ekspordi"
RL_EXPORT_FORMAT="Eksportimise vorming"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Lisaparameetrid"
RL_EXTRA_PARAMETERS_DESC="Sisesta lisaparameetrid mida ei saa
määrata olemasolevate seadetega"
RL_FALL="Sügis"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
RL_FEATURES="Funktsioonid"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nime väli"
RL_FIELD_PARAM_MULTIPLE="Mitme võimalus"
RL_FIELD_PARAM_MULTIPLE_DESC="Lubatakse valida mitut valikut."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Väärtuse väli"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Vajalikke %s faile ei leitud!"
RL_FILTERS="Filtrid"
RL_FINISH_PUBLISHING="Lõpeta avalikustamine"
RL_FINISH_PUBLISHING_DESC="Sisesta kuupäev, mil avalikustamine
lõpetatakse"
RL_FIX_HTML="Paranda HTML"
RL_FIX_HTML_DESC="Vali, et parandatakse kõik leitud HTML vead.
Enamasti vajalik siis kui tegemist on siltidega, mis peavad algama ja
lõppema.<br><br>Lülita see välja vaid siis, kui sul tekib
lehel sellest probleeme."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Lisafunktsionaalsuse saamiseks pead ostma PRO
versiooni."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Paistab, et NoNumber Framework'i ei
kasuta ükski teine lisa. Seega võid sa ta keelata või hoopis
eemaldada."
; RL_FROM_TO="From-To"
RL_FRONTEND="Esileht"
RL_GALLERY="Galerii"
RL_GEO="Geoasukoht"
RL_GEO_DESC="Geoasukoht pole alati 100&#37; õige. Geoasukoht
määratakse külastaja IP aadressi järgi. Kõikide IP aadressite asukohti
aga ei teata."
RL_GEO_GEOIP_COPYRIGHT_DESC="See toode sisaldab GeoLite2 andmeid, mis
on loodud MaxMind poolt, saadaval [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Regular Labs - GeoIP pole paigaldatud. Pead
selel[[%1:link start%]]paigaldama sealt[[%2:link end%]] et seda
kasutada."
RL_GO_PRO="Hangi Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="H1"
RL_HEADING_2="H2"
RL_HEADING_3="H3"
RL_HEADING_4="H4"
RL_HEADING_5="H5"
RL_HEADING_6="H6"
RL_HEADING_ACCESS_ASC="Kasutus kasvavalt"
RL_HEADING_ACCESS_DESC="Kasutus kahanevalt"
RL_HEADING_CATEGORY_ASC="Kategooria kasvavalt"
RL_HEADING_CATEGORY_DESC="Kategooria kahanevalt"
RL_HEADING_CLIENTID_ASC="Asukoht kasvavalt"
RL_HEADING_CLIENTID_DESC="Asukoht kahanevalt"
RL_HEADING_COLOR_ASC="Värv kasvavalt"
RL_HEADING_COLOR_DESC="Värv kahanevalt"
RL_HEADING_DEFAULT_ASC="Vaikimisi kasvavalt"
RL_HEADING_DEFAULT_DESC="Vaikimisi kahanevalt"
RL_HEADING_DESCRIPTION_ASC="Iseloomustus kasvavalt"
RL_HEADING_DESCRIPTION_DESC="Iseloomustus kahanevalt"
RL_HEADING_ID_ASC="ID kasvavalt"
RL_HEADING_ID_DESC="ID kahanevalt"
RL_HEADING_LANGUAGE_ASC="Keel kasvavalt"
RL_HEADING_LANGUAGE_DESC="Keel kahanevalt"
RL_HEADING_ORDERING_ASC="Järjestus kasvavalt"
RL_HEADING_ORDERING_DESC="Järjestus kahanevalt"
RL_HEADING_PAGES_ASC="Menüükirjed kasvavalt"
RL_HEADING_PAGES_DESC="Menüükirjed kahanevalt"
RL_HEADING_POSITION_ASC="Asukoht kasvavalt"
RL_HEADING_POSITION_DESC="Asukoht kahanevalt"
RL_HEADING_STATUS_ASC="Staatus kasvavalt"
RL_HEADING_STATUS_DESC="Staatus kahanevalt"
RL_HEADING_STYLE_ASC="Stiil kasvavalt"
RL_HEADING_STYLE_DESC="Stiil kahanevalt"
RL_HEADING_TEMPLATE_ASC="Kujundus kasvavalt"
RL_HEADING_TEMPLATE_DESC="Kujundus kahanevalt"
RL_HEADING_TITLE_ASC="Pealkiri kasvavalt"
RL_HEADING_TITLE_DESC="Pealkiri kahanevalt"
RL_HEADING_TYPE_ASC="Tüüp kasvavalt"
RL_HEADING_TYPE_DESC="Tüüp kahanevalt"
RL_HEIGHT="Kõrgus"
RL_HEMISPHERE="Poolkera"
RL_HEMISPHERE_DESC="Vali millisel poolkeral su leht paikneb"
RL_HIGH="Kõrge"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Koduleht"
RL_HOME_PAGE_DESC="Reaalne kodulehe aadress, mitte see mis saadakse
valides kodulehe peamist lehte menüüst.<br><br>See ei pruugi
töötada kõigi kolmandate osapoolte SEF laiendustega."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Ainult ikoon"
RL_IGNORE="Eira"
RL_IMAGE="Pilt"
RL_IMAGE_ALT="Pildi alternatiivne tekst"
RL_IMAGE_ALT_DESC="Pildi alternatiivne tekst, mida näidatakse
kursoriga pildi kohal olles."
RL_IMAGE_ATTRIBUTES="Pildi atribuudid"
RL_IMAGE_ATTRIBUTES_DESC="Pildi lisaatribuudid, näiteks:
alt=&quot;Minu pilt&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Impordi"
RL_INCLUDE="Kaasa"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Kaasa itemid-ta"
RL_INCLUDE_NO_ITEMID_DESC="Kaasa isegi kui menüü itemid pole URL-is
määratud?"
RL_INITIALISE_EVENT="Rakendu toimingul"
RL_INITIALISE_EVENT_DESC="Määra Joomla sisene toiming mil plugin
rakendub. Kasuta seda siis kui sul on probleeme plugina töös."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Sisesta"
RL_INSERT_DATE_NAME="Sisesta kuupäev / nimi"
RL_IP_RANGES="IP aadressid / vahemikud"
RL_IP_RANGES_DESC="Komaga ja/või reavahetusega eraldatud nimekiri IP
aadressidest ja IP aadressite vahemikest.
Näiteks:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP aadressid"
RL_IS_FREE_VERSION="See on tasuta versioon %s'st"
RL_ITEM="Kirje"
RL_ITEM_IDS="Kirje ID-d"
RL_ITEM_IDS_DESC="Sisesta kirjete ID-d millega siduda. Eraldamiseks
kasuta koma."
RL_ITEMS="Kirjed"
RL_ITEMS_DESC="Vali millega siduda."
RL_JCONTENT="Joomla! sisu"
RL_JED_REVIEW="Kas see lisa meeldib Sulle? [[%1:start link%]]Jäta
siis arvustus JEDi[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Kasutad Joomla 2.5 versiooni lisa %1$s
Joomla 3 peal. Palun paigalda %1$s , et see viga lahendada."
RL_JQUERY_DISABLED="Sul on jQuery skript keelatud. %s aga vajab seda.
Veendu, et sinu kujundus või mõni lisadest asendaks selle vajaduse."
RL_K2="K2"
RL_K2_CATEGORIES="K2 kategooriad"
RL_LANGUAGE="Keel"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Keeled"
RL_LANGUAGES_DESC="Vali keeled, millega siduda."
RL_LAYOUT="Paigutus"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Tasemed"
RL_LEVELS_DESC="Vali tasemed, millega siduda."
RL_LIB="Kogu"
RL_LINK_TEXT="Lingi tekst"
RL_LINK_TEXT_DESC="Tekst, mida kuvatakse lingina."
RL_LIST="Nimekiri"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Lae Bootstrap raamistik"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Saab keelata Bootstrap raamistiku
laadimise"
RL_LOAD_JQUERY="Lae jQuery skript"
RL_LOAD_JQUERY_DESC="Vali jQuery skripti laadimine. Sa võid selle
välja lülitada kui sinu kujundus või mõni lisadest laeb oma versiooni
jQueryst."
RL_LOAD_MOOTOOLS="Lae sisemine MooTools"
RL_LOAD_MOOTOOLS_DESC="Vali kas laetakse sisemine MooTools skript.
Saad selle siin välja lülitada, kui avastad mõningased konfliktid
kujunduse või teiste lisadega, mis samamoodi kasutavad
MooTools'i."
RL_LOAD_STYLESHEET="Lae CSS"
RL_LOAD_STYLESHEET_DESC="Vali stiilifail. Sa võid selle keelata, kui
hoiad oma stiilikoodi mõnes teises css failis, mida nagunii kujundusega
koos laetakse."
RL_LOW="Madal"
RL_LTR="Vasakult paremale"
RL_MATCH_ALL="Sobivad kõik"
RL_MATCH_ALL_DESC="Määra sidumised valitutel õigeks, kui kõik
valitud esemed ühtivad."
RL_MATCHING_METHOD="Sobiv meetod"
RL_MATCHING_METHOD_DESC="Kas kõik või mõni sidumistest peaks
klappima?<br><br><strong>[[%1:kõik%]]</strong><br>[[%2:kõik
iseloomustused%]]<br><br><strong>[[%3:mõni%]]</strong><br>[[%4:mõni
iseloomustus%]]"
RL_MAX_LIST_COUNT="Maksimaalne nimekirja pikkus"
RL_MAX_LIST_COUNT_DESC="Maksimaalne elementide arv, mida näidatakse
mitmevaliku nimekirjades. Kui kirjete arv on sellest suurem, siis
valikuvälja näidatakse kui tekstivälja.<br><br>Saad selle
numbri määrata väiksemaks, kui sinu lehe laadimine aeglustub liiga
paljudest kirjetest nimekirjas."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maksimeeri"
RL_MEDIA_VERSIONING="Kasuta meediafailidel versioone"
RL_MEDIA_VERSIONING_DESC="Vali, et lisada meediafailide (js/css)
urlide lõppu versiooni nimber, et brauser saaks laadida sellele vajaliku
faili."
RL_MEDIUM="Keskmine"
RL_MENU_ITEMS="Menüükirjed"
RL_MENU_ITEMS_DESC="Vali menüükirjed millega siduda."
RL_META_KEYWORDS="META võtmesõnad"
RL_META_KEYWORDS_DESC="Sisesta võtmesõnad meta võtmesõnadest
millega siduda. Võtmesõnad eralda komaga."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimeeri"
RL_MOBILE_BROWSERS="Mobiili brauserid"
RL_MOD="Moodul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Kuud"
RL_MONTHS_DESC="Vali kuud, millega siduda."
RL_MORE_INFO="Rohkem infot"
RL_MY_STRING="Minu tekst!"
RL_N_ITEMS_ARCHIVED="%s kirjet arhiveeriti."
RL_N_ITEMS_ARCHIVED_1="%s kirje arhiveeriti."
RL_N_ITEMS_CHECKED_IN_0="Ühtegi kirjet ei vabastatud."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
RL_N_ITEMS_DELETED="%s kirjet kustutati."
RL_N_ITEMS_DELETED_1="%s kirje kustutati."
RL_N_ITEMS_FEATURED="%s kirjet tõsteti esile."
RL_N_ITEMS_FEATURED_1="%s kirje tõsteti esile."
RL_N_ITEMS_PUBLISHED="%s kirjet avaldati."
RL_N_ITEMS_PUBLISHED_1="%s kirje avaldati."
RL_N_ITEMS_TRASHED="%s kirjet liigutati prügikasti."
RL_N_ITEMS_TRASHED_1="%s kirje prügikasti."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
RL_N_ITEMS_UNPUBLISHED="%s kirjet peideti."
RL_N_ITEMS_UNPUBLISHED_1="%s kirje peideti."
RL_N_ITEMS_UPDATED="%d kirjet uuendatud"
RL_N_ITEMS_UPDATED_1="Kirje uuendatud"
RL_NEW_CATEGORY="Uud kategooria"
RL_NEW_CATEGORY_ENTER="Sisesta kategooria nimi"
RL_NEW_VERSION_AVAILABLE="Saadaval on uuem versioon"
RL_NEW_VERSION_OF_AVAILABLE="Uuem versioon %s -st on saadaval"
RL_NO_ICON="Ilma ikoonita"
RL_NO_ITEMS_FOUND="Midagi pole."
RL_NORMAL="Normaalne"
RL_NORTHERN="Põhjamaine"
RL_NOT="Ei"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Ainult"
RL_ONLY_AVAILABLE_IN_JOOMLA="Saadaval ainult Joomlas %s või
kõrgemas."
RL_ONLY_AVAILABLE_IN_PRO="<em>Saadaval ainult PRO
versioonis!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Saadaval vaid PRO
versioonis)"
RL_ONLY_VISIBLE_TO_ADMIN="Seda teadet näidatakse ainult (super-)
administraatoritele."
RL_OPTION_SELECT="- Vali -"
RL_OPTION_SELECT_CLIENT="- Vali klient -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operatsioonisüsteemid"
RL_OS_DESC="Vali operatsioonisüsteem millega siduda. Pea meeles, et
operatsioonisüsteemi tuvastamine pole alati 100 % kindel. Kasutajad saavad
brauserit manipuleerida, et veebilehele näidataks mõnda muud
operatsioonisüsteemi."
; RL_OTHER="Other"
RL_OTHER_AREAS="Teised alad"
RL_OTHER_OPTIONS="Teised valikud"
RL_OTHER_SETTINGS="Teised seaded"
RL_OTHERS="Muud"
RL_PAGE_TYPES="Lehe tüübid"
RL_PAGE_TYPES_DESC="Vali milliste lehe tüüpidega on sidumised
aktiivsed."
RL_PHP="Oma PHP"
RL_PHP_DESC="Sisesta PHP koodi jupp, mida uurida. Kood peab tagastama
vastuse true või false (tõene või
väär).<br><br>Näiteks:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="HTML kommentaaride ala"
RL_PLACE_HTML_COMMENTS_DESC="Vaikimisi on HTML kommentaarid näha
selle laienduse väljundis.<br><br>Need kommentaarid aitavad
sul leida vigu, kui avastad, et laiendused ei tööta nii nagu
peaks.<br><br>Kui arvad, et sa neid kommentaare näha ei taha,
lülita see seade välja."
RL_PLG_ACTIONLOG="Toimingute logi plugin"
RL_PLG_EDITORS-XTD="Redaktori nupu plugin"
RL_PLG_FIELDS="Välja plugin"
RL_PLG_SYSTEM="Süsteemi plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postikoodid"
RL_POSTALCODES_DESC="Komaga eraldatud nimekiri postikoodidest (12345)
või vahemikest (12300-12500).<br>Seda kasutatakse vaid [[%1:start
link%]] vähestes maades ja IP aadresside vahemikes[[%2:end link%]]."
RL_POWERED_BY="Kasutatud tarkvara %s"
RL_PRODUCTS="Tooted"
RL_PUBLISHED_DESC="Seda saad kasutada, et (ajutiselt) see kirje välja
lülitada"
RL_PUBLISHING_ASSIGNMENTS="Avalikustamise seosed"
RL_PUBLISHING_SETTINGS="Avalikusta kirjed"
RL_RANDOM="Suvaline"
RL_REDSHOP="RedShop"
RL_REGEX="Regulaaravaldised"
RL_REGIONS="Regioon / riik"
RL_REGIONS_DESC="Vali regioon / riik, millega siduda."
RL_REGULAR_EXPRESSIONS="Kasuta regulaaravaldisi"
RL_REGULAR_EXPRESSIONS_DESC="Vali väärtuste töötlemiseks
regulaaravaldisi."
RL_REMOVE_IN_DISABLED_COMPONENTS="Peida keelatud komponentides"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Kui on valitud, siis plugini
süntaks eemaldatakse komponendist. Kui ei, siis originaalne plugini
süntaks jäetakse puutumatuna."
RL_RESIZE_IMAGES="Muuda piltide suurusi"
RL_RESIZE_IMAGES_CROP="Lõika"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Kaust"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
RL_RESIZE_IMAGES_QUALITY="JPG kvaliteet"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Määra"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Paremalt vasakule"
RL_SAVE_CONFIG="Peale selle seade salvestamist ei näidata enam lehe
laadimisel hüpikakent."
RL_SEASONS="Hooajad"
RL_SEASONS_DESC="Vali hooajad, millega siduda."
RL_SELECT="Vali"
RL_SELECT_A_CATEGORY="Vali kategooria"
RL_SELECT_ALL="Vali kõik"
RL_SELECT_AN_ARTICLE="Vali artikkel"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Valitud"
RL_SELECTION="Valik"
RL_SELECTION_DESC="Vali, kas valituid ridu kaasata või
välistada.<br><br><strong>Kaasa</strong><br>Avalta
ainult
valitutel.<br><br><strong>Välista</strong><br>Avalda
kõikjal, välja arvatud valitutel."
RL_SETTINGS_ADMIN_MODULE="Administraatori mooduli seaded"
RL_SETTINGS_EDITOR_BUTTON="Redaktori laiendusnupu seaded"
RL_SETTINGS_SECURITY="Turvalisuse seaded"
RL_SHOW_ASSIGNMENTS="Näita sidumisi"
RL_SHOW_ASSIGNMENTS_DESC="Määra, kus valitud seoseid näidatakse.
Saad seda kasutada, et näha puhast seoste ülevaadet."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Kõik mitte valitud sidumised on
nüüd vormivaatest peidetud."
RL_SHOW_COPYRIGHT="Näita autoriõiguste tekst 'Kõik õigused
kaitstud'"
RL_SHOW_COPYRIGHT_DESC="Kui on valitud, siis näidatakse
autoriõiguste infot adminiliideses. Regular Labs lisad ei näita kaitstud
õiguste infot esilehel mitte kunagi."
RL_SHOW_HELP_MENU="Näita Abimenüü linki"
RL_SHOW_HELP_MENU_DESC="Näita linki Regular Labs veebilehele
adminiliidese Abimenüüs."
RL_SHOW_ICON="Näita nupu ikooni"
RL_SHOW_ICON_DESC="Kui on valitud, siis näidatakse redaktori nupul
ikooni."
RL_SHOW_UPDATE_NOTIFICATION="Näita uuenduse teadet"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Kui on valitud, siis näidatakse
uuenduse teadet komponendi vaates kui uus versioon on saadaval."
RL_SIMPLE="Lihtne"
RL_SLIDES="Kihid"
RL_SOUTHERN="Lõunapoolne"
; RL_SPECIFIC="Specific"
RL_SPRING="Kevad"
RL_START="Start"
RL_START_PUBLISHING="Alusta avalikustamist"
RL_START_PUBLISHING_DESC="Sisesta avalikustamise alguse kuupäev"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Eemalda ümbritsevad tagid"
RL_STRIP_SURROUNDING_TAGS_DESC="Vali, et alati eemaldatakse HTML
sildid (div, p, span), mis ümbritsevad plugina võtit. Kui on välja
lülitatud, siis plugin üritab eemaldada katkised sildid, et HTMLi
struktuur ei kahjustuks (näiteks p võti p võtmes)."
RL_STYLING="Kujundamine"
RL_SUMMER="Suvi"
RL_TABLE_NOT_FOUND="Vajalikku %s andmebaasi tabelit ei leitud!"
RL_TABS="Sakid"
RL_TAG_CHARACTERS="Sildi märgid"
RL_TAG_CHARACTERS_DESC="Sildi
märgid.<br><br><strong>NB:</strong>Kui sa seda
muudad, siis kõik olemasolevad võtmed ei pruugi enam toimida."
RL_TAG_SYNTAX="Sildi süntaks"
RL_TAG_SYNTAX_DESC="Sõna, mida kasutatakse artikli välja
kutsumiseks.<br><br><strong>NB:</strong>Kui sa seda
muudad, siis juba kasutuses olevad koodijupid enam ei tööta."
RL_TAGS="Võtmesõnad"
RL_TAGS_DESC="Vali võtmesõnad millega siduda. Eralda komaga."
RL_TEMPLATES="Kujundused"
RL_TEMPLATES_DESC="Vali kujundused millega siduda."
RL_TEXT="Tekst"
RL_TEXT_HTML="Tekst (HTML)"
RL_TEXT_ONLY="Ainult tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="See laiendus
vajab korralikuks töötamiseks %s!"
RL_TIME="Aeg"
RL_TIME_FINISH_PUBLISHING_DESC="Sisesta avalikustamise lõpu
aeg.<br><br><strong>Vorming:</strong> 23:59"
RL_TIME_START_PUBLISHING_DESC="Sisesta avalikustamise alguse
aeg.<br><br><strong>Vorming:</strong> 23:59"
RL_TOGGLE="Lülita"
RL_TOOLTIP="Infosilt"
RL_TOP="Üles"
RL_TOTAL="Kokku"
RL_TYPES="Tüübid"
RL_TYPES_DESC="Kirjete tüübid"
RL_UNSELECT_ALL="Tühista kõik valikud"
RL_UNSELECTED="Valikuta"
RL_UPDATE_TO="Uuenda versioonini %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL klappimine"
RL_URL_PARTS_DESC="Sisesta URL (osa), mis peab
klappima.<br><br>Kasuta uut rida igale uuele
klappivusele."
RL_URL_PARTS_REGEX="URL osade sobivusi otsitakse regulaaravaldiste
järgi. <strong>Seega veendu, et string kasutab õiget regex
süntaksit.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Kategooria ja artikli sideumiseks, vaata
üle Joomla! sisu sektsioon."
RL_USE_CUSTOM_CODE="Kasuta oma koodi"
RL_USE_CUSTOM_CODE_DESC="Kui on valitud, siis redaktori nupp sisestab
selle koodi."
RL_USE_SIMPLE_BUTTON="Kasuta lihtsat nuppu"
RL_USE_SIMPLE_BUTTON_DESC="Kasutatakse lihtsat nuppu, mille abil saab
mingit teksti redaktori aknasse sisestada."
RL_USER_GROUP_LEVELS="Kasutajate gruppide tasemed"
RL_USER_GROUPS="Kasutajagrupid"
RL_USER_GROUPS_DESC="Vali kasutajagrupid, millega siduda."
RL_USER_IDS="Kasutajate ID-d"
RL_USER_IDS_DESC="Sisesta kasutajate IDd. Eralda komaga."
RL_USERS="Kasutajad"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Vaade"
RL_VIEW_DESC="Vali millist vaikimisi vaadet uue kirje loomisel
kasutatakse."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Laius"
RL_WINTER="Talv"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO kategooriad"
PK�X�[ZЁ%__?regularlabs/language/et-EE/et-EE.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Süsteem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - Regular Labs
laienduste jaoks"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�H�:����;regularlabs/language/fa-IR/fa-IR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - این
پلاگين توسط افزونه های Regular Labs استفاده مي
شود"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]افزونه هاي Regular
Labs به اين پلاگین نياز دارند و بدون آن کار
نخواهند کرد.<br><br>افزونه هاي Regular Labs
عبارتند از:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="اگر از افزونه های
Regular Labs استفاده مي کنید، اين پلاگین را
غیرفعال يا حذف نکنيد."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="توضیحات"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="توضیحات"
; COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="رسانه ها"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
; COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="نصب"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="سبک بندی"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
; RL_ACTION_INSTALL="Install"
; RL_ACTION_UNINSTALL="Uninstall"
; RL_ACTION_UPDATE="Update"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="پیشرفته"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="همه"
RL_ALL_DESC="منتشر خواهد شد اگر
<strong>همه</strong> تنظیمات تخصیص که در
پایین آمده است، مطابقت داشته باشد."
RL_ALL_RIGHTS_RESERVED="تمامی حقوق محفوظ است"
RL_ALSO_ON_CHILD_ITEMS="همچنین در زیرگزینه ها"
RL_ALSO_ON_CHILD_ITEMS_DESC="ماژول به زیرگزینه های
گزینه انتخاب شده نیز تخصیص داده شود؟"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="هر یک"
RL_ANY_DESC="منتشر خواهد شد اگر <strong>هر
یک</strong> (یکی یا بیشتر) از تنظیمات تخصیص
که در پایین آمده است، مطابقت داشته
باشد.<br>گروه های تخصیص که در آن ها
'همه' انتخاب شده باشد، نادیده گرفته
خواهد شد."
; RL_ARE_YOU_SURE="Are you sure?"
RL_ARTICLE="مطلب"
RL_ARTICLE_AUTHORS="نوسندگان"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="مطالب"
; RL_ARTICLES_DESC="Select the articles to assign to."
; RL_AS_EXPORTED="As exported"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="استرالیا"
RL_AUTHORS="نوسندگان"
RL_AUTO="خودکار"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
; RL_BEHAVIOR="Behaviour"
; RL_BEHAVIOUR="Behaviour"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="هردو"
RL_BOTTOM="پایین"
RL_BROWSERS="مرورگرها"
RL_BROWSERS_DESC="مرورگرهایی را که می خواهید
ماژول در آن ها نمایش داده شود، انتخاب
کنید. به یاد داشته باشید که شناسایی نوع
مرورگر همیشه 100&#37; نیست."
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
; RL_BUTTON_TEXT="Button Text"
; RL_BUTTON_TEXT_DESC="This text will be shown in the Editor
Button."
RL_CACHE_TIME="زمان نگهداری ذخیره موقت"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="مجموعه ها"
RL_CATEGORIES_DESC="انتخاب مجموعه ها برای نمایش
ماژول در آن ها."
; RL_CATEGORY="Category"
; RL_CHANGELOG="Changelog"
RL_CLASSNAME="کلاس CSS"
; RL_COLLAPSE="Collapse"
RL_COM="کامپوننت"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="کامپوننت ها"
RL_COMPONENTS_DESC="انتخاب کامپوننت ها برای
نمایش ماژول در صفحات خروجی آن ها."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="محتواي"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
; RL_COPY_OF="Copy of %s"
RL_COPYRIGHT="کپی رايت"
RL_COUNTRIES="کشورها"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="همین"
RL_CURRENT_DATE="تاریخ / ساعت فعلی:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
; RL_CURRENT_VERSION="Your current version is %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
RL_CUSTOM_FIELD="موارد دلخواه"
RL_CUSTOM_FIELDS="فیلدهای سفارشی"
RL_DATE="تاریخ"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="تاریخ و ساعت"
RL_DATE_TIME_DESC="تخصیص بر اساس تاریخ و ساعت،
از تاریخ / ساعت سرور استفاده می کند، نه
سیستم کاربر."
; RL_DATE_TO="To"
RL_DAYS="روزهای هفته"
RL_DAYS_DESC="انتخاب روزهای هفته برای نمایش
ماژول."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="موبایل"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="جهت"
RL_DIRECTION_DESC="انتخاب جهت"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
; RL_DISABLE_ON_COMPONENTS="Disable on Components"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
; RL_DISPLAY_LINK="Display link"
; RL_DISPLAY_LINK_DESC="How do you want the link to be
displayed?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
; RL_DISPLAY_TOOLTIP="Display Tooltip"
; RL_DISPLAY_TOOLTIP_DESC="Select to display a tooltip with extra info
when mouse hovers over link/icon."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="فعال"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
; RL_ENABLE_IN_ARTICLES="Enable in articles"
; RL_ENABLE_IN_COMPONENTS="Enable in components"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
; RL_ENABLE_IN_FRONTEND="Enable in frontend"
; RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in
the frontend."
; RL_ENABLE_OTHER_AREAS="Enable other areas"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="شامل نبودن"
RL_EXPAND="گسترش"
RL_EXPORT="گرفتن خروجي"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="پاییز"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="فیلترها"
RL_FINISH_PUBLISHING="پایان انتشار"
RL_FINISH_PUBLISHING_DESC="تاریخ پایان انتشار را
وارد کنید"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="محتواي افزونه FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
; RL_FRONTEND="Frontend"
RL_GALLERY="نمایشگاه"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="ارتفاع"
RL_HEMISPHERE="نیمکره"
RL_HEMISPHERE_DESC="انتخاب نیمکره ای که وبسایت
شما در آن مستقر است"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="صفحه خانگي"
RL_HOME_PAGE_DESC="برخلاف انتخاب گزينه صفحه
خانگي از طريق گزينه هاي منو، اين گزينه
فقط با صفحه خانگي واقعي، مطابق خواهد شد،
نه هر آدرسي كه شناسه مشابهي با گزينه منوي
صفحه خانگي داشته باشد.<br><br>اين
امكان ممكن است با همه افزونه هاي سئو درست
كار نكند."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
; RL_ICON_ONLY="Icon only"
RL_IGNORE="ناديده گرفتن"
RL_IMAGE="تصویر"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="ورود"
; RL_IMPORT_ITEMS="Import Items"
RL_INCLUDE="گنجاندن"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="شامل URL های بدون شناسه
گزینه؟"
RL_INCLUDE_NO_ITEMID_DESC="ماژول همچنین به Url هایی
که دارای شناسه گزینه منو نیستند، اختصاص
داده شود؟"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="آدرس های آی پی"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="محصول"
RL_ITEM_IDS="شناسه گزينه ها"
RL_ITEM_IDS_DESC="شناسه گزينه ها را براي تخصيص
وارد كنيد. براي جدا كردن شناسه ها از كاما
استفاده كنيد."
RL_ITEMS="گزينه ها"
; RL_ITEMS_DESC="Select the items to assign to."
RL_JCONTENT="محتواي جوملا"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="مجموعه های کامپوننت K2"
RL_LANGUAGE="زبان"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="زبان ها"
RL_LANGUAGES_DESC="انتخاب زبان هایی که ماژول
برای آن ها نمایش داده می شود."
RL_LAYOUT="طرح بندی"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
RL_LIB="کتابخانه"
; RL_LINK_TEXT="Link Text"
; RL_LINK_TEXT_DESC="The text to display as link."
RL_LIST="فهرست بندی"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
; RL_LOAD_MOOTOOLS="Load Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
; RL_LOW="Low"
RL_LTR="چپ-به-راست"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="روش مطابقت"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="بزرگ نمايي"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="متوسط"
RL_MENU_ITEMS="گزینه های منوها"
RL_MENU_ITEMS_DESC="انتخاب گزینه های منو برای
نمایش ماژول در صفحه مرتبط با آن گزینه
ها."
RL_META_KEYWORDS="کليدواژه‌های متا"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="فروشگاه MijoShop"
RL_MINIMIZE="كوچك نمايي"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="ماژول"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="ماه ها"
RL_MONTHS_DESC="انتخاب ماه هایی که ماژول باید
نمایش داده شود."
RL_MORE_INFO="اطلاعات بیشتر"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="یک نسخه جدید تر، منتشر
شده است"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="معمولي"
RL_NORTHERN="نیمکره شمالی"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="فقط"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
; RL_ONLY_VISIBLE_TO_ADMIN="This message will only be displayed to
(Super) Administrators."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
; RL_OTHER_AREAS="Other Areas"
RL_OTHER_OPTIONS="ساير گزينه ها"
RL_OTHER_SETTINGS="Other Settings"
RL_OTHERS="سایر"
RL_PAGE_TYPES="نوع صفحه"
RL_PAGE_TYPES_DESC="تعیین کنید که تخصیص ماژول
در کدام نوع صفحه، فعال شود."
; RL_PHP="Custom PHP"
RL_PHP_DESC="بخشی از کد PHP را برای ارزیابی
وارد کنید. کد باید مقدار درست یا غلط (true or
false) را برگرداند.<br><br>به عنوان
مثال:<br><br>[[%1:code%]]"
; RL_PLACE_HTML_COMMENTS="Place HTML comments"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="پلاگین دکمه ویرایشگر"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="پلاگین سیستمی"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="محصولات"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="تخصیص های انتشار"
; RL_PUBLISHING_SETTINGS="Publish items"
RL_RANDOM="تصادفی"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="برش"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="پوشه"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="راست-به-چپ"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="فصل ها"
RL_SEASONS_DESC="انتخاب فصل برای نمایش
ماژول."
RL_SELECT="انتخاب"
; RL_SELECT_A_CATEGORY="Select a Category"
; RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="انتخاب یک مطلب"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="انتخاب شده"
RL_SELECTION="گزینه های انتخابی"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
; RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
; RL_SHOW_ICON="Show Button Icon"
; RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the
Editor Button."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="ساده"
RL_SLIDES="اسلایدها"
RL_SOUTHERN="نیمکره جنوبی"
; RL_SPECIFIC="Specific"
RL_SPRING="بهار"
RL_START="شروع"
RL_START_PUBLISHING="آغاز انتشار"
RL_START_PUBLISHING_DESC="تاریخ آغاز انتشار را
وارد کنید"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="سبک بندی"
RL_SUMMER="تابستان"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="تب ها"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
RL_TAG_SYNTAX_DESC="کلمه ای که از آن در تگ ها
استفاده شود .<br><br><strong>توجه
:</strong> اگر این متن را تغییر دهید تمامی
برچسب ها کار نخواهند کرد .."
RL_TAGS="تگ ها"
RL_TAGS_DESC="تگ ها را براي تخصيص به آن ها
وارد كنيد. براي جدا كردن تگ ها، از كاما
استفاده كنيد."
RL_TEMPLATES="قالب ها"
RL_TEMPLATES_DESC="انتخاب قالب هایی که ماژول در
آن ها نمایش داده می شود."
RL_TEXT="متن"
; RL_TEXT_HTML="Text (HTML)"
; RL_TEXT_ONLY="Text only"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="این
افزونه برای درست کار کردن به %s نیاز
دارد!"
RL_TIME="ساعت"
RL_TIME_FINISH_PUBLISHING_DESC="ساعت پایان انتشار را
وارد
کنید.<br><br><strong>فرمت:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="ساعت آغاز انتشار را
وارد
کنید.<br><br><strong>فرمت:</strong>
23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="راهنمای ابزار"
RL_TOP="بالا"
RL_TOTAL="همه"
RL_TYPES="نوع"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
RL_UNSELECTED="انتخاب نشده"
; RL_UPDATE_TO="Update to version %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="مطابقت با URL ها"
RL_URL_PARTS_DESC="(بخشی از) آدرس URL هایی که می
خواهید مطابقت داده شود، وارد
کنید.<br>هر آدرس را در یک خط جدید وارد
کنید."
RL_URL_PARTS_REGEX="بخش های Url با استفاده از
عبارات معمول و متداول، مطابقت داده خواهد
شد. <strong>بنابراین مطمئن شوید که رشته
آدرس از سینتکس های معتبر استفاده می
کند.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="گروه های کاربری"
RL_USER_GROUPS="گروه هاي كاربري"
RL_USER_GROUPS_DESC="انتخاب گروه هاي كاربري
براي تخصيص به آن ها."
RL_USER_IDS="شناسه کاربران"
RL_USER_IDS_DESC="شناسه کاربرانی را که می
خواهید ماژول برای آن ها نمایش داده شود،
وارد کنید. از کاما برای جداسازی شناسه ها
استفاده نمایید."
RL_USERS="کاربران"
RL_UTF8="UTF-8"
RL_VIDEO="ویدئو"
RL_VIEW="مشاهده"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="عرض"
RL_WINTER="زمستان"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="مجموعه های کامپوننت ZOO"
PK�X�[s�7���?regularlabs/language/fa-IR/fa-IR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - این
پلاگين توسط افزونه های Regular Labs استفاده مي
شود"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[������;regularlabs/language/fr-FR/fr-FR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Système - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Le plug-in système Regular Labs Library
permet d'intégrer la prise en charge des bibliothèques de scripts
Regular Labs."
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Les extensions Regular Labs
ont absolument besoin de ce plug-in pour
fonctionner.<br><br>Les extensions Regular Labs concernées
sont :[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Attention, ne désactivez ou ne
désinstallez en aucun cas ce plug-in si vous utilisez une extension
Regular Labs !"

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Journal des actions de
l'utilisateur"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntaxe des tags"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Description"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Description"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportement"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Paramètres par
défaut"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Média"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Options du module
d'administration"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Paramètres du
bouton"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Paramètres de
sécurité"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Configurer"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styles"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntaxe des tags"

RL_ACCESS_LEVELS="Niveaux d'accès"
RL_ACCESS_LEVELS_DESC="Sélectionnez les niveaux d'accès à
attribuer."
RL_ACTION_CHANGE_DEFAULT="Modifier le défaut"
RL_ACTION_CHANGE_STATE="Modifier l'état de publication"
RL_ACTION_CREATE="Créer"
RL_ACTION_DELETE="Supprimer"
RL_ACTION_INSTALL="Installer"
RL_ACTION_UNINSTALL="Désinstaller"
RL_ACTION_UPDATE="Mise à jour"
RL_ACTIONLOG_EVENTS="Événements à consigner"
RL_ACTIONLOG_EVENTS_DESC="Sélectionnez les actions à inclure dans le
journal des actions de l'utilisateur."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avancé"
RL_AFTER="Après"
RL_AFTER_NOW="Après MAINTENANT"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="TOUS"
RL_ALL_DESC="Le module sera publié si
<strong>TOUS</strong> les règlages ci-dessous
correspondent."
RL_ALL_RIGHTS_RESERVED="Tous droits réservés"
RL_ALSO_ON_CHILD_ITEMS="Inclure les éléments enfants"
RL_ALSO_ON_CHILD_ITEMS_DESC="Affecter également aux éléments
enfants des éléments sélectionnés ?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Les éléments enfants font
référence à des sous-éléments actuels dans la sélection ci-dessus.
Ils ne renvoient pas aux liens des pages sélectionnées."
RL_ANY="N'IMPORTE QUEL REGLAGE"
RL_ANY_DESC="Le module sera publié si <strong>N'IMPORTE
LEQUEL</strong> des règlages ci-dessous (un ou plusieurs)
correspond.<br>Les affectations réglées sur 'Ignore'
seront ignorées."
RL_ARE_YOU_SURE="Etes-vous sûr ?"
RL_ARTICLE="Article"
RL_ARTICLE_AUTHORS="Auteurs"
RL_ARTICLE_AUTHORS_DESC="Sélectionnez les auteurs à assigner."
RL_ARTICLES="Articles"
RL_ARTICLES_DESC="Sélectionnez les articles à assigner."
RL_AS_EXPORTED="Comme exportés"
RL_ASSIGNMENTS="Affectations"
RL_ASSIGNMENTS_DESC="En sélectionnant des assignations spécifiques,
vous pouvez limiter où ce %s doit/ne doit pas être publié.<br>Pour
l'avoir publié sur toutes les pages, ne spécifiez simplement aucune
assignation."
RL_AUSTRALIA="Australie"
RL_AUTHORS="Auteurs"
RL_AUTO="Auto"
RL_BEFORE="Avant"
RL_BEFORE_NOW="Avant MAINTENANT"
RL_BEGINS_WITH="Commence par"
RL_BEHAVIOR="Comportement"
RL_BEHAVIOUR="Comportement"
RL_BETWEEN="Entre"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Vous avez désactivé
l'instanciation du Framework Bootstrap. %s a besoin de ce dernier pour
fonctionner. Assurez-vous que votre modèle ou que d'autres extensions
chargent les scripts nécessaires pour remplacer la fonctionnalité
requise."
RL_BOTH="Les deux"
RL_BOTTOM="Bas"
RL_BROWSERS="Navigateurs"
RL_BROWSERS_DESC="<br>Sélectionnez les navigateurs à
affecter.<br>Gardez à l'esprit que la détection du navigateur
n'est jamais efficace à 100&#37;, car les utilisateurs peuvent
configurer leur navigateur pour imiter un autre navigateur."
RL_BUTTON_ICON="Icône bouton"
RL_BUTTON_ICON_DESC="Sélectionnez l'icône à afficher dans le
bouton."
RL_BUTTON_TEXT="Texte du bouton"
RL_BUTTON_TEXT_DESC="Indiquez dans ce champ le texte à afficher sur
le bouton."
RL_CACHE_TIME="Durée du cache"
RL_CACHE_TIME_DESC="Durée maximale en minutes durant laquelle un
fichier doit être stocké en cache avant d'être actualisé. Laisser
vide pour utiliser le paramètre global."
RL_CATEGORIES="Catégories"
RL_CATEGORIES_DESC="Sélectionnez les catégories à affecter."
RL_CATEGORY="Catégorie"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="Classe CSS"
RL_COLLAPSE="Réduire"
RL_COM="Composant"
RL_COMBINE_ADMIN_MENU="Combinez Menu Admin"
RL_COMBINE_ADMIN_MENU_DESC="Combiner tous les éléments de Regular
Labs dans un seul sous-menu du menu 'Composants' de
l'administration."
RL_COMPARISON="Comparaison"
RL_COMPONENTS="Composants"
RL_COMPONENTS_DESC="Sélectionnez les composants à affecter."
RL_CONTAINS="Contient"
RL_CONTAINS_ONE="Contient l'un des éléments suivants"
RL_CONTENT="Contenu"
RL_CONTENT_KEYWORDS="Mots clés de contenu"
RL_CONTENT_KEYWORDS_DESC="Indiquez les mots-clés trouvés dans le
contenu à attribuer. Utilisez des virgules pour séparer les
mots-clés."
RL_CONTINENTS="Continents"
RL_CONTINENTS_DESC="Sélectionnez les continents à assigner"
RL_COOKIECONFIRM="Confirmation de Cookie"
RL_COOKIECONFIRM_COOKIES="Cookies autorisés"
RL_COOKIECONFIRM_COOKIES_DESC="Déterminer si les cookies sont
autorisés ou interdits, en fonction de la configuration de Cookie Confirm
(par Twentronix) et du choix du visiteur d'accepter ou non les
cookies."
RL_COPY_OF="Copie de %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Pays"
RL_COUNTRIES_DESC="Sélectionnez les pays à assigner"
RL_CSS_CLASS="Classe (CSS)"
RL_CSS_CLASS_DESC="Définir un nom de classe css pour lui attribuer
des styles personnalisés."
RL_CURRENT="Courante"
RL_CURRENT_DATE="Date/Heure actuelle :
<strong>%s</strong>"
RL_CURRENT_USER="Utilisateur actuel"
RL_CURRENT_VERSION="Votre version actuelle est %s"
RL_CUSTOM="Personnalisé"
RL_CUSTOM_CODE="Code personnalisé"
RL_CUSTOM_CODE_DESC="Spécifiez dans le champ ci-contre le code à
insérer lors d'un clic sur le 'Simple' bouton (à la place
du code par défaut)."
RL_CUSTOM_FIELD="Champ Personnalisé"
RL_CUSTOM_FIELDS="Champs Personnalisés"
RL_DATE="Date"
RL_DATE_DESC="Sélectionnez le type de comparaison de dates à
utiliser."
RL_DATE_FROM="De"
RL_DATE_RECURRING="Récurrence"
RL_DATE_RECURRING_DESC="Sélectionner afin d'appliquer une plage
de dates pour chaque année. (Ainsi, l'année dans la sélection sera
ignorée)."
RL_DATE_TIME="Date & heure"
RL_DATE_TIME_DESC="<br><center>Les affectations de date et
d'heure utilisent la date et l'heure de votre serveur, et non
celle du système du visiteur.</center>"
RL_DATE_TO="À"
RL_DAYS="Jours de la semaine"
RL_DAYS_DESC="Sélectionnez les jours de la semaine à affecter."
RL_DEFAULT_ORDERING="Ordre par défaut"
RL_DEFAULT_ORDERING_DESC="Définir le classement par défaut de la
liste des éléments"
RL_DEFAULT_SETTINGS="Paramètres par défaut"
RL_DEFAULTS="Par défaut"
RL_DEVICE_DESKTOP="Bureau"
RL_DEVICE_MOBILE="Mobile"
RL_DEVICE_TABLET="Tablettes"
RL_DEVICES="Périphériques"
RL_DEVICES_DESC="Sélectionnez les périphériques à affecter. Gardez
à l'esprit que la détection des périphériques n'est pas
toujours 100&#37; précise. Les utilisateurs peuvent configurer leur
périphérique pour qu'il imite d'autres périphériques"
RL_DIRECTION="Direction"
RL_DIRECTION_DESC="Sélectionnez la direction"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Sélectionnez les composants
d'administration dans lesquels NE PAS autoriser l'utilisation de
cette extension."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Sélectionnez les composants dans
lesquels NE PAS autoriser l'utilisation de cette extension."
RL_DISABLE_ON_COMPONENTS="Inactif dans les composants"
RL_DISABLE_ON_COMPONENTS_DESC="Sélectionnez les composants pour
lesquels la syntaxe du plug-in ne doit pas être prise en charge."
RL_DISPLAY_EDITOR_BUTTON="Afficher le bouton d'édition"
RL_DISPLAY_EDITOR_BUTTON_DESC="Sélectionnez cette option afin
d'afficher le bouton d'édition."
RL_DISPLAY_LINK="Mode d'affichage du lien"
RL_DISPLAY_LINK_DESC="Sélectionnez le mode d'affichage du
lien."
RL_DISPLAY_TOOLBAR_BUTTON="Afficher le bouton"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Sélectionnez 'Oui' pour
afficher un bouton dans la barre des boutons."
RL_DISPLAY_TOOLBAR_BUTTONS="Afficher les boutons de la barre
d'outils"
RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Sélectionnez cette option pour
afficher le(s) bouton(s) dans la barre d'outils."
RL_DISPLAY_TOOLTIP="Afficher la bulle d'aide"
RL_DISPLAY_TOOLTIP_DESC="Sélectionnez cette option pour afficher un
Tooltip qui vous donnera des informations supplémentaires lorsque le
curseur de votre souris passera par-dessus le lien."
RL_DYNAMIC_TAG_ARTICLE_ID="ID de l'article actuel"
RL_DYNAMIC_TAG_ARTICLE_OTHER="Toute autre donnée disponible dans
l'article actuel."
RL_DYNAMIC_TAG_ARTICLE_TITLE="Titre de l'article actuel"
RL_DYNAMIC_TAG_COUNTER="Cela positionne le nombre
d'occurrences.<br>Si votre recherche obtient des résultats,
disons 4, le compteur affichera respectivement 1 à 4."
RL_DYNAMIC_TAG_DATE="La date utilise %1$sle format php strftime()%2$s.
Exemple : %3$s"
RL_DYNAMIC_TAG_ESCAPE="Utiliser pour échapper dynamiquement les
valeurs (ajoute une barre aux apostrophes)."
RL_DYNAMIC_TAG_LOWERCASE="Convertissez le texte des balises en
minuscules."
RL_DYNAMIC_TAG_RANDOM="Un nombre aléatoire dans l'intervalle
donné"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Chaîne de langue à traduire dans le texte
(basée sur la langue active)"
RL_DYNAMIC_TAG_UPPERCASE="Convertir le texte des balises en
majuscules."
RL_DYNAMIC_TAG_USER_ID="Le numéro d'identification de
l'utilisateur"
RL_DYNAMIC_TAG_USER_NAME="Le nom de l'utilisateur"
RL_DYNAMIC_TAG_USER_OTHER="Toute autre donnée disponible de
l'utilisateur ou du contact connecté. Exemple : [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="La balise utilisateur positionne des
données de l'utilisateur connecté. Si le visiteur n'est pas
connecté, la balise sera supprimée."
RL_DYNAMIC_TAG_USER_USERNAME="Le nom de connexion de
l'utilisateur"
RL_DYNAMIC_TAGS="Balises dynamiques"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Activer"
RL_ENABLE_ACTIONLOG="Enregistrer les actions de
l'utilisateur"
RL_ENABLE_ACTIONLOG_DESC="Sélectionnez cette option pour enregistrer
les actions de l'utilisateur. Ces actions seront visibles dans le
module de journalisation des actions de l'utilisateur."
RL_ENABLE_IN="Activer pour"
RL_ENABLE_IN_ADMIN="Activer dans l'administration"
RL_ENABLE_IN_ADMIN_DESC="S'il est activé, le plug-in
fonctionnera également dans l'interface d'administration du
site.<br>Normalement, vous ne devriez pas en avoir besoin, et cela
peut provoquer des dysfonctionnements, comme le ralentissement de
l'espace d'administration ou encore des balises du plugin
affichées où il ne devrait pas y en avoir."
RL_ENABLE_IN_ARTICLES="Activer dans les articles"
RL_ENABLE_IN_COMPONENTS="Activer dans les composants"
RL_ENABLE_IN_DESC="Choisissez si vous souhaitez activer cette
extension en frontal du site, dans l'interface d'administration,
ou les deux."
RL_ENABLE_IN_FRONTEND="Activer en frontal du site"
RL_ENABLE_IN_FRONTEND_DESC="Si activé, cette extension sera
également disponible en frontal du site."
RL_ENABLE_OTHER_AREAS="Activer dans d'autres zones."
RL_ENDS_WITH="Se termine par"
RL_EQUALS="Égales"
RL_EXCLUDE="Exclure"
RL_EXPAND="Etendre"
RL_EXPORT="Exporter"
RL_EXPORT_FORMAT="Format d'exportation"
RL_EXPORT_FORMAT_DESC="Sélectionnez le format pour l'exportation
de fichiers."
RL_EXTRA_PARAMETERS="Paramètres supplémentaires"
RL_EXTRA_PARAMETERS_DESC="Indiquez les paramètres supplémentaires
qui ne peuvent pas être définis avec les paramètres disponibles."
RL_FALL="Automne"
RL_FEATURED_DESC="Sélectionnez cette option pour utiliser
l'état de la caractéristique dans l'affectation."
RL_FEATURES="Caractéristiques"
RL_FIELD="Champ"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nom du champ"
RL_FIELD_PARAM_MULTIPLE="Multiple"
RL_FIELD_PARAM_MULTIPLE_DESC="Permet de sélectionner plusieurs
valeurs."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Valeur du champ"
RL_FIELDS_DESC="Sélectionnez le·s champ·s concerné·s et saisissez
la/les valeur·s souhaitée·s."
RL_FILES_NOT_FOUND="Les fichiers %s requis n'ont pas été
trouvés!"
RL_FILTERS="Filtres"
RL_FINISH_PUBLISHING="Fin de publication"
RL_FINISH_PUBLISHING_DESC="Entrez la date de fin de publication"
RL_FIX_HTML="Corriger le HTML"
RL_FIX_HTML_DESC="Sélectionnez cette option pour que l'extension
corrige tout problème de structure html trouvé. Cela est souvent
nécessaire pour traiter les balises html
environnantes.<br><br>Ne désactivez cette fonction que si vous
rencontrez des problèmes à ce sujet."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Pour plus de fonctionnalités, vous pouvez acheter
la version PRO."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="La NoNumber Framework ne semble pas être
utilisée par d'autres extensions installées. Vous pouvez
probablement désactiver ou désinstaller ce plugin en toute
sécurité."
RL_FROM_TO="De - à"
RL_FRONTEND="Frontend"
RL_GALLERY="Galerie"
RL_GEO="Géolocalisation"
RL_GEO_DESC="La géolocalisation n'est pas précise à
100&#37;. La géolocalisation est basée sur l'adresse IP du
visiteur. Toutes les adresses IP ne sont pas fixes ou connues."
RL_GEO_GEOIP_COPYRIGHT_DESC="Ce produit comprend des données GeoLite2
créées par MaxMind, disponibles à partir de [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="La bibliothèque Labs Regular GeoIP
n'est pas installée. Vous devez [[%1:link start%]]installer la
bibliothèque Labs Regular GeoIP[[%2:link end%]] pour utiliser la
géolocalisation."
RL_GO_PRO="Passer à la version Pro!"
RL_GREATER_THAN="Supérieur à"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Titre 1"
RL_HEADING_2="Titre 2"
RL_HEADING_3="Titre 3"
RL_HEADING_4="Titre 4"
RL_HEADING_5="Titre 5"
RL_HEADING_6="Titre 6"
RL_HEADING_ACCESS_ASC="Par accès ascendant"
RL_HEADING_ACCESS_DESC="Par accès descendant"
RL_HEADING_CATEGORY_ASC="Par catégorie ascendante"
RL_HEADING_CATEGORY_DESC="Par catégorie descendante"
RL_HEADING_CLIENTID_ASC="Par lieu ascendant"
RL_HEADING_CLIENTID_DESC="Par lieu descendant"
RL_HEADING_COLOR_ASC="Par couleur ascendante"
RL_HEADING_COLOR_DESC="Par couleur descendante"
RL_HEADING_DEFAULT_ASC="Par défaut ascendant"
RL_HEADING_DEFAULT_DESC="Par défaut descendant"
RL_HEADING_DESCRIPTION_ASC="Par description ascendante"
RL_HEADING_DESCRIPTION_DESC="Par description descendante"
RL_HEADING_ID_ASC="Par ID ascendant"
RL_HEADING_ID_DESC="Par ID descendant"
RL_HEADING_LANGUAGE_ASC="Par langue ascendant"
RL_HEADING_LANGUAGE_DESC="Par langue descendant"
RL_HEADING_ORDERING_ASC="Par tri ascendant"
RL_HEADING_ORDERING_DESC="Par tri descendant"
RL_HEADING_PAGES_ASC="Par Eléments de menu ascendants"
RL_HEADING_PAGES_DESC="Par Eléments de menus descendants"
RL_HEADING_POSITION_ASC="Par position ascendante"
RL_HEADING_POSITION_DESC="Par position descendante"
RL_HEADING_STATUS_ASC="Par statut ascendant"
RL_HEADING_STATUS_DESC="Par statut descendant"
RL_HEADING_STYLE_ASC="Par style ascendant"
RL_HEADING_STYLE_DESC="Par style descendant"
RL_HEADING_TEMPLATE_ASC="Par template ascendant"
RL_HEADING_TEMPLATE_DESC="Par template descendant"
RL_HEADING_TITLE_ASC="Par titre ascendant"
RL_HEADING_TITLE_DESC="Par titre descendant"
RL_HEADING_TYPE_ASC="Par type ascendant"
RL_HEADING_TYPE_DESC="Par type descendant"
RL_HEIGHT="Hauteur"
RL_HEMISPHERE="Hémisphère"
RL_HEMISPHERE_DESC="Sélectionnez l'hémisphère où se situe
votre site"
RL_HIGH="Haute"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Page d'accueil"
RL_HOME_PAGE_DESC="A l'inverse de la sélection de
l'élément de la page d'accueil (par défaut) via les éléments
de menu, cela ne concernera que la véritable page d'accueil et non
les URLs ayant la même ID que l'élément du menu de
l'accueil.<br><br>Cela pourrait ne pas fonctionner avec
toutes les extensions SEF tierces."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="Tags HTML"
RL_ICON_ONLY="Icône seul"
RL_IGNORE="Ignorer"
RL_IMAGE="Image"
RL_IMAGE_ALT="Image Alt"
RL_IMAGE_ALT_DESC="valeur Alt de l'image."
RL_IMAGE_ATTRIBUTES="Attributs Image"
RL_IMAGE_ATTRIBUTES_DESC="Attributs supplémentaires de l'image,
comme : alt=&quot;Mon image&quot;
width=&quot;300&quot;"
RL_IMPORT="Importer"
RL_IMPORT_ITEMS="Importer les éléments."
RL_INCLUDE="Inclure"
RL_INCLUDE_CHILD_ITEMS="Inclure les éléments enfants"
RL_INCLUDE_CHILD_ITEMS_DESC="Inclure également aux éléments enfants
les éléments sélectionnés ?"
RL_INCLUDE_NO_ITEMID="Inclure les éléments de menu sans ID"
RL_INCLUDE_NO_ITEMID_DESC="Affecter également même si aucune ID
d'élément de menu n'est défini dans l'URL ?"
RL_INITIALISE_EVENT="Initialisation sur l'événement"
RL_INITIALISE_EVENT_DESC="Définir l'événement Joomla interne
sur lequel le plug-in doit être initialisé. Changer cela seulement si
vous rencontrez des problèmes avec le plug-in ou qu'il ne fonctionne
pas."
RL_INPUT_TYPE="Type d'entrée"
RL_INPUT_TYPE_ALNUM="Une chaîne contenant uniquement les lettres A-Z
et/ou les chiffres 0-9 (non sensible à la casse)."
RL_INPUT_TYPE_ARRAY="Un ensemble."
RL_INPUT_TYPE_BOOLEAN="Une valeur booléenne."
RL_INPUT_TYPE_CMD="Une chaîne contenant les lettres A-Z, les chiffres
0-9, des traits de soulignement, des points ou des traits d'union (non
sensible à la casse)."
RL_INPUT_TYPE_DESC="Sélectionnez un type d'entrée :"
RL_INPUT_TYPE_FLOAT="Un nombre à virgule flottante, ou un ensemble de
nombres à virgule flottante."
RL_INPUT_TYPE_INT="Un entier, ou un ensemble d'entiers."
RL_INPUT_TYPE_STRING="Une chaîne entièrement décodée et nettoyée
(par défaut)."
RL_INPUT_TYPE_UINT="Un entier non signé, ou un ensemble
d'entiers non signés."
RL_INPUT_TYPE_WORD="Une chaîne contenant les lettres de A à Z ou des
traits de soulignement uniquement (non sensible à la casse)."
RL_INSERT="Insérer"
RL_INSERT_DATE_NAME="Insérer la date / le nom"
RL_IP_RANGES="Adresses IP/Plages"
RL_IP_RANGES_DESC="Liste d'adresses IP et de gammes d'IP
séparées par une virgule et/ou un retour à la ligne. Par exemple
:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="Adresses IP"
RL_IS_FREE_VERSION="Ceci est la version GRATUITE de %s."
RL_ITEM="Elément"
RL_ITEM_IDS="Identifiants des éléments"
RL_ITEM_IDS_DESC="Indiquez les identifiants des éléments à
assigner. Utilisez un virgules pour les séparer."
RL_ITEMS="Eléments"
RL_ITEMS_DESC="Sélectionnez les articles à assigner."
RL_JCONTENT="Contenu Joomla!"
RL_JED_REVIEW="Vous aimez cette extension? [[%1:start link%]]Laissez
un commentaire sur la JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Vous exécutez %1$s pour Joomla 2.5 sur
Joomla 3. S'il vous plaît , réinstaller %1$s pour résoudre le
problème."
RL_JQUERY_DISABLED="Vous avez désactivé le script jQuery. %s
nécessite jQuery pour fonctionner. Assurez-vous que votre template ou
d'autres extensions chargent les scripts nécessaires pour remplacer
la fonctionnalité requise."
RL_K2="K2"
RL_K2_CATEGORIES="Catégories K2"
RL_LANGUAGE="Langue"
RL_LANGUAGE_DESC="Sélectionnez la langue à attribuer."
RL_LANGUAGES="Langues"
RL_LANGUAGES_DESC="Sélectionnez les langues à affecter."
RL_LAYOUT="Mise en page"
RL_LAYOUT_DESC="Sélectionnez la mise en page à utiliser. Vous pouvez
remplacer cette mise en page dans le composant ou le template."
RL_LESS_THAN="Moins de"
RL_LEVELS="Niveaux"
RL_LEVELS_DESC="Sélectionnez les niveaux à assigner."
RL_LIB="Bibliothèque"
RL_LINK_TEXT="Texte du bouton"
RL_LINK_TEXT_DESC="Indiquez dans ce champ le texte à afficher sur le
bouton."
RL_LIST="Liste"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Charger Bootstrap"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Sélectionnez cet option pour
charger le Framework Bootstrap (ensemble qui contient des codes HTML et
CSS, des formulaires, boutons, outils de navigation et autres éléments
interactifs, ainsi que des extensions JavaScript en option)."
RL_LOAD_JQUERY="Charger le script JQuery"
RL_LOAD_JQUERY_DESC="Sélectionnez cette option pour charger le script
natif jQuery. Vous pouvez désactiver cette option si vous rencontrez des
conflits avec votre template ou d'autres extensions chargeant leur
propre version de jQuery."
RL_LOAD_MOOTOOLS="Charger le Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Sélectionnez cette option pour charger le
script natif MooTools. Vous pouvez désactiver cette option si vous
rencontrez des conflits avec votre template ou d'autres extensions
chargeant leur propre version de MooTools."
RL_LOAD_STYLESHEET="Charger les styles css"
RL_LOAD_STYLESHEET_DESC="Sélectionnez 'Oui' pour utiliser
la feuille de style par défaut de l'extension.<br>Attention: si
vous sélectionnez 'Non', les éléments seront très
probablement affichés sans les styles permettant de comprendre leur
fonction, à moins que ces styles soient chargés par une autre feuille de
style (du template par exemple).<br>Si vous souhaitez adapter les
styles par défaut, sélectionnez 'Non' après avoir intégré
toutes les classes nécessaires de ces styles dans un autre fichier CSS
chargé dans la page."
RL_LOW="Faible"
RL_LTR="De gauche à droite"
RL_MATCH_ALL="Toutes les correspondances"
RL_MATCH_ALL_DESC="Sélectionnez cette option pour n'autoriser
l'affectation que si tous les éléments sélectionnés
correspondent."
RL_MATCHING_METHOD="Méthode de diffusion"
RL_MATCHING_METHOD_DESC="Faut-il faire correspondre toutes les
affectations ou seulement certaines d'entre elles
?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Nombre maximum dans la liste"
RL_MAX_LIST_COUNT_DESC="Nombre maximum d'éléments à afficher
dans les listes à sélection multiple. Si le nombre total des éléments
est plus élevé, le champ de sélection sera affiché comme un champ
texte.<br>Vous pouvez diminuer ce nombre si vos temps de chargement
sont trop longs en raison du nombre élevé d'éléments dans les
listes."
RL_MAX_LIST_COUNT_INCREASE="Augmenter le nombre maximal dans les
listes"
RL_MAX_LIST_COUNT_INCREASE_DESC="S'il y a plus de [[%1:max%]]
éléments.<br><br>Pour éviter une lenteur de chargement, ce
champ est affiché comme une zone de texte au lieu d'une liste de
sélection dynamique.<br><br>Vous pouvez augmenter le
'[[%2:max setting%]]' dans les paramètres du plugin Regular Labs
Library."
RL_MAXIMIZE="Agrandir"
RL_MEDIA_VERSIONING="Utilisez Media Versioning"
RL_MEDIA_VERSIONING_DESC="Sélectionnez cette option pour ajouter le
numéro de version de l'extension à la fin des urls des médias
(js/css) pour forcer les navigateurs à charger le fichier correct."
RL_MEDIUM="Moyenne"
RL_MENU_ITEMS="Eléments de menus"
RL_MENU_ITEMS_DESC="Sélectionnez les éléments de menu à
affecter."
RL_META_KEYWORDS="Meta Mots clés"
RL_META_KEYWORDS_DESC="Indiquez les mots-clés trouvés dans les meta
keywords du cotenu. Utilisez des virgules pour séparer les
mots-clés."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Réduire"
RL_MOBILE_BROWSERS="Explorateurs mobiles"
RL_MOD="Module"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mois"
RL_MONTHS_DESC="Sélectionnez le mois à affecter."
RL_MORE_INFO="Plus d'informations"
RL_MY_STRING="Ma chaîne !"
RL_N_ITEMS_ARCHIVED="%s articles archivés."
RL_N_ITEMS_ARCHIVED_1="%s article archivé."
RL_N_ITEMS_CHECKED_IN_0="Aucun élément déverrouillé."
RL_N_ITEMS_CHECKED_IN_1="%d élément déverrouillé."
RL_N_ITEMS_CHECKED_IN_MORE="%d éléments déverrouillés."
RL_N_ITEMS_DELETED="%s éléments supprimés."
RL_N_ITEMS_DELETED_1="%s élément supprimé."
RL_N_ITEMS_FEATURED="%s articles mis en vedette."
RL_N_ITEMS_FEATURED_1="%s article mis en vedette."
RL_N_ITEMS_PUBLISHED="%s éléments publiés."
RL_N_ITEMS_PUBLISHED_1="%s élément publié."
RL_N_ITEMS_TRASHED="%s éléments mis dans la corbeille."
RL_N_ITEMS_TRASHED_1="%s élément mis dans la corbeille."
RL_N_ITEMS_UNFEATURED="%s articles retirés de 'En
vedette'."
RL_N_ITEMS_UNFEATURED_1="%s article retiré de 'En
vedette'."
RL_N_ITEMS_UNPUBLISHED="%s éléments dépubliés."
RL_N_ITEMS_UNPUBLISHED_1="%s élément dépublié."
RL_N_ITEMS_UPDATED="%d éléments mis à jour."
RL_N_ITEMS_UPDATED_1="Un élément a été mis à jour"
RL_NEW_CATEGORY="Nouvelle catégorie"
RL_NEW_CATEGORY_ENTER="Indiquez le nom de la nouvelle catégorie à
créer."
RL_NEW_VERSION_AVAILABLE="Nouvelle version disponible"
RL_NEW_VERSION_OF_AVAILABLE="Une nouvelle version de %s est
disponible"
RL_NO_ICON="Pas d'icône"
RL_NO_ITEMS_FOUND="Pas d'éléments trouvés."
RL_NORMAL="Normal"
RL_NORTHERN="Nord"
RL_NOT="Non"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
RL_NOT_CONTAINS="Ne contient pas"
RL_NOT_EQUALS="N'est pas égal à"
RL_ONLY="Uniquement"
RL_ONLY_AVAILABLE_IN_JOOMLA="Disponible uniquement dans Joomla %s ou
supérieurs."
RL_ONLY_AVAILABLE_IN_PRO="<em>Uniquement disponible dans la
version PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Uniquement disponible dans la
version PRO)"
RL_ONLY_VISIBLE_TO_ADMIN="Ce message sera uniquement affiché aux
(super) administrateurs."
RL_OPTION_SELECT="- Sélectionner -"
RL_OPTION_SELECT_CLIENT="- Sélection Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Systèmes d'exploitation"
RL_OS_DESC="Sélectionnez les système d'exploitation à
assigner. Garder à l'esprit que la détection du système
d'exploitation n'est pas garantie à 100&#37;. Les
utilisateurs peuvent configurer leur explorateur pour simuler un autre
système d'exploitation."
RL_OTHER="Autre"
RL_OTHER_AREAS="Autres zones"
RL_OTHER_OPTIONS="Autres options"
RL_OTHER_SETTINGS="Autres réglages"
RL_OTHERS="Autres"
RL_PAGE_TYPES="Types de pages"
RL_PAGE_TYPES_DESC="Sélectionnez sur quels types de pages
l'affectation doit être active."
RL_PHP="PHP personnalisé"
RL_PHP_DESC="Entrez un morceau de code PHP à évaluer. Le code doit
retourner la valeur 'true' ou 'false'.<br>Par
exemple:<br>$user =
JFactory:&thinsp;:getUser();<br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Afficher les commentaires"
RL_PLACE_HTML_COMMENTS_DESC="Par défaut, les commentaires HTML sont
affichés à la suite de cette extension.<br>Ces commentaires peuvent
vous aider à régler des problèmes lorsque vous n'obtenez pas ce qui
devrait être.<br>Si vous souhaitez ne pas afficher ces commentaires,
mettez cette option sur 'Non'."
RL_PLG_ACTIONLOG="Plugin journal des actions"
RL_PLG_EDITORS-XTD="Plugin bouton de l'éditeur"
RL_PLG_FIELDS="Champ du plugin"
RL_PLG_SYSTEM="Plugin Système"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Codes Postaux"
RL_POSTALCODES_DESC="Liste des codes postaux (12345) ou des plages de
codes postaux (12300-12500) séparés par une virgule.<br>Ceci ne
peut être utilisé que pour [[%1:start link%]]un nombre limité de pays et
d'adresses IP[[%2:end link%]]."
RL_POWERED_BY="Généré par %s"
RL_PRODUCTS="Produits"
RL_PUBLISHED_DESC="Désactiver temporairement cet élément."
RL_PUBLISHING_ASSIGNMENTS="Publication d'affectations"
RL_PUBLISHING_SETTINGS="Publier les éléments"
RL_RANDOM="Aléatoire"
RL_REDSHOP="RedShop"
RL_REGEX="Expressions régulières"
RL_REGIONS="Régions / Etats"
RL_REGIONS_DESC="Sélectionnez les régions/états à assigner."
RL_REGULAR_EXPRESSIONS="Utiliser les expressions régulières"
RL_REGULAR_EXPRESSIONS_DESC="Sélectionnez pour traiter les valeurs en
tant qu'expressions régulières."
RL_REMOVE_IN_DISABLED_COMPONENTS="Tronquer la syntaxe si inactif"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Sélectionnez 'Oui'
pour supprimer les balises du plug-in dans le code des pages des composants
pour lesquels la prise en charge de la syntaxe a été désactivée (voir
paramètre ci-dessus)."
RL_RESIZE_IMAGES="Redimensionner les images"
RL_RESIZE_IMAGES_CROP="Recadrage"
RL_RESIZE_IMAGES_CROP_DESC="L'image redimensionnée aura toujours
la largeur et la hauteur définies."
RL_RESIZE_IMAGES_DESC="Si cette option est sélectionnée, les images
redimensionnées seront automatiquement créées pour compléter celles qui
n'existent pas encore. Les images redimensionnées seront créées en
utilisant les paramètres ci-dessous."
RL_RESIZE_IMAGES_FILETYPES="Uniquement sur les types de fichiers"
RL_RESIZE_IMAGES_FILETYPES_DESC="Sélectionnez les types de fichiers
à redimensionner."
RL_RESIZE_IMAGES_FOLDER="Dossier"
RL_RESIZE_IMAGES_FOLDER_DESC="Le dossier contenant les images
redimensionnées. Il s'agit d'un sous-dossier du dossier
contenant les images originales."
RL_RESIZE_IMAGES_HEIGHT_DESC="Définissez la hauteur de l'image
redimensionnée en pixels (exemple : 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="La hauteur sera calculée sur la base
de la largeur définie ci-dessus et du ratio de l'image
originale."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="La largeur sera calculée en fonction
de la hauteur définie ci-dessous et du ratio de l'image
originale."
RL_RESIZE_IMAGES_QUALITY="Qualité JPG"
RL_RESIZE_IMAGES_QUALITY_DESC="La qualité des images
redimensionnées. Choisissez entre faible, moyen ou élevé. Plus la
qualité est élevée, plus les fichiers résultants sont
volumineux.<br>Ce réglage ne concerne que les images de format
JPG."
RL_RESIZE_IMAGES_SCALE="Échelle"
RL_RESIZE_IMAGES_SCALE_DESC="L'image redimensionnée le sera à
la largeur ou la hauteur maximale en conservant le ratio de l'image
originale."
RL_RESIZE_IMAGES_SCALE_USING="Échelle utilisant..."
RL_RESIZE_IMAGES_SCALE_USING_DESC="Choisissez si vous voulez
redimensionner les images en utilisant la largeur ou la hauteur maximale.
L'autre dimension sera calculée sur la base du ratio de l'image
originale."
RL_RESIZE_IMAGES_TYPE="Méthode de redimensionnement"
RL_RESIZE_IMAGES_TYPE_DESC="Définissez le type de
redimensionnement."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Choisissez si vous voulez
redimensionner les images en utilisant la largeur ou la hauteur
maximale."
RL_RESIZE_IMAGES_WIDTH_DESC="Définissez la largeur de l'image
redimensionnée en pixels (exemple : 320)."
RL_RTL="De droite à gauche"
RL_SAVE_CONFIG="Après avoir sauvegarder les options, il
n'apparaîtra plus lors du chargement de la page."
RL_SEASONS="Saisons"
RL_SEASONS_DESC="Sélectionnez la saison à affecter."
RL_SELECT="Sélectionner"
RL_SELECT_A_CATEGORY="Sélectionner une catégorie"
RL_SELECT_ALL="Sélectionner tout"
RL_SELECT_AN_ARTICLE="Sélectionnez un article"
RL_SELECT_FIELD="Sélectionnez un champ"
RL_SELECTED="Sélectionné(e)"
RL_SELECTION="Sélection"
RL_SELECTION_DESC="Sélectionnez pour inclure ou exclure la sélection
pour
l'assignation.<br><br><strong>Inclure</strong><br>Publier
uniquement dans la
sélection.<br><br><strong>Exclure</strong><br>Publier
partout sauf dans la sélection."
RL_SETTINGS_ADMIN_MODULE="Options du module
d'administration"
RL_SETTINGS_EDITOR_BUTTON="Paramètres du bouton"
RL_SETTINGS_SECURITY="Paramètres de sécurité"
RL_SHOW_ASSIGNMENTS="Options d'assignation"
RL_SHOW_ASSIGNMENTS_DESC="Sélectionnez si vous souhaitez uniquement
visualiser les assignations sélectionnées. Ceci vous permet d'avoir
un vision claire des assignations actives."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Tous les types d'assignation
noon-sélectionnés sont maintenant cachés."
RL_SHOW_COPYRIGHT="Afficher le Copyright"
RL_SHOW_COPYRIGHT_DESC="Si sélectionné, des informations
complémentaires quant au copyright seront affichées dans les vues
d'administration. Les extensions Regular Labs n'affichent jamais
d'informations de copyright ou des backlinks en frontend."
RL_SHOW_HELP_MENU="Afficher le menu d'aide"
RL_SHOW_HELP_MENU_DESC="Sélectionnez cette option pour afficher un
lien vers le site web de Regular Labs dans le menu Aide de
l'administrateur."
RL_SHOW_ICON="Montrer l'icone du bouton"
RL_SHOW_ICON_DESC="Si sélectionné, l'icone apparaîtra dans le
bouton de l'éditeur."
RL_SHOW_UPDATE_NOTIFICATION="Afficher les notifications de mises à
jour"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Si sélectionné, une notification
de mise à jour sera affichée dans la fenêtre principale du composant
lorsqu'une nouvelle version est disponible."
RL_SIMPLE="Simple"
RL_SLIDES="Diapositives"
RL_SOUTHERN="Sud"
RL_SPECIFIC="Spécifique"
RL_SPRING="Printemps"
RL_START="Démarrer"
RL_START_PUBLISHING="Début de publication"
RL_START_PUBLISHING_DESC="Entrez la date de début de
publication"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Enlever les balises HTML"
RL_STRIP_SURROUNDING_TAGS_DESC="Sélectionnez cette option pour
supprimer systématiquement les balises HTML (div, p, span) entourant la
balise du plug-in. Si désactivé, le plugin va essayer de supprimer
lui-même les balises qui cassent la structure html (comme p à
l'intérieur de balises p)."
RL_STYLING="Styles"
RL_SUMMER="Été"
RL_TABLE_NOT_FOUND="La table %s requise en base de données n'a
pas été trouvée!"
RL_TABS="Onglets"
RL_TAG_CHARACTERS="Caractères des tags"
RL_TAG_CHARACTERS_DESC="Caractères d'encadrement des balises de
tags.<br><strong>Attention:</strong> si vous modifiez ce
paramètre, tous les tags déjà existants ne fonctionneront plus."
RL_TAG_SYNTAX="Syntaxe des tags"
RL_TAG_SYNTAX_DESC="Syntaxe des balises de
tags.<br><strong>Attention:</strong> si vous modifiez ce
paramètre, tous les tags déjà existants ne fonctionneront plus."
RL_TAGS="Etiquettes"
RL_TAGS_DESC="Indiquez les étiquettes à assigner. Utilisez des
virgules pour les séparer."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Sélectionnez les templates à affecter."
RL_TEXT="Texte"
RL_TEXT_HTML="Texte (HTML)"
RL_TEXT_ONLY="Texte seul"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Cette
extension a besoin de %s pour fonctionner correctement!"
RL_TIME="Heure"
RL_TIME_FINISH_PUBLISHING_DESC="Entrez l' heure de fin de
publication.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Entrez l' heure de début de
publication.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Basculer"
RL_TOOLTIP="Info-bulle"
RL_TOP="Haut"
RL_TOTAL="total"
RL_TYPES="Types"
RL_TYPES_DESC="Sélectionnez les types auxquels assigner."
RL_UNSELECT_ALL="Désélectionner tout"
RL_UNSELECTED="Non sélectionné(e)"
RL_UPDATE_TO="Mettre à jour vers la version %s"
RL_URL="URLs"
RL_URL_PARAM_NAME="Nom du paramètre"
RL_URL_PARAM_NAME_DESC="Entrez le nom du paramètre de
l'url."
RL_URL_PARTS="URL Affectées"
RL_URL_PARTS_DESC="Entrer (la partie de) l'URL à
affecter.<br>Utiliser une nouvelle ligne pour chaque URL
différente."
RL_URL_PARTS_REGEX="Les segments d'URL seront comparés en
utilisant des expressions. <strong>Assurez-vous que la chaîne
utilise une syntaxe regex valide.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Pour les assignations des catégories et
articles, voir la section du contenu Joomla! ci-dessus."
RL_USE_CUSTOM_CODE="Utiliser du code personnalisé"
RL_USE_CUSTOM_CODE_DESC="Sélectionnez 'Oui' pour remplacer
le code inséré par le bouton par celui que vous spécifiez dans le champ
qui s'affiche ci-dessous après sélection du 'Oui'."
RL_USE_SIMPLE_BUTTON="Simple bouton"
RL_USE_SIMPLE_BUTTON_DESC="Sélectionnez cette option pour utiliser un
simple bouton d'insertion n'insèrant qu'une syntaxe exemple
dans l'éditeur."
RL_USER_GROUP_LEVELS="Groupes d'utilisateurs"
RL_USER_GROUPS="Groupes d'utilisateurs"
RL_USER_GROUPS_DESC="Sélectionnez les groupes d'utilisateurs
auxquels assigner"
RL_USER_IDS="IDs des utilisateurs"
RL_USER_IDS_DESC="Entrez les IDs des utilisateurs à affecter.
Utilisez des virgules pour séparer les IDs."
RL_USERS="Utilisateurs"
RL_UTF8="UTF-8"
RL_VIDEO="Vidéo"
RL_VIEW="Vue"
RL_VIEW_DESC="Sélectionnez la vue par défaut à utiliser lors de la
création d'un nouvel élément."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="largeur"
RL_WINTER="Hiver"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categories ZOO"
PK�X�[�=����?regularlabs/language/fr-FR/fr-FR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Système - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Le plug-in système Regular Labs Library
permet d'intégrer la prise en charge des bibliothèques de scripts
Regular Labs."
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[���Ӊ���;regularlabs/language/hr-HR/hr-HR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - korišten od
Regular Labs ekstenzija"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs ekstenzije
trebaju ovaj dodatak i bez njega neće raditi<br><br>Regular
Labs ekstenzije uključuju:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="nemojte odinstalirati ili
onemogućiti ovaj dodatak ako koristite bilo koju od Regular Labs
ekstenzija."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaksa oznake"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Ponašanje"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Zadane postavke"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Slike"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opcije
administratorskog modula"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opcije gumba
urednika"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Opcije
sigurnosti"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Postavljanje"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Stil"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaksa oznake"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
; RL_ACTION_INSTALL="Install"
; RL_ACTION_UNINSTALL="Uninstall"
RL_ACTION_UPDATE="Ažuriraj"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Napredno"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="SVE"
RL_ALL_DESC="Bit će objavljeno ako se
<strong>SVE</strong> donje dodjele podudaraju."
RL_ALL_RIGHTS_RESERVED="Sva prava pridržana"
RL_ALSO_ON_CHILD_ITEMS="Također na podstavkama"
RL_ALSO_ON_CHILD_ITEMS_DESC="Dodijeli i podstavkama izabranih
stavki?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="BILO KOJI"
RL_ANY_DESC="Bit će objavljeno ako se <strong>BILO
KOJA</strong> (jedna ili više) dodjela podudaraju.<br>Dodjele
koje su postavljene na 'Zanemari' bit će zanemarene."
RL_ARE_YOU_SURE="Jesi li siguran"
RL_ARTICLE="Članak"
; RL_ARTICLE_AUTHORS="Authors"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Članci"
RL_ARTICLES_DESC="Odaberi članke za dodjelu"
RL_AS_EXPORTED="Kao što je izvezeno"
; RL_ASSIGNMENTS="Assignments"
RL_ASSIGNMENTS_DESC="Odabirom posebnih zadataka možete ograničiti
gdje se ovaj %s treba ili ne treba objaviti.<br>Da se objavi na svim
stranicama, jednostavno nemojte odabrati nijedan zadatak."
RL_AUSTRALIA="Australia"
; RL_AUTHORS="Authors"
RL_AUTO="Automatski"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Ponašanje"
RL_BEHAVIOUR="Ponašanje"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Vi ste onemogućili pokretanje
Bootstrap okosnice. %s treba Bootstrap okosnicu da bi funkcionirao.
Provjerite dali Vaš predložak ili druge ekstenzije učitatavaju potrebne
skripte radi zamjene potrebne funkcionalnosti."
RL_BOTH="Oboje"
RL_BOTTOM="Dno"
RL_BROWSERS="Preglednik"
RL_BROWSERS_DESC="Odredi preglednike za dodjelu. Imaj na umu da
prepoznavanje preglednika nije uvijek 100&#37; pouzdano. Korisnici mogu
postaviti preglednike da imitiraju druge preglednike."
RL_BUTTON_ICON="Ikona gumba"
RL_BUTTON_ICON_DESC="Odaberi koju ikonu da prikažeš u gumbu."
RL_BUTTON_TEXT="Tekst gumba"
RL_BUTTON_TEXT_DESC="Ovaj tekst će se prikazati na gumbu tekstualnog
editora."
; RL_CACHE_TIME="Cache Time"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategorije"
RL_CATEGORIES_DESC="Odredi kategorije za dodjelu."
; RL_CATEGORY="Category"
; RL_CHANGELOG="Changelog"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Spusti"
RL_COM="Komponenta"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponente"
RL_COMPONENTS_DESC="Odredi komponente za dodjelu."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Sadržaj"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="Kontinenti"
RL_CONTINENTS_DESC="Odaberite kontinente na koje se odnosi."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Kopija %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Države"
RL_COUNTRIES_DESC="Odaberite države na koje se odnosi."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
RL_CURRENT_DATE="Trenutni datum/vrijeme:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Tvoja trenutna verzija je %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Prilagođeni kôd"
RL_CUSTOM_CODE_DESC="Upiši kôd koji će gumb tekstualnog editora
ubaciti u sadržaj (umjesto predodređenog kôda)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Vlastita polja"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Datum i vrijeme"
RL_DATE_TIME_DESC="Dodjele po vremenu i datumu koriste vrijeme/datum
tvojeg poslužitelja, a ne posjetiteljevog računala."
; RL_DATE_TO="To"
RL_DAYS="Dani u tjednu"
RL_DAYS_DESC="Odredi dane u tjednu za dodjelu."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
RL_DEFAULT_SETTINGS="Zadane Postavke"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Smjer"
RL_DIRECTION_DESC="Odredi smjer"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Onemogući na komponente"
RL_DISABLE_ON_COMPONENTS_DESC="Odaberite u kojim komponentama prednjeg
sučelja stranice NE ŽELITE koristiti ovu ekstenziju."
RL_DISPLAY_EDITOR_BUTTON="Prikaži gumb urednika"
RL_DISPLAY_EDITOR_BUTTON_DESC="Odaberite da prikažete gumb
tekstualnog urednika."
RL_DISPLAY_LINK="Prikaži poveznicu"
RL_DISPLAY_LINK_DESC="Kako želiš da poveznica bude prikazana?"
RL_DISPLAY_TOOLBAR_BUTTON="Prikaži gumb toolbara"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Odaberi da prikažeš gumb u
toolbaru."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Prikaži Tooltip (oblačić)"
RL_DISPLAY_TOOLTIP_DESC="Odredi prikaz Tooltipa (oblačića) s
dodatnim informacijama kad se miš nalazi iznad poveznice/ikone."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Datum koristeći %1$sphp strftime() format%2$s.
Primjer:%3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Slučajni broj unutar zadanih granica."
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="ID korisnika"
RL_DYNAMIC_TAG_USER_NAME="Ime korisnika"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="Login ime korisnika"
RL_DYNAMIC_TAGS="Dinamički tagovi"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Uključi"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
RL_ENABLE_IN_ADMIN="Uključi u administratoru"
RL_ENABLE_IN_ADMIN_DESC="Ako je uključeno, plugin će raditi i u
administratorskom dijelu vaše stranice.<br><br>Obično vam ovo
ne treba. A u slučaju neželjenih efekata, poput usporavanja brzine
administratorskog dijela stranice i prikaza tabova ovog plugina na mjestima
gdje ih ne želite."
RL_ENABLE_IN_ARTICLES="Omogući u člancima."
RL_ENABLE_IN_COMPONENTS="Omogući u komponentama"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Omogući na stranicama (frontend)"
RL_ENABLE_IN_FRONTEND_DESC="Ako je omogućeno, biti će dostupno i na
stranicama (frontend)"
RL_ENABLE_OTHER_AREAS="Omogući druga područja"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Izuzmi"
RL_EXPAND="Proširi"
RL_EXPORT="Izvoz"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Jesen"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Ime polja"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Vrijednost polja"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Potrebne %s datoteke nisu pronađene!"
RL_FILTERS="Filteri"
RL_FINISH_PUBLISHING="Prestanak objave"
RL_FINISH_PUBLISHING_DESC="Upiši datum prestanka objave"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXI sadržaj"
RL_FOR_MORE_GO_PRO="Za više funkcionalnosti kupi PRO verziju."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Stranice (frontend)"
RL_GALLERY="Galerija"
RL_GEO="Geolociranje"
RL_GEO_DESC="Geolociranje nije uvijek 100&#37; točno. Geolokacije
se temelji na IP adresi posjetioca. Nisu sve IP adrese statične ili
poznate."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Nadogradi na PRO!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Visina"
RL_HEMISPHERE="Hemisfera"
RL_HEMISPHERE_DESC="Izaberi hemisferu u kojoj se nalaze tvoje web
stranice."
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Naslovnica"
RL_HOME_PAGE_DESC="Za razliku od izbora predodređene naslovnice (home
page) putem izborničkih stavki, ovo će se odnositi samo na stvarnu
naslovnicu, a ne na bilo koji URL s istim ID kao i zbornička stavka
naslovnice<br><br>Ovo možda neće raditi s 3rd party SEF
ekstenzijama."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Samo ikona"
RL_IGNORE="Zanemari"
RL_IMAGE="Slika"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Uvoz"
RL_IMPORT_ITEMS="Uvezi stavke"
RL_INCLUDE="Obuhvati"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Uključi 'bez ID-a stavke'"
RL_INCLUDE_NO_ITEMID_DESC="Dodijeli kad ID stavke iz izbornika nije
uključen u URL."
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP adrese / rang"
RL_IP_RANGES_DESC="Zarez i/ili enter odvaja popis IP adresa i IP
rangove.
Primjer:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Adrese"
RL_IS_FREE_VERSION="Ovo je BESPLATNA verzija %s."
RL_ITEM="Stavka"
RL_ITEM_IDS="ID stavle"
RL_ITEM_IDS_DESC="Upiši ID stavki za dodjelu. Više stavki odijeli
zarezima."
RL_ITEMS="Stavke"
RL_ITEMS_DESC="Odaberi predmete za dodjelu."
RL_JCONTENT="Joomla! sadržaj"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
RL_JQUERY_DISABLED="Onemogućili ste pokretanje jQuery skripte. %s
treba jQuery skriptu da bi funkcioniralo. Provjerite da li vaš predložak
ili druge ekstenzije učitatavaju potrebne skripte radi zamjene potrebne
funkcionalnosti."
RL_K2="K2"
RL_K2_CATEGORIES="K2 kategorije"
RL_LANGUAGE="Jezik"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Jezici"
RL_LANGUAGES_DESC="Odredi jezike za dodjelu."
RL_LAYOUT="Izgled"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Razine"
RL_LEVELS_DESC="Odaberi razine za dodjelu."
; RL_LIB="Library"
RL_LINK_TEXT="Tekst poveznice"
RL_LINK_TEXT_DESC="Tekst za prikaz kao poveznica"
RL_LIST="Popis"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Učitaj Bootstrap okosnicu"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Onemogućite pokretanje Bootstrap
okosnice."
RL_LOAD_JQUERY="Učitaj jQuery skriptu?"
RL_LOAD_JQUERY_DESC="Izaberi za učitavanje osnovne jQuery skripte,
Ovo možeš isključiti ako se pojavljuju konflikti u tvom predlošku ili
druge ekstenzije učitavaju svoje verzije jQueryja."
RL_LOAD_MOOTOOLS="Učitaj osnovni MooTools"
RL_LOAD_MOOTOOLS_DESC="Izaberi za učitavanje osnovne MooTools
skripte, Ovo možeš isključiti ako se pojavljuju konflikti u tvom
predlošku ili druge ekstenzije učitavaju svoje verzije MooToolsa."
RL_LOAD_STYLESHEET="Učitaj CSS datoteku (stylesheet)"
RL_LOAD_STYLESHEET_DESC="Izaberi za učitavanje CSS datoteke
ekstenzije. Ovo možeš onemogućiti ako koristiš vlastite CSS stilove u
drugoj datoteci ili u svom predlošku."
; RL_LOW="Low"
RL_LTR="Slijeva na desno"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Metoda podudaranja"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maksimalni broj liste"
RL_MAX_LIST_COUNT_DESC="Maksimalni broj elemenata da prikažete u
spisku sa višestrukim odabirom. Ako je ukupni broj predmeta veći, polje
za odabir će biti prikazano kao tekstualno
polje.<br><br>Možete postaviti ovaj broj manji ako imate dugo
vrijeme učitavanja stranice zbog velikog broja stavki na popisima."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximiziraj"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Srednje"
RL_MENU_ITEMS="Stavke izbornika"
RL_MENU_ITEMS_DESC="Izaberi stavke izbornika za dodjelu."
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimiziraj"
RL_MOBILE_BROWSERS="Mobilni preglednici"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mjeseci"
RL_MONTHS_DESC="Odredi mjesece za dodjelu."
RL_MORE_INFO="Više informacija"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="Broj uspješno osvježenih stavki: %d"
RL_N_ITEMS_UPDATED_1="Stavka uspješno osvježena"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Dostupna je nova verzija."
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
RL_NO_ICON="Bez ikone"
RL_NO_ITEMS_FOUND="Nisu pronađeni zapisi."
RL_NORMAL="Normalno"
RL_NORTHERN="Sjeverno"
RL_NOT="Nije"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Samo"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Dostupno samo u PRO
verziji!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Ova poruka će biti prikazana samo (Super)
Administratorima."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operativni sustavi"
RL_OS_DESC="Odaberite operativne sustave koje želite dodijeliti.
Znajte da detekcija operativnog sustava nikad nije 100&#37; sigurna.
Korisnici mogu postaviti svoje preglednike da oponašaju druge operativne
sustave."
; RL_OTHER="Other"
RL_OTHER_AREAS="Ostala područja"
RL_OTHER_OPTIONS="Ostale mogućnosti"
RL_OTHER_SETTINGS="Ostale postavke"
RL_OTHERS="Ostalo"
RL_PAGE_TYPES="Vrste stranica"
RL_PAGE_TYPES_DESC="Odredi na kojoj vrsti stranica dodjela treba biti
aktivna."
RL_PHP="Prilagođeni PHP"
RL_PHP_DESC="Unesi dio PHP koda za provjeru. Kod mora vraćati
vrijednost true or false.<br><br>Na
roimjer:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Postavi HTML komentare"
RL_PLACE_HTML_COMMENTS_DESC="HTML komentari su predodređeni za
postavljanje na izlazni rezultat (output) ove
ekstenzije.<br><br>Mogu ti pomoći za pronalaženje problema
kad izlazni rezultat nije onakav kakav se očekuje.<br><br>Ako
ne želiš imati HTML komentare i izlaznom rezultatu, isključi ovu
mogućnost."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Dodatak gumba tekstualnog editora"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Sistemski dodatak"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Proizvodi"
RL_PUBLISHED_DESC="Koristi ovo za (privremeno) onemogućavanje ove
stavke."
RL_PUBLISHING_ASSIGNMENTS="Dodjele za objavljivanje"
RL_PUBLISHING_SETTINGS="Objavi stavke"
RL_RANDOM="Random"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="Regije / Države"
RL_REGIONS_DESC="Odaberite regije / države na koje se odnosi."
RL_REGULAR_EXPRESSIONS="Koristi pravilne izraze"
RL_REGULAR_EXPRESSIONS_DESC="Odaberi da koristiš vrijednost kao
regularni izraz."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Obrezivanje"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Direktorij"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Zdesna na lijevo"
RL_SAVE_CONFIG="Nakon spremanja Opcija, više se neće pojavljivati na
učitavanju stranice."
RL_SEASONS="Godišnja doba"
RL_SEASONS_DESC="Odredi godišnja doba za dodjelu."
RL_SELECT="Izaberi"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Izaberi sve"
RL_SELECT_AN_ARTICLE="Izaberi članak"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Izabrano"
RL_SELECTION="Izbor"
RL_SELECTION_DESC="Odaberite ukoliko želite obuhvatiti ili izuzeti
odabir za
zadatak.<br><br><strong>Obuhvati</strong><br>Objavi
samo na
označenom.<br><br><strong>Izuzmi</strong><br>Objavi
svugdje samo ne na označenom."
RL_SETTINGS_ADMIN_MODULE="Opcije administratorskog modula"
RL_SETTINGS_EDITOR_BUTTON="Opcije gumba urednika"
RL_SETTINGS_SECURITY="Opcije sigurnosti"
RL_SHOW_ASSIGNMENTS="Prikaži zadatke"
RL_SHOW_ASSIGNMENTS_DESC="Odaberite ukoliko samo želite prikazati
odabrane zadatke. Možete koristiti ovo kako biste dobili jasan uvid u
aktivne zadatke."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Svi neoznačeni tipovi zadataka
sada su skriveni od pogleda."
RL_SHOW_COPYRIGHT="Prikaži autorska prava"
RL_SHOW_COPYRIGHT_DESC="Ukoliko je odabrano, pomoćne informacije o
autorskim pravima će biti prikazane u admin pregledu. Regular Labs
proširenja nikad ne pokazuju informacije o autorskim pravima ili povratne
veze na prednjem sučelju stranice."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Prikaži ikonu gumba"
RL_SHOW_ICON_DESC="Ako se izabere, ikona će biti prikazana na gumbu
tekstualnog editora."
RL_SHOW_UPDATE_NOTIFICATION="Prikaži obavijest o ažuriranju"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Ukoliko je odabrano, obavještenja o
ažuriranjima će biti prikazana u glavnoj komponenti ako bude dostupna
nova verzija ovog proširenja."
RL_SIMPLE="Jednostavno"
RL_SLIDES="Slajdovi"
RL_SOUTHERN="Južno"
; RL_SPECIFIC="Specific"
RL_SPRING="Proljeće"
RL_START="Start"
RL_START_PUBLISHING="Početak objave"
RL_START_PUBLISHING_DESC="Unesi datum početka objave"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Stil"
RL_SUMMER="Ljeto"
RL_TABLE_NOT_FOUND="Potrebna %s tablica baze podataka nije
pronađena!"
RL_TABS="Kartice"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Sintaksa oznake"
; RL_TAG_SYNTAX_DESC="The word to be used in the
tags.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAGS="Tagovi"
RL_TAGS_DESC="Upiši tagove za dodjelu. Više tagova odijeli
zarezom."
RL_TEMPLATES="Predlošci"
RL_TEMPLATES_DESC="Odredi predloške za dodjelu."
RL_TEXT="Tekst"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Samo tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Da bi ispravno
radila, ova ekstenzija treba %s!"
RL_TIME="Vrijeme"
RL_TIME_FINISH_PUBLISHING_DESC="Unesi vrijeme za prekid
objave..<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Unesi vrijeme za početak
objave..<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Mijenjaj"
RL_TOOLTIP="Tooltip (oblačić)"
RL_TOP="Vrh"
RL_TOTAL="Ukupno"
RL_TYPES="Tipovi"
RL_TYPES_DESC="Odaberi tipove za dodjelu"
RL_UNSELECT_ALL="Poništi sve"
RL_UNSELECTED="Neizabrano"
RL_UPDATE_TO="Nadogradi na verziju %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL podudaranje"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
RL_URL_PARTS_REGEX="Url dijelovi će biti podudarani sa regularnim
izrazima. <strong>Budite sigurni da stringovi koriste ispravnu regex
sintaksu.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Za kategoriju i članak (predmet) dodjela,
pogledajte gornju Joomla! Sadržaj sekciju."
RL_USE_CUSTOM_CODE="Koristi prilagođeni kôd"
RL_USE_CUSTOM_CODE_DESC="Ako se izabere, gumb tekstualnog editora će
ubaciti dani prilagođeni kod."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Koristi razine grupe"
RL_USER_GROUPS="Koristi grupe"
RL_USER_GROUPS_DESC="Odredi korisničke grupe za dodjelu."
RL_USER_IDS="ID korisnika"
RL_USER_IDS_DESC="Upiši ID korisnika za dodjelu. Više ID-a odijeli
zarezom."
RL_USERS="Korisnici"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="prokaz"
RL_VIEW_DESC="Izaberi koji prikaz koristiti pri stvaranju nove
stavke."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Širina"
RL_WINTER="Zima"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO kategorije"
PK�X�[�3dd?regularlabs/language/hr-HR/hr-HR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - korišten od
Regular Labs ekstenzija"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�W�~i�i�;regularlabs/language/hu-HU/hu-HU.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Rendszer - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - a Regular Labs
bővítményekhez szükséges"
REGULAR_LABS_LIBRARY="Regular Labs Library"

; REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]The Regular Labs
extensions need this plugin and will not function without
it.<br><br>Regular Labs extensions
include:[[%2:extensions%]]"
; REGULAR_LABS_LIBRARY_DESC_WARNING="Do not uninstall or disable this
plugin if you are using any Regular Labs extensions."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Leírás"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Leírás"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Viselkedés"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Média"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
; COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Beállítás"
; COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Telepítés"
RL_ACTION_UNINSTALL="Eltávolítás"
RL_ACTION_UPDATE="Frissítés"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Haladó"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ÖSSZES"
; RL_ALL_DESC="Will be published if <strong>ALL</strong>
of below assignments are matched."
RL_ALL_RIGHTS_RESERVED="Minden jog fenntartva"
; RL_ALSO_ON_CHILD_ITEMS="Also on child items"
; RL_ALSO_ON_CHILD_ITEMS_DESC="Also assign to child items of the
selected items?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="BÁRMELY"
; RL_ANY_DESC="Will be published if <strong>ANY</strong>
(one or more) of below assignments are matched.<br>Assignment groups
where 'Ignore' is selected will be ignored."
RL_ARE_YOU_SURE="Biztos vagy benne?"
RL_ARTICLE="Cikk"
RL_ARTICLE_AUTHORS="Szerzők"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Cikkek"
; RL_ARTICLES_DESC="Select the articles to assign to."
; RL_AS_EXPORTED="As exported"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Ausztrália"
RL_AUTHORS="Szerzők"
RL_AUTO="Automatikus"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Viselkedés"
RL_BEHAVIOUR="Viselkedés"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Mindkettő"
RL_BOTTOM="Alulra"
RL_BROWSERS="Böngészők"
; RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind
that browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Gomb szöveg"
; RL_BUTTON_TEXT_DESC="This text will be shown in the Editor
Button."
; RL_CACHE_TIME="Cache Time"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategóriák"
; RL_CATEGORIES_DESC="Select the categories to assign to."
; RL_CATEGORY="Category"
RL_CHANGELOG="Változások listája"
RL_CLASSNAME="CSS osztály"
; RL_COLLAPSE="Collapse"
RL_COM="Komponens"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponensek"
; RL_COMPONENTS_DESC="Select the components to assign to."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Tartalom"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="%s másolata"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="országok"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="Jelenlegi"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="A jelenlegi verziód %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Egyéni mezők"
RL_DATE="Dátum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Dátum & idő"
; RL_DATE_TIME_DESC="The date and time assignments use the date/time
of your servers, not that of the visitors system."
; RL_DATE_TO="To"
RL_DAYS="A hét napjai"
; RL_DAYS_DESC="Select days of the week to assign to."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobil"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Irány"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Letiltása a komponensekben"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Megjelenített hivatkozás"
; RL_DISPLAY_LINK_DESC="How do you want the link to be
displayed?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
; RL_DISPLAY_TOOLTIP="Display Tooltip"
; RL_DISPLAY_TOOLTIP_DESC="Select to display a tooltip with extra info
when mouse hovers over link/icon."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Engedélyez"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
; RL_ENABLE_IN_ARTICLES="Enable in articles"
; RL_ENABLE_IN_COMPONENTS="Enable in components"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
; RL_ENABLE_IN_FRONTEND="Enable in frontend"
; RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in
the frontend."
; RL_ENABLE_OTHER_AREAS="Enable other areas"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Kizárt"
RL_EXPAND="Bontás"
RL_EXPORT="Export"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
; RL_FALL="Fall / Autumn"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Mező név"
RL_FIELD_PARAM_MULTIPLE="Többszörös"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Szűrők"
RL_FINISH_PUBLISHING="Közzététel vége"
; RL_FINISH_PUBLISHING_DESC="Enter the date to end publishing"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Kiszolgáló"
RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Pro verzióra frissítés!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
RL_HEADING_STATUS_ASC="Státusz növekvő"
RL_HEADING_STATUS_DESC="Státusz csökkenő"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
RL_HEADING_TITLE_ASC="Cím szerint növekvő"
RL_HEADING_TITLE_DESC="Cím szerint csökkenő"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Magasság"
; RL_HEMISPHERE="Hemisphere"
; RL_HEMISPHERE_DESC="Select the hemisphere your website is located
in"
RL_HIGH="Nagy"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
; RL_ICON_ONLY="Icon only"
; RL_IGNORE="Ignore"
RL_IMAGE="Kép"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importálás"
RL_IMPORT_ITEMS="Elemek importálása"
RL_INCLUDE="Belefoglalt"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Ne legyen benne az elem azonosító"
; RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in
URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="Elem"
RL_ITEM_IDS="Elem AZ"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="Elemek"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 kategóriák"
RL_LANGUAGE="Nyelv"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Nyelvek"
; RL_LANGUAGES_DESC="Select the languages to assign to."
RL_LAYOUT="Elrendezás"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="Hivatkozás szöveg"
; RL_LINK_TEXT_DESC="The text to display as link."
RL_LIST="Lista"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
; RL_LOAD_MOOTOOLS="Load Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
RL_LOW="Alacsony"
RL_LTR="Balról jobbra"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
; RL_MATCHING_METHOD="Matching Method"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Közepes"
RL_MENU_ITEMS="Menü elemek"
; RL_MENU_ITEMS_DESC="Select the menu items to assign to."
RL_META_KEYWORDS="Meta kulcsszavak"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimalizál"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Hónap"
; RL_MONTHS_DESC="Select months to assign to."
; RL_MORE_INFO="More info"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Új verzió érhető el"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="Normál"
RL_NORTHERN="Északi"
RL_NOT="Nem"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Csak"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Ez csak a PRO verzióban érhető
el!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
; RL_ONLY_VISIBLE_TO_ADMIN="This message will only be displayed to
(Super) Administrators."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="Egyéb területek"
RL_OTHER_OPTIONS="Egyéb beállítások"
RL_OTHER_SETTINGS="Egyéb beállítások"
RL_OTHERS="Egyebek"
RL_PAGE_TYPES="Oldal típusok"
; RL_PAGE_TYPES_DESC="Select on what page types the assignment should
be active."
; RL_PHP="Custom PHP"
; RL_PHP_DESC="Enter a piece of PHP code to evaluate. The code must
return the value true or false.<br><br>For
instance:<br><br>[[%1:code%]]"
; RL_PLACE_HTML_COMMENTS="Place HTML comments"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
; RL_PLG_EDITORS-XTD="Editor Button Plugin"
; RL_PLG_FIELDS="Field Plugin"
; RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Termékek"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
; RL_PUBLISHING_ASSIGNMENTS="Publishing Assignments"
; RL_PUBLISHING_SETTINGS="Publish items"
RL_RANDOM="Véletlenszerű"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Mappa"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Évadok"
; RL_SEASONS_DESC="Select seasons to assign to."
RL_SELECT="Kijelölés"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Összes kijelölése"
RL_SELECT_AN_ARTICLE="Válasszon cikket"
; RL_SELECT_FIELD="Select Field"
; RL_SELECTED="Selected"
RL_SELECTION="Választás"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
; RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
; RL_SHOW_ICON="Show Button Icon"
; RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the
Editor Button."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Egyszerű"
; RL_SLIDES="Slides"
RL_SOUTHERN="Déli"
; RL_SPECIFIC="Specific"
RL_SPRING="Tavasz"
RL_START="Start"
RL_START_PUBLISHING="Közzététel kezdete"
; RL_START_PUBLISHING_DESC="Enter the date to start publishing"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="Nyár"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
; RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
; RL_TAG_SYNTAX_DESC="The word to be used in the
tags.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAGS="Címkék"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="Sablonok"
; RL_TEMPLATES_DESC="Select the templates to assign to."
RL_TEXT="Szöveg"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Csak szöveg"
; RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="This
extension needs %s to function correctly!"
RL_TIME="Idő"
; RL_TIME_FINISH_PUBLISHING_DESC="Enter the time to end
publishing.<br><br><strong>Format:</strong>
23:59"
; RL_TIME_START_PUBLISHING_DESC="Enter the time to start
publishing.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Átkapcsolás"
RL_TOOLTIP="Súgóbuborék"
RL_TOP="Felülre"
RL_TOTAL="Összesen"
RL_TYPES="típusok"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
RL_UNSELECTED="Nincs kiválasztva"
RL_UPDATE_TO="%s verzióra frissítés"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL egyezések"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
; RL_USER_GROUP_LEVELS="User Group Levels"
RL_USER_GROUPS="Felhasználói csoportok"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="Felhasználói AZ"
; RL_USER_IDS_DESC="Enter the user ids to assign to. Use commas to
separate ids."
RL_USERS="Felhasználók"
RL_UTF8="UTF-8"
RL_VIDEO="Videó"
RL_VIEW="Nézet"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Szélesség"
RL_WINTER="Tél"
RL_ZOO="ZOO"
; RL_ZOO_CATEGORIES="ZOO Categories"
PK�X�[�b��nn?regularlabs/language/hu-HU/hu-HU.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Rendszer - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - a Regular Labs
bővítményekhez szükséges"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[IH2����;regularlabs/language/id-ID/id-ID.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Pustaka Regular Labs"
PLG_SYSTEM_REGULARLABS_DESC="Pustaka Regular Labs - digunakan oleh
ekstensi-ekstensi Regular Labs"
REGULAR_LABS_LIBRARY="Pustaka Regular Labs"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Ekstensi Regular Labs
memerlukan plugin ini dan tidak akan berfungsi
tanpanya.<br><br>Ekstensi Regular Labs
termasuk:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Jangan melepas atau menonaktifkan
plugin ini bila anda menggunakan ekstensi Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaks Tagar"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Deskripsi"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Deskripsi"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Perilaku"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Pengaturan
Standar"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opsi Modul
Administrator"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opsi Tombol
Editor"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Opsi Keamanan"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setel"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Penggayaan"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaks Tagar"

RL_ACCESS_LEVELS="Tingkat Akses"
RL_ACCESS_LEVELS_DESC="Pilih tingkat akses yang ingin
ditetapkan."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Pasang"
RL_ACTION_UNINSTALL="Lepas"
RL_ACTION_UPDATE="Update"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Lanjutan"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Langganan Akeeba"
RL_ALL="SEMUA"
RL_ALL_DESC="Akan diterbitkan jika <strong>SEMUA</strong>
penetapan di bawah cocok."
RL_ALL_RIGHTS_RESERVED="Semua Hak Cipta Dilindungi"
RL_ALSO_ON_CHILD_ITEMS="Juga di butir anak"
RL_ALSO_ON_CHILD_ITEMS_DESC="Tetapkan juga ke butir anak dari
butir-butir yang dipilih?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Butir anaknya mengacu ke
sub-butir yang sebenarnya di dalam pilihan di atas. Mereka tidak mengacu ke
tautan pada halaman yang dipilih."
RL_ANY="SEMBARANG"
RL_ANY_DESC="Akan diterbitkan jika
<strong>SEMBARANG</strong> (satu atau lebih) penetapan di bawah
ini cocok.<br>Kelompok penetapan dimana 'Abaikan' yang
dipilih akan diabaikan."
RL_ARE_YOU_SURE="Apakah anda yakin?"
RL_ARTICLE="Artikel"
RL_ARTICLE_AUTHORS="Penulis"
RL_ARTICLE_AUTHORS_DESC="Pilih penulis yang ingin ditetapkan."
RL_ARTICLES="Artikel"
RL_ARTICLES_DESC="Pilih artikel yang ingin ditetapkan."
RL_AS_EXPORTED="Seperti diekspor"
RL_ASSIGNMENTS="Penetapan"
RL_ASSIGNMENTS_DESC="Dengan memilih penetapan tertentu, anda dapat
membatasi dimana %s ini harus atau tidak harus diterbitkan.<br>Untuk
menerbitkannya di semua halaman, jangan buat penetapan apapun."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Penulis"
RL_AUTO="Otomatis"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Perilaku"
RL_BEHAVIOUR="Perilaku"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Anda telah menonaktifkan Kerangka
Bootstrap yang dibutuhkan. %s memerlukan Kerangka Bootstrap agar dapat
bekerja. Pastikan templat anda atau ekstensi lainnya memuat skrip-skrip
yang diperlukan untuk mengganti fungsi yang diwajibkan."
RL_BOTH="Keduanya"
RL_BOTTOM="Bawah"
RL_BROWSERS="Browser"
RL_BROWSERS_DESC="Pilih browser yang ingin ditetapkan. Ingat,
pengenalan browser tidak selalu 100&#37; akurat. Pengguna dapat
mengatur browser mereka untuk menyerupai browser lain."
RL_BUTTON_ICON="Tombol Ikon"
RL_BUTTON_ICON_DESC="Pilih ikon mana yang akan tampil di tombol."
RL_BUTTON_TEXT="Teks Tombol"
RL_BUTTON_TEXT_DESC="Teks ini akan ditampilkan di Tombol Editor."
RL_CACHE_TIME="Waktu Cache"
RL_CACHE_TIME_DESC="Lama waktu maksimal dalam menit untuk melakukan
cache berkas yang disimpan sebelum ia disegarkan. Biarkan kosong untuk
menggunakan pengaturan global."
RL_CATEGORIES="Kategori"
RL_CATEGORIES_DESC="Pilih kategori yang ingin ditetapkan."
; RL_CATEGORY="Category"
RL_CHANGELOG="Catatan perubahan"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Kolaps"
RL_COM="Komponen"
RL_COMBINE_ADMIN_MENU="Menu Admin Kombinasi"
RL_COMBINE_ADMIN_MENU_DESC="Pilih untuk menggabungkan semua komponen
Regular Labs ke dalam suatu submenu di dalam menu administrator."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponen"
RL_COMPONENTS_DESC="Pilih komponen yang ingin ditetapkan."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Konten"
RL_CONTENT_KEYWORDS="Kata kunci Konten"
RL_CONTENT_KEYWORDS_DESC="Masukkan kata kunci yang ditemukan di dalam
konten yang ingin ditetapkan. Gunakan koma untuk memisahkan masing-masing
kata kunci tersebut."
RL_CONTINENTS="Benua"
RL_CONTINENTS_DESC="Pilih benua yang ingin ditetapkan."
RL_COOKIECONFIRM="Konfirmasi Cookie"
RL_COOKIECONFIRM_COOKIES="Izinkan Cookie"
RL_COOKIECONFIRM_COOKIES_DESC="Tentukan apakah cookie akan diizinkan
atau tidak berdasarkan konfigurasi Konfirmasi Cookie (oleh Twentronix) dan
pilihan pengunjung untuk menerimanya atau tidak."
RL_COPY_OF="Salinan %s"
RL_COPYRIGHT="Hak Cipta"
RL_COUNTRIES="Negara"
RL_COUNTRIES_DESC="Pilih negara yang ingin ditetapkan."
RL_CSS_CLASS="Kelas (CSS)"
RL_CSS_CLASS_DESC="Tentukan nama kelas css untuk tujuan
penggayaan."
RL_CURRENT="Saat Ini"
RL_CURRENT_DATE="Tanggal/waktu saat ini:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Versi anda saat ini adalah %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Kode Kustom"
RL_CUSTOM_CODE_DESC="Masukkan kode Tombol Editor yang harus disisipkan
ke dalam konten (alih-alih kode standar)."
RL_CUSTOM_FIELD="Kolom Kustom"
RL_CUSTOM_FIELDS="Bidang Kustom"
RL_DATE="Tanggal"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Berulang"
RL_DATE_RECURRING_DESC="Pilih untuk menerapkan rentang tanggal di
setiap tahun. (Maka tahun akan diabaikan)"
RL_DATE_TIME="Tanggal & Waktu"
RL_DATE_TIME_DESC="Penetapan tanggal dan waktu menggunakan
tanggal/waktu dari server anda, bukan dari sistem milik pengunjung."
; RL_DATE_TO="To"
RL_DAYS="Hari dalam minggu"
RL_DAYS_DESC="Pilih hari dalam minggu yang ingin ditetapkan."
RL_DEFAULT_ORDERING="Urutan Standar"
RL_DEFAULT_ORDERING_DESC="Atur pengurutan standar dari daftar."
RL_DEFAULT_SETTINGS="Pengaturan Standar"
RL_DEFAULTS="Standar"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobile"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Perangkat"
RL_DEVICES_DESC="Pilih perangkat yang ingin ditetapkan. Ingat,
pengenalan perangkat tidak selalu 100&#37; akurat. Pengguna dapat
mengatur perangkat mereka untuk menyerupai perangkat lain."
RL_DIRECTION="Arah"
RL_DIRECTION_DESC="Pilih arah"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Pilih komponen administrator mana
yang TIDAK mengaktifkan pemakaian ekstensi ini."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Pilih komponen mana yang TIDAK
mengaktifkan pemakaian ekstensi ini."
RL_DISABLE_ON_COMPONENTS="Nonaktifkan pada Komponen"
RL_DISABLE_ON_COMPONENTS_DESC="Pilih komponen frontend mana yang TIDAK
mengaktifkan pemakaian ekstensi ini."
RL_DISPLAY_EDITOR_BUTTON="Tampilkan Tombol Editor"
RL_DISPLAY_EDITOR_BUTTON_DESC="Pilih untuk menampilkan sebuah tombol
editor."
RL_DISPLAY_LINK="Tampilkan tautan"
RL_DISPLAY_LINK_DESC="Bagaimana anda ingin tautan tersebut
ditampilkan?"
RL_DISPLAY_TOOLBAR_BUTTON="Tampilkan Tombol Bilah Perangkat"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Pilih untuk menampilkan sebuah tombol
di bilah perangkat."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Tampilkan Tooltip"
RL_DISPLAY_TOOLTIP_DESC="Pilih untuk menampilkan tooltip bersama info
tambahan saat tetikus berada di atas tautan/ikon."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Ini adalah angka kemunculan.<br>Jika
penelusuran anda menemukan sesuatu, katakanlah 4 kali, jumlahnya akan
menampilkan 1 sampai 4."
RL_DYNAMIC_TAG_DATE="Tanggal menggunakan %1$sphp strftime()
format%2$s. Contoh: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Gunakan nilai dinamis keluar (tambah garis
miring ke kutipan)."
RL_DYNAMIC_TAG_LOWERCASE="Ubah teks di tagar ke huruf kecil."
RL_DYNAMIC_TAG_RANDOM="Angka acak dengan rentang"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Sebuah string bahasa untuk diterjemakan ke bentuk
teks (berdasarkan bahasa yang aktif)"
RL_DYNAMIC_TAG_UPPERCASE="Ubah teks bersama tagar ke huruf
besar."
RL_DYNAMIC_TAG_USER_ID="Angka id pengguna"
RL_DYNAMIC_TAG_USER_NAME="Nama dari pengguna"
RL_DYNAMIC_TAG_USER_OTHER="Ketersediaan data lainnya dari pengguna
atau kontak yang terhubung dengannya. Contoh: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Tagar pengguna menyimpan data dari
pengguna yang masuk. Jika pengunjung tidak masuk, tagar akan dibuang."
RL_DYNAMIC_TAG_USER_USERNAME="Nama masuk dari pengguna"
RL_DYNAMIC_TAGS="Tagar Dinamis"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktif"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Aktifkan di"
RL_ENABLE_IN_ADMIN="Aktifkan di administrator"
RL_ENABLE_IN_ADMIN_DESC="Jika diaktifkan, plugin juga akan bekerja di
bagian administrator situs.<br><br>Biasanya anda tidak
memerlukan ini. Dan ini dapat mengakibatkan hal-hal yang tidak diinginkan,
seperti memperlambat administrator dan tagar plugin dikendalikan di dalam
area yang tidak anda inginkan."
RL_ENABLE_IN_ARTICLES="Aktifkan di artikel"
RL_ENABLE_IN_COMPONENTS="Aktifkan di komponen"
RL_ENABLE_IN_DESC="Pilih apakah akan mengaktifkan di frontend atau
administrator atau keduanya."
RL_ENABLE_IN_FRONTEND="Aktifkan di frontend"
RL_ENABLE_IN_FRONTEND_DESC="Jika diaktifkan, ini akan tersedia juga
untuk di frontend."
RL_ENABLE_OTHER_AREAS="Aktifkan area lain"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Pengecualian"
RL_EXPAND="Luaskan"
RL_EXPORT="Ekspor"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Parameter Tambahan"
RL_EXTRA_PARAMETERS_DESC="Masukkan parameter tambahan yang dapat
diatur dengan pengaturan"
RL_FALL="Gugur / Musim Gugur"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Bidang Nama"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Bidang Nilai"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Berkas %s yang diwajibkan tidak ditemukan!"
RL_FILTERS="Saring"
RL_FINISH_PUBLISHING="Akhir Penerbitan"
RL_FINISH_PUBLISHING_DESC="Masukkan tanggal untuk mengakhiri
penerbitan"
RL_FIX_HTML="Perbaiki HTML"
RL_FIX_HTML_DESC="Pilih untuk mengizinkan ekstensi memperbaiki
masalah-masalah html yang ada bila ditemukan. Hal ini kadang diperlukan di
tagar html yang membungkus.<br><br>Matikan fungsi ini hanya
apabila anda mendapati masalah dengan ini."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Untuk fungsi lainnya, anda dapat membeli versi
PRO."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Pustaka NoNumber Framework sepertinya
tidak digunakan di dalam ekstensi-ekstensi yang anda pasang. Mungkin lebih
baik menonaktifkan atau melepas plugin ini."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Galeri"
RL_GEO="Geolokasi"
RL_GEO_DESC="Geolokasi tidak selalu 100&#37; akurat. Geolokasi
berdasarkan alamat IP pengunjung. Tidak semua alamat IP adalah tetap atau
diketahui."
RL_GEO_GEOIP_COPYRIGHT_DESC="Produk ini menyertakan data GeoLite2 yang
dibuat oleh MaxMind, tersedia dari [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Pustaka GeoIP Regular Labs tidak terpasang.
Anda perlu [[%1:link start%]]memasang pustaka GeoIP Regular Labs[[%2:link
end%]] agar dapat menggunakan penetapan Geolokasi."
RL_GO_PRO="Jadilah Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Heading 1"
RL_HEADING_2="Heading 2"
RL_HEADING_3="Heading 3"
RL_HEADING_4="Heading 4"
RL_HEADING_5="Heading 5"
RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="Akses naik"
RL_HEADING_ACCESS_DESC="Akses turun"
RL_HEADING_CATEGORY_ASC="Kategori naik"
RL_HEADING_CATEGORY_DESC="Kategori turun"
RL_HEADING_CLIENTID_ASC="Lokasi naik"
RL_HEADING_CLIENTID_DESC="Lokasi turun"
RL_HEADING_COLOR_ASC="Warna naik"
RL_HEADING_COLOR_DESC="Warna turun"
RL_HEADING_DEFAULT_ASC="Standar naik"
RL_HEADING_DEFAULT_DESC="Standar turun"
RL_HEADING_DESCRIPTION_ASC="Deskripsi naik"
RL_HEADING_DESCRIPTION_DESC="Deskripsi turun"
RL_HEADING_ID_ASC="ID naik"
RL_HEADING_ID_DESC="ID turun"
RL_HEADING_LANGUAGE_ASC="Bahasa naik"
RL_HEADING_LANGUAGE_DESC="Bahasa turun"
RL_HEADING_ORDERING_ASC="Urutan naik"
RL_HEADING_ORDERING_DESC="Urutan turun"
RL_HEADING_PAGES_ASC="Butir Menu naik"
RL_HEADING_PAGES_DESC="Butir Menu turun"
RL_HEADING_POSITION_ASC="Posisi naik"
RL_HEADING_POSITION_DESC="Posisi turun"
RL_HEADING_STATUS_ASC="Status naik"
RL_HEADING_STATUS_DESC="Status turun"
RL_HEADING_STYLE_ASC="Gaya naik"
RL_HEADING_STYLE_DESC="Gaya turun"
RL_HEADING_TEMPLATE_ASC="Templat naik"
RL_HEADING_TEMPLATE_DESC="Templat turun"
RL_HEADING_TITLE_ASC="Judul naik"
RL_HEADING_TITLE_DESC="Judul turun"
RL_HEADING_TYPE_ASC="Jenis naik"
RL_HEADING_TYPE_DESC="Jenis turun"
RL_HEIGHT="Tinggi"
RL_HEMISPHERE="Hemisfer"
RL_HEMISPHERE_DESC="Pilih dimana lokasi situs anda"
RL_HIGH="Tinggi"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Halaman Depan"
RL_HOME_PAGE_DESC="Tidak seperti memilih halaman depan (standar)
melalui Butir Menu, ini hanya akan mencocokkan dengan halaman depan
sesungguhnya, tidak hanya URL yang memiliki kesamaan Itemid seperti butir
menu beranda.<br><br>Ini mungkin tidak akan bekerja untuk semua
ekstensi SEF pihak ke-3."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Ikon saja"
RL_IGNORE="Abaikan"
RL_IMAGE="Gambar"
RL_IMAGE_ALT="Alt Gambar"
RL_IMAGE_ALT_DESC="Nilai Alt dari gambar."
RL_IMAGE_ATTRIBUTES="Atribut Gambar"
RL_IMAGE_ATTRIBUTES_DESC="Atribut tambahan gambar, seperti:
alt=&quot;Gambar saya&quot; width=&quot;300&quot;"
RL_IMPORT="Impor"
RL_IMPORT_ITEMS="Impor Butir"
RL_INCLUDE="Termasuk"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Termasuk tanpa Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Tetapkan juga apabila tidak ada menu Itemid
di URL?"
RL_INITIALISE_EVENT="Inisiasi pada Event"
RL_INITIALISE_EVENT_DESC="Atur event Joomla internal pada plugin mana
ia harus dimulai. Ganti ini jika anda mengalami masalah dengan plugin yang
tidak dapat bekerja."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Sisipkan"
RL_INSERT_DATE_NAME="Sisipkan Tanggal / Nama"
RL_IP_RANGES="Alamat IP / Rentang"
RL_IP_RANGES_DESC="Daftar alamat IP dan rentang IP dipisahkan koma.
Sebagai contoh:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="Alamat IP"
RL_IS_FREE_VERSION="Ini adalah versi GRATIS dari %s."
RL_ITEM="Butir"
RL_ITEM_IDS="ID Butir"
RL_ITEM_IDS_DESC="Masukkan id butir yang ingin ditetapkan. Gunakan
koma untuk memisahkan masing-masing id."
RL_ITEMS="Butir"
RL_ITEMS_DESC="Pilih butir yang ingin ditetapkan."
RL_JCONTENT="Konten Joomla!"
RL_JED_REVIEW="Suka dengan ekstensi ini? [[%1:start link%]]Tinggalkan
sebuah ulasan di JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Anda sedang menjalankan Joomla versi
2.5 dari %1$s di Joomla 3. Silakan pasang ulang %1$s untuk memperbaiki
masalahnya."
RL_JQUERY_DISABLED="Anda telah menonaktifkan skrip jQuery. %s
memerlukan jQuery untuk dapat berfungsi. Pastikan templat anda atau
ekstensi yang lainnya memuat skrip yang diperlukan untuk menggantikan
fungsi yang diwajibkan."
RL_K2="K2"
RL_K2_CATEGORIES="Kategori K2"
RL_LANGUAGE="Bahasa"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Bahasa"
RL_LANGUAGES_DESC="Pilih bahasa yang ingin ditetapkan."
RL_LAYOUT="Tata Letak"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Tingkatan"
RL_LEVELS_DESC="Pilih tingkatan yang ingin ditetapkan"
RL_LIB="Pustaka"
RL_LINK_TEXT="Teks Tautan"
RL_LINK_TEXT_DESC="Teks yang ditampilkan sebagai tautan."
RL_LIST="Daftar"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Muat Kerangka Bootstrap"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Nonaktifkan untuk tidak memuat
Kerangka Bootstrap."
RL_LOAD_JQUERY="Muat Skrip jQuery"
RL_LOAD_JQUERY_DESC="Pilih untuk memuat skrip inti jQuery. Anda dapat
menonaktifkan ini jika mengalami masalah atau apabila templat anda atau
ekstensi yang lainnya memuat versi jQuery tersendiri."
RL_LOAD_MOOTOOLS="Muat Inti MooTools"
RL_LOAD_MOOTOOLS_DESC="Pilih untuk memuat skrip inti MooTools. Anda
dapat menonaktifkan ini jika mengalami masalah atau apabila templat anda
atau ekstensi yang lainnya memuat versi MooTools tersendiri."
RL_LOAD_STYLESHEET="Muat Berkas Gaya"
RL_LOAD_STYLESHEET_DESC="Pilih untuk memuat berkas gaya ekstensi. Anda
dapat menonaktifkan ini jika anda meletakkan semua gaya di dalam berkas
gaya yang lain, seperti berkas gaya templat."
RL_LOW="Rendah"
RL_LTR="Kiri-ke-Kanan"
RL_MATCH_ALL="Cocok Semua"
RL_MATCH_ALL_DESC="Pilih untuk menetapkan hanya apabila semua butir
yang dipilih cocok."
RL_MATCHING_METHOD="Metode Pencocokan"
RL_MATCHING_METHOD_DESC="Apakah semua penetapan harus
cocok?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Jumlah Daftar Maksimal"
RL_MAX_LIST_COUNT_DESC="Jumlah maksimal elemen yang ditampilkan di
dalam daftar pilihan. Jika jumlahnya banyak, kolom pilihan akan ditampilkan
sebagai kolom teks.<br><br>Anda dapat mengatur angka ini
menjadi lebih sedikit jika mengalami masalah dengan muat halaman yang
lambat karena jumlah butir yang banyak."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maksimalkan"
RL_MEDIA_VERSIONING="Gunakan Versi Media"
RL_MEDIA_VERSIONING_DESC="Pilih untuk menambahkan angka versi ekstensi
pada akhir url media (js/css) untuk membuat browser memaksa muat berkas
yang benar."
RL_MEDIUM="Sedang"
RL_MENU_ITEMS="Butir Menu"
RL_MENU_ITEMS_DESC="Pilih butir menu yang ingin ditetapkan."
RL_META_KEYWORDS="Kata kunci Meta"
RL_META_KEYWORDS_DESC="Masukkan kata kunci yang ditemukan di dalam
kata kunci meta yang ingin ditetapkan. Gunakan koma untuk memisahkan
masing-masing kata kunci tersebut."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimalisir"
RL_MOBILE_BROWSERS="Browser Mobile"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Bulan"
RL_MONTHS_DESC="Pilih bulan yang ingin ditetapkan."
RL_MORE_INFO="Info selengkapnya"
RL_MY_STRING="String saya!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d butir berhasil diperbarui."
RL_N_ITEMS_UPDATED_1="Satu butir berhasil diperbarui"
RL_NEW_CATEGORY="Buat Kategori Baru"
RL_NEW_CATEGORY_ENTER="Masukkan sebuah nama kategori"
RL_NEW_VERSION_AVAILABLE="Sebuah versi baru tersedia"
RL_NEW_VERSION_OF_AVAILABLE="Sebuah versi dari %s tersedia"
RL_NO_ICON="Tanpa ikon"
RL_NO_ITEMS_FOUND="Tidak ada butir yang ditemukan."
RL_NORMAL="Normal"
RL_NORTHERN="Sebelah Utara"
RL_NOT="Tidak"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Hanya"
RL_ONLY_AVAILABLE_IN_JOOMLA="Hanya tersedia di Joomla %s atau yang
lebih tinggi."
RL_ONLY_AVAILABLE_IN_PRO="<em>Hanya tersedia dalam versi
PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Hanya tersedia dalam versi
PRO)"
RL_ONLY_VISIBLE_TO_ADMIN="Pesan ini hanya akan ditampilkan kepada
(Super) Administrator."
RL_OPTION_SELECT="- Pilih -"
RL_OPTION_SELECT_CLIENT="- Pilih Klien -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Sistem Operasi"
RL_OS_DESC="Pilih sistem operasi yang ingin ditetapkan. Ingat,
pengenalan sistem operasi tidak selalu 100&#37; akurat. Pengguna dapat
mengatur browser mereka untuk menyerupai sistem operasi lainnya."
; RL_OTHER="Other"
RL_OTHER_AREAS="Area Lain"
RL_OTHER_OPTIONS="Opsi Lain"
RL_OTHER_SETTINGS="Pengaturan Lain"
RL_OTHERS="Lainnya"
RL_PAGE_TYPES="Jenis halaman"
RL_PAGE_TYPES_DESC="Pilih jenis halaman yang ingin ditetapkan."
RL_PHP="PHP kustom"
RL_PHP_DESC="Masukkan sepotong kode PHP yang ingin diperiksa. Kodenya
harus mengembalikan nilai true atau
false.<br><br>Contohnya:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Tempat komentar HTML"
RL_PLACE_HTML_COMMENTS_DESC="Secara standar komentar-komentar HTML
mengelilingi output ekstensi.<br><br>Komentar-komentar ini
dapat membantu memecahkan masalah jika anda tidak mendapatkan hasil yang
diharapkan.<br><br>Jika anda tidak ingin memakai
komentar-komentar ini di dalam output HTML, matikan opsi ini."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Plugin Tombol Editor"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Plugin Sistem"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Kode Pos"
RL_POSTALCODES_DESC="Daftar kode pos dipisahkan koma (12345) atau
rentang kode pos (12300-12500).<br>Ini hanya dapat digunakan untuk
[[%1:start link%]]beberapa jumlah negara terbatas dan alamat IP[[%2:end
link%]]."
RL_POWERED_BY="Diperkuat oleh %s"
RL_PRODUCTS="Produk"
RL_PUBLISHED_DESC="Anda dapat menggunakan ini untuk menonaktifkan
(sementara) butir ini."
RL_PUBLISHING_ASSIGNMENTS="Penetapan Penerbitan"
RL_PUBLISHING_SETTINGS="Terbit"
RL_RANDOM="Acak"
RL_REDSHOP="RedShop"
RL_REGEX="Regular Expressions"
RL_REGIONS="Provinsi"
RL_REGIONS_DESC="Pilih provinsi yang ingin ditetapkan."
RL_REGULAR_EXPRESSIONS="Gunakan Regular Expressions"
RL_REGULAR_EXPRESSIONS_DESC="Pilih untuk memperlakukan nilainya
sebagai regular expressions."
RL_REMOVE_IN_DISABLED_COMPONENTS="Buang di dalam Komponen
Nonaktif"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Jika dipilih, sintaks plugin
akan dibuang dari komponen. Jika tidak, sintaks plugin aslinya akan tetap
ada."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Potong"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
; RL_RESIZE_IMAGES_FOLDER="Folder"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Kanan-ke-Kiri"
RL_SAVE_CONFIG="Setelah menyimpan Opsinya, ia tidak akan muncul lagi
pada saat muat halaman."
RL_SEASONS="Musim"
RL_SEASONS_DESC="Pilih musim yang ingin ditetapkan."
RL_SELECT="Pilih"
RL_SELECT_A_CATEGORY="Pilih Kategori"
RL_SELECT_ALL="Pilih semua"
RL_SELECT_AN_ARTICLE="Pilih Artikel"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Dipilih"
RL_SELECTION="Pilihan"
RL_SELECTION_DESC="Pilih apakah akan menyertakan atau mengecualikan
pilihan
penetapan.<br><br><strong>Termasuk</strong><br>Terbitkan
hanya di
pilihan.<br><br><strong>Pengecualian</strong><br>Terbitkan
dimana saja kecuali di pilihan."
RL_SETTINGS_ADMIN_MODULE="Opsi Modul Administrator"
RL_SETTINGS_EDITOR_BUTTON="Opsi Tombol Editor"
RL_SETTINGS_SECURITY="Opsi Keamanan"
RL_SHOW_ASSIGNMENTS="Tampilkan Penetapan"
RL_SHOW_ASSIGNMENTS_DESC="Pilih apakah hanya akan menampilkan
penetapan yang dipilih. Anda dapat menggunakannya untuk mendapatkan
ringkasan penetapan aktif yang bersih."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Semua jenis penetapan yang
tidak-dipilih sekarang telah disembunyikan dari tampilan."
RL_SHOW_COPYRIGHT="Tampilkan Hak Cipta"
RL_SHOW_COPYRIGHT_DESC="Jika dipilih, info hak cipta tambahan akan
ditampilkan di tampilan admin. Ekstensi Regular Labs tidak pernah
menampilkan info hak cipta atau backlink di frontend."
RL_SHOW_HELP_MENU="Tampilkan Butir Menu Bantuan"
RL_SHOW_HELP_MENU_DESC="Pilih untuk menampilkan sebuah tautan ke situs
Regular Labs di dalam menu Bantuan Administrator."
RL_SHOW_ICON="Tampilkan Ikon Tombol"
RL_SHOW_ICON_DESC="Jika dipilih, ikon akan ditampilkan di Tombol
Editor."
RL_SHOW_UPDATE_NOTIFICATION="Tampilkan Notifikasi Pembaruan"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Jika dipilih, sebuah notifikasi
pembaruan akan ditampilkan di tampilan komponen utama jika terdapat sebuah
versi baru untuk ekstensi ini."
RL_SIMPLE="Sederhana"
RL_SLIDES="Slide"
RL_SOUTHERN="Sebelah Selatan"
; RL_SPECIFIC="Specific"
RL_SPRING="Musim Semi"
RL_START="Mulai"
RL_START_PUBLISHING="Mulai Penerbitan"
RL_START_PUBLISHING_DESC="Masukkan tanggal untuk memulai
penerbitan"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Potong Tagar Yang Mengelilingi"
RL_STRIP_SURROUNDING_TAGS_DESC="Pilih untuk selalu membuang tagar html
(div, p, span) yang mengelilingi tagar plugin. Jika dimatikan, plugin akan
coba membuang tagar-tagar yang merusak struktur html (seperti tagar p di
dalam p)."
RL_STYLING="Penggayaan"
RL_SUMMER="Musim Panas"
RL_TABLE_NOT_FOUND="Tabel database %s yang diwajibkan tidak
ditemukan!"
RL_TABS="Tab"
RL_TAG_CHARACTERS="Karakter Tagar"
RL_TAG_CHARACTERS_DESC="Karakter yang mengelilingi sintaks
tagar.<br><br><strong>Catatan:</strong> Jika anda
menggantinya, semua tagar yang ada sebelumnya tidak akan bekerja."
RL_TAG_SYNTAX="Sintaks Tagar"
RL_TAG_SYNTAX_DESC="Kata yang digunakan di
tagar.<br><br><strong>Catatan:</strong> Jika anda
menggantinya, semua tagar yang ada sebelumnya tidak akan bekerja."
RL_TAGS="Tagar"
RL_TAGS_DESC="Masukkan tagar yang ingin ditetapkan. Gunakan koma untuk
memisahkan masing-masing tagar."
RL_TEMPLATES="Templat"
RL_TEMPLATES_DESC="Pilih templat yang ingin ditetapkan."
RL_TEXT="Teks"
RL_TEXT_HTML="Teks (HTML)"
RL_TEXT_ONLY="Hanya teks"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Ekstensi ini
memerlukan %s untuk berfungsi dengan benar!"
RL_TIME="Waktu"
RL_TIME_FINISH_PUBLISHING_DESC="Masukkan waktu untuk mengakhiri
penerbitan.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Masukkan waktu untuk memulai
penerbitan.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Alih"
RL_TOOLTIP="Tooltip"
RL_TOP="Atas"
RL_TOTAL="Total"
RL_TYPES="Jenis"
RL_TYPES_DESC="Pilih jenis yang ingin ditetapkan."
RL_UNSELECT_ALL="Tidak pilih Semua"
RL_UNSELECTED="Tidak Dipilih"
RL_UPDATE_TO="Perbarui ke versi %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL yang cocok"
RL_URL_PARTS_DESC="Masukkan (sebagian dari) URL untuk
dicocokkan.<br>Gunakan baris baru untuk masing-masing."
RL_URL_PARTS_REGEX="Bagian URL yang akan dicocokkan dengan regular
expressions. <strong>Jadi, pastikan stringnya menggunakan sintaks
regex yang valid.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Untuk penetapan (butir) kategori &
artikel. lihat bagian Konten Joomla! di atas."
RL_USE_CUSTOM_CODE="Gunakan Kode Kustom"
RL_USE_CUSTOM_CODE_DESC="Jika dipilih, Tombol Editor akan disisipkan
ke dalam kode kustom yang dibuat."
RL_USE_SIMPLE_BUTTON="Gunakan Tombol Sederhana"
RL_USE_SIMPLE_BUTTON_DESC="Pilih untuk menggunakan sebuah tombol
penyisipan sederhana, yang semata-mata menyisipkan contoh sintaks ke dalam
editor."
RL_USER_GROUP_LEVELS="Tingkat Kelompok Pengguna"
RL_USER_GROUPS="Kelompok Pengguna"
RL_USER_GROUPS_DESC="Pilih kelompok pengguna yang ingin
ditetapkan."
RL_USER_IDS="ID Pengguna"
RL_USER_IDS_DESC="Masukkan id pengguna yang ingin ditetapkan. Gunakan
koma untuk memisahkan id."
RL_USERS="Pengguna"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Tampilan"
RL_VIEW_DESC="Pilih tampilan standar seperti apa yang harus digunakan
ketika membuat sebuah butir."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Lebar"
RL_WINTER="Musim Dingin"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Kategori ZOO"
PK�X�[T��mm?regularlabs/language/id-ID/id-ID.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Pustaka Regular Labs"
PLG_SYSTEM_REGULARLABS_DESC="Pustaka Regular Labs - digunakan oleh
ekstensi-ekstensi Regular Labs"
REGULAR_LABS_LIBRARY="Pustaka Regular Labs"
PK�X�[j���
�
�;regularlabs/language/it-IT/it-IT.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - libreria usata
dalle estensioni di Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Le estensioni Regular Labs
necessitano di questa libreria e non funzioneranno senza di
essa.<br><br>Regular Labs le estensioni
sono:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Non disinstallare o disabilitare
questo plugin se usi una delle estensioni Regular Labs"

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintassi Tag"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descrizione"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descrizione"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportamento"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Inpostazioni
Predefinite"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opzioni modulo
Amministratore"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Settaggi del
bottone di Editor"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Settaggi
Sicurezza"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Installazione"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Stile"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintassi Tag"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Installa"
RL_ACTION_UNINSTALL="Disinstalla"
RL_ACTION_UPDATE="Aggiorna"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avanzato"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="TUTTO"
RL_ALL_DESC="Sarà publicato se<strong>TUTTI</strong> i
parametri che seguono sono soddisfatti."
RL_ALL_RIGHTS_RESERVED="Tutti i diritti riservati"
RL_ALSO_ON_CHILD_ITEMS="Anche sugli elementi figli"
RL_ALSO_ON_CHILD_ITEMS_DESC="Assegna anche ai figli degli elementi
selezionati?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="QUALSIASI"
RL_ANY_DESC="Sarà pubblicato se<strong>QUALSIASI</strong>
(uno o piu') dei seguenti parametri sono soddisfatti.<br>Gruppi
di assegnazione dove 'Ignore' è selezionato saranno
ignorati."
RL_ARE_YOU_SURE="Sei sicuro?"
RL_ARTICLE="Articolo"
RL_ARTICLE_AUTHORS="Autori"
RL_ARTICLE_AUTHORS_DESC="Seleziona gli autori da assegnare"
RL_ARTICLES="Articoli"
RL_ARTICLES_DESC="Scegli gli articoli da assegnare."
RL_AS_EXPORTED="Come esportato"
RL_ASSIGNMENTS="Assegnazioni"
RL_ASSIGNMENTS_DESC="Selezionando le assegnazioni specifiche puoi
limitare dove questo %s debba essere pubblicato o meno.<br>Per averlo
pubblicato su tutte le pagine, semplicemente non specificare alcuna
assegnazione."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Autori"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Comportamento"
RL_BEHAVIOUR="Comportamento"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Hai disattivato il framework
Bootstrap. %s ha bisogno del framework Bootstrap per funzionare. Assicurati
che il tuo template o altre estensioni caricano gli script necessari per
sostituire le funzionalità desiderate. h"
RL_BOTH="Entrambi"
RL_BOTTOM="Sotto"
RL_BROWSERS="Browsers"
RL_BROWSERS_DESC="Seleziona i browsers a cui assengnare. Ricorda che
il determinatore di browser non è mai 100&#37a prova di errore. Gli
utenti possono configurare il loro browser per imitarne altri."
RL_BUTTON_ICON="Icona Pulsante"
RL_BUTTON_ICON_DESC="Selezionare l'icona da visualizzare nel
pulsante."
RL_BUTTON_TEXT="Testo Pulsante"
RL_BUTTON_TEXT_DESC="Questo testo sarà mostrato nel bottone."
RL_CACHE_TIME="Tempo della cache"
RL_CACHE_TIME_DESC="La lunghezza massima di tempo in minuti per
memorizzare un file di cache prima di essere aggiornata. Lasciare vuoto per
utilizzare l'impostazione globale."
RL_CATEGORIES="Categorie"
RL_CATEGORIES_DESC="Seleziona le categorie a cui assegnare."
; RL_CATEGORY="Category"
RL_CHANGELOG="Elenco cambiamenti"
RL_CLASSNAME="Classe CSS"
; RL_COLLAPSE="Collapse"
RL_COM="Componente"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Componenti"
RL_COMPONENTS_DESC="Seleziona i componenti a cui assegnare."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Contenuto"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="Continenti"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Copia di %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Nazioni"
; RL_COUNTRIES_DESC="Select the countries to assign to."
RL_CSS_CLASS="Classe (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="Corrente"
RL_CURRENT_DATE="Data/ora attuale:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="La tua versione attuale è %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Codice personalizzato"
RL_CUSTOM_CODE_DESC="Inserisci il codice che il pulsante Editor
dovrebbe inserire nel contenuto (in luogo del codice predefinito)"
RL_CUSTOM_FIELD="Campo custom"
RL_CUSTOM_FIELDS="Campi personalizzati"
RL_DATE="Data"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Periodico"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Data & Ora"
RL_DATE_TIME_DESC="Parametri data ed ora usano l'orario dei tuoi
server, non quello del sistema del visitatore."
; RL_DATE_TO="To"
RL_DAYS="Giorni della settimana"
RL_DAYS_DESC="Seleziona i giorni della settimana a cui
assegnare."
RL_DEFAULT_ORDERING="Ordinamento Predefinito"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
RL_DEFAULT_SETTINGS="Inpostazioni Predefinite"
RL_DEFAULTS="Default"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Direzione"
RL_DIRECTION_DESC="Scegli la direzione"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Disabilita nei Componenti"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Visualizza il link"
RL_DISPLAY_LINK_DESC="Come vuoi che il link sia visualizzato ?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Visualizza Suggerimento"
RL_DISPLAY_TOOLTIP_DESC="Seleziona per visualizzare un suggerimento
quando il mouse passa sopra al link/icona."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Qui piazza i numeri delle
ripetizioni.<br>Se la ricerca ha successo, es 4 volte, il conteggio
mostrerà rispettivamente da 1 a 4."
RL_DYNAMIC_TAG_DATE="Una data usando %1$sphp strftime() format%2$s.
Esempio: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Utilizza per salvare i valori dinamici
(aggiungi gli slash per quotare)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="un numero casuale nell'intervalo
definito"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="L'id dell'utente"
RL_DYNAMIC_TAG_USER_NAME="Il nome dell'utente"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Il tag utente piazza i dati
dall'utente connesso. Se il visitatore non è connesso, il tag sarà
rimosso."
RL_DYNAMIC_TAG_USER_USERNAME="Il nome di login dell'utente"
RL_DYNAMIC_TAGS="Tag Dinamici"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Abilita"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Abilita negli articoli"
RL_ENABLE_IN_COMPONENTS="Abilita nei componenti"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Abilitare lato utente"
RL_ENABLE_IN_FRONTEND_DESC="Se abilitato, sarà disponibile anche lato
utente."
RL_ENABLE_OTHER_AREAS="Abilita in altre aree"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Escludi"
RL_EXPAND="Espandere"
RL_EXPORT="Esporta"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Autunno"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
RL_FIELD_PARAM_MULTIPLE="Multiplo"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Valore campo"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Il file richiesto %s non è stato trovato!"
RL_FILTERS="Filtri"
RL_FINISH_PUBLISHING="Termine Pubblicazione"
RL_FINISH_PUBLISHING_DESC="Indica la data in cui termina la
pubblicazione"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Per ulteriori funzionalità puoi acquistare la
versione PRO."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Lato sito"
RL_GALLERY="Galleria"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Passa alla versione Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
RL_HEADING_STATUS_ASC="Stato crescente"
RL_HEADING_STATUS_DESC="Stato discendente"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
RL_HEADING_TYPE_ASC="Tipo ascendente"
RL_HEADING_TYPE_DESC="Tipo discendente"
RL_HEIGHT="Altezza"
RL_HEMISPHERE="Emisfero"
RL_HEMISPHERE_DESC="Selezioa l'emisfero dove il tuo sito è
locato"
RL_HIGH="Alta"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Solo icona"
RL_IGNORE="Ignora"
RL_IMAGE="Immagine"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importa"
RL_IMPORT_ITEMS="Importa Elementi"
RL_INCLUDE="Includi"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Inclidi no Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Assgna anche quando nessun Itemid di menu
è configurato in URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Inserisci"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
RL_IS_FREE_VERSION="Questa è la versione FREE di %s."
RL_ITEM="Elemento"
RL_ITEM_IDS="IDs elemento"
RL_ITEM_IDS_DESC="Inserisci gli ID elementi cui assegnare. Utilizza le
virgole per separare gli ID."
RL_ITEMS="Elementi"
RL_ITEMS_DESC="Scegli gli elementi cui assegnare."
RL_JCONTENT="Contenuti Joomla!"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="Categorie K2"
RL_LANGUAGE="Lingua"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Lingue"
RL_LANGUAGES_DESC="Seleziona la lingua da assegnare a."
RL_LAYOUT="Impaginazione"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Livelli"
RL_LEVELS_DESC="Scegli i livelli cui assegnare."
RL_LIB="Libreria"
RL_LINK_TEXT="Testo del Link"
RL_LINK_TEXT_DESC="Il testo da mostrare come link."
RL_LIST="Lista"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Carica il Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Seleziona per caricare lo script core MooTools.
Puoi disabilitarlo se hai problemi con il template o con altre estensioni
che usano MooTools."
RL_LOAD_STYLESHEET="Carica foglio di stile"
RL_LOAD_STYLESHEET_DESC="Scegli se caricare il foglio di stile
dell'estensione. Puoi disabilitare questa funzione se hai posizionato
i tuoi stili personalizzati in altri fogli di stile, ad esempio nei CSS del
template."
RL_LOW="Bassa"
RL_LTR="Da sinistra a destra"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Metodo di Ricerca"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Massimizza"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Medio"
RL_MENU_ITEMS="Voci di Menu"
RL_MENU_ITEMS_DESC="Seleziona la voce di menu a cui assegnarae."
RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimizza"
RL_MOBILE_BROWSERS="Browser Mobili"
RL_MOD="Modulo"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mesi"
RL_MONTHS_DESC="Seleziona i mesi a cui assegnare."
RL_MORE_INFO="Maggiori Info"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d elementi aggiornati"
RL_N_ITEMS_UPDATED_1="Un elemento è stato aggiornato"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="E' disponibile una versione
aggiornata"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
RL_NO_ITEMS_FOUND="Nessun elemento trovato."
RL_NORMAL="Normale"
RL_NORTHERN="Nord"
RL_NOT="Non"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Solo"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Disponibile solo nella versione
PRO!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Questo messaggio verrà visualizzato solo a
(Super) Amministratori."
RL_OPTION_SELECT="- Seleziona -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Sistemi Operativi"
RL_OS_DESC="Scegli i sistemi operativi cui assegnare. Tieni in mente
che il rilevamento del sistema operativo non è mai 100&#37;
completamente affidabile. Gli utenti possono impostare il loro browser per
mimare altri sistemi operativi."
; RL_OTHER="Other"
RL_OTHER_AREAS="Altre Aree"
RL_OTHER_OPTIONS="Altre opzioni"
RL_OTHER_SETTINGS="Altri Parametri"
RL_OTHERS="Altri"
RL_PAGE_TYPES="Tipi di pagine"
RL_PAGE_TYPES_DESC="Seleziona a quali tipi di pagine devono essere
attive le assegnazioni"
; RL_PHP="Custom PHP"
RL_PHP_DESC="Digita un pezzo di codice PHP da valutare. Il codice deve
rendere il valore true oppure
false.<br><br>Esempio:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Piazza comenti HTML"
RL_PLACE_HTML_COMMENTS_DESC="Normalmente i commenti HTML sono piazzati
attorno al risulato di questa estensione.<br><br>Questi
commenti possono aiutare nel risolvere problemi quando non ottieni il
risultato atteso.<br><br>Se preferisci non avere questi
commenti nell'uscita HTML, spegni questa opzione."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Plugin Bottone Modifica"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Plugin di Sistema"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Prodotti"
RL_PUBLISHED_DESC="Puoi usare questo per (temporaneamente)
disabilitare questo elemento."
RL_PUBLISHING_ASSIGNMENTS="Pubblica Assegnazioni"
RL_PUBLISHING_SETTINGS="Impostazioni di pubblicazione"
RL_RANDOM="Casuale"
RL_REDSHOP="RedShop"
RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Ritaglia"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Cartella"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Imposta"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Da destra a sinistra"
RL_SAVE_CONFIG="Dopo il salvataggio dell'Opzione, il popup al
caricamento della pagina non comparirà più."
RL_SEASONS="Stagioni"
RL_SEASONS_DESC="Seleziona le stagioni a cui assegnare."
RL_SELECT="Seleziona"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Seleziona tutti"
RL_SELECT_AN_ARTICLE="Seleziona un Articolo"
RL_SELECT_FIELD="Seleziona campo"
RL_SELECTED="Selezionato"
RL_SELECTION="Selezione"
RL_SELECTION_DESC="Scegli se includere o escludere la selezione per
l'assegnazione.<br><br><strong>Includi</strong><br>Pubblica
solo su
selezione.<br><br><strong>Escludi</strong><br>Pubblica
ovunque, tranne sulla selezione."
RL_SETTINGS_ADMIN_MODULE="Opzioni modulo Amministratore"
RL_SETTINGS_EDITOR_BUTTON="Settaggi del bottone di Editor"
RL_SETTINGS_SECURITY="Settaggi Sicurezza"
RL_SHOW_ASSIGNMENTS="Visualizza assegnazioni"
RL_SHOW_ASSIGNMENTS_DESC="Scegli se visualizzare solo le assegnazioni
selezionate. Puoi utilizzare questa funzione per ottenere una
visualizzazione pulita delle assegnazioni attive."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Tutti i tipi di assegnazione non
selezionati saranno nascosti dalla visualizzazione."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Mostra Icona Bottone"
RL_SHOW_ICON_DESC="Se selezionato, l'icona di sarà mostrata nel
pulsante dell'editor."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Semplice"
; RL_SLIDES="Slides"
RL_SOUTHERN="Sud"
; RL_SPECIFIC="Specific"
RL_SPRING="Primavera"
RL_START="Start"
RL_START_PUBLISHING="Inizia la pubblicazione"
RL_START_PUBLISHING_DESC="Indica la data da cui iniziare la
pubblicazione"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Stile"
RL_SUMMER="Estate"
RL_TABLE_NOT_FOUND="La tabella %s richiesta non è stata trovata nel
database!"
RL_TABS="Tabelle"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Sintassi Tag"
RL_TAG_SYNTAX_DESC="La parola da usare nei
tags.<br><br><strong>Nota:</strong> Se cambi queto,
tutti i tags esistenti non funzioneranno più."
RL_TAGS="Tag"
RL_TAGS_DESC="Inserisci i tag da assegnare. Utilizza una virgola per
separare i tag."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Seleziona il template a cui assegnare."
RL_TEXT="Testo"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Solo testo"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Questa
estensione ha bisogno di %s per funzionare correttamente!"
RL_TIME="Ora"
RL_TIME_FINISH_PUBLISHING_DESC="Indica l'orario di termine
pubblicazione.<br><br><strong>Formato:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Indica l'orario di inizio
pubblicazione.<br><br><strong>Formato:</strong>
23:59"
RL_TOGGLE="Passare"
RL_TOOLTIP="Suggerimento"
RL_TOP="Sopra"
RL_TOTAL="Totale"
RL_TYPES="Tipi"
RL_TYPES_DESC="Scegli i tipi a cui assegnare"
RL_UNSELECT_ALL="Deseleziona tutti"
RL_UNSELECTED="Non selezionato"
RL_UPDATE_TO="Aggiorna alla versione %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL cercato"
RL_URL_PARTS_DESC="Indica (parte di) URLs da cercare.<br>Usa un
a capo per ogni differente ricerca."
RL_URL_PARTS_REGEX="Le parti di Url saranno cercate usanndo
espressioni regolari. <strong>Attenzione che la stringa usi una
sinstassi corretta &quot;regex&quot;.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Per le assegnazioni di categorie &
articoli (elementi), vedi la sezione sopra Contenuto Joomla!"
RL_USE_CUSTOM_CODE="Utilizza Codice personalizzato"
RL_USE_CUSTOM_CODE_DESC="Se selezionato, il Pulsante Editor inserirà
il codice personalizzato fornito."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Livelli Gruppi Utente"
RL_USER_GROUPS="Utilizza gruppi"
RL_USER_GROUPS_DESC="Scegli il gruppo utenti cui assegnare."
RL_USER_IDS="ID Utenti"
RL_USER_IDS_DESC="Digita gli id utenti a cui assegnare. Usa la virgola
per separarli."
RL_USERS="Utenti"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Visualizza"
RL_VIEW_DESC="Seleziona quale vista da mostrare quando è creato un
nuovo elemento."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Larghezza"
RL_WINTER="Inverno"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categorie ZOO"
PK�X�[��oo?regularlabs/language/it-IT/it-IT.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - libreria usata
dalle estensioni di Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[
��\ʖʖ;regularlabs/language/ja-JP/ja-JP.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="システム - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - Regular Labs -
のエクステンションで使用されます"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs
エクステンションはこのプラグインが必須であり、このプラグインが無いと全く機能しません。<br><br>Regular
Labs エクステンションに含まれる物:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="いずれかの Regular Labs
エクステンションを使用してる場合、このプラグインをアンインストールまたは無効にしないで下さい。"

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="タグの構文を指定してください。"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="説明"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="説明"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="動作"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="基本設定"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="メディア"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="管理者モジュールオプション"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="ボタンオプションの編集"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="セキュリティ設定"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="セットアップ"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="スタイリング"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="タグの構文を指定してください。"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="インストール"
RL_ACTION_UNINSTALL="アンインストール"
RL_ACTION_UPDATE="更新"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="管理"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="高度"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba サブスクリプション"
RL_ALL="すべて"
RL_ALL_DESC="以下の割り当ての<strong>全て</strong>を満たすとき公開されます。"
RL_ALL_RIGHTS_RESERVED="All Rights Reserved"
RL_ALSO_ON_CHILD_ITEMS="子アイテムにも適用"
RL_ALSO_ON_CHILD_ITEMS_DESC="選択したアイテムの子アイテムにも割り当てますか?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="いずれか"
RL_ANY_DESC="以下の割り当ての<strong>いずれか</strong>
(1つ以上)
を満たすとき公開されます。<br_/>「すべて」が選択された割り当てグループは無視されます。"
RL_ARE_YOU_SURE="よろしいですか?"
RL_ARTICLE="記事"
RL_ARTICLE_AUTHORS="作者"
RL_ARTICLE_AUTHORS_DESC="割り当てる作者を選択してください。"
RL_ARTICLES="記事"
RL_ARTICLES_DESC="割り当てる記事を選択してください。"
RL_AS_EXPORTED="エクスポート済みとして"
RL_ASSIGNMENTS="割り当て"
RL_ASSIGNMENTS_DESC="この %s
が公開または、非公開にする場所を特定の割り当てを選択することによって制限することが可能です。<br>すべてのページで公開したい場合は、任意の割り当てを指定しないでください。"
RL_AUSTRALIA="オーストラリア"
RL_AUTHORS="作者"
RL_AUTO="自動"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="動作"
RL_BEHAVIOUR="動作"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="開始されていた Bootstrap
Framework を無効にしました。%s が機能する Bootstrap Framework
が必要です。必要なスクリプトがテンプレートや他のエクシテンションで必要な機能を置き換えるために読み込んでいることを確認してください。"
RL_BOTH="両方"
RL_BOTTOM="すべて"
RL_BROWSERS="ブラウザ"
RL_BROWSERS_DESC="割り当て先のブラウザを選択してください。ブラウザの検出は
100%
完璧ではない事に注意してください。他のブラウザに偽装するため、ユーザはブラウザを設定できます。"
RL_BUTTON_ICON="ボタンアイコン"
RL_BUTTON_ICON_DESC="ボタンに表示するアイコンを選択してください。"
RL_BUTTON_TEXT="ボタンのテキスト"
RL_BUTTON_TEXT_DESC="このテキストは
のエディタボタンに表示されます。"
RL_CACHE_TIME="キャッシュタイム"
RL_CACHE_TIME_DESC="更新される前に、キャッシュファイルの分単位での最大長が格納されます。グローバル設定を使用する場合は空白のままにしてください。"
RL_CATEGORIES="カテゴリ"
RL_CATEGORIES_DESC="割り当て先のカテゴリを選択してください。"
; RL_CATEGORY="Category"
RL_CHANGELOG="変更履歴"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="故障"
RL_COM="コンポーネント"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="コンポーネント"
RL_COMPONENTS_DESC="割当先のコンポーネントを選択してください。"
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="コンテンツ"
RL_CONTENT_KEYWORDS="コンテンツキーワード"
RL_CONTENT_KEYWORDS_DESC="割り当てるコンテンツで見つかったキーワードを入力してくださいキーワードを入力する場合はカンマで区切ります。"
RL_CONTINENTS="大陸"
RL_CONTINENTS_DESC="割り当てる大陸を選択してください。"
RL_COOKIECONFIRM="クッキーの確認"
RL_COOKIECONFIRM_COOKIES="Cookieを許可"
RL_COOKIECONFIRM_COOKIES_DESC="クッキーは (Twentronix)
クッキーを確認して受け入れるか、または Cookie
を拒否するため訪問者の好みの設定に基づいて、許可または禁止されているかどうかで割り当てます。"
RL_COPY_OF="%s のコピー"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="国の設定"
RL_COUNTRIES_DESC="割り当てるの国を選択します。"
RL_CSS_CLASS="クラス (CSS)"
RL_CSS_CLASS_DESC="スタイリング目的のためにCSSクラス名を定義してください。"
; RL_CURRENT="Current"
RL_CURRENT_DATE="現在の日付 / 時刻:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="現在のバージョン %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="カスタムコード"
RL_CUSTOM_CODE_DESC="エディタボタンがコンテンツに挿入する必要がある
(デフォルトコードの代わりに)コードを入力してください。"
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="カスタムフィールド"
RL_DATE="日付"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="繰り返し"
RL_DATE_RECURRING_DESC="毎年日付の範囲を適用する場合に選択します
(そのため選択範囲の年は無視されます)"
RL_DATE_TIME="日時"
RL_DATE_TIME_DESC="日時は、訪問者の日時ではなく、サーバの日時を使用します。"
; RL_DATE_TO="To"
RL_DAYS="曜日"
RL_DAYS_DESC="割当先の曜日を選択してください。"
RL_DEFAULT_ORDERING="デフォルトの順序"
RL_DEFAULT_ORDERING_DESC="リストアイテムのデフォルトの順序を設定してください。"
RL_DEFAULT_SETTINGS="デフォルト設定"
RL_DEFAULTS="デフォルト"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="方向"
RL_DIRECTION_DESC="方向を選択してください"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="コンポーネント上で無効"
RL_DISABLE_ON_COMPONENTS_DESC="これでフロントエンドのコンポーネントを、この拡張機能の使用を有効に[しない」へ選択します。"
RL_DISPLAY_EDITOR_BUTTON="エディタボタンを表示"
RL_DISPLAY_EDITOR_BUTTON_DESC="エディタボタンを表示する場合は選択してください。"
RL_DISPLAY_LINK="リンクを表示"
RL_DISPLAY_LINK_DESC="リンクをどのように表示しますか?"
RL_DISPLAY_TOOLBAR_BUTTON="ツールバーボタンを表示"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="ツールバーのボタンを表示する場合に選択してください"
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="ツールチップを表示"
RL_DISPLAY_TOOLTIP_DESC="リンク /
アイコンにマウスを重ねたとき、追加情報と共にツールチップを表示するか選択してください。"
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="発生回数を配置します。<br>検索が見つかった場合、4
回、数がそれぞれ 1 から4 を表示します。"
RL_DYNAMIC_TAG_DATE="%1$sphpのstrftime()フォーマット%2$sを使用する日付です。例:
%3$s"
RL_DYNAMIC_TAG_ESCAPE="動的な値をエスケープするために使用
(引用符にスラッシュを追加) します。"
RL_DYNAMIC_TAG_LOWERCASE="タグ内のテキストを小文字に変換します。"
RL_DYNAMIC_TAG_RANDOM="与えられた範囲でのランダムな数値です"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="言語文字列のテキストに変換
(有効な言語に基づいて)"
RL_DYNAMIC_TAG_UPPERCASE="タグ内のテキストを大文字に変換します。"
RL_DYNAMIC_TAG_USER_ID="ユーザのID番号です"
RL_DYNAMIC_TAG_USER_NAME="ユーザの名前です"
RL_DYNAMIC_TAG_USER_OTHER="ユーザもしく関連する連絡先から利用できるその他のデータ。例:
[[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="ユーザタグは、ログイン済みユーザから情報を配置します。訪問者がログインしていない時はタグが削除されます。"
RL_DYNAMIC_TAG_USER_USERNAME="ユーザのログイン名です"
RL_DYNAMIC_TAGS="動的タグ"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="有効"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="有効"
RL_ENABLE_IN_ADMIN="管理者側で有効"
RL_ENABLE_IN_ADMIN_DESC="有効にした場合、プラグインはウェブサイトの管理者側で動作します。<br><br>通常はこれを必要としません。望んでいないプラグインのタグが処理され、管理者エリアを重くし、好ましくない影響を引き起こす可能性があります。"
RL_ENABLE_IN_ARTICLES="記事内で有効"
RL_ENABLE_IN_COMPONENTS="コンポーネント内で有効"
RL_ENABLE_IN_DESC="フロントエンドまたは管理者側、またはその両方で有効にするか選択してください。"
RL_ENABLE_IN_FRONTEND="フロントエンドで有効"
RL_ENABLE_IN_FRONTEND_DESC="有効にした場合、それはまた、フロントエンドで利用できるようになります。"
RL_ENABLE_OTHER_AREAS="その他の領域を有効"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="除外"
RL_EXPAND="拡大"
RL_EXPORT="エクスポート"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="秋"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="フィールド名"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="フィールド値"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="必要な %s
のファイルが見つかりません!"
RL_FILTERS="フィルター"
RL_FINISH_PUBLISHING="公開終了"
RL_FINISH_PUBLISHING_DESC="公開を終了する日付を入力してください。"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="さらに多くの機能を希望する場合は
PROバージョンを購入することができます。"
RL_FORM2CONTENT="Form2 Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="フロントエンド"
RL_GALLERY="ギャラリー"
RL_GEO="Geolocating"
RL_GEO_DESC="Geolocating は必ずしも100&#37;
正確ではありません。Geolocation は訪問者の
IPアドレスに基づいています。すべての
IPアドレスが固定または知られていません。"
RL_GEO_GEOIP_COPYRIGHT_DESC="この製品は GeoLite2
データを含み、[[%1:link%]] から入手可能な MaxMind
によって作成されました。"
RL_GEO_NO_GEOIP_LIBRARY="Regular Labs - の GeoIP
ライブラリがインストールされていません。Geolocating
の割り当てを使用可能にするため [[%1:link start%]]Regular
Labs の GeoIP ライブラリ[[%2:link end%]]
をインストールする必要があります。"
RL_GO_PRO="Pro へ移動!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="アクセス - 昇順"
RL_HEADING_ACCESS_DESC="アクセス - 降順"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
RL_HEADING_CLIENTID_ASC="場所 - 昇順"
RL_HEADING_CLIENTID_DESC="場所 - 降順"
RL_HEADING_COLOR_ASC="カラー - 昇順"
RL_HEADING_COLOR_DESC="カラー - 降順"
RL_HEADING_DEFAULT_ASC="デフォルト - 昇順"
RL_HEADING_DEFAULT_DESC="デフォルト - 降順"
RL_HEADING_DESCRIPTION_ASC="説明 - 昇順"
RL_HEADING_DESCRIPTION_DESC="説明 - 降順"
RL_HEADING_ID_ASC="ID - 昇順"
RL_HEADING_ID_DESC="ID - 降順"
RL_HEADING_LANGUAGE_ASC="言語 - 昇順"
RL_HEADING_LANGUAGE_DESC="言語 - 降順"
RL_HEADING_ORDERING_ASC="順序 - 昇順"
RL_HEADING_ORDERING_DESC="順序 - 降順"
RL_HEADING_PAGES_ASC="メニューアイテム - 昇順"
RL_HEADING_PAGES_DESC="メニューアイテム - 降順"
RL_HEADING_POSITION_ASC="位置 - 昇順"
RL_HEADING_POSITION_DESC="位置 - 降順"
RL_HEADING_STATUS_ASC="状態 - 昇順"
RL_HEADING_STATUS_DESC="状態 - 降順"
RL_HEADING_STYLE_ASC="スタイル - 昇順"
RL_HEADING_STYLE_DESC="スタイル - 降順"
RL_HEADING_TEMPLATE_ASC="テンプレート - 昇順"
RL_HEADING_TEMPLATE_DESC="テンプレート - 降順"
RL_HEADING_TITLE_ASC="タイトル - 昇順"
RL_HEADING_TITLE_DESC="タイトル - 降順"
RL_HEADING_TYPE_ASC="タイプ - 昇順"
RL_HEADING_TYPE_DESC="タイプ - 降順"
RL_HEIGHT="高さ"
RL_HEMISPHERE="半球"
RL_HEMISPHERE_DESC="ウェブサイトが配置された半球を選択してください。"
RL_HIGH="高"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="ホームページ"
RL_HOME_PAGE_DESC="メニューアイテムを介してホームページ
(デフォルト)
アイテムを選択することとは異なり、実際のホームページではなく、ホームのメニューアイテムと同じ
Item ID を持っているすべての URL
にマッチします。<br><br>これは、サードパーティ製の
SEF
系エクステンションのすべてで動作しない場合があります。"
RL_HTML_LINK="<a href=&quot;%2$s&quot;
target=&quot;_blank&quot;
class=&quot;%3$s&quot;>%1$s</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="アイコンのみ"
RL_IGNORE="無視"
RL_IMAGE="画像"
RL_IMAGE_ALT="画像のAlt"
RL_IMAGE_ALT_DESC="画像のAlt値を入力してください。"
RL_IMAGE_ATTRIBUTES="画像の属性"
RL_IMAGE_ATTRIBUTES_DESC="画像の追加の属性になります。例:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="インポート"
RL_IMPORT_ITEMS="アイテムのインポート"
RL_INCLUDE="含める"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="アイテムID がないものも含む"
RL_INCLUDE_NO_ITEMID_DESC="メニューアイテムID が URL
に設定されていない場合でも割り当てますか?"
RL_INITIALISE_EVENT="イベントで初期化"
RL_INITIALISE_EVENT_DESC="プラグインを初期化するための
Joomla
の内部イベントを設定してください。プラグインが動作しない問題が発生した場合にのみ、この設定を変更してください。"
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="挿入"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IPアドレス / 範囲"
RL_IP_RANGES_DESC="IPアドレスおよび IP範囲のカンマ /
および区切りリストを入力します。例えば:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IPアドレス"
RL_IS_FREE_VERSION="これは %s の無料版です"
RL_ITEM="アイテム"
RL_ITEM_IDS="アイテムID"
RL_ITEM_IDS_DESC="割り当てるアイテムID
を入力してください。IDを入力する場合はカンマで区切って指定してください。"
RL_ITEMS="アイテム"
RL_ITEMS_DESC="割り当てるアイテムを選択してください。"
RL_JCONTENT="Joomla! コンテンツ"
RL_JED_REVIEW="このエクステンションは好きですか? %1$
JED %2$s でレビューを残してください。"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Joomla!3 で %1$s の Joomla 2.5
のバージョンを実行しています。この問題を解決するためには
%1$s を再インストールしてください。"
RL_JQUERY_DISABLED="jQuery
スクリプトを無効にしています。%s
が正常に機能するためには jQuery
が必要になります。必要なスクリプトがテンプレートや他のエクシテンションで必要な機能を置き換えるために読み込んでいることを確認してください。"
RL_K2="K2"
RL_K2_CATEGORIES="K2 カテゴリ"
RL_LANGUAGE="言語"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="言語"
RL_LANGUAGES_DESC="割り当て先の言語を選択してください。"
RL_LAYOUT="レイアウト"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="レベル"
RL_LEVELS_DESC="割り当てるレベルを選択してください。"
RL_LIB="ライブラリ"
RL_LINK_TEXT="リンクテキスト"
RL_LINK_TEXT_DESC="リンクとして表示されるテキストです。"
RL_LIST="リスト"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Bootstrap Framework を読み込む"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Bootstrap Framework
が起動しないように無効化します。"
RL_LOAD_JQUERY="jQuery スクリプトを読み込む"
RL_LOAD_JQUERY_DESC="コアの jQuery
スクリプトを読み込む場合に選択してください。テンプレートや他のエクステンションが独自の
jQuery
バージョンを読み込み競合が発生する場合は、これを無効にしてください。"
RL_LOAD_MOOTOOLS="コア MooTools を読み込む"
RL_LOAD_MOOTOOLS_DESC="コアの MooTools
スクリプトを読み込む場合に選択してください。テンプレートや他のエクステンションが独自の
MooTools
バージョンを読み込み競合が発生する場合は、これを無効にしてください。"
RL_LOAD_STYLESHEET="SSC を読み込む"
RL_LOAD_STYLESHEET_DESC="エクステンションの CSS
を読み込む場合に選択してください。テンプレートのスタイルシートや、一部のスタイルシートで、すべて独自のスタイルを使用する場合は、これを無効にすることが可能です。"
RL_LOW="低"
RL_LTR="左から右"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="マッチング方法"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="最大リスト数"
RL_MAX_LIST_COUNT_DESC="エレメントの最大数は、複数選択リストに表示されます。アイテムの合計数が高い場合には、選択フィールドは、テキストフィールドとして表示されます。<br><br>リスト内のアイテム数が多いことが原因でページの読み込みに時間がかかる場合は、以下で数量を設定することができます。"
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="最大化"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="中"
RL_MENU_ITEMS="メニューアイテム"
RL_MENU_ITEMS_DESC="割り当て先のメニューアイテムを選択してください。"
RL_META_KEYWORDS="メタキーワード"
RL_META_KEYWORDS_DESC="割り当てるメタキーワードで見つけられるキーワードを入力してください。キーワードを複数入力する場合はカンマで区切ってください。"
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="最小化"
RL_MOBILE_BROWSERS="モバイルブラウザ"
RL_MOD="モジュール"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="月"
RL_MONTHS_DESC="割当先の月を選択してください。"
RL_MORE_INFO="詳細情報"
RL_MY_STRING="私の文字列!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="アイテム %d を更新しました。"
RL_N_ITEMS_UPDATED_1="アイテム1つが更新されました"
RL_NEW_CATEGORY="新規カテゴリを作成"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="新しいバージョンが利用可能です"
RL_NEW_VERSION_OF_AVAILABLE="%s
の新しいバージョンが利用可能です"
RL_NO_ICON="アイコンなし"
RL_NO_ITEMS_FOUND="アイテムが見つかりません。"
RL_NORMAL="ノーマル"
RL_NORTHERN="北半球"
RL_NOT="しません"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="これのみ"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>PRO
版でのみ使用できます!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="このメッセージは (スーパー)
管理者のみに表示されます。"
RL_OPTION_SELECT="- 選択 -"
RL_OPTION_SELECT_CLIENT="- クライアントの選択 -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="オペレーティングシステム"
RL_OS_DESC="割り当てるオペレーティングシステムを選択してください。システム検出を正常に作動させることは
100&#37;
確実ではないことに注意してください。OSを模倣するブラウザをユーザがセットアップし他のオペレーティングシステムに変更することが容易だからです。"
; RL_OTHER="Other"
RL_OTHER_AREAS="その他の領域"
RL_OTHER_OPTIONS="その他のオプション"
RL_OTHER_SETTINGS="その他の設定"
RL_OTHERS="その他"
RL_PAGE_TYPES="ページタイプ"
RL_PAGE_TYPES_DESC="割り当てが有効になるページタイプを選択してください。"
RL_PHP="Custom PHP"
RL_PHP_DESC="評価するPHPコードの一部を入力してください。コードは真または偽の値を返す必要があります。<br><br>例:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="HTMLコメントを配置"
RL_PLACE_HTML_COMMENTS_DESC="既定では、このエクステンションの出力周りにHTMLコメントが配置されます。<br><br>これらのコメントは、あなたが期待する出力を得られない時に役立ちます。<br><br>HTMLの出力にこれらのコメントが配置されるのを望まない場合は、このオプションをオフにしてください。"
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="エディタボタンプラグイン"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="システムプラグイン"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="郵便番号"
RL_POSTALCODES_DESC="カンマで、郵便番号 (12345)
や郵便番号の範囲 (12300-12500)
のリストを分離して下さい。<br>[[%1:start
link%]]国とIPアドレスの限られた数のためのみで使用することができます[[%2:end
link%]]。"
RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="明細情報"
RL_PUBLISHED_DESC="このアイテムを (一時的に)
無効にするために使用できます。"
RL_PUBLISHING_ASSIGNMENTS="公開割り当て"
RL_PUBLISHING_SETTINGS="公開設定"
RL_RANDOM="ランダム"
RL_REDSHOP="RedShop"
RL_REGEX="正規表現"
RL_REGIONS="地域 / 州"
RL_REGIONS_DESC="割り当てる地域 /
州を選択してください。"
RL_REGULAR_EXPRESSIONS="正規表現を使用"
RL_REGULAR_EXPRESSIONS_DESC="値を正規表現として扱うために選択してください。"
RL_REMOVE_IN_DISABLED_COMPONENTS="無効化されたコンポーネントで削除"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="選択した場合は、プラグインの構文が、コンポーネントから削除されます。選択しない場合は、オリジナルのプラグイン構文は無傷のままになります。"
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="切り取り"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="フォルダ"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="右から左"
RL_SAVE_CONFIG="オプションを保存した後は、以後ページの読み込みでポップアップしません。"
RL_SEASONS="季節"
RL_SEASONS_DESC="割当先の季節を選択してください。"
RL_SELECT="選択"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="すべて選択"
RL_SELECT_AN_ARTICLE="記事を選択"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="選択"
RL_SELECTION="選択"
RL_SELECTION_DESC="含める /
または割り当てのための選択を、除外するかどうか選択してください。<br><br><strong>含める</strong><br>選択したモジュールのみ公開します。<br><br><strong>除外</strong><br>選択したモジュール以外、どこででも公開します。"
RL_SETTINGS_ADMIN_MODULE="管理者モジュールのオプション"
RL_SETTINGS_EDITOR_BUTTON="エディタボタンのオプション"
RL_SETTINGS_SECURITY="セキュリティ設定"
RL_SHOW_ASSIGNMENTS="割り当てを表示"
RL_SHOW_ASSIGNMENTS_DESC="選択した割り当てのみ表示するかどうか選択してください。アクティブな割り当てのクリーンな概要を取得するためにこれを使用することができます。"
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="「すべて」を選択していない限り、割り当てタイプは現在のビューでは隠されます。"
RL_SHOW_COPYRIGHT="Copyright を表示"
RL_SHOW_COPYRIGHT_DESC="選択した場合は、追加の著作権情報が管理ビューに表示されます。Regular
Labs
エクステンションは、フロントエンドの著作権情報やバックリンクを表示しません。"
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="ボタンアイコンを表示"
RL_SHOW_ICON_DESC="選択した場合、エディタボタンにアイコンが表示されます。"
RL_SHOW_UPDATE_NOTIFICATION="更新の通知を表示"
RL_SHOW_UPDATE_NOTIFICATION_DESC="選択した場合は、エクステンションの新しいバージョンがある場合に、更新通知をメインのコンポーネントビューへ表示します。"
RL_SIMPLE="シンプル"
RL_SLIDES="スライド"
RL_SOUTHERN="南半球"
; RL_SPECIFIC="Specific"
RL_SPRING="春"
RL_START="開始"
RL_START_PUBLISHING="公開開始"
RL_START_PUBLISHING_DESC="公開の開始日付を入力してください。"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="スタイリング"
RL_SUMMER="夏"
RL_TABLE_NOT_FOUND="必要な %s
データベーステーブルが見つかりません!"
RL_TABS="タブ"
RL_TAG_CHARACTERS="タグ文字"
RL_TAG_CHARACTERS_DESC="タグのシンタックスを囲む文字です。<br><br><strong>注意
:</strong>
これを変更すると、全ての既存タグが動作しなくなります。"
RL_TAG_SYNTAX="タグの構文を指定してください。"
RL_TAG_SYNTAX_DESC="タグに使用される単語です。<br><br><strong>注意:</strong>
これを変更すると、全ての既存タグが動作しなくなります。"
RL_TAGS="タグ"
RL_TAGS_DESC="割り当てるタグを入力してください。複数のタグを指定する場合はカンマ区切りで指定してください。"
RL_TEMPLATES="テンプレート"
RL_TEMPLATES_DESC="割り当て先のテンプレートを選択してください。"
RL_TEXT="テキスト"
RL_TEXT_HTML="テキスト (HTML)"
RL_TEXT_ONLY="テキストのみ"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="このエクステンションが正しく動作するには
%s が必要です!"
RL_TIME="時間"
RL_TIME_FINISH_PUBLISHING_DESC="公開の終了時間を入力してください。<br><br><strong>フォーマット:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="公開の開始時間を入力してください。<br><br><strong>フォーマット:</strong>
23:59"
RL_TOGGLE="トグル"
RL_TOOLTIP="ツールチップ"
RL_TOP="上"
RL_TOTAL="合計"
RL_TYPES="タイプ"
RL_TYPES_DESC="割り当てるタイプを選択してください。"
RL_UNSELECT_ALL="すべての選択を解除"
RL_UNSELECTED="選択なし"
RL_UPDATE_TO="%s バージョンへアップデート"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URLと一致"
RL_URL_PARTS_DESC="一致させるURL (の一部)
を入力してください。<br>それぞれ異なる一致の場合は、新しい行を使用してください。"
RL_URL_PARTS_REGEX="URLの部分は、正規表現を使用して照合されます。
<strong>そのため、文字列が有効な正規表現の構文を使用しているか確認してください。</strong>"
RL_USE_CONTENT_ASSIGNMENTS="カテゴリ&記事 (アイテム)
の割り当てについては、Joomla!
のコンテンツセクションの上を参照してください。"
RL_USE_CUSTOM_CODE="カスタムコードを使用"
RL_USE_CUSTOM_CODE_DESC="選択した場合は、エディタボタンではなく、指定されたカスタムコードを挿入します。"
RL_USE_SIMPLE_BUTTON="シンプルなボタンを使用"
RL_USE_SIMPLE_BUTTON_DESC="エディタにて一部の例構文を挿入できるシンプルな挿入ボタンを使用する場合に選択してください。"
RL_USER_GROUP_LEVELS="ユーザグループレベル"
RL_USER_GROUPS="ユーザグループ設定"
RL_USER_GROUPS_DESC="割り当てるユーザグループを選択してください。"
RL_USER_IDS="ユーザID"
RL_USER_IDS_DESC="割当先のユーザIDを入力してください。IDを区切るにはカンマを使用してください。"
RL_USERS="ユーザ"
RL_UTF8="UTF-8"
RL_VIDEO="動画"
RL_VIEW="表示"
RL_VIEW_DESC="新規アイテム作成時、使用されるデフォルトのビューを選択してください。"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="幅"
RL_WINTER="冬"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOOカテゴリ"
PK�X�[z+���?regularlabs/language/ja-JP/ja-JP.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="システム - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - Regular Labs -
のエクステンションで使用されます"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�|�
��;regularlabs/language/lt-LT/lt-LT.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - naudojamas Regular
Labs išplėtimams"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs naudoja šį
įskiepį ir negali funkcionuoti be jo.<br><br>Regular Labs
išplėtimai:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Jei Jūs naudojate bet kokį
Regular Labs išplėtimą, nepašalinkite ar neišjunkite šio
įskiepio."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Žymės sintaksė"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Aprašymas"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Aprašymas"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Elgesys"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Numatytieji
nustatymai"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Medija"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administratoriaus
modulio parinktys"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Redaktoriaus
mygtuko parinktys"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Saugumo
parinktys"
; COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setup"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Stilizacija"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Žymės sintaksė"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Įdiegti"
RL_ACTION_UNINSTALL="Išdiegti"
RL_ACTION_UPDATE="Atnaujinti"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Administratorius"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Išplėstiniai"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="VISI"
RL_ALL_DESC="Bus paskelbtas, jei <strong>VISI</strong>
žemiau esantys priskyrimai sutampa."
RL_ALL_RIGHTS_RESERVED="Visos teisės saugomos"
RL_ALSO_ON_CHILD_ITEMS="Taip pat ir žemesnio lygio punktuose"
RL_ALSO_ON_CHILD_ITEMS_DESC="Taip pat priskirti pasirinktų elementų
žemesnio lygio punktams?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="BET KOKS"
RL_ANY_DESC="Bus paskelbta, jei <strong>BET KOKS</strong>
(vienas ar daugiau) iš žemiau esančių priskyrimų
sutampa.<br>Priskyrimo grupės, kur yra pasirinkta
'Ignoruoti', bus ignoruotos."
RL_ARE_YOU_SURE="Ar tikrai?"
RL_ARTICLE="Straipsnis"
RL_ARTICLE_AUTHORS="Autoriai"
RL_ARTICLE_AUTHORS_DESC="Pasirinkite autorius priskyrimui."
RL_ARTICLES="Straipsniai"
RL_ARTICLES_DESC="Pasirinkite straipsnius priskyrimui."
RL_AS_EXPORTED="Kaip eksportuotas"
RL_ASSIGNMENTS="Priskyrimai"
RL_ASSIGNMENTS_DESC="Pasirinkdami konkrečius priskyrimus, galite
apriboti kur šis %s turi ar neturi būti paskelbtas.<br>Norint
paskelbti visuose puslapiuose, tiesiog nenurodykite jokių
priskyrimų."
RL_AUSTRALIA="Australija"
RL_AUTHORS="Autoriai"
RL_AUTO="Automatinis"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Elgesys"
RL_BEHAVIOUR="Elgesys"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Jūs išjungėte Bootstrap
Framework'o naudojimą. %s funkcionavimui reikalingas Bootstrap
Framework'as. Įsitikinkite, kad Jūsų šablonas ar kiti išplėtimai
įkelia reikalingus skriptus, kad išplėtimas tinkamai veiktų."
RL_BOTH="Abu"
RL_BOTTOM="Apačia"
RL_BROWSERS="Naršyklės"
RL_BROWSERS_DESC="Pasirinkite naršykles priskyrimui. Atminkite, kad
naršyklės aptikimas niekada 100&#37; nėra tikslus. Nariai gali
sukonfigūruoti savo naršykles taip, kad jos imituotų kitas
naršykles."
RL_BUTTON_ICON="Mygtuko piktograma"
RL_BUTTON_ICON_DESC="Pasirinkite, kurią piktogramą rodyti
mygtuke."
RL_BUTTON_TEXT="Mygtuko tekstas"
RL_BUTTON_TEXT_DESC="Šis tekstas bus rodomas redaktoriaus
mygtuke."
RL_CACHE_TIME="Talpyklos laikas"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategorijos"
RL_CATEGORIES_DESC="Pasirinkite kategorijas priskyrimui."
; RL_CATEGORY="Category"
RL_CHANGELOG="Pasikeitimai"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Sutraukti"
RL_COM="Komponentas"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponentai"
RL_COMPONENTS_DESC="Pasirinkite komponentus priskyrimui."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Turinys"
RL_CONTENT_KEYWORDS="Turinio raktažodžiai"
RL_CONTENT_KEYWORDS_DESC="Priskyrimui įveskite raktažodžius, rastus
turinyje. Jų atskirimui naudokite kablelius."
RL_CONTINENTS="Žemynai"
RL_CONTINENTS_DESC="Pasirinkite žemynus priskyrimui."
RL_COOKIECONFIRM="Slapukų patvirtinimas"
RL_COOKIECONFIRM_COOKIES="Slapukai leidžiami"
RL_COOKIECONFIRM_COOKIES_DESC="Priskirti ar slapukai yra leidžiami ar
atmetami remiantis slapukų patvirtinimų nuostatomis (pagal Twentronix) ir
lankytojo pasirinkimu priimti ar atmesti slapukus."
RL_COPY_OF="%s kopija"
RL_COPYRIGHT="Autorinės teisės"
RL_COUNTRIES="Šalys"
RL_COUNTRIES_DESC="Pasirinkite šalis priskyrimui."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="Dabartinis&quot;"
RL_CURRENT_DATE="Dabartinė data/laikas:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Jūsų dabartinė versija yra %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Pasirinktinis kodas"
RL_CUSTOM_CODE_DESC="Įveskite kodą, kurį redaktoriaus mygtuku
galima bus įterpti į turinį (vietoj numatytojo kodo)."
RL_CUSTOM_FIELD="Pasirinktinis laukelis"
RL_CUSTOM_FIELDS="Pasirinktiniai laukeliai"
RL_DATE="Data"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Pasikartojimas"
RL_DATE_RECURRING_DESC="Pasirinkite, kad kasmet taikyti datos
intervalą. (Tokiu atveju metų pasirinkimas bus ignoruojamas)"
RL_DATE_TIME="Data & Laikas"
RL_DATE_TIME_DESC="Datos ir laiko priskyrimas naudoja Jūsų serverio
datą/laiką, o ne lankytojų sistemos laiką."
; RL_DATE_TO="To"
RL_DAYS="Savaitės dienos"
RL_DAYS_DESC="Pasirinkite savaitės dienas priskyrimui."
RL_DEFAULT_ORDERING="Numatytasis rikiavimas"
RL_DEFAULT_ORDERING_DESC="Pasirinkite sąrašo elementų numatytąjį
rikiavimą"
RL_DEFAULT_SETTINGS="Numatytieji nustatymai"
RL_DEFAULTS="Numatytieji"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobilusis telefonas"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Kryptis"
RL_DIRECTION_DESC="Pasirinkite kryptį"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Išjungti komponentuose"
RL_DISABLE_ON_COMPONENTS_DESC="Pasirinkite, kuriuose išorinės
sąsajos komponentuose šis išplėtimas nebus naudojamas."
RL_DISPLAY_EDITOR_BUTTON="Rodyti redaktoriaus mygtuką"
RL_DISPLAY_EDITOR_BUTTON_DESC="Pasirinkite, kad rodyti redaktoriaus
mygtuką."
RL_DISPLAY_LINK="Rodyti nuorodą"
RL_DISPLAY_LINK_DESC="Pasirinkite, kaip turi būti rodoma
nuoroda."
RL_DISPLAY_TOOLBAR_BUTTON="Rodyti įrankių juostos mygtuką"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Pasirinkite, kad rodyti mygtuką
įrankių juostoje"
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Rodyti patarimą"
RL_DISPLAY_TOOLTIP_DESC="Pasirinkite, jei norite rodyti patarimą su
papildoma informacija, kai pelės žymeklis užvedamas ant
nuorodos/piktogramos."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Tai įkelia įvykio numerį.<br>Jei
Jūsų paiešką rasta, tarkim, 4 kartus, skaičius bus parodyti
atitinkamai nuo 1 iki 4."
RL_DYNAMIC_TAG_DATE="Data naudoja %1$sphp strftime() formatą%2$s.
Pavyzdys: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Naudokite, kad išvengti dinaminių verčių
(pridėkite pasviruosius brūkšnius prie kabučių)"
RL_DYNAMIC_TAG_LOWERCASE="Konvertuoti tekstą su žymėmis į
mažąsias raides."
RL_DYNAMIC_TAG_RANDOM="Atsitiktinis skaičius iš tam tikro
intervalo"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Kalbos eilutė, verčiama į tekstą (paremta
aktyvia kalba)"
RL_DYNAMIC_TAG_UPPERCASE="Konvertuoti tekstą su žymėmis į
didžiąsias raides."
RL_DYNAMIC_TAG_USER_ID="Nario id"
RL_DYNAMIC_TAG_USER_NAME="Nario vardas"
RL_DYNAMIC_TAG_USER_OTHER="Bet kokie kiti galimi nario duomenys arba
prisijungęs kontaktas. Pavyzdžiui: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Nario žymė įterpia duomenis to nario,
kuris yra prisijungęs. Jei lankytojas neprisijungęs, žymė bus
pašalinta."
RL_DYNAMIC_TAG_USER_USERNAME="Nario prisijungimo vardas"
RL_DYNAMIC_TAGS="Dinaminės žymos"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Įgalinti"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Įgalinti"
RL_ENABLE_IN_ADMIN="Įgalinti administracijoje"
RL_ENABLE_IN_ADMIN_DESC="Jei įgalinta, įskiepis taip pat veiks ir
administracijoje.<br><br>Paprastai Jums to nereikia. Ir tai
gali sukelti nepageidaujamą poveikį, tokį kaip administracijos
sulėtėjimą ir įskiepio žymės bus apdorojamos tokiose vietose, kur
Jums nereikia."
RL_ENABLE_IN_ARTICLES="Įgalinti straipsniuose"
RL_ENABLE_IN_COMPONENTS="Įgalinti komponentuose"
RL_ENABLE_IN_DESC="Pasirinkite, ar įgalinti išorinėje sąsajoje, ar
administracijoje, ar abiejuose sąsajose."
RL_ENABLE_IN_FRONTEND="Įgalinti išorinėje sąsajoje"
RL_ENABLE_IN_FRONTEND_DESC="Jei įgalinta, tai taip pat bus galima
išorinėje sąsajoje."
RL_ENABLE_OTHER_AREAS="Įgalinti kitose srityse"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Neįtraukti"
RL_EXPAND="Išskleisti"
RL_EXPORT="Eksportuoti"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Ruduo"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Laukelio pavadinimas"
RL_FIELD_PARAM_MULTIPLE="Daugialypis"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Laukelio vertė"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Reikalingi %s failai nerasti!"
RL_FILTERS="Filtrai"
RL_FINISH_PUBLISHING="Paskelbimo pabaiga"
RL_FINISH_PUBLISHING_DESC="Įveskite paskelbimo pabaigos datą"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Daugiau funkcijų galite gauti, įsigiję PRO
versiją."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Išorinė sąsaja"
RL_GALLERY="Galerija"
RL_GEO="Geografinis aptikimas"
RL_GEO_DESC="Geografinis aptikimas nėra 100&#37; tikslus.
Geografinis aptikimas paremtas lankytojo IP adresu. Ne visi IP adresai yra
fiksuoti ar žinomi."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Įsigykite Pro! versiją"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="Prieiga didėjimo tvarka"
RL_HEADING_ACCESS_DESC="Prieiga mažėjimo tvarka"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
RL_HEADING_CLIENTID_ASC="Vieta didėjimo tvarka"
RL_HEADING_CLIENTID_DESC="Vieta mažėjimo tvarka"
RL_HEADING_COLOR_ASC="Spalva didėjančia tvarka"
RL_HEADING_COLOR_DESC="Spalva mažėjančia tvarka"
RL_HEADING_DEFAULT_ASC="Numatytasis didėjimo tvarka"
RL_HEADING_DEFAULT_DESC="Numatytasis mažėjimo tvarka"
RL_HEADING_DESCRIPTION_ASC="Aprašymas didėjančia tvarka"
RL_HEADING_DESCRIPTION_DESC="Aprašymas mažėjančia tvarka"
RL_HEADING_ID_ASC="ID didėjimo tvarka"
RL_HEADING_ID_DESC="ID mažėjimo tvarka"
RL_HEADING_LANGUAGE_ASC="Kalba didėjimo tvarka"
RL_HEADING_LANGUAGE_DESC="Kalba mažėjimo tvarka"
RL_HEADING_ORDERING_ASC="Rikiavimas didėjimo tvarka"
RL_HEADING_ORDERING_DESC="Rikiavimas mažėjimo tvarka"
RL_HEADING_PAGES_ASC="Meniu punktai didėjančia tvarka"
RL_HEADING_PAGES_DESC="Meniu punktai mažėjančia tvarka"
RL_HEADING_POSITION_ASC="Pozicija didėjančia tvarka"
RL_HEADING_POSITION_DESC="Pozicija mažėjančia tvarka"
RL_HEADING_STATUS_ASC="Būsena didėjimo tvarka"
RL_HEADING_STATUS_DESC="Būsena mažėjimo tvarka"
RL_HEADING_STYLE_ASC="Stilius didėjimo tvarka"
RL_HEADING_STYLE_DESC="Stilius mažėjimo tvarka"
RL_HEADING_TEMPLATE_ASC="Šablonas didėjimo tvarka"
RL_HEADING_TEMPLATE_DESC="Šablonas mažėjimo tvarka"
RL_HEADING_TITLE_ASC="Pavadinimas didėjimo tvarka"
RL_HEADING_TITLE_DESC="Pavadinimas mažėjimo tvarka"
RL_HEADING_TYPE_ASC="Tipas didėjančia tvarka"
RL_HEADING_TYPE_DESC="Tipas mažėjančia tvarka"
RL_HEIGHT="Aukštis"
RL_HEMISPHERE="Pusrutulis"
RL_HEMISPHERE_DESC="Pasirinkite pusrutulį, kuriame yra
svetainė"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Pagrindinis puslapis"
RL_HOME_PAGE_DESC="Skirtingai nei pasirinkus pagrindinio puslapio
(numatytąjį) punktą iš meniu punktų, tai atitiks tik realų
pagrindinį puslapį, o ne nuorodą, kuri per Itemid yra priskirta
pagrindiniam puslapiui.<br><br>Tai gali neveikti su visais
trečių šalių SEF išplėtimais."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Tik piktograma"
RL_IGNORE="Ignoruoti"
; RL_IMAGE="Image"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importuoti"
RL_IMPORT_ITEMS="Importuoti įrašus"
RL_INCLUDE="Įtraukti"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Neįtraukti Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Taip pat priskirti, kai nėra nustatyta
meniu Itemid nuorodoje?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Įterpti"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP adresai / diapazonai"
RL_IP_RANGES_DESC="Kableliais ir/ar naujomis eiluttėmis atskirtas IP
adresų ir IP diapazonų sąrašas.
Pavyzdžiui:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP adresai"
RL_IS_FREE_VERSION="Tai yra nemokama %s versija."
RL_ITEM="Elementas"
RL_ITEM_IDS="Elemento ID"
RL_ITEM_IDS_DESC="Įveskite elemento ID priskyrimui. Naudokite
kablelius ID atskyrimui."
RL_ITEMS="Elementai"
RL_ITEMS_DESC="Pasirinkite elementus priskyrimui."
RL_JCONTENT="Joomla! turinys"
RL_JED_REVIEW="Patinka šis išplėtimas? [[%1:start link%]]Palikite
atsiliepimą Joomla išplėtimų kataloge[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Jūs naudojate Joomla 2.5 versiją iš
%1$s ant Joomla 3. Norėdami išspręsti problemą, prašome perinstaliuoti
%1$s."
RL_JQUERY_DISABLED="Jūs išjungėte jQuery skriptą. %s
funkcionavimui reikalingas jQuery. Įsitikinkite, kad Jūsų šablonas ar
kiti išplėtimai įkelia reikalingus skriptus, kad išplėtimas tinkamai
veiktų."
RL_K2="K2"
RL_K2_CATEGORIES="K2 kategorijos"
RL_LANGUAGE="Kalba"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Kalbos"
RL_LANGUAGES_DESC="Pasirinkite kalbas priskyrimui."
RL_LAYOUT="Išdėstymas"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Lygiai"
RL_LEVELS_DESC="Pasirinkite lygius priskyrimui."
; RL_LIB="Library"
RL_LINK_TEXT="Nuorodos tekstas"
RL_LINK_TEXT_DESC="Tekstas, kuris būtų rodomas kaip nuoroda."
RL_LIST="Sąrašas"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Įkelti Bootstrap Framework'ą"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Išjungti, kad nenaudoti Bootstrap
Framework'o."
RL_LOAD_JQUERY="Įkelti jQuery skriptą"
RL_LOAD_JQUERY_DESC="Pasirinkite, kad įkelti jQuery skriptą. Galite
išjungti tai, jei Jūsų šablonai ar kiti išplėtimai naudoja savas
jQuery versijas ir jos konfliktuoja."
RL_LOAD_MOOTOOLS="Įkelti MooTools"
RL_LOAD_MOOTOOLS_DESC="Pasirinkite, kad įkelti MooTools skriptą.
Galite išjungti tai, jei Jūsų šablonai ar kiti išplėtimai naudoja
savas MooTools versijas ir jos konfliktuoja."
RL_LOAD_STYLESHEET="Įkelti stilių"
RL_LOAD_STYLESHEET_DESC="Pasirinkite, kad įkelti išplėtimų
stilių. Galite išjungti tai, jei visus savo stilius talpinate kituose
stilių puslapiuose, tokiuose kaip šablonų stiliuose."
; RL_LOW="Low"
RL_LTR="Iš kairės į dešinę"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Sutapimo metodas"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maksimalus sąrašo skaičius"
RL_MAX_LIST_COUNT_DESC="Maksimalus rodomų elementų skaičius kelių
pasirinkimų sąraše. Jei bendras įrašų skaičius yra aukštesnis,
pasirinkimo laukelis bus rodomas kaip teksto
laukelis.<br><br>Galite nustatyti šį skaičių mažesniu, jei
jaučiate, kad puslapis ilgiau kraunasi dėl didelio įrašų skaičiaus
sąraše."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Padidinti"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Vidutinis"
RL_MENU_ITEMS="Meniu punktai"
RL_MENU_ITEMS_DESC="Pasirinkite meniu punktus priskyrimui."
RL_META_KEYWORDS="Meta raktažodžiai"
RL_META_KEYWORDS_DESC="Priskyrimui įveskite raktažodžius, rastus
meta raktažodžiuose. Jų atskirimui naudokite kablelius."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Sumažinti"
RL_MOBILE_BROWSERS="Mobiliosios naršyklės"
RL_MOD="Modulis"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mėnesiai"
RL_MONTHS_DESC="Pasirinkite mėnesius priskyrimui."
RL_MORE_INFO="Daugiau informacijos"
RL_MY_STRING="Mano eilutė!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d elementų atnaujinta."
RL_N_ITEMS_UPDATED_1="Vienas elementas atnaujintas"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Yra galima naujesnė versija"
RL_NEW_VERSION_OF_AVAILABLE="Yra galima nauja %s versija"
RL_NO_ICON="Nėra piktogramos"
RL_NO_ITEMS_FOUND="Elementų nerasta."
RL_NORMAL="Normalus"
RL_NORTHERN="Šiaurinis"
RL_NOT="Ne"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Tik"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Prieinama tik PRO
versijoje!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Šis pranešimas bus rodomas tik (super)
administratoriams."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operacinės sistemos"
RL_OS_DESC="Pasirinkite operacinę sistemą priskyrimui. Turėkite
omenyje, kad operacinės sistemos aptikimas niekada nėra 100&#37;
tikslus. Nariai gali nustatyti savo naršyklę taip, kad imituotų kitą
operacinę sistemą."
; RL_OTHER="Other"
RL_OTHER_AREAS="Kitos sritys"
RL_OTHER_OPTIONS="Kitos parinktys"
RL_OTHER_SETTINGS="Kiti nustatymai"
RL_OTHERS="Kiti"
RL_PAGE_TYPES="Puslapio tipai"
RL_PAGE_TYPES_DESC="Pasirinkite, kuriuose puslapio tipuose priskyrimas
turi būti aktyvus."
RL_PHP="Pasirinktinis PHP"
RL_PHP_DESC="Įveskite PHP kodo dalį įvertinimui. Kodas turi
grąžinti reikšmę true arba
false.<br><br>Pavyzdžiui:<br><br>$user =
JFactory:&zwj;:getUser();<br>gražina ( $user->name ==
'Peter van Westen' );"
RL_PLACE_HTML_COMMENTS="Pridėti HTML komentarus"
RL_PLACE_HTML_COMMENTS_DESC="Pagal nutylėjimą, HTML komentarai
talpinami už šio išplėtimo srities.<br><br>Šios pastabos
gali padėti Jums išspręsti problemą, kai Jūs nematote tikimosi
rezultato.<br><br>Jei norite nerodyti šių pastabų savo HTML
išvestyje, išjunkite šią funkciją."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Redaktoriaus mygtuko įskiepis"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Sisteminis įskiepis"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
RL_POWERED_BY="Sukurta %s"
RL_PRODUCTS="Produktai"
RL_PUBLISHED_DESC="Galite naudoti tai, kad (laikinai) išjungti šį
elementą."
RL_PUBLISHING_ASSIGNMENTS="Paskelbimo priskyrimai"
RL_PUBLISHING_SETTINGS="Paskelbti įrašus"
RL_RANDOM="Atsitiktinis"
RL_REDSHOP="RedShop"
RL_REGEX="Reguliarūs išsireiškimai"
RL_REGIONS="Regionai / Valstijos"
RL_REGIONS_DESC="Pasirinkite regionus / valstijas priskyrimui"
RL_REGULAR_EXPRESSIONS="Naudoti reguliarias išraiškas"
RL_REGULAR_EXPRESSIONS_DESC="Pasirinkite, kad apdoroti vertę kaip
reguliarią išraišką."
RL_REMOVE_IN_DISABLED_COMPONENTS="Pašalinti išjungti
komponentuose"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Jei pažymėta, įskiepio
sintaksė bus pašalinta iš komponento. Jei ne, originali įskiepių
sintaksė liks nepakeista."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Iškirpti"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Aplankas"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Iš dešinės į kairę"
RL_SAVE_CONFIG="Po parinkčių išsaugojimo, puslapio įkėlimo metu
daugiau nematysite šio pranešimo"
RL_SEASONS="Sezonai"
RL_SEASONS_DESC="Pasirinkite sezonus priskyrimui."
RL_SELECT="Pažymėti"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Pažymėti viską"
RL_SELECT_AN_ARTICLE="Pasirinkite straipsnį"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Pasirinkti"
RL_SELECTION="Pasirinkimas"
RL_SELECTION_DESC="Pasirinkite ar įtraukti arba neįtraukti
pasirinkimus
priskyrimui.<br><br><strong>Įtraukti</strong><br>Skelbti
tik kur
pasirinkta.<br><br><strong>Neįtraukti</strong><br>Skelbti
visur, išskyrus pasirinktus."
RL_SETTINGS_ADMIN_MODULE="Administratoriaus modulio parinktys"
RL_SETTINGS_EDITOR_BUTTON="Redaktoriaus mygtuko parinktys"
RL_SETTINGS_SECURITY="Saugumo parinktys"
RL_SHOW_ASSIGNMENTS="Rodyti priskyrimus"
RL_SHOW_ASSIGNMENTS_DESC="Pasirinkite, jei norite rodyti tik
pasirinktus priskyrimus. Jūs galite naudoti tai, kad matyti tik aktyvius
priskyrimus."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Visi nepasirinkti paskyrimų tipai
dabar paslėpti."
RL_SHOW_COPYRIGHT="Rodyti autorines teises"
RL_SHOW_COPYRIGHT_DESC="Jei pasirinkta, papildoma autorinių teisių
informacija bus rodoma administracijos rodiniuose. Regular Labs
išplėtimai niekada nerodo autorinių teisių informacijos ar atgalinių
nuorodų išorinėje sąsajoje."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Rodyti mygtuko piktogramą"
RL_SHOW_ICON_DESC="Jei pasirinkta, piktograma bus rodoma redaktoriaus
mygtuke."
RL_SHOW_UPDATE_NOTIFICATION="Rodyti naujinių pranešimus"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Jei pasirinkta, atnaujinimo
pranešimas bus rodomas pagrindinio komponento rodinyje, kai bus galima
nauja išplėtimo versija."
RL_SIMPLE="Paprastas"
RL_SLIDES="Skaidrės"
RL_SOUTHERN="Pietinis"
; RL_SPECIFIC="Specific"
RL_SPRING="Pavasaris"
RL_START="Pradėti"
RL_START_PUBLISHING="Publikavimo pradžia"
RL_START_PUBLISHING_DESC="Įveskite publikavimo pradžios datą"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Stilizacija"
RL_SUMMER="Vasara"
RL_TABLE_NOT_FOUND="Reikalinga %s duomenų bazės lentelė
nerasta!"
RL_TABS="Skirtukai"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Žymės sintaksė"
RL_TAG_SYNTAX_DESC="Žodis, kuris bus naudojamas
žymei.<br><br><strong>Pastaba:</strong> Jei ją
pakeisite, visos seniau egzistuojančios žymės nebeveiks."
RL_TAGS="Žymės"
RL_TAGS_DESC="Įveskite žymes priskyrimui. Naudokite kablelius
žymių atskyrimui."
RL_TEMPLATES="Šablonai"
RL_TEMPLATES_DESC="Pasirinkite šablonus priskyrimui."
RL_TEXT="Tekstas"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Tik tekstas"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Kad
išplėtimas korektiškai veiktų, reikalingas %s!"
RL_TIME="Laikas"
RL_TIME_FINISH_PUBLISHING_DESC="Įveskite paskelbimo pabaigos
laiką.<br><br><strong>Formatas:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Įveskite paskelbimo pradžios
laiką.<br><br><strong>Formatas:</strong>
23:59"
RL_TOGGLE="Įjungti / išjungti"
RL_TOOLTIP="Patarimas"
RL_TOP="Viršus"
RL_TOTAL="Viso"
RL_TYPES="Tipai"
RL_TYPES_DESC="Pasirinkite tipus priskyrimui."
RL_UNSELECT_ALL="Atžymėti visus"
RL_UNSELECTED="Nepažymėti"
RL_UPDATE_TO="Atnaujinti iki %s versijos"
RL_URL="Nuorodos"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Nuorodos atitikimai"
RL_URL_PARTS_DESC="Įveskite (dalį) nuorodos
atitikimui.<br><br>Kiekvienas atitikimas naujoje
eilutėje."
RL_URL_PARTS_REGEX="Nuorodos dalys bus aptinkamos naudojant
reguliarias išraiškas. <strong>Todėl įsitikinkite, kad eilutė
naudoja galiojančią regex sintaksę.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Kategorijos & straipsnio (elemento)
priskyrimams žiūrėkite pirmiau Joomla! turinio skyriaus."
RL_USE_CUSTOM_CODE="Naudoti pasirinktinį kodą"
RL_USE_CUSTOM_CODE_DESC="Jei pasirinkta, redaktorius mygtuku bus
galima įterpti pasirinktinį kodą."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Narių grupės lygiai"
RL_USER_GROUPS="Narių grupės"
RL_USER_GROUPS_DESC="Pasirinkite narių grupes priskyrimui."
RL_USER_IDS="Nario ID"
RL_USER_IDS_DESC="Įveskite nario ID priskyrimui. Naudokite kablelius
ID atskyrimui."
RL_USERS="Nariai"
RL_UTF8="UTF-8"
RL_VIDEO="Vaizdo įrašas"
RL_VIEW="Rodinys"
RL_VIEW_DESC="Pasirinkite, kuris numatytasis rodinys turėtų būti
naudojamas kuriant naują įrašą."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Plotis"
RL_WINTER="Žiema"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO kategorijos"
PK�X�[fo·ff?regularlabs/language/lt-LT/lt-LT.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - naudojamas Regular
Labs išplėtimams"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[���N��;regularlabs/language/nb-NO/nb-NO.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs bibliotek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs bibliotek - benyttes av
Regular Labs programtillegg"
REGULAR_LABS_LIBRARY="Regular Labs bibliotek"

; REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]The Regular Labs
extensions need this plugin and will not function without
it.<br><br>Regular Labs extensions
include:[[%2:extensions%]]"
; REGULAR_LABS_LIBRARY_DESC_WARNING="Do not uninstall or disable this
plugin if you are using any Regular Labs extensions."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
; COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beskrivelse"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beskrivelse"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
; COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button
Options"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Innstillinger"
; COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
; COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Installér"
RL_ACTION_UNINSTALL="Avinstallér"
RL_ACTION_UPDATE="Oppdatér"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avansert"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLE"
RL_ALL_DESC="Vil bli publisert dersom
<strong>alle</strong> valgene nedenfor samsvarer."
RL_ALL_RIGHTS_RESERVED="Alle rettigheter reservert"
RL_ALSO_ON_CHILD_ITEMS="Inkluder underordnede menyelementer"
RL_ALSO_ON_CHILD_ITEMS_DESC="Tilordne også til underordnede
menyelementer av valgte elementer?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
; RL_ANY="ANY"
RL_ANY_DESC="Vil bli publisert dersom
<strong>noen</strong> (en eller flere) av valgene
samsvarer.<br>Gruppe-valgene hvor 'Ignore' er valgt vil bli
ignorert."
RL_ARE_YOU_SURE="Er du sikker?"
RL_ARTICLE="Artikkel"
RL_ARTICLE_AUTHORS="Skribenter"
RL_ARTICLE_AUTHORS_DESC="Velg hvilke skribenter som skal tilordnes
til."
RL_ARTICLES="Dokumenter"
RL_ARTICLES_DESC="Velg hvilke artikler som skal tilordnes til."
RL_AS_EXPORTED="Som eksportert"
RL_ASSIGNMENTS="Tilordninger"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Skribenter"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Behaviour"
RL_BEHAVIOUR="Behaviour"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Begge"
RL_BOTTOM="Bunn"
RL_BROWSERS="Nettlesere"
; RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind
that browser detection is not always 100&#37; accurate. Users can setup
their browser to mimic other browsers"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Knappetekst"
; RL_BUTTON_TEXT_DESC="This text will be shown in the Editor
Button."
; RL_CACHE_TIME="Cache Time"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategorier"
RL_CATEGORIES_DESC="Velg kategoriene som skal tilegnes"
; RL_CATEGORY="Category"
RL_CHANGELOG="Endringslogg"
RL_CLASSNAME="CSS klasse"
; RL_COLLAPSE="Collapse"
RL_COM="Komponent"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenter"
RL_COMPONENTS_DESC="Velg komponent det skal tilordnes til."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Innhold"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Kopi av %s"
RL_COPYRIGHT="Kopirettigheter"
RL_COUNTRIES="Land"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
; RL_CURRENT_VERSION="Your current version is %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Egendefinerte felter"
RL_DATE="Dato"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Dato & tid"
; RL_DATE_TIME_DESC="The date and time assignments use the date/time
of your servers, not that of the visitors system."
; RL_DATE_TO="To"
RL_DAYS="Dager i uken"
RL_DAYS_DESC="Velg dager i uken som skal tilegnes"
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Retning"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Ikke med følgende komponenter"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Vis menypunkt"
RL_DISPLAY_LINK_DESC="Hvor vil du at menypunktet skal vises?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
; RL_DISPLAY_TOOLTIP="Display Tooltip"
; RL_DISPLAY_TOOLTIP_DESC="Select to display a tooltip with extra info
when mouse hovers over link/icon."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktiver"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
; RL_ENABLE_IN_ARTICLES="Enable in articles"
; RL_ENABLE_IN_COMPONENTS="Enable in components"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
; RL_ENABLE_IN_FRONTEND="Enable in frontend"
; RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in
the frontend."
; RL_ENABLE_OTHER_AREAS="Enable other areas"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
; RL_EXCLUDE="Exclude"
RL_EXPAND="Utvid"
RL_EXPORT="Eksporter"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
; RL_FALL="Fall / Autumn"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Feltnavn"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Filter"
RL_FINISH_PUBLISHING="Stopp publisering"
RL_FINISH_PUBLISHING_DESC="Fyll inn dato for avslutning av
publisering"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Forsiden"
; RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Høyde"
; RL_HEMISPHERE="Hemisphere"
; RL_HEMISPHERE_DESC="Select the hemisphere your website is located
in"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Kun ikon"
; RL_IGNORE="Ignore"
; RL_IMAGE="Image"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Importer"
RL_IMPORT_ITEMS="Importer elementer"
; RL_INCLUDE="Include"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Ikke inkluder Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Også tilordne dersom ingen meny-Itemid er
satt i URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Addresser"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="Element"
RL_ITEM_IDS="Element ID"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="Elementer"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Kategorier"
RL_LANGUAGE="Språk"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Språk"
RL_LANGUAGES_DESC="Velg språk det skal tilordnes til."
RL_LAYOUT="Visning"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
RL_LIB="Bibliotek"
; RL_LINK_TEXT="Link Text"
; RL_LINK_TEXT_DESC="The text to display as link."
RL_LIST="Liste"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
; RL_LOAD_MOOTOOLS="Load Core MooTools"
; RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You
can disable this if you experience conflicts if your template or other
extensions load their own version of MooTools."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
RL_LOW="Lav"
; RL_LTR="Left-to-Right"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Metode for samsvar"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Middels"
RL_MENU_ITEMS="Menyelementer"
RL_MENU_ITEMS_DESC="Velg menyelementer det skal tilordnes til."
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
; RL_MINIMIZE="Minimize"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Måneder"
; RL_MONTHS_DESC="Select months to assign to."
RL_MORE_INFO="Mer informasjon"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="En nyere versjon er tilgjengelig"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
; RL_NO_ITEMS_FOUND="No items found."
RL_NORMAL="Normal"
; RL_NORTHERN="Northern"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
; RL_ONLY="Only"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Denne meldingen vil kun bli vist til (super)
administratorer."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
; RL_OTHER_AREAS="Other Areas"
; RL_OTHER_OPTIONS="Other Options"
; RL_OTHER_SETTINGS="Other Settings"
RL_OTHERS="Andre"
RL_PAGE_TYPES="Sidetyper"
RL_PAGE_TYPES_DESC="Velg hvilken sidetype tilordningen skal være
aktiv for."
; RL_PHP="Custom PHP"
RL_PHP_DESC="Fyll inn PHP kode som skal benyttes. Koden må enten
returnere verdien 'true' eller
'false'.<br><br>For
eksempel:<br><br>[[%1:code%]]"
; RL_PLACE_HTML_COMMENTS="Place HTML comments"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Teksteditorknapp programtillegg"
RL_PLG_FIELDS="Felt programtillegg"
RL_PLG_SYSTEM="System programtillegg"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Produkter"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="Publiseringsvalg"
RL_PUBLISHING_SETTINGS="Publiser elementer"
RL_RANDOM="Tilfeldige produkt"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Mappe"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Årstider"
RL_SEASONS_DESC="Velg hvilke årstider som skal tildeles."
RL_SELECT="Velg"
; RL_SELECT_A_CATEGORY="Select a Category"
; RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="Velg et dokument"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Valgte"
RL_SELECTION="Utvalg"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
; RL_SETTINGS_EDITOR_BUTTON="Editor Button Options"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Vis knappeikon"
; RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the
Editor Button."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Enkel"
; RL_SLIDES="Slides"
; RL_SOUTHERN="Southern"
; RL_SPECIFIC="Specific"
RL_SPRING="Vår"
RL_START="Start"
RL_START_PUBLISHING="Start publisering"
RL_START_PUBLISHING_DESC="Fyll inn dato for start av publisering"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="Sommer"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Faner"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
; RL_TAG_SYNTAX="Tag Syntax"
RL_TAG_SYNTAX_DESC="Ord som skal anvendes i
kodene.<br><br><strong>OBS!:</strong> Hvis du
endrer dette, vil ingen nåværende koder virke."
RL_TAGS="Emneord"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="Maler"
RL_TEMPLATES_DESC="Velg mal det skal tilordnes til."
RL_TEXT="Tekst"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Kun tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Dette
programtillegget trenger %s for å fungere korrekt!"
RL_TIME="Tid"
; RL_TIME_FINISH_PUBLISHING_DESC="Enter the time to end
publishing.<br><br><strong>Format:</strong>
23:59"
; RL_TIME_START_PUBLISHING_DESC="Enter the time to start
publishing.<br><br><strong>Format:</strong>
23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="Verktøytips"
RL_TOP="Topp"
RL_TOTAL="Totalt"
RL_TYPES="Type"
; RL_TYPES_DESC="Select the types to assign to."
RL_UNSELECT_ALL="Fjern Valgt Alle"
; RL_UNSELECTED="Unselected"
; RL_UPDATE_TO="Update to version %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL samsvar"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Brukergruppe-nivå"
RL_USER_GROUPS="Brukergrupper"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="Bruker-ID'er"
RL_USER_IDS_DESC="Fyll in bruker-ID'er det skal tilordnes til.
Bruk komma for å skille ID'er."
RL_USERS="Brukere"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Vis"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Bredde"
; RL_WINTER="Winter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorier"
PK�X�[�!�mm?regularlabs/language/nb-NO/nb-NO.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs bibliotek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs bibliotek - benyttes av
Regular Labs programtillegg"
REGULAR_LABS_LIBRARY="Regular Labs bibliotek"
PK�X�[��&�&�;regularlabs/language/nl-BE/nl-BE.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systeem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - gebruikt door
Regular Labs extensies"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]De Regular Labs extensies
hebben deze plugin nodig en zullen niet werken
zonder.<br><br>Regular Labs extensies
omvatten:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Deactiveer of deïnstalleer deze
plugin niet als u eender welke Regular Labs extensie gebruikt"

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag syntaxis"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beschrijving"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beschrijving"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Gedrag"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Standaard
instellingen"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Afbeeldingen"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
module opties"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Tekstverwerker
knop opties"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Beveiligings
opties"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Installatie"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Opmaak"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag syntaxis"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Installeren"
RL_ACTION_UNINSTALL="Verwijderen"
RL_ACTION_UPDATE="Bijwerken"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Geavanceerd"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLE"
RL_ALL_DESC="Zal gepubliceerd worden als
<strong>ALLE</strong> van onderstaande opdrachten
overeenkomen."
RL_ALL_RIGHTS_RESERVED="Alle Rechten Voorbehouden"
RL_ALSO_ON_CHILD_ITEMS="Ook op de onderliggende items"
RL_ALSO_ON_CHILD_ITEMS_DESC="Ook toewijzen aan onderliggende items van
de geselecteerde items?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="SOMMIGE"
RL_ANY_DESC="Zal worden gepubliceerd als
<strong>SOMMIGE</strong> (één of meer) van onderstaande
opdrachten overeenkomen.<br>Opdracht groepen waar 'Negeren'
is geselecteerd zullen worden genegeerd."
RL_ARE_YOU_SURE="Bent u zeker?"
RL_ARTICLE="Artikel"
RL_ARTICLE_AUTHORS="Auteurs"
RL_ARTICLE_AUTHORS_DESC="Selecteer de auteurs om aan toe te
wijzen"
RL_ARTICLES="Artikels"
RL_ARTICLES_DESC="Selecteer de artikels om aan toe te wijzen"
RL_AS_EXPORTED="Als geëxporteerd"
RL_ASSIGNMENTS="Toewijzingen"
RL_ASSIGNMENTS_DESC="Door het selecteren van de specifieke opdrachten
kunt u beperken wanneer dit %s mag of niet mag worden
gepubliceerd.<br>Om het gepubliceerd te hebben op alle pagina's,
gewoon geen opdrachten opgeven"
RL_AUSTRALIA="Australië"
RL_AUTHORS="Auteurs"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Gedrag"
RL_BEHAVIOUR="Gedrag"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="U hebt uitgeschakeld dat het
Bootstrap Framework wordt geïnitialiseerd. %s heeft het Bootstrap
Framework nodig om te functioneren. Zorg ervoor dat uw template of andere
extensies de benodigde scripts laden om de gewenste functionaliteit te
vervangen"
RL_BOTH="Beide"
RL_BOTTOM="Onderkant"
RL_BROWSERS="Browsers"
RL_BROWSERS_DESC="Selecteer de browsers om aan toe te wijzen. Houd in
gedachten dat browser detectie niet altijd 100&#37; nauwkeurig is.
Gebruikers kunnen instellen dat hun browser andere browsers nabootst."
RL_BUTTON_ICON="Knop icoon"
RL_BUTTON_ICON_DESC="Selecteer het icoon te tonen in de knop."
RL_BUTTON_TEXT="Knop tekst"
RL_BUTTON_TEXT_DESC="Deze tekst zal worden getoond in de
tekstverwerker knop"
RL_CACHE_TIME="Cache tijd"
RL_CACHE_TIME_DESC="De maximale lengte van tijd in minuten voor een
bestand om in de cache te worden opgeslagen voordat het wordt vernieuwd.
Leeg laten om de globale instelling te gebruiken"
RL_CATEGORIES="Categorieën"
RL_CATEGORIES_DESC="Selecteer de categorieën waaraan u die wilt
toewijzen."
; RL_CATEGORY="Category"
RL_CHANGELOG="Versiegeschiedenis"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Inklappen"
RL_COM="Component"
RL_COMBINE_ADMIN_MENU="Combineer admin menu"
RL_COMBINE_ADMIN_MENU_DESC="Selecteer om alle Regular Labs componenten
te combineren in een submenu in het administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Componenten"
RL_COMPONENTS_DESC="Selecteer de componenten om aan toe te
wijzen"
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Inhoud"
RL_CONTENT_KEYWORDS="Inhoud trefwoorden"
RL_CONTENT_KEYWORDS_DESC="Voer de gevonden trefwoorden in in de inhoud
om aan toe te wijzen. Gebruik komma's om trefwoorden te scheiden"
RL_CONTINENTS="Continenten"
RL_CONTINENTS_DESC="Selecteer de continenten om aan toe te
wijzen."
RL_COOKIECONFIRM="Cookie Confirm"
RL_COOKIECONFIRM_COOKIES="Cookies toegestaan"
RL_COOKIECONFIRM_COOKIES_DESC="Toewijzen of cookies zijn toegestaan of
geweigerd, op basis van de configuratie van de Cookie Confirm (door
Twentronix) en de bezoeker de keuze geven om cookies accepteren of
weigeren."
RL_COPY_OF="Kopie van %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Landen"
RL_COUNTRIES_DESC="Selecteer de landen om aan toe te wijzen."
RL_CSS_CLASS="Class (CSS)"
RL_CSS_CLASS_DESC="Bepaal een css class naam voor opmaak
doeleinden"
RL_CURRENT="Huidige"
RL_CURRENT_DATE="Huidige datum/tijd:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Uw huidige versie is %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Aangepaste code"
RL_CUSTOM_CODE_DESC="Voor de code in die de tekstverwerker knop moet
invoegen in de inhoud (in plaats van de standaard code)"
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Aangepaste velden"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Terugkerend"
RL_DATE_RECURRING_DESC="Selecteer om een datum bereik elk jaar toe te
passen. (Dus het jaar in de selectie zal worden genegeerd)"
RL_DATE_TIME="Datum & Tijd"
RL_DATE_TIME_DESC="De datum en tijd opdrachten gebruiken de datum/tijd
van uw servers, niet dat van de bezoekers systeem."
; RL_DATE_TO="To"
RL_DAYS="Weekdagen"
RL_DAYS_DESC="Selecteer de weekdagen om aan toe te wijzen"
RL_DEFAULT_ORDERING="Standaard volgorde"
RL_DEFAULT_ORDERING_DESC="Stel de standaard volgorde in van de lijst
items"
RL_DEFAULT_SETTINGS="Standaard instellingen"
; RL_DEFAULTS="Defaults"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobiel"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Apparaten"
RL_DEVICES_DESC="Selecteer de apparaten waaraan u wilt toewijzen. Houd
in gedachten dat de detectie van het apparaat niet altijd 100&#37;
nauwkeurig is. Gebruikers kunnen hun apparaat instellen om andere apparaten
na te bootsen"
RL_DIRECTION="Richting"
RL_DIRECTION_DESC="Selecteer de richting"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Deactiveer op componenten"
RL_DISABLE_ON_COMPONENTS_DESC="Selecteer in welke website componenten
het gebruik van deze extensie NIET te activeren"
RL_DISPLAY_EDITOR_BUTTON="Toon tekstverwerker knop"
RL_DISPLAY_EDITOR_BUTTON_DESC="Selecteer om een tekstverwerker knop te
tonen"
RL_DISPLAY_LINK="Weergeven link"
RL_DISPLAY_LINK_DESC="Hoe wilt u dat de link wordt weergegeven?"
RL_DISPLAY_TOOLBAR_BUTTON="Toon werkbalk knop"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Selecteer deze optie om een knop in de
werkbalk te tonen"
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Toon knopinfo"
RL_DISPLAY_TOOLTIP_DESC="Selecteer om een knopinfo te tonen met extra
info wanneer de muis zweeft over link/icoon"
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Datum gebruikt %1$sphp strftime() formaat%2$s.
Bijvoorbeeld: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Een willekeurig number binnen het opgegeven
bereik."
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Een taal string om te vertalen naar tekst
(gebaseerd op de actieve taal)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="Het id nummer van de gebruiker"
RL_DYNAMIC_TAG_USER_NAME="De naam van de gebuiker"
RL_DYNAMIC_TAG_USER_OTHER="Eender welke andere gegevens van de
gebruiker of verbonden contact. Voorbeeld: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="De login naam van de gebruiker"
RL_DYNAMIC_TAGS="Dynamische tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Activeer"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Activeren in"
RL_ENABLE_IN_ADMIN="Activeer in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Activeer in artikels"
RL_ENABLE_IN_COMPONENTS="Activeer in componenten"
RL_ENABLE_IN_DESC="Selecteer om te activeren in de website of
administrator zeide of beide."
RL_ENABLE_IN_FRONTEND="Activeer op website"
RL_ENABLE_IN_FRONTEND_DESC="Indien geactiveerd, zal het ook
beschikbaar zijn op de website"
RL_ENABLE_OTHER_AREAS="Activeer andere gebieden"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Uitsluiten"
RL_EXPAND="Uitklappen"
RL_EXPORT="Exporteer"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Extra parameters"
RL_EXTRA_PARAMETERS_DESC="Geef eventuele extra parameters in die niet
ingesteld kunnen worden met de beschikbare instellingen"
RL_FALL="Herfst"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Veld naam"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Veld waarde"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Vereiste %s bestanden niet gevonden!"
RL_FILTERS="Filters"
RL_FINISH_PUBLISHING="Einde publicatie"
RL_FINISH_PUBLISHING_DESC="Voer de einddatum in van het
publiceren"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Voor meer functionaliteit kan u de PRO versie
aankopen."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Het oude NoNumber Framework lijkt niet in
gebruik te zijn door eender welke extensie die u hebt geïnstalleerd. Het
is waarschijnlijk veilig om deze te deactiveren of de plugin te
deïnstalleren"
; RL_FROM_TO="From-To"
RL_FRONTEND="Website"
RL_GALLERY="Galerij"
RL_GEO="Geolocatie"
RL_GEO_DESC="Geolocatie is niet altijd 100&#37; nauwkeurig. De
geolocatie is gebaseerd op het IP-adres van de bezoeker. Niet alle IP
adressen zijn vast of bekend."
RL_GEO_GEOIP_COPYRIGHT_DESC="Dit product bevat GeoLite2 gegevens die
door MaxMind, beschikbaar vanaf [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="De Regular Labs GeoIP bibliotheek is niet
geïnstalleerd. U moet de [[%1:link start%]]Regular Labs GeoIP bibliotheek
installeren[[%2:koppeling end%]] om gebruik te kunnen maken van de
Geolocatie opdrachten."
RL_GO_PRO="Ga Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Hoofding 1"
RL_HEADING_2="Hoofding 2"
RL_HEADING_3="Hoofding 3"
RL_HEADING_4="Hoofding 4"
RL_HEADING_5="Hoofding 5"
RL_HEADING_6="Hoofding 6"
RL_HEADING_ACCESS_ASC="Toegang oplopend"
RL_HEADING_ACCESS_DESC="Toegang aflopend"
RL_HEADING_CATEGORY_ASC="Categorie oplopend"
RL_HEADING_CATEGORY_DESC="Categorie aflopend"
RL_HEADING_CLIENTID_ASC="Locatie oplopend"
RL_HEADING_CLIENTID_DESC="Locatie aflopend"
RL_HEADING_COLOR_ASC="Kleur oplopend"
RL_HEADING_COLOR_DESC="Kleur aflopend"
RL_HEADING_DEFAULT_ASC="Standaard oplopend"
RL_HEADING_DEFAULT_DESC="Standaard aflopend"
RL_HEADING_DESCRIPTION_ASC="Beschrijving oplopend"
RL_HEADING_DESCRIPTION_DESC="Beschrijving aflopend"
RL_HEADING_ID_ASC="ID oplopend"
RL_HEADING_ID_DESC="ID aflopend"
RL_HEADING_LANGUAGE_ASC="Taal oplopend"
RL_HEADING_LANGUAGE_DESC="Taal aflopend"
RL_HEADING_ORDERING_ASC="Volgorde oplopend"
RL_HEADING_ORDERING_DESC="Volgorde aflopend"
RL_HEADING_PAGES_ASC="Menu items oplopend"
RL_HEADING_PAGES_DESC="Menu items aflopend"
RL_HEADING_POSITION_ASC="Positie oplopend"
RL_HEADING_POSITION_DESC="Positie aflopend"
RL_HEADING_STATUS_ASC="Status oplopend"
RL_HEADING_STATUS_DESC="Status aflopend"
RL_HEADING_STYLE_ASC="Stijl oplopend"
RL_HEADING_STYLE_DESC="Stijl aflopend"
RL_HEADING_TEMPLATE_ASC="Template oplopend"
RL_HEADING_TEMPLATE_DESC="Template aflopend"
RL_HEADING_TITLE_ASC="Titel oplopend"
RL_HEADING_TITLE_DESC="Titel aflopend"
RL_HEADING_TYPE_ASC="Type oplopend"
RL_HEADING_TYPE_DESC="Type aflopend"
RL_HEIGHT="Hoogte"
RL_HEMISPHERE="Halfrond"
RL_HEMISPHERE_DESC="Selecteer het halfrond waar uw website in is
gelegen"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Startpagina"
RL_HOME_PAGE_DESC="In tegenstelling tot het selecteren van de
startpagina (standaard) item via de Menu items, zal deze alleen
overeenkomen met de werkelijke startpagina, niet elke URL die hetzelfde
Itemid heeft als het home menu item.<br><br>Dit werkt mogelijk
niet voor alle 3rd party SEF extensies."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Icoon"
RL_IGNORE="Negeren"
RL_IMAGE="Afbeelding"
RL_IMAGE_ALT="Afbeelding alt"
RL_IMAGE_ALT_DESC="De alt waarde van de afbeelding"
RL_IMAGE_ATTRIBUTES="Afbeelding attributen"
RL_IMAGE_ATTRIBUTES_DESC="De extra attributen van de afbeelding, vb:
alt=&quot;Mijn Afbeelding&quot; width=&quot;300&quot;"
RL_IMPORT="Importeren"
RL_IMPORT_ITEMS="Items importeren"
RL_INCLUDE="Bijsluiten"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Bijsluiten zonder itemid"
RL_INCLUDE_NO_ITEMID_DESC="Ook toewijzen in dien geen menu itemid is
ingesteld in de URL"
RL_INITIALISE_EVENT="Initialiseren bij gebeurtenis"
RL_INITIALISE_EVENT_DESC="De interne Joomla gebeurtenis waarop de
plugin mag worden geïnitialiseerd. Wijzig dit alleen als u problemen als
de plugin niet werkt"
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Invoegen"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP Adressen / Bereiken"
RL_IP_RANGES_DESC="Een komma en/of enter gescheiden lijst van IP
adressen en IP bereiken.
Bijvoorbeeld:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP adressen"
RL_IS_FREE_VERSION="Dit is de GRATIS versie van %s."
RL_ITEM="Item"
RL_ITEM_IDS="Item ID's"
RL_ITEM_IDS_DESC="Geef de item id's in om aan toe te wijzen.
Gebruik komma's om id's te scheiden"
RL_ITEMS="Items"
RL_ITEMS_DESC="Selecteer de items waaraan u wilt toewijzen"
RL_JCONTENT="Joomla! inhoud"
RL_JED_REVIEW="Vindt u deze extensie leuk? [[%1:start link%]]Laat een
recensie achter op de JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="U werkt met een Joomla 2.5 versie van
%1$s op Joomla 3. Installeer %1$s om het probleem op te lossen."
RL_JQUERY_DISABLED="U hebt het jQuery script uitgeschakeld. %s hebben
jQuery nodig om te functioneren. Zorg ervoor dat uw template of andere
extensies de benodigde scripts laden voor het vervangen van de gewenste
functionaliteit."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Categorieën"
RL_LANGUAGE="Taal"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Talen"
RL_LANGUAGES_DESC="Selecteer de talen om aan toe te wijzen."
RL_LAYOUT="Lay-out"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Niveau's"
RL_LEVELS_DESC="Selecteer de niveau's om aan toe te wijzen."
RL_LIB="Bibliotheek"
RL_LINK_TEXT="Tekst link"
RL_LINK_TEXT_DESC="De tekst te tonen als link"
RL_LIST="Lijst"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Laad Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Uitschakelen om het Bootstrap
Framework niet te initialiseren"
RL_LOAD_JQUERY="Laad jQuery script"
RL_LOAD_JQUERY_DESC="Selecteer om het kern jQuery script te laden. U
kunt dit uitschakelen als u problemen ondervindt als uw template of andere
extensies hun eigen jQuery versie laden."
RL_LOAD_MOOTOOLS="Laden kern MooTools"
RL_LOAD_MOOTOOLS_DESC="Selecteer om het kern MooTools script te laden.
U kunt dit uitschakelen als u problement ondervindt als uw template of
andere extensies hun eigen versie van MooToolls laden."
RL_LOAD_STYLESHEET="Laden stijlbestand"
RL_LOAD_STYLESHEET_DESC="Selecteer om het extensie stijlbestand te
laden. U kunt dit uitschakelen als u al uw eigen stijlen plaatst in een
ander stijlbestand, zoals het templates stijlbestand"
; RL_LOW="Low"
RL_LTR="Links-naar-rechts"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Overeenkomst methode"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maximum lijst aantal"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximaliseren"
RL_MEDIA_VERSIONING="Gebruik media versies"
RL_MEDIA_VERSIONING_DESC="Selecteer om de versienummer extensie toe te
voegen aan het eind van de media, om browsers te forceren het correcte
bestand te laden."
RL_MEDIUM="Medium"
RL_MENU_ITEMS="Menu items"
RL_MENU_ITEMS_DESC="Selecteer de menu items om aan toe te wijzen"
RL_META_KEYWORDS="Meta trefwoorden"
RL_META_KEYWORDS_DESC="Voer de zoekwoorden in, in de meta trefwoorden
om aan toe te wijzen. Gebruik komma's om de trefwoorden te
scheiden."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimaliseren"
RL_MOBILE_BROWSERS="Mobiele browsers"
RL_MOD="Module"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Maanden"
RL_MONTHS_DESC="Selecteer de maanden om aan toe te wijzen."
RL_MORE_INFO="Meer info"
RL_MY_STRING="Mijn string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d items bijgewerkt."
RL_N_ITEMS_UPDATED_1="Één item werd bijgewerkt."
RL_NEW_CATEGORY="Nieuwe categorie aanmaken"
RL_NEW_CATEGORY_ENTER="Geef nieuwe categorienaam in"
RL_NEW_VERSION_AVAILABLE="Een nieuwe versie is beschikbaar"
RL_NEW_VERSION_OF_AVAILABLE="Een nieuwe versie van %s is
beschikbaar"
RL_NO_ICON="Geen icoon"
RL_NO_ITEMS_FOUND="Geen items gevonden."
RL_NORMAL="Normaal"
RL_NORTHERN="Noord"
RL_NOT="Niet"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Enkel"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Alleen beschikbaar in de PRO
versie!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Alleen beschikbaar in de PRO
versie)"
RL_ONLY_VISIBLE_TO_ADMIN="Dit bericht wordt alleen getoond aan (Super)
Administrators"
RL_OPTION_SELECT="- Selecteer -"
RL_OPTION_SELECT_CLIENT="- Selecteer client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Besturingssystemen"
RL_OS_DESC="Selecteer om de besturingssystemen toe te wijzen. Houd in
gedachten dat besturingssysteem detectie niet altijd 100&#37;
nauwkeurig is. Gebruikers kunnen instellen dat hun browser andere
besturingssystemen nabootst."
; RL_OTHER="Other"
RL_OTHER_AREAS="Andere gebieden"
RL_OTHER_OPTIONS="Andere opties"
RL_OTHER_SETTINGS="Andere instellingen"
RL_OTHERS="Andere"
RL_PAGE_TYPES="Pagina types"
RL_PAGE_TYPES_DESC="Selecteer op welke pagina type's de opdracht
actief moet zijn"
RL_PHP="Aangepaste PHP"
RL_PHP_DESC="Geef een stukje PHP code in om te evalueren. De code moet
de waarde true of
false.<br><br>Bijvoorbeeld:<br><br>return (
$user->naam == 'Robert Schuman' );"
RL_PLACE_HTML_COMMENTS="Plaats HTML commentaren"
RL_PLACE_HTML_COMMENTS_DESC="Standaard zijn HTML commentaren zijn
geplaatst rond de uitvoer van deze extensie.<br><br>Deze
opmerkingen kunnen u helpen bij het oplossen van problemen wanneer u de
uitvoer krijgt die u verwacht.<br><br>Als u liever niet deze
commentaren hebt in uw HTML uitvoer, deactiveerd dan deze functie."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Tekstverwerker knop plugin"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Systeem plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postcodes"
RL_POSTALCODES_DESC="Een door komma's gescheiden lijst van
postcodes (1234) of postcode reeksen (1230-1250).<br>Deze kunnen
alleen worden gebruikt voor [[%1:start link%]]een beperkt aantal landen en
IP adressen[[%2:end link%]]."
RL_POWERED_BY="Aangedreven door %s"
RL_PRODUCTS="Producten"
RL_PUBLISHED_DESC="U kunt dit gebruiken om dit item (tijdelijk) uit te
schakelen."
RL_PUBLISHING_ASSIGNMENTS="Publiceren toewijzingen"
RL_PUBLISHING_SETTINGS="Publiceren items"
RL_RANDOM="Willekeurig"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="Regio's"
RL_REGIONS_DESC="Selecteer de regio's / staten om aan toe te
wijzen."
RL_REGULAR_EXPRESSIONS="Gebruik reguliere expressies"
RL_REGULAR_EXPRESSIONS_DESC="Selecteer om de waarde te behandelen als
een reguliere expressies"
RL_REMOVE_IN_DISABLED_COMPONENTS="Verwijder in gedeactiveerde
componenten"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Indien geselecteerd, zal de
plugin worden verwijderd van het component. Zoniet, blijft de plugin's
originele syntax intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Verklein"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Kaart"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Rechts-naar-links"
RL_SAVE_CONFIG="Na het bewaren van opties zal popup niet meer
verschijnen op de pagina."
RL_SEASONS="Seizoenen"
RL_SEASONS_DESC="Selecteer seizoenen om aan toe te wijzen."
RL_SELECT="Selecteer"
RL_SELECT_A_CATEGORY="Selecteer een categorie"
RL_SELECT_ALL="Selecteer alle"
RL_SELECT_AN_ARTICLE="Selecteer een artikel"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Geselecteerd"
RL_SELECTION="Selectie"
RL_SELECTION_DESC="Selecteer of de selectie wilt bijsluiten of
uitsluiten voor de
opdracht.<br><br><strong>Bijsluiten</strong><br>Publiceer
alleen op
selectie.<br><br><strong>Uitsluiten</strong><br>Publiceer
overal, behalve op de selectie."
RL_SETTINGS_ADMIN_MODULE="Administrator module opties"
RL_SETTINGS_EDITOR_BUTTON="Tekstverwerker knop opties"
RL_SETTINGS_SECURITY="Beveiligings opties"
RL_SHOW_ASSIGNMENTS="Toon toewijzingen"
RL_SHOW_ASSIGNMENTS_DESC="Selecteer of u al dan niet enkel de
geselecteerde toewijzingen wilt tonen. U kan dit gebruiken om een simpel
overzicht te krijgen van actieve toewijzingen."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Alle niet-geselecteerde toewijzing
types zijn nu verborgen."
RL_SHOW_COPYRIGHT="Toon copyright"
RL_SHOW_COPYRIGHT_DESC="Indien geselecteerd, wordt extra info over
auteursrecht weergegeven in admin weergavers. Regelar Labs extensies tonen
geen copyright info of backlinks op de website"
RL_SHOW_HELP_MENU="Toon hulp menu item"
RL_SHOW_HELP_MENU_DESC="Selecteer om een link naar de Regular Labs
website te tonen in het Administrator Help menu."
RL_SHOW_ICON="Toon knop icoon"
RL_SHOW_ICON_DESC="Indien geselecteerd, wordt het pictogram
weergegeven in de tekstverwerker op de Knop."
RL_SHOW_UPDATE_NOTIFICATION="Toon update melding"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Indien geselecteerd, wordt een
update-melding zal worden weergegeven in de belangrijkste component
weergeven wanneer er een nieuwe versie voor deze uitbreiding."
RL_SIMPLE="Eenvoudig"
RL_SLIDES="Dia's"
RL_SOUTHERN="Zuidelijk"
; RL_SPECIFIC="Specific"
RL_SPRING="Voorjaar"
RL_START="Start"
RL_START_PUBLISHING="Start publiceren"
RL_START_PUBLISHING_DESC="Voer publicatie begindatum in"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Verwijder omgevende tags"
RL_STRIP_SURROUNDING_TAGS_DESC="Selecteer om altijd html tags zoals
(div, p, span) te verwijderen rondom te plugin tag. Indien gedeactiveerd,
zal de plugin proberen tags te verwijderen die de html structuur breken (vb
p binnen p tags)"
RL_STYLING="Opmaak"
RL_SUMMER="Zomer"
RL_TABLE_NOT_FOUND="Vereiste %s database tabel niet gevonden!"
RL_TABS="Tabs"
RL_TAG_CHARACTERS="Tag Tekens"
RL_TAG_CHARACTERS_DESC="De omringende tekens van de tag
syntaxis.<br><br><strong>Let op:</strong> Als u dit
wijzigt, zullen alle bestaande codes niet meer werken."
RL_TAG_SYNTAX="Tag syntaxis"
RL_TAG_SYNTAX_DESC="Het woord om te gebruiken in de
tags.<br><br><strong>Let op:</strong> Als u dit
wijzigt, zullen alle bestaande tags niet meer werken."
RL_TAGS="Tags"
RL_TAGS_DESC="Geef de labels in om aan toe te wijzen. Gebruik
komma's om de tags te scheiden."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Selecteer de templates waaraan u wilt
toewijzen"
RL_TEXT="Tekst"
RL_TEXT_HTML="Tekst (HTML)"
RL_TEXT_ONLY="Tekst alleen"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Deze extensie
heeft %s nodig om correct te functioneren!"
RL_TIME="Tijd"
RL_TIME_FINISH_PUBLISHING_DESC="Voer een eindtijd in voor
publicatie.<br><br><strong>Opmaak:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Voer een begintijd in voor
publicatie.<br><br><strong>Opmaak:</strong>
23:59"
RL_TOGGLE="Wisselen"
RL_TOOLTIP="Knopinfo"
RL_TOP="Bovenaan"
RL_TOTAL="Totaal"
RL_TYPES="Types"
RL_TYPES_DESC="Selecteer het type om aan toe te wijzen"
RL_UNSELECT_ALL="Deselecteer alles"
RL_UNSELECTED="Gedeselecteerd"
RL_UPDATE_TO="Bijwerken naar versie %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL komt overeen"
RL_URL_PARTS_DESC="Geef (een deel van) de URL's in om mee overeen
te komen.<br>Gebruik een nieuwe regel voor elke overeenkomst."
RL_URL_PARTS_REGEX="URL delen zullen worden gematched via reguliere
expressies. <strong>Dus zorg ervoor dat de string gebruik maakt van
een geldig regex syntax.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Voor categorie & artikel (item)
toewijzingen, zie de bovenstaande Joomla! inhoud sectie."
RL_USE_CUSTOM_CODE="Gebruik aangepaste code"
RL_USE_CUSTOM_CODE_DESC="Indien geselecteerd, zal de tekstverwerker
knop de ingegeven aangepaste code invoegen in de plaats."
RL_USE_SIMPLE_BUTTON="Gebruik eenvoudige knop"
RL_USE_SIMPLE_BUTTON_DESC="Selecteer om een simpele invoeg knop te
gebruiken, die gewoon wat voorbeeld syntaxt invoegt in de
tekstverwerker"
RL_USER_GROUP_LEVELS="Gebruikersgroep niveau's"
RL_USER_GROUPS="Gebruikersgroepen"
RL_USER_GROUPS_DESC="Selecteer de gebruikersgroepen om aan toe te
wijzen."
RL_USER_IDS="Gebruiker ID's"
RL_USER_IDS_DESC="Geef de gebruiker id's in om aan toe te wijzen.
Gebruik komma's om ID's te scheiden"
RL_USERS="Gebruikers"
RL_UTF8="UTF-8"
; RL_VIDEO="Video"
RL_VIEW="Weergeven"
RL_VIEW_DESC="Selecteren welke standaar weergave moet worden gebruikt
bij het maken van een nieuw item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Breedte"
RL_WINTER="Winter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Categorieën"
PK�X�[ҫ��ee?regularlabs/language/nl-BE/nl-BE.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systeem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - gebruikt door
Regular Labs extensies"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[3�ݙ����;regularlabs/language/nl-NL/nl-NL.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systeem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - wordt gebruikt
door Regular Labs extensies"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]De Regular Labs extensies
hebben deze plugin nodig en werken niet zonder
hem.<br><br>Regular Labs extensies
omvatten:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Deïnstalleer of depubliceer deze
plugin nooit als gebruik wordt gemaakt van een Regular Labs extensie."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Gebruikers Acties Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag syntaxis"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beschrijving"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beschrijving"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Gedrag"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Standaard
instellingen"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
module instellingen"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor knop
instellingen"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Beveiligingsinstellingen"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Installatie"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag syntaxis"

RL_ACCESS_LEVELS="Toegangsniveaus"
RL_ACCESS_LEVELS_DESC="Selecteer de te koppelen toegangsniveaus."
RL_ACTION_CHANGE_DEFAULT="Verander Standaard"
RL_ACTION_CHANGE_STATE="Verander Publicatiestatus"
RL_ACTION_CREATE="Aanmaken"
RL_ACTION_DELETE="Wissen"
RL_ACTION_INSTALL="Installeer"
RL_ACTION_UNINSTALL="Verwijderen"
RL_ACTION_UPDATE="Update"
RL_ACTIONLOG_EVENTS="Gebeurtenissen Naar Log"
RL_ACTIONLOG_EVENTS_DESC="Kies de acties te vermelden in het
Gebruikers Acties Log"
RL_ADMIN="Beheer"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Geavanceerd"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLES"
RL_ALL_DESC="Zal gepubliceerd worden als aan
<strong>alle</strong> onderstaande toewijzingen wordt
voldaan."
RL_ALL_RIGHTS_RESERVED="Alle rechten voorbehouden"
RL_ALSO_ON_CHILD_ITEMS="Ook aan onderliggende items"
RL_ALSO_ON_CHILD_ITEMS_DESC="Ook aan onderliggende items van het
geselecteerde item koppelen?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="De child items refereren naar
de daadwerkelijke sub-items in de bovenstaande selectie. Deze refereert
niet naar links op geselecteerde pagina's."
RL_ANY="EEN (of meer)"
RL_ANY_DESC="Zal gepubliceerd worden als aan
<strong>één</strong> (één of meer) van onderstaande
toewijzingen wordt voldaan.<br>Toegewezen groepen waarbij
'Negeren' wordt gekozen worden genegeerd."
RL_ARE_YOU_SURE="Weet u het zeker?"
RL_ARTICLE="Artikel"
RL_ARTICLE_AUTHORS="Auteurs"
RL_ARTICLE_AUTHORS_DESC="Selecteer de auteurs om aan te
koppelen."
RL_ARTICLES="Artikelen"
RL_ARTICLES_DESC="Selecteer de artikelen om aan te koppelen."
RL_AS_EXPORTED="Als geëxporteerd"
RL_ASSIGNMENTS="Toewijzingen"
RL_ASSIGNMENTS_DESC="Door de specifieke koppeling te kiezen kunt u
beperken waar deze %s wel of niet gepubliceerd moet worden.<br>Geef,
om hem op alle pagina's te publiceren, eenvoudigweg geen koppeling
aan."
RL_AUSTRALIA="Australië"
RL_AUTHORS="Auteurs"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Gedrag"
RL_BEHAVIOUR="Gedrag"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="U heeft het initiëren van het
Bootstrap Framework uitgeschakeld. %s heeft het Bootstrap Framework nodig
om te werken. Zorg er voor dat het template of andere extensies de
noodzakelijke scripts laden om de benodigde functionaliteit te
vervangen."
RL_BOTH="Beide"
RL_BOTTOM="Onder"
RL_BROWSERS="Browsers"
RL_BROWSERS_DESC="Kies de browsers om aan te koppelen. Houd er
rekening mee dat browserdetectie nooit 100&#37; waterdicht is.
Gebruikers kunnen hun browser zo instellen dat de browser niet te herkennen
is."
RL_BUTTON_ICON="Knop icoon"
RL_BUTTON_ICON_DESC="Selecteer, welk icoon op de knop getoond
wordt."
RL_BUTTON_TEXT="Knoptekst"
RL_BUTTON_TEXT_DESC="Deze tekst wordt getoond op de invoeg-knop."
RL_CACHE_TIME="Cache tijd"
RL_CACHE_TIME_DESC="De maximum tijdsduur in minuten dat het
cachebestand opgeslagen moet worden totdat het ververst wordt. Laat leeg om
de algemene instellingen te gebruiken"
RL_CATEGORIES="Categorieën"
RL_CATEGORIES_DESC="Kies de categorieën om aan te koppelen."
; RL_CATEGORY="Category"
RL_CHANGELOG="Wijzigingslog"
RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Inklappen"
RL_COM="Component"
RL_COMBINE_ADMIN_MENU="Combineer Admin Menu"
RL_COMBINE_ADMIN_MENU_DESC="Selecteer om alle Regular Labs -
componenten in één sub-menu in het beheermenu te combineren."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Componenten"
RL_COMPONENTS_DESC="Kies het menu-item om aan te koppelen."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Inhoud"
RL_CONTENT_KEYWORDS="Inhoud keywords"
RL_CONTENT_KEYWORDS_DESC="Geef de in de inhoud gevonden keywords om
aan te koppelen. Gebruik komma's om de keywords te scheiden."
RL_CONTINENTS="Continenten"
RL_CONTINENTS_DESC="Selecteer de te koppelen continenten."
RL_COOKIECONFIRM="Cookie Confirm"
RL_COOKIECONFIRM_COOKIES="Cookies toegestaan"
RL_COOKIECONFIRM_COOKIES_DESC="Koppelen indien cookies toegestaan of
niet toegestaan zijn, gebaseerd op de instellingen van Cookie Confirm (door
Twentronix) en de keuze van de bezoeker om cookies te accepteren of
niet."
RL_COPY_OF="Kopie van %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Landen"
RL_COUNTRIES_DESC="Selecteer de te koppelen landen."
RL_CSS_CLASS="Class (CSS)"
RL_CSS_CLASS_DESC="Definieer een CSS classnaam om te stijlen."
RL_CURRENT="Huidige"
RL_CURRENT_DATE="Huidige datum/tijd:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="De huidige versie is %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Aangepaste code"
RL_CUSTOM_CODE_DESC="Voer de code in die de invoeg-knop in de tekst
moet toevoegen (in plaats van de standaard code)."
RL_CUSTOM_FIELD="Aangepast Veld"
RL_CUSTOM_FIELDS="Aangepaste Velden"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Herhalend"
RL_DATE_RECURRING_DESC="Kies om de datumreeks ieder jaar toe te
passen. (Hierdoor wordt het jaar in de selectie genegeerd)"
RL_DATE_TIME="Datum & Tijd"
RL_DATE_TIME_DESC="De datum en tijd toekenning gebruikt de datum/tijd
van de server, niet van de gebruiker."
; RL_DATE_TO="To"
RL_DAYS="Dag van de week"
RL_DAYS_DESC="Kies de dag van de week om aan te koppelen."
RL_DEFAULT_ORDERING="Standaard volgorde"
RL_DEFAULT_ORDERING_DESC="Stel de standaard volgorde van de lijst
in"
RL_DEFAULT_SETTINGS="Standaard instellingen"
RL_DEFAULTS="Standaardwaarden"
RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobiel"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Apparaten"
RL_DEVICES_DESC="Selecteer de te koppelen apparaten. Bedenk wel dat
apparaat detectie niet altijd 100&#37; accuraat is. Gebruikers kunnen
hun apparaat instellen om andere apparaten na te bootsen"
RL_DIRECTION="Richting"
RL_DIRECTION_DESC="Selecteer de richting"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Selecteer in welke administrator
componenten deze extensie NIET geactiveerd dient te worden."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Selecteer in welke componenten deze
extensie NIET geactiveerd dient te worden."
RL_DISABLE_ON_COMPONENTS="Deactiveer in componenten"
RL_DISABLE_ON_COMPONENTS_DESC="Selecteer, in welke website componenten
GEEN gebruik zal worden gemaakt van deze extensie."
RL_DISPLAY_EDITOR_BUTTON="Toon editor-knop"
RL_DISPLAY_EDITOR_BUTTON_DESC="Selecteer om een editor-knop te
tonen."
RL_DISPLAY_LINK="Link weergave"
RL_DISPLAY_LINK_DESC="Hoe moet de link worden weergegeven?"
RL_DISPLAY_TOOLBAR_BUTTON="Toon werkbalkknop"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Selecteer om een knop in de werkbalk
te tonen."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Toon tooltip"
RL_DISPLAY_TOOLTIP_DESC="Kies om een tooltip te tonen met extra
informatie wanneer de muis over de link/het icoon gaat."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Dit plaatst het nummer van de
gebeurtenis.<br>Als uw zoekopdracht, laten we zeggen, 4 keer wordt
gevonden, zal de telling respectievelijk 1 tot 4 weergeven."
RL_DYNAMIC_TAG_DATE="Datum gebruik makend van het %1$sphp date()
formaat%2$s. Bijvoorbeeld: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Gebruik om dynamische waarden te voorkomen
(voegt slashes aan aanhalingstekens toe)"
RL_DYNAMIC_TAG_LOWERCASE="Converteer tekst binnen tags naar kleine
letters."
RL_DYNAMIC_TAG_RANDOM="Een willekeurig getal binnen de opgegeven
waarden"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Een taal string om te vertalen in tekst
(gebaseerd op de actieve taal)"
RL_DYNAMIC_TAG_UPPERCASE="Converteer tekst binnen tags naar
hoofdletters"
RL_DYNAMIC_TAG_USER_ID="Het id nummer van de gebruiker"
RL_DYNAMIC_TAG_USER_NAME="De naam van de gebruiker"
RL_DYNAMIC_TAG_USER_OTHER="Elk andere beschikbare data van de
gebruiker of de gekoppelde contact Voorbeeld: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="De 'user' tag plaats details
van de ingelogde gebruiker. Als de bezoeker niet is ingelogd, toont de tag
niets."
RL_DYNAMIC_TAG_USER_USERNAME="De gebruikersnaam van de gebruiker"
RL_DYNAMIC_TAGS="Dynamische Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Inschakelen"
RL_ENABLE_ACTIONLOG="Log Gebruikers Acties"
RL_ENABLE_ACTIONLOG_DESC="Kies om Gebruikers Acties op te slaan. Deze
acties zullen zichtbaar zijn in de Gebruikers Acties Log module."
RL_ENABLE_IN="Inschakelen in"
RL_ENABLE_IN_ADMIN="Inschakelen in beheergedeelte"
RL_ENABLE_IN_ADMIN_DESC="Indien ingeschakeld, zal de plugin ook in het
beheergedeelte van de website werken.<br><br>Normaal gesproken
is dit niet nodig. Het kan ongewenste bijeffecten hebben, zoals het
vertragen van het beheergedeelte en de plugin tags die verwerkt worden op
plekken die niet gewenst zijn."
RL_ENABLE_IN_ARTICLES="Inschakelen in artikelen"
RL_ENABLE_IN_COMPONENTS="Inschakelen in componenten"
RL_ENABLE_IN_DESC="Selecteer om in te schakelen op de website,
beheergedeelte of beide."
RL_ENABLE_IN_FRONTEND="Actief op frontend website"
RL_ENABLE_IN_FRONTEND_DESC="Indien ingeschakeld, zal dit ook
beschikbaar zijn op de frontend van de website."
RL_ENABLE_OTHER_AREAS="Inschakelen in andere gebieden"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Uitsluiten"
RL_EXPAND="Uitklappen"
RL_EXPORT="Exporteren"
RL_EXPORT_FORMAT="Export Formaat"
RL_EXPORT_FORMAT_DESC="Selecteer het bestandsformaat voor de export
bestanden."
RL_EXTRA_PARAMETERS="Extra parameters"
RL_EXTRA_PARAMETERS_DESC="Voer extra parameters in die niet met
beschikbare instellingen kunnen worden ingesteld."
RL_FALL="Herfst"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
RL_FEATURES="Kenmerken"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Veldnaam"
RL_FIELD_PARAM_MULTIPLE="Meerdere"
RL_FIELD_PARAM_MULTIPLE_DESC="Sta meerdere waarde selectie toe."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Veldwaarde"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Benodigde %s bestanden niet gevonden!"
RL_FILTERS="Filters"
RL_FINISH_PUBLISHING="Stop publiceren"
RL_FINISH_PUBLISHING_DESC="Kies de datum waarop met publiceren gestopt
moet worden."
RL_FIX_HTML="Repareer HTML"
RL_FIX_HTML_DESC="Selecteer of de extensie elke html structuur
probleem op dient te lossen. Dit is vaak nodig vanwege de omliggende html
tags.<br><br>Schakel dit alleen uit, indien je problemen
ondervindt."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Voor meer functies kan de PRO versie gekocht
worden."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Het oude NoNumber Framework wordt
waarschijnlijk niet gebruikt door een andere extensie die u geïnstalleerd
heeft. Het is waarschijnlijk veilig deze plug-in uit te schakelen of te
deïnstalleren."
; RL_FROM_TO="From-To"
RL_FRONTEND="Website"
RL_GALLERY="Album"
RL_GEO="Geolocatie"
RL_GEO_DESC="Geolocatie is niet altijd 100&#37; accuraat. De
geolocatie is gebaseerd op het IP-adres van de bezoeker. Niet alle
IP-adressen zijn vast, of bekend."
RL_GEO_GEOIP_COPYRIGHT_DESC="Dit product bevat GeoLite2 gegevens
gemaakt door MaxMind, beschikbaar via [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="De Regular Labs GeoIP bibliotheek is niet
geïnstalleerd. U moet de [[%1:link start%]]Regular Labs GeoIP[[%2:link
end%]] bibliotheek installeren om de Geolocating verwijzing te
gebruiken."
RL_GO_PRO="Ga voor de PRO-versie!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Kop 1"
RL_HEADING_2="Kop 2"
RL_HEADING_3="Kop 3"
RL_HEADING_4="Kop 4"
RL_HEADING_5="Kop 5"
RL_HEADING_6="Kop 6"
RL_HEADING_ACCESS_ASC="Toegang oplopend"
RL_HEADING_ACCESS_DESC="Toegang aflopend"
RL_HEADING_CATEGORY_ASC="Categorie oplopend"
RL_HEADING_CATEGORY_DESC="Categorie aflopend"
RL_HEADING_CLIENTID_ASC="Locatie oplopend"
RL_HEADING_CLIENTID_DESC="Locatie aflopend"
RL_HEADING_COLOR_ASC="Kleur oplopend"
RL_HEADING_COLOR_DESC="Kleur aflopend"
RL_HEADING_DEFAULT_ASC="Standaard oplopend"
RL_HEADING_DEFAULT_DESC="Standaard aflopend"
RL_HEADING_DESCRIPTION_ASC="Beschrijving oplopend"
RL_HEADING_DESCRIPTION_DESC="Beschrijving aflopend"
RL_HEADING_ID_ASC="ID oplopend"
RL_HEADING_ID_DESC="ID aflopend"
RL_HEADING_LANGUAGE_ASC="Taal oplopend"
RL_HEADING_LANGUAGE_DESC="Taal aflopend"
RL_HEADING_ORDERING_ASC="Volgorde oplopend"
RL_HEADING_ORDERING_DESC="Volgorde aflopend"
RL_HEADING_PAGES_ASC="Menu-items oplopend"
RL_HEADING_PAGES_DESC="Menu-items aflopend"
RL_HEADING_POSITION_ASC="Positie oplopend"
RL_HEADING_POSITION_DESC="Positie aflopend"
RL_HEADING_STATUS_ASC="Status oplopend"
RL_HEADING_STATUS_DESC="Status aflopend"
RL_HEADING_STYLE_ASC="Style oplopend"
RL_HEADING_STYLE_DESC="Style aflopend"
RL_HEADING_TEMPLATE_ASC="Template oplopend"
RL_HEADING_TEMPLATE_DESC="Template aflopend"
RL_HEADING_TITLE_ASC="Titel oplopend"
RL_HEADING_TITLE_DESC="Titel aflopend"
RL_HEADING_TYPE_ASC="Type oplopend"
RL_HEADING_TYPE_DESC="Type aflopend"
RL_HEIGHT="Hoogte"
RL_HEMISPHERE="Halfrond"
RL_HEMISPHERE_DESC="Kies het halfrond waarop de website zich
bevindt"
RL_HIGH="Hoog"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Homepage"
RL_HOME_PAGE_DESC="In tegenstelling tot het kiezen van het homepage
(standaard) item via menu-items, levert dit alleen de echte homepage, niet
een URL die hetzelfde itemID heeft als het home
menu-item.<br><br>Dit werkt mogelijk niet met elke 3rd party
SEF extensie."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Alleen icoon"
RL_IGNORE="Negeren"
RL_IMAGE="Afbeelding"
RL_IMAGE_ALT="Afbeelding alt-tekst"
RL_IMAGE_ALT_DESC="De alt-waarde van de afbeelding."
RL_IMAGE_ATTRIBUTES="Afbeeldingsattributen"
RL_IMAGE_ATTRIBUTES_DESC="De extra attibuten van de afbeelding, zoals:
alt=&quot;Mijn afbeelding&quot; width=&quot;300&quot;"
RL_IMPORT="Importeren"
RL_IMPORT_ITEMS="Importeer items"
RL_INCLUDE="Opnemen"
RL_INCLUDE_CHILD_ITEMS="Neem child items mee"
RL_INCLUDE_CHILD_ITEMS_DESC="Neem de child items van geselecteerde
items ook mee?"
RL_INCLUDE_NO_ITEMID="Inclusief geen itemID"
RL_INCLUDE_NO_ITEMID_DESC="Ook koppelen indien geen menu-itemID is
gegeven via de URL?"
RL_INITIALISE_EVENT="Initialiseer op evenement"
RL_INITIALISE_EVENT_DESC="Stel het interne Joomla evenement in waarop
de plugin geïnitialiseerd moet worden. Verander dit alleen als u problemen
heeft met de werking van de plugin."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Invoegen"
RL_INSERT_DATE_NAME="Voeg datum / naam toe"
RL_IP_RANGES="IP-adressen / reeksen"
RL_IP_RANGES_DESC="Een komma en/of -enter- gescheiden lijst van
IP-adressen en IP-reeksen.
Bijvoorbeeld:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP-adressen"
RL_IS_FREE_VERSION="Dit is de GRATIS versie van %s."
RL_ITEM="Item"
RL_ITEM_IDS="ItemID's"
RL_ITEM_IDS_DESC="Vul de itemID's in om aan te koppelen. Gebruik
komma's om de ID's te scheiden."
RL_ITEMS="Items"
RL_ITEMS_DESC="Selecteer de items om aan te koppelen."
RL_JCONTENT="Joomla! inhoud"
RL_JED_REVIEW="Vindt u deze extensie goed? [[%1:start link%]]Laat een
review achter op de JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="U werkt met een Joomla 2.5 versie van
%1$s op Joomla 3. AUB herinstalleer %1$s om dit probleem op te
lossen.."
RL_JQUERY_DISABLED="Het jQuery script is gedeactiveerd. %s heeft
jQuery nodig om te werken. Zorg er voor dat het template of andere
extensies de nodige scripts laden om de gewenste functionaliteit te
vervangen."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Categorieën"
RL_LANGUAGE="Taal"
RL_LANGUAGE_DESC="Kies de taal om aan te koppelen."
RL_LANGUAGES="Talen"
RL_LANGUAGES_DESC="Kies de talen om aan te koppelen."
RL_LAYOUT="Layout"
RL_LAYOUT_DESC="Selecteer de te gebruiken lay-out. Deze is te
overschrijven in de component of template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Niveaus"
RL_LEVELS_DESC="Selecteer het niveau om aan te koppelen."
RL_LIB="Bibliotheek"
RL_LINK_TEXT="Link tekst"
RL_LINK_TEXT_DESC="De tekst die getoond moet worden als link."
RL_LIST="Lijst"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Laad Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Deactiveer om het Bootstrap
Framework niet te initiëren."
RL_LOAD_JQUERY="Laad jQuery script"
RL_LOAD_JQUERY_DESC="Selecteer deze optie om het core jQuery script te
laden. U kunt dit uitschakelen als u conflicten ervaart wanneer uw template
of andere extensies hun eigen versie van jQuery laden."
RL_LOAD_MOOTOOLS="Laad MooTools core"
RL_LOAD_MOOTOOLS_DESC="Selecteer deze optie om het core MooTools
script te laden. U kunt dit uitschakelen als u conflicten ervaart wanneer
uw template of andere extensies hun eigen versie van MooTools laden."
RL_LOAD_STYLESHEET="Laad stylesheet"
RL_LOAD_STYLESHEET_DESC="Selecteer om de extensie stylesheet te laden.
U kunt dit uitschakelen als u al uw eigen stijlen in een andere stylesheet
plaatst, zoals de templates stylesheet."
RL_LOW="Laag"
RL_LTR="Van links naar rechts"
RL_MATCH_ALL="Alles overeenkomen"
RL_MATCH_ALL_DESC="Selecteer dat de koppeling alleen uitgevoerd wordt
wanneer alle geselecteerd items overeenkomen."
RL_MATCHING_METHOD="Vergelijkingsmethode"
RL_MATCHING_METHOD_DESC="Die alle koppelingen overeen te
komen?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maximale lijstlengte"
RL_MAX_LIST_COUNT_DESC="Het maximale aantal te tonen elementen in de
meervoudig-selectie-lijst. Indien het totaal aantal items hoger is, zal het
selectie-veld worden getoond als tekstveld.<br><br>U kunt dit
aantal lager instellen, als het laden van de pagina lang duurt door het
grote aantal items in de lijst."
RL_MAX_LIST_COUNT_INCREASE="Vergroot Maximale Lijstlengte"
RL_MAX_LIST_COUNT_INCREASE_DESC="Er zijn meer dan [[%1:max%]]
items.<br><br>Om trage pagina's te vermijden wordt dit
veld afgebeeld als tekst i.p.v. dynamische
selectielijst.<br><br>U kan de '[[%2:max setting%]]'
verhogen in de Regular Labs Library plugin instellingen."
RL_MAXIMIZE="Maximaliseer"
RL_MEDIA_VERSIONING="Gebruik media versiebeheer"
RL_MEDIA_VERSIONING_DESC="Selecteer om het versienummer van de
extensie toe te voegen aan het eind van de media (js/css) URL's, om
browsers te dwingen het juiste bestand te laden."
RL_MEDIUM="Medium"
RL_MENU_ITEMS="Menu-items"
RL_MENU_ITEMS_DESC="Kies de menu-items om aan te koppelen."
RL_META_KEYWORDS="Meta keywords"
RL_META_KEYWORDS_DESC="Geef de in de meta keywords gevonden keywords
om aan te koppelen. gebruik komma's om de keywords te scheiden."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimaliseren"
RL_MOBILE_BROWSERS="Mobiele browser"
RL_MOD="Module"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Maand"
RL_MONTHS_DESC="Kies de maand om aan te koppelen."
RL_MORE_INFO="Meer informatie"
RL_MY_STRING="Mijn string!"
RL_N_ITEMS_ARCHIVED="%s items gearchiveerd."
RL_N_ITEMS_ARCHIVED_1="%s item gearchiveerd."
RL_N_ITEMS_CHECKED_IN_0="Geen items ingechecked."
RL_N_ITEMS_CHECKED_IN_1="%d item ingechecked."
RL_N_ITEMS_CHECKED_IN_MORE="%d items ingechecked."
RL_N_ITEMS_DELETED="%s items gewist."
RL_N_ITEMS_DELETED_1="%s item gewist."
RL_N_ITEMS_FEATURED="%s items gekenmerkt."
RL_N_ITEMS_FEATURED_1="%s item gekenmerkt."
RL_N_ITEMS_PUBLISHED="%s items gepubliceerd."
RL_N_ITEMS_PUBLISHED_1="%s item gepubliceerd."
RL_N_ITEMS_TRASHED="%s items naar de prullenbak."
RL_N_ITEMS_TRASHED_1="%s item naar de prullenbak."
RL_N_ITEMS_UNFEATURED="%s items niet gekenmerkt."
RL_N_ITEMS_UNFEATURED_1="%s item niet gekenmerkt."
RL_N_ITEMS_UNPUBLISHED="%s items niet gepubliceerd."
RL_N_ITEMS_UNPUBLISHED_1="%s item niet gepubliceerd."
RL_N_ITEMS_UPDATED="%d items geüpdatet."
RL_N_ITEMS_UPDATED_1="item succesvol geüpdatet"
RL_NEW_CATEGORY="Maak nieuwe categorie aan"
RL_NEW_CATEGORY_ENTER="Voer een nieuwe categorienaam in"
RL_NEW_VERSION_AVAILABLE="Er is een nieuwe versie beschikbaar"
RL_NEW_VERSION_OF_AVAILABLE="Er is een nieuwe versie van %s
beschikbaar"
RL_NO_ICON="Geen icoon"
RL_NO_ITEMS_FOUND="Geen items gevonden."
RL_NORMAL="Normaal"
RL_NORTHERN="Noordelijk"
RL_NOT="Niet"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Alleen"
RL_ONLY_AVAILABLE_IN_JOOMLA="Alleen beschikbaar in Joomla %s of
hoger."
RL_ONLY_AVAILABLE_IN_PRO="<em>Alleen beschikbaar in de PRO
versie!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Alleen beschikbaar in de PRO
versie)"
RL_ONLY_VISIBLE_TO_ADMIN="Deze melding wordt alleen getoond aan
(Super) Administators."
RL_OPTION_SELECT="- Selecteer -"
RL_OPTION_SELECT_CLIENT="- Selecteer klant -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Besturingssystemen"
RL_OS_DESC="Selecteer de besturingssystemen om aan toe te wijzen. Houd
in gedachten dat de besturingssysteem detectie nooit 100&#37;
waterdicht is. Gebruikers kunnen hun browser instellen om zo andere
besturingssystemen na te bootsen."
; RL_OTHER="Other"
RL_OTHER_AREAS="Andere gebieden"
RL_OTHER_OPTIONS="Andere opties"
RL_OTHER_SETTINGS="Overige instellingen"
RL_OTHERS="Anders"
RL_PAGE_TYPES="Paginatypes"
RL_PAGE_TYPES_DESC="Kies op welke soorten pagina's de koppeling
actief moet zijn."
RL_PHP="PHP"
RL_PHP_DESC="Voer een PHP code in om uit te voeren. De code moet de
waarde 'waar' of 'nietwaar' teruggeven (true of
false).<br><br>Bijvoorbeeld:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Plaats HTML commentaar"
RL_PLACE_HTML_COMMENTS_DESC="Standaard wordt HTML commentaar geplaatst
rond de uitvoer van deze extensie.<br><br>Dit commentaar kan
helpen bij het opsporen van fouten als de verwachte uitvoer niet wordt
gekregen.<br><br>Als dit commentaar niet in de HTML uitvoer
moet komen, schakel dit dan uit."
RL_PLG_ACTIONLOG="Actie Log Plugin"
RL_PLG_EDITORS-XTD="Editor knop plugin"
RL_PLG_FIELDS="Veld plug-in"
RL_PLG_SYSTEM="Systeem plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Postcode"
RL_POSTALCODES_DESC="Een komma gescheiden lijst met postcodes (12345)
of postcode bereik (12300-12500).<br>Dit kan alleen gebruikt worden
voor [[%1:start link%]]een beperkt aantal landen en IP adressen[[%2:end
link%]]."
RL_POWERED_BY="Mogelijk gemaakt door %s"
RL_PRODUCTS="Producten"
RL_PUBLISHED_DESC="U kunt dit gebruiken om dit item (tijdelijk) uit te
schakelen."
RL_PUBLISHING_ASSIGNMENTS="Publicatie toewijzingen"
RL_PUBLISHING_SETTINGS="Publicatie instellingen"
RL_RANDOM="Willekeurig"
RL_REDSHOP="RedShop"
RL_REGEX="Reguliere Expressies"
RL_REGIONS="Regio's / staten"
RL_REGIONS_DESC="Selecteer de regio's / staten om aan te
koppelen."
RL_REGULAR_EXPRESSIONS="Gebruik reguliere expressie"
RL_REGULAR_EXPRESSIONS_DESC="Selecteer om de waarde als reguliere
expressie te behandelen."
RL_REMOVE_IN_DISABLED_COMPONENTS="Verwijder in gedeactiveerde
componenten"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Indien geselecteerd, wordt de
plugin-syntax verwijderd uit de component. Zo niet, dan blijft de originele
plugin-syntax intact."
RL_RESIZE_IMAGES="Afbeeldingen Herschalen"
RL_RESIZE_IMAGES_CROP="Bijsnijden"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
RL_RESIZE_IMAGES_DESC="Indien geselecteerd zullen automatisch
herschaalde gemaakt worden voor afbeeldingen als ze niet bestaan. De
herschaalde afbeeldingen zullen gemaakt worden an de hand van onderstaande
instellingen."
RL_RESIZE_IMAGES_FILETYPES="Enkel bij Bestandstypen"
RL_RESIZE_IMAGES_FILETYPES_DESC="Selecteer de bestandstypes om te
herschalen."
RL_RESIZE_IMAGES_FOLDER="Map"
RL_RESIZE_IMAGES_FOLDER_DESC="De map met de herschaalde afbeeldingen.
Dit zal een submap zijn van de map met de originele afbeeldingen."
RL_RESIZE_IMAGES_HEIGHT_DESC="Stel de hoogte van de herschaalde
afbeelding in in pixels (bv 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="De Hoogte zal berekend worden op
basis van de Breedte en de verhouding van de originele afbeelding."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="De Breedte zal berekend worden op
basis van de Hoogte en de verhouding van de originele afbeelding."
RL_RESIZE_IMAGES_QUALITY="JPG Kwaliteit"
RL_RESIZE_IMAGES_QUALITY_DESC="De kwaliteit van de herschaalde
afbeeldingen. Kies tussen Laag, Middel of Hoog. Hoe hoger de kwaliteit, hoe
groter het uiteindelijke bestand.<br>Dit geldt enkel voor jpeg
afbeeldingen."
RL_RESIZE_IMAGES_SCALE="Schaal"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Selecteer het gebruik van
maximum breedte of hoogte voor het herschalen van afbeeldingen."
RL_RESIZE_IMAGES_WIDTH_DESC="Stel de breedte van de herschaalde
afbeelding in in pixels (bv 320)."
RL_RTL="Van rechts naar links"
RL_SAVE_CONFIG="Na het opslaan van de instellingen zal de pop-up niet
meer verschijnen bij het laden van de pagina."
RL_SEASONS="Seizoen"
RL_SEASONS_DESC="Kies het seizoen om aan te koppelen."
RL_SELECT="Kies"
RL_SELECT_A_CATEGORY="Selecteer een categorie"
RL_SELECT_ALL="Selecteer alles"
RL_SELECT_AN_ARTICLE="Kies een artikel"
RL_SELECT_FIELD="Selecteer Veld"
RL_SELECTED="Geselecteerd"
RL_SELECTION="Selectie"
RL_SELECTION_DESC="Selecteer om de selectie ofwel op te nemen, ofwel
uit te sluiten van de
koppeling.<br><br><strong>Opnemen</strong><br>Publiceer
alleen indien
geselecteerd.<br><br><strong>Uitsluiten</strong><br>Publiceer
alles behalve de geselecteerden."
RL_SETTINGS_ADMIN_MODULE="Administrator module instellingen"
RL_SETTINGS_EDITOR_BUTTON="Editor knop instellingen"
RL_SETTINGS_SECURITY="Beveiligingsinstellingen"
RL_SHOW_ASSIGNMENTS="Toon koppelingen"
RL_SHOW_ASSIGNMENTS_DESC="Selecteer om alleen de gekozen koppelingen
te tonen. Dit kan gebruikt worden om een schoon overzicht van de actieve
koppelingen te krijgen."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Alle niet geselecteerde
koppelingstypes zijn nu verborgen."
RL_SHOW_COPYRIGHT="Toon Copyright"
RL_SHOW_COPYRIGHT_DESC="Indien geselecteerd, wordt exra
copyright-informatie getoond in beheergedeelte. Extensies van Regular Labs
laten nooit copyright-informatie of backlinks zien op de website."
RL_SHOW_HELP_MENU="Toon Help menu item"
RL_SHOW_HELP_MENU_DESC="Selecteer op een link naar de Regular Labs
website in het beheer help-menu te tonen."
RL_SHOW_ICON="Toon knop icoon"
RL_SHOW_ICON_DESC="Indien geselecteerd, wordt er een icoon weergegeven
in de editor knop."
RL_SHOW_UPDATE_NOTIFICATION="Toon updatebericht"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Indien geselecteerd, zal een bericht
getoond worden in het hoofdcomponent als er een nieuwe versie beschikbaar
is voor deze extensie."
RL_SIMPLE="Eenvoudig"
RL_SLIDES="Slides"
RL_SOUTHERN="Zuidelijk"
; RL_SPECIFIC="Specific"
RL_SPRING="Lente"
RL_START="Start"
RL_START_PUBLISHING="Start publiceren"
RL_START_PUBLISHING_DESC="Kies de datum waarop met publiceren begonnen
moet worden."
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Verwijder omliggende tags"
RL_STRIP_SURROUNDING_TAGS_DESC="Selecteer om altijd de html tags (div,
p, span) om de plugin-tag te verwijderen. Indien uitgeschakeld zal de
plugin proberen de tags te verwijderen die de html structuur verbreken
(zoals p binnen p tags)."
RL_STYLING="Styling"
RL_SUMMER="Zomer"
RL_TABLE_NOT_FOUND="Vereiste database tabel %s niet gevonden!"
RL_TABS="Tabs"
RL_TAG_CHARACTERS="Tag tekens"
RL_TAG_CHARACTERS_DESC="De omringende tekens van de tag
syntaxis.<br><br><strong>Let op:</strong> Als u dit
verandert zullen alle bestaande tags niet meer werken."
RL_TAG_SYNTAX="Tag syntaxis"
RL_TAG_SYNTAX_DESC="Het woord dat gebruikt moet worden in de
tags.<br><br><strong>Let op:</strong>Als dit
veranderd wordt, zullen alle bestaande tags niet meer werken."
RL_TAGS="Tags"
RL_TAGS_DESC="Geef de tags om aan te koppelen. Gebruik komma's om
de tags te scheiden."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Kies de templates om aan te koppelen."
RL_TEXT="Tekst"
RL_TEXT_HTML="Tekst (HTML)"
RL_TEXT_ONLY="Alleen tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Deze extensie
heeft %s nodig om goed te werken!"
RL_TIME="Tijd"
RL_TIME_FINISH_PUBLISHING_DESC="Geef het tijdstip om het publiceren te
stoppen.<br><br><strong>Formaat:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Geef het tijdstip om het publiceren te
beginnen.<br><br><strong>Formaat:</strong>
23:59"
RL_TOGGLE="Wissel"
RL_TOOLTIP="Tooltip"
RL_TOP="Boven"
RL_TOTAL="Totaal"
RL_TYPES="Types"
RL_TYPES_DESC="Types van items"
RL_UNSELECT_ALL="Alles niet selecteren"
RL_UNSELECTED="Niet geselecteerd"
RL_UPDATE_TO="Update naar versie %s"
RL_URL="URL"
RL_URL_PARAM_NAME="Parameter Naam"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL overeenkomst"
RL_URL_PARTS_DESC="Geef (een gedeelte van) de URLs die gebruikt worden
voor de vergelijking.<br><br>Gebruik een nieuwe regel voor
iedere URL."
RL_URL_PARTS_REGEX="URL gedeelten worden vergeleken met behulp van
reguliere expressies. <strong>Gebruik geldige reguliere
expressies.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Kijk voor de categorie & artikel
(item) toewijzing, bovenstaande Joomla! inhoud sectie."
RL_USE_CUSTOM_CODE="Gebruik aangepaste code"
RL_USE_CUSTOM_CODE_DESC="Indien geselecteerd zal de toevoeg-knop de
opgegeven aangepaste code toevoegen."
RL_USE_SIMPLE_BUTTON="Gebruik eenvoudige knop"
RL_USE_SIMPLE_BUTTON_DESC="Selecteer om een eenvoudige invoeg-knop te
gebruiken, die eenvoudig wat voorbeeldtekst in de editor invoegt."
RL_USER_GROUP_LEVELS="Gebruikersgroepniveau"
RL_USER_GROUPS="Gebruikersgroepen"
RL_USER_GROUPS_DESC="Kies de gebruikersgroepen om aan te
koppelen."
RL_USER_IDS="Gebruiker ID's"
RL_USER_IDS_DESC="Kies de gebruiker ID's om aan te koppelen.
Gebruik een komma om ID's te scheiden."
RL_USERS="Gebruikers"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Weergave"
RL_VIEW_DESC="Geef aan welke weergave standaard gebruikt dient te
worden bij het aanmaken van een nieuwe item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Breedte"
RL_WINTER="Winter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO categorieën"
PK�X�[�9ܾkk?regularlabs/language/nl-NL/nl-NL.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Systeem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - wordt gebruikt
door Regular Labs extensies"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[r����;regularlabs/language/pl-PL/pl-PL.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - dodatek używany
przez rozszerzenia Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Rozszerzenia Regular Labs
wymagają tego pluginu i nie będą działać bez
niego.<br><br>Rozszerzenia Regular Labs
to:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Nie usuwaj ani nie wyłączaj tego
dodatku, jeżeli używasz rozszerzeń Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Skladnia tagów"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Zachowanie"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Ustawienia
Domyślne"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opcje modułu
administratora"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opcje przycisku
edytora"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Opcje
zabezpieczeń"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Ustawienia"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Wygląd"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Skladnia tagów"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Zainstaluj"
RL_ACTION_UNINSTALL="Odinstaluj"
RL_ACTION_UPDATE="Aktualizuj"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Administrator"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Rozszerzone"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="WSZYSTKIE"
RL_ALL_DESC="Będzie publikowany, gdy
<strong>WSZYSTKIE</strong> poniższe warunki będą
spełnione."
RL_ALL_RIGHTS_RESERVED="Wszystkie prawa zastrzeżone"
RL_ALSO_ON_CHILD_ITEMS="Także pozycje podrzędne"
RL_ALSO_ON_CHILD_ITEMS_DESC="Także dla pozycji podrzędnych?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="JAKIKOLWIEK"
RL_ANY_DESC="Będzie publikowany, gdy
<strong>JAKIKOLWIEK</strong> (jeden lub więcej) z poniższych
warunków jest spełniony.<br>Przypisania, dla których ustawiono
'Wyklucz' zostaną zignorowane."
RL_ARE_YOU_SURE="Czy na pewno chcesz?"
RL_ARTICLE="Artykuł"
RL_ARTICLE_AUTHORS="Autor"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Artykuły"
RL_ARTICLES_DESC="Zaznacz artykuły, które chcesz przypisać."
RL_AS_EXPORTED="Jako eksportowane"
RL_ASSIGNMENTS="Zadania"
RL_ASSIGNMENTS_DESC="Wybierając określone przypisanie, możesz
określić kiedy ma być wyświetlany moduł %s.<br>Aby wyświetlić
moduł na wszystkich stronach nie wybieraj żadnego przypisania."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Autor"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Zachowanie"
RL_BEHAVIOUR="Zachowanie"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Musisz wyłączony Framerwork
Bootstrap. %s wymaga Frameworka Bootstrap do działania. Upewnij się, że
twój szablon lub inne rozszerzenia ładują wymagane skrypty do
prawidołego funkcjonowania."
RL_BOTH="Obydwa"
RL_BOTTOM="Dół"
RL_BROWSERS="Przeglądarki internetowe"
RL_BROWSERS_DESC="Wybierz przeglądarki, w których ma być
wyświetlane. Pamiętaj, że detekcja przeglądarki nie jest w 100&#37;
pewna."
RL_BUTTON_ICON="Ikona przycisku"
RL_BUTTON_ICON_DESC="Wybierz która ikonę pokazać na
przycisku."
RL_BUTTON_TEXT="Tekst przycisku"
RL_BUTTON_TEXT_DESC="Tekst, który będzie widoczny na przycisku w
edytorze."
RL_CACHE_TIME="Czas przechowywania w pamięci podręcznej"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategorie"
RL_CATEGORIES_DESC="Wybierz kategorie, do których moduł ma być
przypisany."
; RL_CATEGORY="Category"
RL_CHANGELOG="Dziennik zmian"
RL_CLASSNAME="Klasa CSS"
RL_COLLAPSE="Zwiń"
RL_COM="Komponent"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenty"
RL_COMPONENTS_DESC="Wybierz komponenty, do których moduł ma być
przypisany."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Artykuły"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="Kontynenty"
RL_CONTINENTS_DESC="Wybierz kontynenty, do których chcesz
przypisać."
RL_COOKIECONFIRM="Potwierdzanie plików Cookie"
RL_COOKIECONFIRM_COOKIES="Ciasteczka dozwolone"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Kopia %s"
RL_COPYRIGHT="Prawa autorskie"
RL_COUNTRIES="Kraje"
RL_COUNTRIES_DESC="Wybierz kraje, do które chcesz przypisać."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="Bieżący"
RL_CURRENT_DATE="Aktualna data/czas:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Twoja aktualna wersja to %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Własny kod"
RL_CUSTOM_CODE_DESC="Wpisz kod jaki ma zostać wstawiony po użyciu
przycisku edytora (zamiast domyślnego kodu)."
RL_CUSTOM_FIELD="Pole własne"
RL_CUSTOM_FIELDS="Pola dodatkowe"
RL_DATE="Data"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Odnawialny"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Data i Czas"
RL_DATE_TIME_DESC="Funkcja przypisania do Daty i Czasu używa czasu
Twojego serwera, nie lokalnego czasu użytkownika."
; RL_DATE_TO="To"
RL_DAYS="Dni tygodnia"
RL_DAYS_DESC="Wybierz dni, do których moduł ma być
przypisany."
RL_DEFAULT_ORDERING="Domyślna kolejność"
RL_DEFAULT_ORDERING_DESC="Ustaw sortowanie domyślne"
RL_DEFAULT_SETTINGS="Ustawienia Domyślne"
RL_DEFAULTS="Domyślny"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Komórka"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Kierunek"
RL_DIRECTION_DESC="Wybierz kierunek"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Wyłącz w komponentach"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
RL_DISPLAY_EDITOR_BUTTON="Wybierz czy wyświetlać ikonę na przycisku
edytora."
RL_DISPLAY_EDITOR_BUTTON_DESC="Wybierz czy wyświetlać ikonę na
przycisku edytora."
RL_DISPLAY_LINK="Wyświetlaj link"
RL_DISPLAY_LINK_DESC="W jaki sposób wyświetlać link?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Podpowiedź (dymek)"
RL_DISPLAY_TOOLTIP_DESC="Wyświetla dodatkowe informacje kiedy kursor
znajduje się nad linkem/ikoną."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
RL_DYNAMIC_TAG_LOWERCASE="Konwertuj tekst w znacznikach na małe
litery."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
RL_DYNAMIC_TAG_UPPERCASE="Konwertuj tekst w znacznikach na wielkie
litery."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Włącz"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
RL_ENABLE_IN_ADMIN="Włącz na zapleczu"
RL_ENABLE_IN_ADMIN_DESC="Jeśli włączone, dodatek będzie działał
również na zapleczu.<br><br>Nie zalecane, gdyż może
powodować niechciane zachowania np.: spowolnienie działania
zaplecza."
RL_ENABLE_IN_ARTICLES="Włącz w artykułach"
RL_ENABLE_IN_COMPONENTS="Włącz w komponentach"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Włącz na frontowej"
RL_ENABLE_IN_FRONTEND_DESC="jeśłi włączone, będzie dostęne
także w części frontowej."
RL_ENABLE_OTHER_AREAS="Włącz w innych obszarach"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Wyklucz"
RL_EXPAND="Rozwiń"
RL_EXPORT="Eksport"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Jesień"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nazwa pola"
RL_FIELD_PARAM_MULTIPLE="Wybór wielokrotny"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Wartość pola"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Wymaganych plików %s nie znaleziono!"
RL_FILTERS="Filtry"
RL_FINISH_PUBLISHING="Zakończ publikację"
RL_FINISH_PUBLISHING_DESC="Podaj datę zakończenia publikacji."
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Więcej opcji dostępne jest w wersji PRO."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Front (witryna)"
RL_GALLERY="Galeria"
RL_GEO="Geolokacja"
RL_GEO_DESC="Geolokacja nie zawsze jest 100&#37; pewna. Geolokacja
oparta jest o IP użytkownika."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Uaktualnij do wersji PRO!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Nagłówek 1"
RL_HEADING_2="Nagłówek 2"
RL_HEADING_3="Nagłówek 3"
RL_HEADING_4="Nagłówek 4"
RL_HEADING_5="Nagłówek 5"
RL_HEADING_6="Nagłówek 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
RL_HEADING_DEFAULT_ASC="Domyślnie rosnąco"
RL_HEADING_DEFAULT_DESC="Domyślnie malejąco"
RL_HEADING_DESCRIPTION_ASC="Opis rosnąco"
RL_HEADING_DESCRIPTION_DESC="Opis malejąco"
RL_HEADING_ID_ASC="ID rosnąco"
RL_HEADING_ID_DESC="ID malejąco"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
RL_HEADING_TYPE_ASC="Typ przyrostu"
RL_HEADING_TYPE_DESC="Typ przyrostu"
RL_HEIGHT="Wysokość"
RL_HEMISPHERE="Pólkula"
RL_HEMISPHERE_DESC="Wybierz półkulę, na której ulokowana jest
Twoja strona."
RL_HIGH="Wysoka"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Strona startowa"
RL_HOME_PAGE_DESC="W przeciwieństwie do wyboru strony głownej w
'Pozycje Menu', ta opcja spowoduje przypisanie modułu do
prawdziwej strony głównej a nie tylko do pozycji menu, która ma taki sam
parametr Itemid jak domyślna pozycja menu.<br><br>Może nie
działać ze wszystkimi rozszerzeniami SEF."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Tylko ikona"
RL_IGNORE="Ignoruj"
RL_IMAGE="Obraz"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Importuj pozycje"
RL_INCLUDE="Włącz"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Dla stron bez menu ID"
RL_INCLUDE_NO_ITEMID_DESC="Wyświetlaj moduł na stronach
nieprzypisanych do żadnej pozycji menu (bez ID pozycji menu)?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Wstaw"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="Adres IP / Zakres"
RL_IP_RANGES_DESC="Oddzielone przecinkami adresy lub zakres adresów
IP. Np.:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="Adresy IP"
RL_IS_FREE_VERSION="To jest darmowa wersja rozszerzenia %s."
RL_ITEM="Pozycja"
RL_ITEM_IDS="ID pozycji"
RL_ITEM_IDS_DESC="Wpisz id pozycji, które chcesz przypisać. Jeśli
więcej, oddziel je przecinkami."
RL_ITEMS="Pozycje Menu"
RL_ITEMS_DESC="Wybierz pozycje, by je przypisać."
RL_JCONTENT="Artykuły Joomla!"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
RL_JQUERY_DISABLED="Musisz wyłączony skrypt jQuery. %s wymaga tego
aby działać prawidłowo. Upewnij się, że twój szablon lub inne
rozszerzenia ładują wymagane skrypty do prawidłowego
funkcjonowania."
RL_K2="K2"
RL_K2_CATEGORIES="Kategorie K2"
RL_LANGUAGE="Język"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Języki"
RL_LANGUAGES_DESC="Wybierz języki do których moduł ma być
przypisany."
RL_LAYOUT="Wygląd"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Poziomy"
RL_LEVELS_DESC="Wybierz poziomy, do ktorych chcesz przypisać."
RL_LIB="Biblioteka"
RL_LINK_TEXT="Link tekstowy"
RL_LINK_TEXT_DESC="Tekst do wyświetlenia jako link."
RL_LIST="Lista"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Ładuj Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Wyłącz aby nie ładować Bootstrap
Framework."
RL_LOAD_JQUERY="Ładuj biblioteki jQuery"
RL_LOAD_JQUERY_DESC="Wybierz czy ładować biblioteki jQuery. Wyłącz
ładowanie jeśli występują problemy ze skryptami lub biblioteki
ładowane są już w inny sposób."
RL_LOAD_MOOTOOLS="Ładuj Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Wybierz czy ładować biblioteki MooTools.
Wyłącz ładowanie jeśli występują problemy ze skryptami."
RL_LOAD_STYLESHEET="Ładuj arkusz stylów"
RL_LOAD_STYLESHEET_DESC="Wybierz czy ładować pliki CSS rozszerzenia.
Możesz wyłaczyć ładowanie stylów jeśli określiłeś je w innym pliku
CSS np. pliku twojego szablonu."
RL_LOW="Niska"
RL_LTR="Lewa-do-Prawej"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Warunki do spełnienia"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maksymalizuj"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Średnia"
RL_MENU_ITEMS="Pozycje menu"
RL_MENU_ITEMS_DESC="Wybierz pozycje menu, do któych ma być
przypisany."
RL_META_KEYWORDS="Słowa kluczowe"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimalzuj"
RL_MOBILE_BROWSERS="Przegladarki urzadzeń przenośnych"
RL_MOD="Moduł"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Miesiące"
RL_MONTHS_DESC="Wybierz miesiące, do których ma być
przypisany."
RL_MORE_INFO="Więcej informacji"
; RL_MY_STRING="My string!"
RL_N_ITEMS_ARCHIVED="%s elementy(-ów) zarchiwizowano."
RL_N_ITEMS_ARCHIVED_1="%s element zarchiwizowano."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d pozycji(e) uaktualniono."
RL_N_ITEMS_UPDATED_1="Pozycję uaktualniono"
RL_NEW_CATEGORY="Utwórz nową kategorię"
RL_NEW_CATEGORY_ENTER="Wprowadź nazwę nowej kategorii"
RL_NEW_VERSION_AVAILABLE="Nowsza wersja jest dostępna"
RL_NEW_VERSION_OF_AVAILABLE="Nowa wersja %s jest dostępna"
RL_NO_ICON="Bez ikon"
RL_NO_ITEMS_FOUND="Nie znaleziono pozycji."
RL_NORMAL="Normalne"
RL_NORTHERN="Pólnocna"
RL_NOT="Nie"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Wyłącznie"
RL_ONLY_AVAILABLE_IN_JOOMLA="Dostępne tylko w Joomla %s lub
wyższej."
RL_ONLY_AVAILABLE_IN_PRO="<em>Dostępne tylko w wersji
PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Dostępne tylko w wersji
PRO)"
RL_ONLY_VISIBLE_TO_ADMIN="Ta wiadomość będzie wyświetlana tylko
dla Super) Administratorów."
RL_OPTION_SELECT="- Wybierz -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="System operacyjny"
RL_OS_DESC="Wybierz system operacyjny, dla których ma być
wyświetlane. Pamiętaj, że detekcja systemów operacyjnych nie jest
100&#37; pewna. Użytkownicy mogą zmienić ustawienia przeglądarki
tak aby udawała inny system operacyjny."
; RL_OTHER="Other"
RL_OTHER_AREAS="Inne obszary"
RL_OTHER_OPTIONS="Pozostałe opcje"
RL_OTHER_SETTINGS="Pozostałe opcje"
RL_OTHERS="Inne"
RL_PAGE_TYPES="Typy stron"
RL_PAGE_TYPES_DESC="Wybierz typy stron, na których moduł ma być
aktywny."
RL_PHP="Ewaluacja PHP"
RL_PHP_DESC="Wprowadź kod PHP. Kod musi zwracać wartość TRUE lub
FALSE.<br><br>Na
przykład:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Umieść komentarze w kodzie"
RL_PLACE_HTML_COMMENTS_DESC="Domyślnie umieszczane są w kodzie
komentarze HTML wokół kodu generowanego przez to
rozszerzenie.<br><br>Komentarze te pomocne są przy
diagnozowaniu problemów w przypadku gdy wyświetlany kod jest inny od
spodziewanego.<br><br>Wyłącz tą opcję jeśli nie chcesz aby
komentarze były umieszczane w kodzie."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Przycisk edytora"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Dodatek systemowy"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Produkty"
RL_PUBLISHED_DESC="Możesz użyć tego aby czasowo wyłączyć ten
element."
RL_PUBLISHING_ASSIGNMENTS="Warunki publikacji"
RL_PUBLISHING_SETTINGS="Opublikuj pozycje"
RL_RANDOM="Losowo"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="Regiony / Stany / Województwa"
RL_REGIONS_DESC="Wybierz Regiony / Stany do których ma być
przypisany."
RL_REGULAR_EXPRESSIONS="Wyrażenia regularne"
RL_REGULAR_EXPRESSIONS_DESC="Określ czy traktować wpis jako
wyrażenia regularne."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Przytnij"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Folder"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
RL_RESIZE_IMAGES_QUALITY="Jakość JPG"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Prawa-do-Lewej"
RL_SAVE_CONFIG="Po zapisaniu okno, nie zostanie ponownie wyświetlone
przy ładowaniu strony."
RL_SEASONS="Pory roku"
RL_SEASONS_DESC="Wybierz pory roku, do których ma być
przypisany."
RL_SELECT="Wybierz"
RL_SELECT_A_CATEGORY="Wybierz kategorię"
RL_SELECT_ALL="Zaznacz wszystko"
RL_SELECT_AN_ARTICLE="Wybierz Artykuł"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Zaznaczone"
RL_SELECTION="Wybrane"
RL_SELECTION_DESC="Wybierz, czy przypisać moduł tylko do wybranych,
czy
odwrotnie.<br><br><strong>Włącz</strong><br>Publikuj
tylko dla
wybranych<br><br><strong>Wyklucz</strong><br>Publikuj
dla wszystkich OPRÓCZ wybranych"
RL_SETTINGS_ADMIN_MODULE="Opcje modułu administratora"
RL_SETTINGS_EDITOR_BUTTON="Opcje przycisku edytora"
RL_SETTINGS_SECURITY="Opcje bezpieczeństwa"
RL_SHOW_ASSIGNMENTS="Pokaż przypisania"
RL_SHOW_ASSIGNMENTS_DESC="Wybierz czy wyświetlać tylko ustawione
przypisania. Jeśli ustawione na 'Zaznaczone' będą wyświetlane
tylko te przypisania, w których zostało coś zaznaczone."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Wszystkie przypisania, które nie
zostały określone są ukrywane w widoku."
RL_SHOW_COPYRIGHT="Pokazuj prawa autorskie"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Wyświetlaj ikonę"
RL_SHOW_ICON_DESC="Wybierz czy wyświetlać ikonę na przycisku
edytora."
RL_SHOW_UPDATE_NOTIFICATION="Wyświetlaj powiadomienia o
Update'ach"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Zwykły"
RL_SLIDES="Harmonijka"
RL_SOUTHERN="Południowa"
; RL_SPECIFIC="Specific"
RL_SPRING="Wiosna"
RL_START="Start"
RL_START_PUBLISHING="Rozpocznij publikację"
RL_START_PUBLISHING_DESC="Podaj datę rozpoczęcia publikacji"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Wygląd"
RL_SUMMER="Lato"
RL_TABLE_NOT_FOUND="W bazie danych nie ma wymaganej tabeli %s!"
RL_TABS="Zakładki"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Skladnia tagów"
RL_TAG_SYNTAX_DESC="Słowo używane jako
znacznik.<br><br><strong>Uwaga:</strong> Zmiana w
tym polu sprawi, że wszystkie już istniejące znaczniki przestaną
działać."
RL_TAGS="Tagi"
RL_TAGS_DESC="Wybierz tagi, do których moduł ma być przypisany.
Tagi rodzielaj przecinkami."
RL_TEMPLATES="Szablony"
RL_TEMPLATES_DESC="Wybierz szablony, do których moduł ma być
przypisany."
RL_TEXT="Tekst"
RL_TEXT_HTML="Tekst (HTML)"
RL_TEXT_ONLY="Tylko tekst"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="To
rozszerzenie potrzebuje %s do poprawnego funkcjonowania!"
RL_TIME="Czas"
RL_TIME_FINISH_PUBLISHING_DESC="Wprowadź czas rozpoczęcia
publikacji.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Wprowadź czas zakończenia
publikacji.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Przełącz"
RL_TOOLTIP="Chmurka"
RL_TOP="Gora"
RL_TOTAL="Ogółem"
RL_TYPES="Typy"
RL_TYPES_DESC="Wybierz typy, ktore chcesz przypisać."
RL_UNSELECT_ALL="Odznacz wszystkie"
RL_UNSELECTED="Odznaczono"
RL_UPDATE_TO="Uaktualnij do wersji %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL zgodny"
RL_URL_PARTS_DESC="Wprowadź URL (lub część) do dopasowania.
Możesz podać więcej niż jeden.<br>Każdy URL umieść w nowej
linii."
RL_URL_PARTS_REGEX="Częściowe URL będą dopasowywane przy użyciu
wyrażeń regularnych<strong>Upewnij się, że ciąg używa składni
odpowiedniej dla wyrażeń regularnych.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Zobacz opcję 'Artykuły
Joomla!' dla przypisania do kategorii i artykułów."
RL_USE_CUSTOM_CODE="Użyj własnego kodu"
RL_USE_CUSTOM_CODE_DESC="Gdy włączone, zostanie wstawiony podany kod
zamiast domyślnego kodu."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Grupy użytkowników (Poziom dostępu)"
RL_USER_GROUPS="Grupa użytkownikow"
RL_USER_GROUPS_DESC="Wybierz grupy użytkowników, do których ma być
przypisany."
RL_USER_IDS="ID użytkowników"
RL_USER_IDS_DESC="Wprowadź ID użytkowników, do których ma być
przypisany. ID oddziel przecinkami."
RL_USERS="Użytkownicy"
RL_UTF8="UTF-8"
RL_VIDEO="Film"
RL_VIEW="Widok"
RL_VIEW_DESC="Wybierz domyślny widok przy tworzeniu nowego
elementu."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Szerokość"
RL_WINTER="Zima"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Kategorie ZOO"
PK�X�[����pp?regularlabs/language/pl-PL/pl-PL.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - dodatek używany
przez rozszerzenia Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[ȶN%����;regularlabs/language/pt-BR/pt-BR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizados pelas
extensões Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]As extensões da Regular
Labs precisam deste plugin e não funcionarão sem
ele.<br><br>As extensões Regular Labs
incluem:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Não desinstale ou desabilite este
plugins se você estiver usando qualquer extensão da Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxe de Tag"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descrição"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descrição"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportamento"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Configurações
Padrão"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Mídia"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opções Módulo
Administrador"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opções do
Botão de Editor"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Configurações de
Segurança"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Configuração"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Estilização"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxe de Tag"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Instalar"
RL_ACTION_UNINSTALL="Desinstalar"
RL_ACTION_UPDATE="Atualizar"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Avançado"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="TODOS"
RL_ALL_DESC="Serão publicados se <strong>todas</strong>
as atribuições abaixo forem correspondidas."
RL_ALL_RIGHTS_RESERVED="Todos os direitos reservados"
RL_ALSO_ON_CHILD_ITEMS="Também nos items filhos"
RL_ALSO_ON_CHILD_ITEMS_DESC="Atribuir também aos items filhos dos
items selecionados?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="OU"
RL_ANY_DESC="Serão publicados se
<strong>qualquer</strong> (uma ou mais) das atribuições
abaixo forem correspondidas.<br>Atribuição de grupos onde
'Ignore' estiver selecionado serão ignoradas."
RL_ARE_YOU_SURE="Você tem certeza?"
RL_ARTICLE="Artigo"
RL_ARTICLE_AUTHORS="Autores"
RL_ARTICLE_AUTHORS_DESC="Selecione os autores para atribuir."
RL_ARTICLES="Artigos"
RL_ARTICLES_DESC="Selecione os artigos para atribuir."
RL_AS_EXPORTED="Como exportado"
RL_ASSIGNMENTS="Atribuições"
RL_ASSIGNMENTS_DESC="Ao selecionar as atribuições específicas você
pode limitar onde este %s deveria ou não ser publicado.<br>Para
tê-lo publicado em todas as páginas, simplesmente não especifique
quaisquer atribuições."
RL_AUSTRALIA="Austrália"
RL_AUTHORS="Autores"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Comportamento"
RL_BEHAVIOUR="Comportamento"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Você desabilitou a inicialização
do Framework Bootstrap. %s precisa do Framework Bootstrap para funcionar.
Certifique-se que seu template ou outras extensões carregam os scripts
necessários para substituir a funcionalidade exigida."
RL_BOTH="Ambos"
RL_BOTTOM="Rodapé"
RL_BROWSERS="Navegadores"
RL_BROWSERS_DESC="Selecione o Navegador padrão. Lembre-se que a
seleção automática não é 100&#37; confiável. Usuários podem
selecionar outro navegador.."
RL_BUTTON_ICON="Ícone do Botão"
RL_BUTTON_ICON_DESC="Selecione qual ícone mostrar no botão"
RL_BUTTON_TEXT="Texto do Botão"
RL_BUTTON_TEXT_DESC="Este texto será mostrado no Botão do
Editor."
RL_CACHE_TIME="Tempo de Cache"
RL_CACHE_TIME_DESC="O comprimento máximo de tempo em minutos para um
arquivo de cache ser armazenado antes que seja atualizado. Deixe vazio para
usar a configuração global."
RL_CATEGORIES="Categorias"
RL_CATEGORIES_DESC="Selecione as categorias às quais deseja
atribuir."
; RL_CATEGORY="Category"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="Classe CSS"
RL_COLLAPSE="Retrair"
RL_COM="Componente"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Componentes"
RL_COMPONENTS_DESC="Atribuir aos componentes selecionados."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Conteudo"
RL_CONTENT_KEYWORDS="Palavras-chave do Conteúdo"
RL_CONTENT_KEYWORDS_DESC="Digite as palavras-chave encontradas no
conteúdo para atribuir. Use vírgulas para separar as
palavras-chave."
RL_CONTINENTS="Continentes"
RL_CONTINENTS_DESC="Selecione para atribuir os continentes."
RL_COOKIECONFIRM="Confirmar Cookies"
RL_COOKIECONFIRM_COOKIES="Permitir cookies"
RL_COOKIECONFIRM_COOKIES_DESC="Determine se os cookies são permitidos
ou proibidos, baseado na configuração de Confirmar Cookie (por
Twentronix) e a escolha do visitante em aceitar ou rejeitar cookies."
RL_COPY_OF="Cópia de %s"
RL_COPYRIGHT="Direitos Autorais"
RL_COUNTRIES="Países"
RL_COUNTRIES_DESC="Selecione para atribuir os países."
RL_CSS_CLASS="Classe (CSS)"
RL_CSS_CLASS_DESC="Defina o nome da classe CSS para propósitos de
estilo."
RL_CURRENT="Atual"
RL_CURRENT_DATE="Data/hora atuais:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Você está usando a versão %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Código personalizado"
RL_CUSTOM_CODE_DESC="Digite o código que o Botão Editor deve inserir
no conteúdo (em vez do código padrão)"
RL_CUSTOM_FIELD="Campo personalizado"
RL_CUSTOM_FIELDS="Campos Personalizados"
RL_DATE="Data"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Recorrente"
RL_DATE_RECURRING_DESC="Selecione para usar a faixa de datas todos os
anos. (Assim o ano na seleção será ignorado)"
RL_DATE_TIME="Data e Hora"
RL_DATE_TIME_DESC="As atribuições de data e hora utilizam a
data/hora de seus servidores e não a do sistema dos visitantes."
; RL_DATE_TO="To"
RL_DAYS="Dias da semana"
RL_DAYS_DESC="Selecione os dias da semana aos quais deseja
atribuir."
RL_DEFAULT_ORDERING="Ordenação Padrão"
RL_DEFAULT_ORDERING_DESC="Definir a ordem padrão para a lista de
itens"
RL_DEFAULT_SETTINGS="Configurações Padrão"
RL_DEFAULTS="Padrãões"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Direção"
RL_DIRECTION_DESC="Selecione a direção"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Desabilitar nos Componentes"
RL_DISABLE_ON_COMPONENTS_DESC="Selecione quais componentes de frontend
NÃO habiliatar para usar esta extensão."
RL_DISPLAY_EDITOR_BUTTON="Mostar Botão de Edição"
RL_DISPLAY_EDITOR_BUTTON_DESC="Selecione para mostrar um botão de
edição."
RL_DISPLAY_LINK="Exibir link"
RL_DISPLAY_LINK_DESC="Como você deseja que o link seja exibido?"
RL_DISPLAY_TOOLBAR_BUTTON="Mostar Botão da Barra de Ferramentas"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Selecione para mostrar um botão na
barra de ferramentas"
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Exibir Dica Flutuante"
RL_DISPLAY_TOOLTIP_DESC="Selecione para exibir a dica flutuante com
informações extras quando passar o mouse sobre o link/ícone."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Isso coloca o número da
ocorrência.<br>Se a pesquisa for encontrada, digamos, 4 vezes, a
contagem mostrará, respectivamente, de 1 a 4."
RL_DYNAMIC_TAG_DATE="Data usando %1$sphp strftime() format%2$s.
Exemplo:%3$s"
RL_DYNAMIC_TAG_ESCAPE="Use para escapar valores dinâmicos (adicione
aspas de citação)."
RL_DYNAMIC_TAG_LOWERCASE="Converter texto dentro das tags para
minúsculas."
RL_DYNAMIC_TAG_RANDOM="Um número aleatório dentro do intervalo
dado"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Uma string de idioma para traduzir em texto
(baseado no idioma ativo)"
RL_DYNAMIC_TAG_UPPERCASE="Converter texto dentro das tags para
maiúsculas."
RL_DYNAMIC_TAG_USER_ID="O número de identificação do usuário"
RL_DYNAMIC_TAG_USER_NAME="O nome do usuário"
RL_DYNAMIC_TAG_USER_OTHER="Quaisquer dados disponíveis do usuário ou
contato conectado. Exemplo: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="A tag 'user' coloca dados do
usuário conectado. Se o visitante não estiver conectado, a marca será
removida."
RL_DYNAMIC_TAG_USER_USERNAME="O nome de login do usuário"
RL_DYNAMIC_TAGS="Tags Dinâmicas"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Ativar"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Habilitar em"
RL_ENABLE_IN_ADMIN="Habilitar na administração"
RL_ENABLE_IN_ADMIN_DESC="Se habilitado, o plugin também funcionará
no lado de administração do site.<br><br>Normalmente você
não precisará disso. E isto pode causar efeitos indesejados, como
desacelerar a administração e as tags do plugin sendo manuseadas em
áreas indesejadas."
RL_ENABLE_IN_ARTICLES="Ativar em artigos"
RL_ENABLE_IN_COMPONENTS="Ativar em componentes"
RL_ENABLE_IN_DESC="Selecione se deseja habilitar no frontend, ou na
administração, ou em ambos."
RL_ENABLE_IN_FRONTEND="Habilitar no frontend"
RL_ENABLE_IN_FRONTEND_DESC="Se habilitado, ele também estará
disponível no frontend."
RL_ENABLE_OTHER_AREAS="Ativar em outras áreas"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Excluir"
RL_EXPAND="Expandir"
RL_EXPORT="Exportar"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Parâmetros Adicionais"
RL_EXTRA_PARAMETERS_DESC="Digite qualquer parâmetros adicionais que
não podem ser definidos com as configurações disponíveis"
RL_FALL="Outono"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nome do Campo"
RL_FIELD_PARAM_MULTIPLE="Múltiplo"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Valor do Campo"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="%s arquivos necessários não encontrados!"
RL_FILTERS="Filters"
RL_FINISH_PUBLISHING="Término da publicação"
RL_FINISH_PUBLISHING_DESC="Digite a data para encerrar a
publicação"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Para ter mais funcionalidades você pode comprar a
versão PRO."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="O Framework NoNumber não está sendo
usado por quaisquer outras extensões que você tem instaladas. É
provavelmente seguro desativar ou desinstalar este plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
RL_GALLERY="Galeria"
RL_GEO="Geolocalização"
RL_GEO_DESC="geolocalização não é sempre 100 &#37; precisa. A
localização geográfica é baseada no endereço IP do visitante. Nem
todos os endereços de IP são fixos ou conhecidos."
RL_GEO_GEOIP_COPYRIGHT_DESC="Este produto inclui dados do GeoLite2
criado por MaxMind, disponível de [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="A biblioteca GeoIP Regular Labs não está
instalada. Você precisa [[%1:link start%]]instalar a biblioteca GeoIP
Regular Labs [[%2:link end%]] para ser capaz de usar as atribuições de
Geolocalização."
RL_GO_PRO="Obtenha a versão Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="Acessos ascendente"
RL_HEADING_ACCESS_DESC="Acessos descendente"
RL_HEADING_CATEGORY_ASC="Categoria crescente"
RL_HEADING_CATEGORY_DESC="Categoria decrescente"
RL_HEADING_CLIENTID_ASC="Local ascendente"
RL_HEADING_CLIENTID_DESC="Local descendente"
RL_HEADING_COLOR_ASC="Cor ascendente"
RL_HEADING_COLOR_DESC="Cor descendente"
RL_HEADING_DEFAULT_ASC="Padrão ascendente"
RL_HEADING_DEFAULT_DESC="Padrão descendente"
RL_HEADING_DESCRIPTION_ASC="Descrição ascendente"
RL_HEADING_DESCRIPTION_DESC="Descrição descendente"
RL_HEADING_ID_ASC="ID ascendente"
RL_HEADING_ID_DESC="ID descendente"
RL_HEADING_LANGUAGE_ASC="Idioma ascendente"
RL_HEADING_LANGUAGE_DESC="Idioma descendente"
RL_HEADING_ORDERING_ASC="Ordem ascendente"
RL_HEADING_ORDERING_DESC="Ordem descendente"
RL_HEADING_PAGES_ASC="Itens de menu ascendente"
RL_HEADING_PAGES_DESC="Itens de menu descendente"
RL_HEADING_POSITION_ASC="Posição ascendente"
RL_HEADING_POSITION_DESC="Posição descendente"
RL_HEADING_STATUS_ASC="Status ascendente"
RL_HEADING_STATUS_DESC="Status descendente"
RL_HEADING_STYLE_ASC="Estilo ascendente"
RL_HEADING_STYLE_DESC="Estilo descendente"
RL_HEADING_TEMPLATE_ASC="Template ascendente"
RL_HEADING_TEMPLATE_DESC="Template descendente"
RL_HEADING_TITLE_ASC="Título ascendente"
RL_HEADING_TITLE_DESC="Título descendente"
RL_HEADING_TYPE_ASC="Tipo ascendente"
RL_HEADING_TYPE_DESC="Tipo Descendente"
RL_HEIGHT="Altura"
RL_HEMISPHERE="Hemisfério"
RL_HEMISPHERE_DESC="Selecione o hemisfério no qual este site está
localizado"
RL_HIGH="Alto"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Página Inicial"
RL_HOME_PAGE_DESC="Ao contrário de selecionar o item página inicial
(padrão) via Itens de Menu, isso corresponderá apenas à página inicial
real, e não qualquer URL que tenha o mesmo Itemid como o item de menu
home.<br><br>Isto pode não funcionar para todas as extensões
SEF de terceiros."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Somente Ícone"
RL_IGNORE="Ignorar"
RL_IMAGE="Imagem"
RL_IMAGE_ALT="Alt da Imagem"
RL_IMAGE_ALT_DESC="O valor Alt da imagem."
RL_IMAGE_ATTRIBUTES="Atributos da Imagem"
RL_IMAGE_ATTRIBUTES_DESC="Os atributos extra da imagem, como:
alt=&quot;Minha imagem&quot; width=&quot;300&quot;"
RL_IMPORT="Importar"
RL_IMPORT_ITEMS="Importar Itens"
RL_INCLUDE="Incluir"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Itemid não incluído"
RL_INCLUDE_NO_ITEMID_DESC="Atribuir mesmo quando nenhum Itemid estiver
definido na URL?"
RL_INITIALISE_EVENT="Inicializar no Evento"
RL_INITIALISE_EVENT_DESC="Defina o evento do Joomla interno no qual o
plugin deve ser inicializado. Apenas altere isso, se você tiver problemas
com o plugin não funcionar."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Inserir"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="Endereços / Faixa de IP"
RL_IP_RANGES_DESC="Um lista de endereços e faixas de IP separados por
vírugulas e/ou enter. Por
exemplo:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="Endereço IP"
RL_IS_FREE_VERSION="Esta é uma versão FREE do %s."
RL_ITEM="Item"
RL_ITEM_IDS="IDs do Itens"
RL_ITEM_IDS_DESC="Digite os IDs dos itens para atribuição. Use
vírgulas para separar os IDs."
RL_ITEMS="Itens"
RL_ITEMS_DESC="Selecionar itens para atribuir."
RL_JCONTENT="Conteudo Joomla!"
RL_JED_REVIEW="Gostou desta extensão? [[%1:start link%]]Deixe um
comentário no JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Você está usando uma versão para
Joomla 2.5 de %1$s no Joomla 3. Por favor, reinstale o %1$s para resolver o
problema."
RL_JQUERY_DISABLED="Você desabilitou o script jQuery. %s precisa do
jQuery para funcionar. Assegure-se de que seu template ou outras extensões
carreguem os scripts necessários para substituir a funcionalidade
exigida."
RL_K2="K2"
RL_K2_CATEGORIES="Categorias K2"
RL_LANGUAGE="Idioma"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Idiomas"
RL_LANGUAGES_DESC="Atribuir aos idiomas selecionados."
RL_LAYOUT="Layout"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Níveis"
RL_LEVELS_DESC="Selecione os níveis para atribuir."
RL_LIB="Biblioteca"
RL_LINK_TEXT="Texto do Link"
RL_LINK_TEXT_DESC="O texto que será exibido como link."
RL_LIST="Lista"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Carregar o Framework Bootstrap"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Desabilitar para não iniciar o
Framework Bootstrap."
RL_LOAD_JQUERY="Carregar Script jQuery"
RL_LOAD_JQUERY_DESC="Selecione para carregar o script jQuery de
núcleo. Você pode desabilitar isto se experimentar conflios caso seu
template ou outra extensão carregue sua própria versão do jQuery."
RL_LOAD_MOOTOOLS="Carregar MooTools"
RL_LOAD_MOOTOOLS_DESC="Selecione para carregar script MooTools. Você
poderá desativar isso, caso experimente conflitos com seu Template ou
outras extensões que carregam a própria versão do MooTools."
RL_LOAD_STYLESHEET="Carregar folha de estilos"
RL_LOAD_STYLESHEET_DESC="Marque essa opção caso deseje carregar o
estilo CSS. Você poderá desativar isso se você colocar todos os seus
estilos em outro documento CSS, como o CSS do Template."
RL_LOW="Baixo"
RL_LTR="Esquerda-para-Direita (LTR)"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Método de comparação"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Contagem Máxima da Lista"
RL_MAX_LIST_COUNT_DESC="O número máximo de elementos a serem
mostrados em listas multi-seleção. Se o número total de itens for maior,
o campo de seleção será mostrado como um campo de
texto.<br><br>Você pode configurar este número mais baixo se
experimentar cargas de páginas demoradas devido ao grande número de itens
em listas."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximizar"
RL_MEDIA_VERSIONING="Usar Versão da Mídia"
RL_MEDIA_VERSIONING_DESC="Selecione para adicionar o número da
versão da extensão até a url final da mídia (js / css), para fazer
navegadores forçar o carregamento do arquivo correto."
RL_MEDIUM="Médio"
RL_MENU_ITEMS="Item de Menu"
RL_MENU_ITEMS_DESC="Atribuir aos items de menu selecionados."
RL_META_KEYWORDS="Palavras-chave Meta"
RL_META_KEYWORDS_DESC="Digite as palavras-chave encontradas nas
palavras-chave meta para atribuir. Use vírgulas para separar as
palavras-chave."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimizar"
RL_MOBILE_BROWSERS="Navegadores Mobile"
RL_MOD="Módulo"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Meses"
RL_MONTHS_DESC="Selecione os meses aos quais deseja atribuir."
RL_MORE_INFO="Mais informações"
RL_MY_STRING="Minha string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d itens atualizados"
RL_N_ITEMS_UPDATED_1="Um item foi atualizado"
RL_NEW_CATEGORY="Criar Nova Categoria"
RL_NEW_CATEGORY_ENTER="Digite um novo nome de categoria."
RL_NEW_VERSION_AVAILABLE="Uma nova versão está disponível"
RL_NEW_VERSION_OF_AVAILABLE="Uma nova versão de %s está
disponível."
RL_NO_ICON="Sem ícone"
RL_NO_ITEMS_FOUND="Nenhum item encontrado."
RL_NORMAL="Normal"
RL_NORTHERN="Norte"
RL_NOT="Não"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Somente"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Somente disponível na versão
PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Apenas disponível na versão
PRO)"
RL_ONLY_VISIBLE_TO_ADMIN="Esta mensagem será exibida somente para
(Super) Administratores."
RL_OPTION_SELECT="- Selecionar -"
RL_OPTION_SELECT_CLIENT="- Selecionar Cliente -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Sistemas Operacionais"
RL_OS_DESC="Selecione os sistemas operacionais aos quais atribuir.
Lembre-se que a detecção de sistemas operacionais nunca é 100&#37;
prova d'água. Os usuários podem configurar seu navegador para imitar
outros sistemas operacionais."
; RL_OTHER="Other"
RL_OTHER_AREAS="Outras Áreas"
RL_OTHER_OPTIONS="Outras Opções"
RL_OTHER_SETTINGS="Outras Configurações"
RL_OTHERS="Outros"
RL_PAGE_TYPES="Tipos de página"
RL_PAGE_TYPES_DESC="Selecione em que tipos de páginas a atribuição
deve ser aplicada."
RL_PHP="PHP Customizado"
RL_PHP_DESC="Digite um pequeno código PHP para avaliar. O código
deve retornar o valor true or false (VERDADEIRO ou
FALSO).<br><br>Por
exemplo:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Colocar comentários HTML"
RL_PLACE_HTML_COMMENTS_DESC="Por padrão os comentários HTML são
colocados ao redor da saída do esta extensão.<br><br>These
comments can help you troubleshooting when you don't get the output
you expect.<br><br>Caso prefira não ter esses comentários no
seu HTML, desative esta opção."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Plugin Botão do Editor"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Plugin de Sistema"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Código Postal"
RL_POSTALCODES_DESC="Uma lista separada por vírgulas de códigos
postais (12345) ou intervalo de códigos postais
(12300-12500).<br>Isto apenas pode ser usado para [[%1:start
link%]]um número limitado de países e endereços de IP[[%2:end
link%]]."
RL_POWERED_BY="Fornecido por %s"
RL_PRODUCTS="Produto"
RL_PUBLISHED_DESC="Você pode usar isto para (temporariamente)
desabilitar este item."
RL_PUBLISHING_ASSIGNMENTS="Publicando Atributos"
RL_PUBLISHING_SETTINGS="Publicar ítens"
RL_RANDOM="Aleatório"
RL_REDSHOP="RedShop"
RL_REGEX="Expressões Regulares"
RL_REGIONS="Regiões / Estados"
RL_REGIONS_DESC="Selecione para atribuir as regiões / Estados."
RL_REGULAR_EXPRESSIONS="Use expressões regulares"
RL_REGULAR_EXPRESSIONS_DESC="Selecione para tratar o valor como
expressões regulares."
RL_REMOVE_IN_DISABLED_COMPONENTS="Remover em
Componentes<br>Desativados"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Se selecionado, a síntaxe do
plugin será removida do componente. Se não, a síntaxe do plugin original
permanecerá no intacto."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Cortar"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Pasta"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Direita-para-Esquerda (RTL)"
RL_SAVE_CONFIG="Após salvar as Opções não mais haverá pop up no
carregamento da página."
RL_SEASONS="Estações"
RL_SEASONS_DESC="Selecione as estações às quais deseja
atribuir."
RL_SELECT="Selecionar"
RL_SELECT_A_CATEGORY="Selecione uma Categoria"
RL_SELECT_ALL="Marcar tudo"
RL_SELECT_AN_ARTICLE="Selecione um Artigo"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Selecionado"
RL_SELECTION="Seleção"
RL_SELECTION_DESC="Selecione para incluir ou excluir a seleção para
a
atribuição.<br><br><strong>Incluir</strong><br>Publicar
apenas na
seleção.<br><br><strong>Excluir</strong><br>Publicar
em todos os lugares exceto na seleção."
RL_SETTINGS_ADMIN_MODULE="Opções Módulo Administrador"
RL_SETTINGS_EDITOR_BUTTON="Opções do Botão de Editor"
RL_SETTINGS_SECURITY="Configurações de Segurança"
RL_SHOW_ASSIGNMENTS="Exibir Atribuições"
RL_SHOW_ASSIGNMENTS_DESC="Selecione se para apenas exibir as
atribuições selecionadas. Você pode usar isso para obter um
visualização limpa das atribuições ativas."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Todos os tipos de atribuições
não selecionados estão neste momento ocultos da visualização."
RL_SHOW_COPYRIGHT="Costrar Direito de Cópia"
RL_SHOW_COPYRIGHT_DESC="Se selecionado, informações adicionais de
direito de cópia serão mostradas em vistas administrativas. As extensões
Regular Labs nunca mostram informações de direito de cópia ou backlinks
no frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Mostrar ícone do botão"
RL_SHOW_ICON_DESC="Se selecionado, o ícone será mostrado no Botão
do Editor."
RL_SHOW_UPDATE_NOTIFICATION="Mostrar Notificação de
Atualização"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Se selecionado, uma notificação de
atualização será mostrada na visão principal do componente quando
houver uma nova versão para esta extensão."
RL_SIMPLE="Simples"
RL_SLIDES="Slides"
RL_SOUTHERN="Sul"
; RL_SPECIFIC="Specific"
RL_SPRING="Primavera"
RL_START="Iniciar"
RL_START_PUBLISHING="Início da publicação"
RL_START_PUBLISHING_DESC="Digite a data para iniciar a
publicação"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Tirar Tags Circundante"
RL_STRIP_SURROUNDING_TAGS_DESC="Selecione para sempre remover tags
html (div, p, span) em torno da tag do plugin. Se desligado, o plugin
tentará remover as tags que quebram a estrutura html (como p dentro de
tags p)."
RL_STYLING="Estilização"
RL_SUMMER="Verão"
RL_TABLE_NOT_FOUND="%s tabela(s) do banco de dados não
encontrada(s)!"
RL_TABS="Abas"
RL_TAG_CHARACTERS="Caracteres Tag"
RL_TAG_CHARACTERS_DESC="Os caracteres em torno da síntaxe da
tag.<br><br><strong>Nota:</strong> Se você alterar
isso, todas as tags existentes não funcionarão mais."
RL_TAG_SYNTAX="Sintaxe de Tag"
RL_TAG_SYNTAX_DESC="A palavra a ser usada nas
tags.<br><br><strong>Nota:</strong> Se você
alterar isso, todas as tags existentes não funcionarão mais."
RL_TAGS="Tags"
RL_TAGS_DESC="Digite as tags para atribuição. Use vírgulas para
separar as tags."
RL_TEMPLATES="Templates"
RL_TEMPLATES_DESC="Atribuir aos templates selecionados."
RL_TEXT="Texto"
RL_TEXT_HTML="Texto (HTML)"
RL_TEXT_ONLY="Somente texto"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Esta extensão
precisa de %s para funcionar correctamente!"
RL_TIME="Hora"
RL_TIME_FINISH_PUBLISHING_DESC="Digite a hora de término da
publicação.<br><br><strong>Formato:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Digite a hora de início da
publicação.<br><br><strong>Formato:</strong>
23:59"
RL_TOGGLE="Alternar"
RL_TOOLTIP="Dica"
RL_TOP="Topo"
RL_TOTAL="Total"
RL_TYPES="Tipos"
RL_TYPES_DESC="Tipos de itens"
RL_UNSELECT_ALL="Desmarcar tudo"
RL_UNSELECTED="Não selecionados"
RL_UPDATE_TO="Atualize para a versão %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Comparar URL"
RL_URL_PARTS_DESC="A URL não-SEF será utilizada para
comparação.<br>Use uma nova linha para cada correspondência
diferente."
RL_URL_PARTS_REGEX="Partes da URL serão comparadas com o uso de
expressões regulares. <strong>Portanto, verifique se a sequência de
caracteres usa uma sintaxe de expressão regular
válida</strong>."
RL_USE_CONTENT_ASSIGNMENTS="Para atribuições de categoria &
artigo (item), ver a seção de Conteúdo Joomla acima."
RL_USE_CUSTOM_CODE="Usar código personalizado"
RL_USE_CUSTOM_CODE_DESC="Se selecionado, o Botão Editor irá inserir
o código personalizado fornecido."
RL_USE_SIMPLE_BUTTON="Usar Botão Simples"
RL_USE_SIMPLE_BUTTON_DESC="Selecione para usar um botão de inserção
simples, que simplesmente insere alguma sintaxe de exemplo dentro do
editor."
RL_USER_GROUP_LEVELS="Níveis de grupo de usuário"
RL_USER_GROUPS="Grupos de Usuários"
RL_USER_GROUPS_DESC="Selecione os grupos de usuários para os quais
deseja atribuir."
RL_USER_IDS="IDs dos usuários"
RL_USER_IDS_DESC="Digite os IDs dos usuários para os quais deseja
atribuir. Use vírgula para separar os IDs."
RL_USERS="Usuários"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Exibição"
RL_VIEW_DESC="Selecione o modo de exibição padrão que deve ser
usado ao criar um novo item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Largura"
RL_WINTER="Inverno"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categorias ZOO"
PK�X�[=�P[hh?regularlabs/language/pt-BR/pt-BR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizados pelas
extensões Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[O��Xw�w�;regularlabs/language/ro-RO/ro-RO.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizat de
extensiile Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Extensiile Regular Labs au
nevoie de acest plugin şi nu vor funcţiona corect fără
el.<br><br>Extensiile Regular Labs
includ:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Nu şterge sau dezactiva acest
plugin dacă utilizezi orice extensie Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxa etichetei"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descriere"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descriere"
; COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
; COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
Module Options"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Optiuni buton
editor"
; COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security
Options"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setare"
; COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxa etichetei"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Instalează"
RL_ACTION_UNINSTALL="Dezinstalare"
RL_ACTION_UPDATE="Actualizare"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
; RL_ADVANCED="Advanced"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="TOATE"
RL_ALL_DESC="Va fi publicat dacă <strong>TOATE</strong>
criteriile de mai jos sunt îndeplinite."
RL_ALL_RIGHTS_RESERVED="Toate drepturile rezervate"
RL_ALSO_ON_CHILD_ITEMS="De asemenea asupra elementelor-copil"
RL_ALSO_ON_CHILD_ITEMS_DESC="Asignare si a elementelor-copil a
elementelor selectate?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="ORICARE"
RL_ANY_DESC="Va fi publicat dacă <strong>ORICARE</strong>
(una sau mai multe) dintre asignările de mai jos se
potrivesc.<br>Grupurile de asignări unde 'Ignore' este
selectat vor fi ignorate."
RL_ARE_YOU_SURE="Eşti sigur?"
RL_ARTICLE="Articol"
; RL_ARTICLE_AUTHORS="Authors"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Articole"
; RL_ARTICLES_DESC="Select the articles to assign to."
; RL_AS_EXPORTED="As exported"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Australia"
; RL_AUTHORS="Authors"
RL_AUTO="Auto"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
; RL_BEHAVIOR="Behaviour"
; RL_BEHAVIOUR="Behaviour"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Ambele"
RL_BOTTOM="Sub listă"
RL_BROWSERS="Browsere"
RL_BROWSERS_DESC="Selectează browserele pentru care se va face
asignarea. Nu uita că detectarea browserelor poate să nu aibă acurateţe
100&#37;. Utilizatorii pot sa-şi seteze browserul sa imite alte
broswere."
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Text Buton"
RL_BUTTON_TEXT_DESC="Acest text va aparea pe butonul de editare."
; RL_CACHE_TIME="Cache Time"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Categorii"
RL_CATEGORIES_DESC="Selectează categoriile pentru care va fi
efectuată asignarea."
; RL_CATEGORY="Category"
RL_CHANGELOG="Istoric modificări"
RL_CLASSNAME="Clasă CSS"
; RL_COLLAPSE="Collapse"
RL_COM="Componentă"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Componente"
RL_COMPONENTS_DESC="Selectează componentele pentru care va fi
efectuată asignarea."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Continut"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
; RL_COPY_OF="Copy of %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Țări"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
; RL_CURRENT_DATE="Current date/time:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Versiunea ta curentă este %s"
; RL_CUSTOM="Custom"
; RL_CUSTOM_CODE="Custom Code"
; RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert
into the content (instead of the default code)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Câmpuri personalizate"
RL_DATE="Data"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Data & ora"
RL_DATE_TIME_DESC="Asignarea după dată şi oră se va face ţinând
cont de data şi ora serverului nu a sistemelor vizitatorilor.."
; RL_DATE_TO="To"
RL_DAYS="Zile din săptămână"
RL_DAYS_DESC="Selectează zilele din săptămână pentru care va fi
efectuată asignarea."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobil"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
; RL_DIRECTION="Direction"
; RL_DIRECTION_DESC="Select the direction"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Dezactiveaza la Componente"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Arată link"
RL_DISPLAY_LINK_DESC="Cum vrei să fie afişat link-ul?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Afiseaza sfaturi"
RL_DISPLAY_TOOLTIP_DESC="Selectează pentru a afişa un mai multe
informaţii când mouse-ul trece deasupra linkului/iconiţei."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Activeaza"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Permis in articole"
RL_ENABLE_IN_COMPONENTS="Permis in componente"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Activeaza in fata"
RL_ENABLE_IN_FRONTEND_DESC="Daca este activat, acesta va fi afisat si
in fata."
RL_ENABLE_OTHER_AREAS="Permis in alte zone"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
; RL_EXCLUDE="Exclude"
; RL_EXPAND="Expand"
RL_EXPORT="Export"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Toamna"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Nume câmp"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Filtre"
RL_FINISH_PUBLISHING="Terminarea publicării"
RL_FINISH_PUBLISHING_DESC="Introdu data la care se va termina
publicarea"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
; RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO
version."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
; RL_FRONTEND="Frontend"
; RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
; RL_GO_PRO="Go Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Inaltime"
RL_HEMISPHERE="Emisfera"
RL_HEMISPHERE_DESC="Selectează emisfera în care este localizat
site-ul tău"
RL_HIGH="Mare"
RL_HIKASHOP="HikaShop"
; RL_HOME_PAGE="Home Page"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Doar iconiţă"
; RL_IGNORE="Ignore"
RL_IMAGE="Imagine"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Import din fisier"
; RL_IMPORT_ITEMS="Import Items"
; RL_INCLUDE="Include"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Nu include nici un element"
RL_INCLUDE_NO_ITEMID_DESC="Asignezi şi dacă nu este setat în URL
nici un Itemid?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
; RL_INSERT="Insert"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
; RL_IS_FREE_VERSION="This is the FREE version of %s."
RL_ITEM="Obiect"
; RL_ITEM_IDS="Item IDs"
; RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to
separate the ids."
RL_ITEMS="Elemente"
; RL_ITEMS_DESC="Select the items to assign to."
; RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="Categorii K2"
RL_LANGUAGE="Limbă"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Limbi"
RL_LANGUAGES_DESC="Selectază limbile pentru care va fi efectuată
asignarea."
RL_LAYOUT="Formă exterioară"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
; RL_LEVELS="Levels"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="Legătură text"
RL_LINK_TEXT_DESC="Textul care va fi afişat ca şi link."
RL_LIST="Lista"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Porneste Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Selecteaza pentru a pornii scriptul MooTools.
Poti sa dezactivezi daca apar conflicte cu alte extensii sau folosesc
versiunea lor de MooTools in tema sitului."
; RL_LOAD_STYLESHEET="Load Stylesheet"
; RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet.
You can disable this if you place all your own styles in some other
stylesheet, like the templates stylesheet."
RL_LOW="Scăzut"
; RL_LTR="Left-to-Right"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Metoda de potrivire"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
; RL_MAXIMIZE="Maximize"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Mediu"
RL_MENU_ITEMS="Elemente de meniu"
RL_MENU_ITEMS_DESC="Selectează elementele de meniu pentru care va fi
efectuată asignarea."
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
; RL_MINIMIZE="Minimize"
; RL_MOBILE_BROWSERS="Mobile Browsers"
; RL_MOD="Module"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Luni"
RL_MONTHS_DESC="Selectează lunile pentru care va fi efectuată
asignarea."
RL_MORE_INFO="Mai multe informaţii"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
; RL_N_ITEMS_UPDATED="%d items updated."
; RL_N_ITEMS_UPDATED_1="One item has been updated"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="O nouă versiune este disponibilă"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
RL_NO_ITEMS_FOUND="Nu s-a găsit niciun produs."
; RL_NORMAL="Normal"
RL_NORTHERN="Nordică"
; RL_NOT="Not"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Doar"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
; RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO
version!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="Acest mesaj va fi afişat doar membrilor
grupurilor (Super) Administrators."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
; RL_OS="Operating Systems"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="Alte Zone"
; RL_OTHER_OPTIONS="Other Options"
RL_OTHER_SETTINGS="Alte setari"
RL_OTHERS="Alţii"
RL_PAGE_TYPES="Tipuri de pagină"
RL_PAGE_TYPES_DESC="Selectează pentru care tipuri de pagină ar
trebui să fie activă asignarea."
; RL_PHP="Custom PHP"
RL_PHP_DESC="Introdu o bucată de cod PHP pentru evaluare. Codul
trebuie să returneze valoarea Adevărat sau Fals.<br><br>De
exemplu:<br><br>returnează ( $user->name == 'Peter van
Westen' );"
RL_PLACE_HTML_COMMENTS="Insereaza comentarii HTML"
RL_PLACE_HTML_COMMENTS_DESC="Implicit, comentariile HTML sunt adaugate
in jurul lui această extensie.<br><br>Aceste comentarii va pot
ajuta atunci cand nu obtineti rezultatul dorit.<br><br>Daca
preferati neutilizarea acestor comentarii in fisierul HTML rezultat, puneti
aceasta optiune pe off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
; RL_PLG_EDITORS-XTD="Editor Button Plugin"
; RL_PLG_FIELDS="Field Plugin"
; RL_PLG_SYSTEM="System Plugin"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Produse"
; RL_PUBLISHED_DESC="You can use this to (temporarily) disable this
item."
RL_PUBLISHING_ASSIGNMENTS="Asignări în vederea publicării"
; RL_PUBLISHING_SETTINGS="Publish items"
; RL_RANDOM="Random"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Folder"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
; RL_RTL="Right-to-Left"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Anotimpuri"
RL_SEASONS_DESC="Selectează anotimpurile pentru care se efectuează
asignarea."
RL_SELECT="Selectează"
; RL_SELECT_A_CATEGORY="Select a Category"
; RL_SELECT_ALL="Select all"
RL_SELECT_AN_ARTICLE="Selectează un articol"
; RL_SELECT_FIELD="Select Field"
; RL_SELECTED="Selected"
RL_SELECTION="Selecţie"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
; RL_SETTINGS_ADMIN_MODULE="Administrator Module Options"
RL_SETTINGS_EDITOR_BUTTON="Optiuni buton editor"
; RL_SETTINGS_SECURITY="Security Options"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Arata icoana pe buton"
RL_SHOW_ICON_DESC="Daca este selectat, icoana va aparea in butonul de
editare."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Simplu"
; RL_SLIDES="Slides"
RL_SOUTHERN="Sudică"
; RL_SPECIFIC="Specific"
RL_SPRING="Primăvara"
RL_START="Început"
RL_START_PUBLISHING="Start publicare"
RL_START_PUBLISHING_DESC="Introdu data de când se va face
publicarea"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
; RL_STYLING="Styling"
RL_SUMMER="Vara"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
; RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Sintaxa etichetei"
RL_TAG_SYNTAX_DESC="Cuvantul utilizat in
tag.<br><br><strong>Nota:</strong> Daca-l
schimbati, toate tagurile existente nu vor mai functiona."
RL_TAGS="Tags"
; RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate
the tags."
RL_TEMPLATES="Şabloane"
RL_TEMPLATES_DESC="Selectează şabloanele pentru care va fi
efectuată asignarea."
; RL_TEXT="Text"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Doar text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Această
extensie are nevoie de %s pentru a funcţiona corect!"
RL_TIME="Timp"
RL_TIME_FINISH_PUBLISHING_DESC="Introdu ora la care se va încheia
publicarea.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Introdu ora de start pentru
pulicare.<br><br><strong>Format:</strong>
23:59"
; RL_TOGGLE="Toggle"
; RL_TOOLTIP="Tooltip"
RL_TOP="Deasupra listei"
RL_TOTAL="Total"
RL_TYPES="Tip"
; RL_TYPES_DESC="Select the types to assign to."
; RL_UNSELECT_ALL="Unselect All"
; RL_UNSELECTED="Unselected"
; RL_UPDATE_TO="Update to version %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Potriviri URL"
RL_URL_PARTS_DESC="Introdu (porţiuni de) URL-uri pentru
potrivire.<br>Foloseşte o linie noup pentru fiecare potrivire
diferită."
RL_URL_PARTS_REGEX="Porţiunile de URL vor fi analizate utilizând
expresii regulate. <strong>Deci asigură-te că şirul introdus
foloseşte sintaxă validă pentru expresii regulate.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
; RL_USE_CUSTOM_CODE="Use Custom Code"
; RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert
the given custom code instead."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Grupuri de utilizatori"
; RL_USER_GROUPS="User Groups"
; RL_USER_GROUPS_DESC="Select the user groups to assign to."
RL_USER_IDS="ID-urile utilizatorilor"
RL_USER_IDS_DESC="Introdu ID-urile utilizatorilor pentru care va fi
efectuată asignarea. Foloseşte virgula pentru a separa ID-urile."
RL_USERS="Utilizatori"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Arată"
; RL_VIEW_DESC="Select what default view should be used when creating
a new item."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Latime"
RL_WINTER="Iarna"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Categorii ZOO"
PK�X�[�y�cc?regularlabs/language/ro-RO/ro-RO.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizat de
extensiile Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�
��I�I�;regularlabs/language/ru-RU/ru-RU.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
библиотека, используемая всеми
расширениями Regular Labs"
REGULAR_LABS_LIBRARY="Библиотека Regular Labs"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Расширениям
Regular Labs необходим этот
плагин.<br><br>Расширения Regular Labs
это:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Не удаляйте и не
отключайте этот плагин, если вы
используете хотя бы одно расширение Regular
Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Синтаксис
тегов"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Описание"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Описание"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Поведение"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Настройки
по умолчанию"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Медиа"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Параметры
административного модуля"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Настроки
кнопки редактора"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Настройки
безопасности"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Настройки"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Оформление"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Синтаксис
тегов"

RL_ACCESS_LEVELS="Уровни доступа"
RL_ACCESS_LEVELS_DESC="Выберите уровни доступа,
для которых расширение будет активно."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Установить"
RL_ACTION_UNINSTALL="Удалить"
RL_ACTION_UPDATE="Обновить"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Продвинутый"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ВСЕ"
RL_ALL_DESC="Расширение будет активно
(опубликовано), если <strong>сразу
все</strong> условия, перечисленные
ниже<br>будут соблюдены."
RL_ALL_RIGHTS_RESERVED="Все права защищены"
RL_ALSO_ON_CHILD_ITEMS="Также и в дочерних
элементах"
RL_ALSO_ON_CHILD_ITEMS_DESC="Также включить
расширение для дочерних элементов
выбранного?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Дочерние
элементы относятся к фактическим
подпунктам в выбранном выше элементе.
Они не относятся к ссылкам на выбранных
страницах."
RL_ANY="ЛЮБОЕ"
RL_ANY_DESC="Расширение будет активно, если
<strong>хотя бы одно из</strong> (или
несколько) условий,
перечисленные<br>ниже, будут
соблюдены.<br>При этом условия, имеющие
значения 'Всегда' будут
проигнорированы."
RL_ARE_YOU_SURE="Вы уверены?"
RL_ARTICLE="Материал"
RL_ARTICLE_AUTHORS="Авторы"
RL_ARTICLE_AUTHORS_DESC="Выберите авторов, для
которых расширение будет активно."
RL_ARTICLES="Материалы"
RL_ARTICLES_DESC="Выберите материалы, для
которых расширение будет активно."
RL_AS_EXPORTED="Как при экспорте"
RL_ASSIGNMENTS="Assignments"
RL_ASSIGNMENTS_DESC="Выбирая определённые
привязки, вы можете ограничивать где
следует или не следует опубликовывать
%s.<br>Для его публикации на всех
страницах просто не указывайте никаких
привязок."
RL_AUSTRALIA="Австралия"
RL_AUTHORS="Авторы"
RL_AUTO="Автоматически"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Поведение"
RL_BEHAVIOUR="Поведение"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Вы отключили
инициализацию Bootstrap Framework. Для работы %s
нужен Bootstrap Framework. Убедитесь в том, что Ваш
шаблон или другое расширение загрузило
нужные скрипты для замены требуемой
функциональности."
RL_BOTH="Оба"
RL_BOTTOM="Внизу"
RL_BROWSERS="Интернет-обозреватели"
RL_BROWSERS_DESC="Выберите обозреватели, в
которых будет активно данное расширение.
Однако, помните, что распознавание
интернет-обозревателей не всегда 100&#37;
гарантировано. Пользователи могут
настроить свои браузеры так, что они
будут маскироваться под другие
обозреватели."
RL_BUTTON_ICON="Значок кнопки"
RL_BUTTON_ICON_DESC="Выберите, какой значок
отображать на кнопке."
RL_BUTTON_TEXT="Текст на кнопке"
RL_BUTTON_TEXT_DESC="Этот текст будет выведен
на кнопке в редакторе."
RL_CACHE_TIME="Время кэширования"
RL_CACHE_TIME_DESC="Максимальный промежуток
времени в минутах для хранения файла
кэша до его обновления. Оставьте пустым,
чтобы использовать глобальные
настройки."
RL_CATEGORIES="Категории"
RL_CATEGORIES_DESC="Выберите категории, в
которых будет активно данное
расширение."
; RL_CATEGORY="Category"
RL_CHANGELOG="Изменения"
RL_CLASSNAME="CSS класс"
RL_COLLAPSE="Свернуть"
RL_COM="Компонент"
RL_COMBINE_ADMIN_MENU="Комбинированное меню
администратора"
RL_COMBINE_ADMIN_MENU_DESC="Включите, что бы
скомпоновать все компоненты Regular Labs - в
отдельное под-меню в меню
администратора."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Компоненты"
RL_COMPONENTS_DESC="Выберите компоненты, для
которых расширение будет активно."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Материалы"
RL_CONTENT_KEYWORDS="Ключевые слова
содержимого"
RL_CONTENT_KEYWORDS_DESC="Введите ключевые слова
в содержании, по которым следует
включать данное расширение. Используйте
запятые для разделения ключевых слов."
RL_CONTINENTS="Континеты"
RL_CONTINENTS_DESC="Выберите континенты, для
которых расширение будет активно."
RL_COOKIECONFIRM="Подтверждения Cookie"
RL_COOKIECONFIRM_COOKIES="Разрешены Cookies"
RL_COOKIECONFIRM_COOKIES_DESC="Указывает на
возможность или не возможность
использования Cookies, основываясь на
настройках подтверждения Cookie (от Twentronix) и
выборе пользователя о принятии или
отклонении cookies."
RL_COPY_OF="Копия %s"
RL_COPYRIGHT="Авторские права"
RL_COUNTRIES="Страны"
RL_COUNTRIES_DESC="Выберите страны, для
которых расширение будет активно."
RL_CSS_CLASS="Класс (CSS)"
RL_CSS_CLASS_DESC="Определите имя класса css для
целей стилизации."
RL_CURRENT="Сейчас"
RL_CURRENT_DATE="Текущая дата/время:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Установленная версия: %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Собственный код"
RL_CUSTOM_CODE_DESC="Введите свой код, который
будет вставлен в редактор при нажатии на
кнопку (вместо кода по умолчанию)."
RL_CUSTOM_FIELD="Настраиваемое поле"
RL_CUSTOM_FIELDS="Настраиваемые поля"
RL_DATE="Дата"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Повторяющийся"
RL_DATE_RECURRING_DESC="Выберите данную опцию
для соотношения выбранной даты с текущим
годом. (Выбранный в списке год будет
проигнорирован)"
RL_DATE_TIME="Дата и время"
RL_DATE_TIME_DESC="Дата и время указанное
здесь - это дата и время сервера, на
котором расположен ваш сайта, а НЕ дата и
время у посетителей вашего сайта."
; RL_DATE_TO="To"
RL_DAYS="Дни недели"
RL_DAYS_DESC="Выберите дни недели, в течение
которых будет активно данное
расширение."
RL_DEFAULT_ORDERING="Порядок сортировки по
умолчанию"
RL_DEFAULT_ORDERING_DESC="Выберите порядок
сортировки элементов по умолчанию"
RL_DEFAULT_SETTINGS="Настройки по умолчанию"
RL_DEFAULTS="По умолчанию"
RL_DEVICE_DESKTOP="Десктоп"
RL_DEVICE_MOBILE="Мобильный"
RL_DEVICE_TABLET="Планшет"
RL_DEVICES="Устройства"
RL_DEVICES_DESC="Выберите устройства, для
которых расширение будет активно.
Однако, помните, что распознавание
устройств не всегда 100&#37;
гарантировано. Пользователи могут
настроить свои устройства так, что они
будут маскироваться под другие"
RL_DIRECTION="Направление"
RL_DIRECTION_DESC="Выберите направление"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Выберите, в каких
компонентах администратора НЕ ВКЛЮЧАТЬ
использование данного расширения."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Выберите, в каких
компонентах НЕ ВКЛЮЧАТЬ использование
данного расширения."
RL_DISABLE_ON_COMPONENTS="Отключить в
компонентах"
RL_DISABLE_ON_COMPONENTS_DESC="Выберите, в каких
компонентах фронтенда НЕ использовать
это расширение."
RL_DISPLAY_EDITOR_BUTTON="Отображать кнопку
редактора"
RL_DISPLAY_EDITOR_BUTTON_DESC="Включите, для
отображения кнопки в редакторе."
RL_DISPLAY_LINK="Показать ссылку"
RL_DISPLAY_LINK_DESC="Как вы хотите показывать
ссылку?"
RL_DISPLAY_TOOLBAR_BUTTON="Отображать кнопку на
панели управления"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Включите, для
отображения кнопки на панели
управления."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Отображать подсказку"
RL_DISPLAY_TOOLTIP_DESC="Включите, чтобы
появлялась подсказка с дополнительной
информацией, когда мышь находится над
ссылкой/значком."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Счетчик обнаруженных
соответствий.<br>Если, например, фраза
найдена 4 раза, то счетчик будет
принимать последовательно значения от 1
до 4."
RL_DYNAMIC_TAG_DATE="Дата %1$s в формате
php-функции strftime() %2$s. Например: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Используйте для
исключения динамических значений
(добавьте косую слэш к кавычкам)"
RL_DYNAMIC_TAG_LOWERCASE="Преобразование текста
внутри тегов в нижний регистр."
RL_DYNAMIC_TAG_RANDOM="Случайное число в
указанном диапазоне"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
RL_DYNAMIC_TAG_UPPERCASE="Преобразование текста
внутри тегов в верхний регистр."
RL_DYNAMIC_TAG_USER_ID="Идентификатор
пользователя"
RL_DYNAMIC_TAG_USER_NAME="Имя пользователя"
RL_DYNAMIC_TAG_USER_OTHER="Любая другая
информация о пользователе или
соединеннoм контакте. Например:
[[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Теги пользователя
заполняются данными текущего
пользователя, вошедшего под своим
логином на сайт. Если посетитель не
зарегистрирован и не авторизован на
сайте, теги пользователя будут пусты."
RL_DYNAMIC_TAG_USER_USERNAME="Логин
пользователя"
RL_DYNAMIC_TAGS="Динамические теги"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Разрешить"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Включить в"
RL_ENABLE_IN_ADMIN="Включить в
административной части"
RL_ENABLE_IN_ADMIN_DESC="Если включить данную
опцию, то плагин будет работать и в
административной части
сайта.<br><br>Как правило, Вам это не
нужно. И это может привести к
нежелательным последствиям, например, к
замедлению работы административной
части и активизации плагинов там, где вам
это не нужно."
RL_ENABLE_IN_ARTICLES="Разрешить в
материалах"
RL_ENABLE_IN_COMPONENTS="Разрешить в
компонентах"
RL_ENABLE_IN_DESC="Выберите, включать во
фронтенде, административной частях или и
там и там."
RL_ENABLE_IN_FRONTEND="Включить во фронтенде"
RL_ENABLE_IN_FRONTEND_DESC="Если включено, то будет
включено во фронтенде."
RL_ENABLE_OTHER_AREAS="Разрешить в других
местах"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Исключить"
RL_EXPAND="Развернуть"
RL_EXPORT="Экспорт"
RL_EXPORT_FORMAT="Формат экспорта"
RL_EXPORT_FORMAT_DESC="Выберите формат для файла
экспорта."
RL_EXTRA_PARAMETERS="Дополнительные
параметры"
RL_EXTRA_PARAMETERS_DESC="Введите дополнительные
параметры, которые нельзя установить с
помощью доступных настроек"
RL_FALL="Осень"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Название поля"
RL_FIELD_PARAM_MULTIPLE="Несколько"
RL_FIELD_PARAM_MULTIPLE_DESC="Разрешить выбор
несколько значений."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Значение поля"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Запрашиваемый файл %s не
найден!"
RL_FILTERS="Фильтры"
RL_FINISH_PUBLISHING="Окончание публикации"
RL_FINISH_PUBLISHING_DESC="Укажите дату
деактивации расширения"
RL_FIX_HTML="Починить HTML"
RL_FIX_HTML_DESC="Выберите, чтобы позволить
расширению исправить все найденные
проблемы структуры HTML. Часто это
необходимо для исправления проблем с
окружающими тегами
HTML.<br><br>Включайте, только если у
вас без этого возникают проблемы."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Для получения
дополнительных возможностей, вы можете
приобрести PRO-версию расширения."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="Библиотека NoNumber Framework,
похоже, не используется никакими другими
расширениями, которые у вас установлены.
Вероятно, можно безопасно отключить или
удалить этот плагин."
; RL_FROM_TO="From-To"
RL_FRONTEND="Фронтенд"
RL_GALLERY="Фото галерея"
RL_GEO="Геолокация"
RL_GEO_DESC="Геолокация не всегда 100&#37;
точная. Геолокация основывается на IP
адресе посетителя. Не все IP адреса
фиксированные или известные."
RL_GEO_GEOIP_COPYRIGHT_DESC="Этот продукт включает
данные GeoLite2, созданные MaxMind и доступные
здесь: [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Не установлена
библиотека Regular Labs GeoIP. Вам необходимо
[[%1:link start%]]установить библиотеку Regular Labs
GeoIP[[%2:link end%]], что бы иметь возможность
включения расширений по геолокации."
RL_GO_PRO="Переходи на PRO!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Заголовок 1"
RL_HEADING_2="Заголовок 2"
RL_HEADING_3="Заголовок 3"
RL_HEADING_4="Заголовок 4"
RL_HEADING_5="Заголовок 5"
RL_HEADING_6="Заголовок 6"
RL_HEADING_ACCESS_ASC="Доступ по возрастанию"
RL_HEADING_ACCESS_DESC="Доступ по убыванию"
RL_HEADING_CATEGORY_ASC="Категории по
возрастанию"
RL_HEADING_CATEGORY_DESC="Категории по
убыванию"
RL_HEADING_CLIENTID_ASC="По возрастанию
метоположения"
RL_HEADING_CLIENTID_DESC="По убыванию
местоположения"
RL_HEADING_COLOR_ASC="По возрастанию цвета"
RL_HEADING_COLOR_DESC="По убыванию цвета"
RL_HEADING_DEFAULT_ASC="По умолчанию по
возрастанию"
RL_HEADING_DEFAULT_DESC="По умолчанию по
убыванию"
RL_HEADING_DESCRIPTION_ASC="Описание по
возрастанию"
RL_HEADING_DESCRIPTION_DESC="Описание по
убыванию"
RL_HEADING_ID_ASC="По возрастанию ID"
RL_HEADING_ID_DESC="По убыванию ID"
RL_HEADING_LANGUAGE_ASC="По возрастанию языка"
RL_HEADING_LANGUAGE_DESC="По убыванию языка"
RL_HEADING_ORDERING_ASC="По возрастанию по
порядку"
RL_HEADING_ORDERING_DESC="По убыванию по
порядку"
RL_HEADING_PAGES_ASC="По возрастанию элементов
меню"
RL_HEADING_PAGES_DESC="По убыванию элементов
меню"
RL_HEADING_POSITION_ASC="По возрастанию
позиций"
RL_HEADING_POSITION_DESC="По убыванию позиций"
RL_HEADING_STATUS_ASC="По возрастанию
статуса"
RL_HEADING_STATUS_DESC="По убыванию статуса"
RL_HEADING_STYLE_ASC="По возрастанию стиля"
RL_HEADING_STYLE_DESC="По убыванию стиля"
RL_HEADING_TEMPLATE_ASC="По возрастанию
шаблона"
RL_HEADING_TEMPLATE_DESC="По убыванию шаблона"
RL_HEADING_TITLE_ASC="По возрастанию
заголовка"
RL_HEADING_TITLE_DESC="По убыванию заголовка"
RL_HEADING_TYPE_ASC="По возрастанию типа"
RL_HEADING_TYPE_DESC="По убыванию типа"
RL_HEIGHT="Высота"
RL_HEMISPHERE="Полушарие"
RL_HEMISPHERE_DESC="Выберите полушарие, в
котором размещен СЕРВЕР с вашим
сайтом"
RL_HIGH="Высокая"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Главная страница"
RL_HOME_PAGE_DESC="Данное условие сработает
только при соответствии текущего URL
реальной домашней
странице.<br><br>Может не работать с
некоторыми сторонними
SEF-расширениями."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Только значок"
RL_IGNORE="Игнорировать"
RL_IMAGE="Изображение"
RL_IMAGE_ALT="Alt для изображения"
RL_IMAGE_ALT_DESC="Атрибут Alt для
изображения."
RL_IMAGE_ATTRIBUTES="Атрибуты изображения"
RL_IMAGE_ATTRIBUTES_DESC="Дополнительные
атрибуты для изображения, например:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Импорт"
RL_IMPORT_ITEMS="Импортировать объекты"
RL_INCLUDE="Включить"
RL_INCLUDE_CHILD_ITEMS="Включать дочерние
элементы"
RL_INCLUDE_CHILD_ITEMS_DESC="Также включать
дочерние элементы выбранных
элементов?"
RL_INCLUDE_NO_ITEMID="Активно и без Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Расширение будет
активно также и при отсутствии Itemid в
ссылке"
RL_INITIALISE_EVENT="Инициализировать на
событие"
RL_INITIALISE_EVENT_DESC="Установите внутреннее
событие Joomla, на котором должен быть
инициализирован плагин. Изменяйте это,
только если у вас возникли проблемы с
плагином, и он не работает."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Вставить"
RL_INSERT_DATE_NAME="Вставить Дату / Имя"
RL_IP_RANGES="IP адреса / диапазоны"
RL_IP_RANGES_DESC="Записи и\или списки IP
адресов и IP диапазонов, разделённые
запятой.
Например:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP адреса"
RL_IS_FREE_VERSION="Это бесплатная версия %s."
RL_ITEM="Элемент"
RL_ITEM_IDS="ID 'ktvtynjd"
RL_ITEM_IDS_DESC="Укажите через запятую
идентификаторы (ID) статей Joomla, для
которых расширение будет активно."
RL_ITEMS="Элементы"
RL_ITEMS_DESC="Выберите элементы, для
которых расширение будет активно."
RL_JCONTENT="Материалы Joomla!"
RL_JED_REVIEW="Понравилось это расширение?
[[%1:start link%]]Оставьте отзыв на JED[[%2:end
link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Вы используете
версию %1$s для Joomla 2.5 в Joomla 3. Пожалуйста,
переустановите %1$s для исправления
проблемы."
RL_JQUERY_DISABLED="Вы отключили скрипт jQuery.
Для работы %s нужен jQuery. Убедитесь в том,
что Ваш шаблон или другое расширение
загрузило нужные скрипты для замены
требуемой функциональности."
RL_K2="K2"
RL_K2_CATEGORIES="Категории K2"
RL_LANGUAGE="Язык"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Языки"
RL_LANGUAGES_DESC="Укажите языки, для которых
расширение будет активно."
RL_LAYOUT="Макет"
RL_LAYOUT_DESC="Выберите макет для
использования. Этот макет можно
переопределить в компоненте или
шаблоне."
; RL_LESS_THAN="Less than"
RL_LEVELS="Уровни"
RL_LEVELS_DESC="Выберите уровни, для которых
расширение будет активно."
RL_LIB="Библиотека"
RL_LINK_TEXT="Текст ссылки"
RL_LINK_TEXT_DESC="Текст, который будет
выведен на кнопке."
RL_LIST="Список"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Загрузить Bootstrap
Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Отключите для того,
что бы не инициализировать Bootstrap
Framework."
RL_LOAD_JQUERY="Загружать скрипт jQuery"
RL_LOAD_JQUERY_DESC="Загружать ли скрипт jQuery. Вы
можете отключить это, если Ваш шаблон или
другие расширения загружают их
собственную версию jQuery и они
конфликтуют."
RL_LOAD_MOOTOOLS="Загружать библиотеку
MooTools"
RL_LOAD_MOOTOOLS_DESC="Загружать ли скрипт
библиотеки MooTools. Вы можете отключить это,
если Ваш шаблон или другие расширения
загружают их собственную версию MooTools и
они конфликтуют."
RL_LOAD_STYLESHEET="Загружать стили"
RL_LOAD_STYLESHEET_DESC="Загрузка расширением
собственных стилей. Если вы определили
свои описания стилей для этого
расширения в отдельном файле, напр. в
css-файле шаблона, вам необходимо
выключить этот параметр."
RL_LOW="Низкий"
RL_LTR="Слева направо"
RL_MATCH_ALL="Искать всё"
RL_MATCH_ALL_DESC="Выберите, чтобы назначение
проходило только в том случае, если
подходят все выбранные элементы."
RL_MATCHING_METHOD="Режим сравнения условий"
RL_MATCHING_METHOD_DESC="Сопоставлять при полном
или частичном
совпадении?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Максимальное количество в
списке"
RL_MAX_LIST_COUNT_DESC="Максимальное количество
элементов, которое будет отображено в
мульти-выборном списке. Если общее число
элементов больше, выбранное поле будет
отображаться как текстовое
поле.<br><br>Вы можете задать меньшее
число в случае, если наблюдается
длительная загрузка страницы при
большом количестве элементов в
списках."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Развернуть"
RL_MEDIA_VERSIONING="Использовать управление
версиями"
RL_MEDIA_VERSIONING_DESC="Включите, чтобы
добавить номер версии расширения в конец
URL-адреса (js/css), чтобы браузер
принудительно загрузил правильный
файл."
RL_MEDIUM="Средний"
RL_MENU_ITEMS="Пункты меню"
RL_MENU_ITEMS_DESC="Укажите пункты меню, для
которых расширение будет активно."
RL_META_KEYWORDS="Мета - ключевые слова"
RL_META_KEYWORDS_DESC="Введите ключевые слова,
при нахождении которых в meta-keywords
расширение будет активно. Используйте
запятые для разделения ключевых слов."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Свернуть"
RL_MOBILE_BROWSERS="Мобильные браузеры"
RL_MOD="Модуль"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Месяцы"
RL_MONTHS_DESC="Выберите месяцы, в которых
будет активно данное расширение."
RL_MORE_INFO="Помощь"
RL_MY_STRING="Моя строка!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d элементов обновлено"
RL_N_ITEMS_UPDATED_1="Элемент успешно
обновлен"
RL_NEW_CATEGORY="Создать новую категорию"
RL_NEW_CATEGORY_ENTER="Введите название новой
категории"
RL_NEW_VERSION_AVAILABLE="Доступна новая
версия"
RL_NEW_VERSION_OF_AVAILABLE="Доступна новая версия
%s"
RL_NO_ICON="Без значка"
RL_NO_ITEMS_FOUND="Элементы не найдены."
RL_NORMAL="Обычный"
RL_NORTHERN="Северное"
RL_NOT="Не"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Только"
RL_ONLY_AVAILABLE_IN_JOOMLA="Доступно только для
Joomla %s или новее."
RL_ONLY_AVAILABLE_IN_PRO="<em>Доступно только в
версии PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Доступно только
в версии PRO)"
RL_ONLY_VISIBLE_TO_ADMIN="Это сообщение будет
показанно только для (супер)
администраторов."
RL_OPTION_SELECT="- Выбрать -"
RL_OPTION_SELECT_CLIENT="- Выберите клиента -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Операционные системы"
RL_OS_DESC="Выберите операционные системы,
для которых расширение будет активно.
Помните, что определение операционной
системы не всегда 100&#37; точное.
Пользователи могут настроить свои
​​браузеры для имитации других
операционных систем."
; RL_OTHER="Other"
RL_OTHER_AREAS="Другие места"
RL_OTHER_OPTIONS="Дополнительные
параметры"
RL_OTHER_SETTINGS="Другие Настройки"
RL_OTHERS="Другие"
RL_PAGE_TYPES="Типы страниц"
RL_PAGE_TYPES_DESC="Укажите, на каких типах
страниц будет активно расширение."
RL_PHP="Пользовательский PHP"
RL_PHP_DESC="Введите сюда PHP-код для
вычисления. Результат выполнения кода
должен возвращать либо
<strong>true</strong>, либо
<strong>false</strong>.<br><br>Например:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Включать в код страницы
HTML-комментарии"
RL_PLACE_HTML_COMMENTS_DESC="По умолчанию
HTML-комментарии окружают конечный
результат работы расширения в коде
страницы.<br><br>Наличие
комментариев помогает отладить работу
расширения в тех случаях, когда вы не
получаете на выходе ожидаемого
результата.<br><br>Если вы не хотите,
чтобы в коде страницы присутствовали
HTML-комментарии этого расширения,
отключите данный параметр."
RL_PLG_ACTIONLOG="Плагин журналирования
действий"
RL_PLG_EDITORS-XTD="Плагин кнопки редактора"
RL_PLG_FIELDS="Плагин полей"
RL_PLG_SYSTEM="Системный плагин"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Почтовые индексы"
RL_POSTALCODES_DESC="Список разделенных
запятыми почтовых индексов (12345) или
диапазонов почтовых индексов
(12300-12500).<br>Это может использоваться
только для [[%1:start link%]] ограниченного
числа стран и IP-адресов [[%2:end link%]]."
RL_POWERED_BY="Работает на %s"
RL_PRODUCTS="Товары"
RL_PUBLISHED_DESC="Можно использовать для
(временного) выключения этого
элемента."
RL_PUBLISHING_ASSIGNMENTS="Активация расширения
по условиям"
RL_PUBLISHING_SETTINGS="Опубликованные
элементы"
RL_RANDOM="Случайно"
RL_REDSHOP="RedShop"
RL_REGEX="Режим регулярных выражений"
RL_REGIONS="Регион / Область"
RL_REGIONS_DESC="Выберите регионы / области,
для которых расширение будет активно."
RL_REGULAR_EXPRESSIONS="Использовать регулярные
выражения"
RL_REGULAR_EXPRESSIONS_DESC="Выберите, что
относиться к регулярным выражениям."
RL_REMOVE_IN_DISABLED_COMPONENTS="Удалить
отключенные компоненты"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Если выбран этот
параметр, синтаксис плагина будет удален
из компонента. Если нет, исходный
синтаксис плагинов останется."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Обрезка"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Папка"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Установлен"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Справа на лево"
RL_SAVE_CONFIG="После сохранения опций, они
больше не будут отображаться при
загрузке страницы."
RL_SEASONS="Времена года"
RL_SEASONS_DESC="Выберите времена года, в
которые будет активно данное
расширение."
RL_SELECT="Выберите"
RL_SELECT_A_CATEGORY="Выберите категорию"
RL_SELECT_ALL="Выбрать все"
RL_SELECT_AN_ARTICLE="Выберите материал"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Выбрано"
RL_SELECTION="Выбрать"
RL_SELECTION_DESC="Выберите, необходимо
включать или исключать выбранные
элементы для
активации.<br><br><strong>Включать</strong><br>Опубликовано
только для выбранных
элементов.<br><br><strong>Исключать</strong><br>Опубликовано
везде, кроме выбранных элементов."
RL_SETTINGS_ADMIN_MODULE="Параметры
административного модуля"
RL_SETTINGS_EDITOR_BUTTON="Настроки кнопки
редактора"
RL_SETTINGS_SECURITY="Настройки
безопасности"
RL_SHOW_ASSIGNMENTS="Отображать привязки"
RL_SHOW_ASSIGNMENTS_DESC="Выберите, следует ли
показывать только выбранные привязки. Вы
можете использовать это, для чистого
обзора активных привязок."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Теперь все не
выбранные типы привязок скрыты от
просмотра."
RL_SHOW_COPYRIGHT="Отображать авторское
право"
RL_SHOW_COPYRIGHT_DESC="Если опция включена, то
будет отображена информация об авторе в
административной части сайта.
Расширения Regular Labs никогда не отображают
информацию об авторе или обратную ссылку
во фронтальной части сайта."
RL_SHOW_HELP_MENU="Показать пункты меню
помощи"
RL_SHOW_HELP_MENU_DESC="Выберите для отображения
ссылки на веб-сайт Regular Labs в меню справки
администратора."
RL_SHOW_ICON="Значок на кнопке"
RL_SHOW_ICON_DESC="Если выбрано, значок будет
отображаться на кнопке в редакторе."
RL_SHOW_UPDATE_NOTIFICATION="Показывать
уведомления об обновлениях"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Если опция
включена, то будет отображено сообщение
об обновлении основного компонента, если
появилась новая версия этого
расширения."
RL_SIMPLE="Простой"
RL_SLIDES="Слайды"
RL_SOUTHERN="Южное"
; RL_SPECIFIC="Specific"
RL_SPRING="Весна"
RL_START="Пуск"
RL_START_PUBLISHING="Начало публикации"
RL_START_PUBLISHING_DESC="Укажите дату начала
активации расширения"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Убрать окружающие
теги"
RL_STRIP_SURROUNDING_TAGS_DESC="Выберите, чтобы
всегда удалять теги html (div, p, span),
окружающие тег плагина. Если отключить,
плагин попытается удалить теги, которые
разрушают структуру HTML (например, p
внутри p-тегов)."
RL_STYLING="Оформление"
RL_SUMMER="Лето"
RL_TABLE_NOT_FOUND="Требуемая таблица %s базы
данных не найдена!"
RL_TABS="Закладки"
RL_TAG_CHARACTERS="Символ тега"
RL_TAG_CHARACTERS_DESC="Окружающие символы
синтаксиса тега.<br><br>< strong >
Примечание: </strong > Если вы измените
этот символ здесь, то все существующие
теги больше не будут работать."
RL_TAG_SYNTAX="Синтаксис тегов"
RL_TAG_SYNTAX_DESC="Слово, которое будет
использоваться в
тегах.<br><br><strong>Примечание:</strong>
Если Вы измените это слово, все
существующие теги, больше не будут
работать."
RL_TAGS="Теги"
RL_TAGS_DESC="Укажите через запятую теги,
для которых будет активно данное
расширение."
RL_TEMPLATES="Шаблоны"
RL_TEMPLATES_DESC="Укажите шаблоны, для
которых расширение будет активно."
RL_TEXT="Текст"
RL_TEXT_HTML="Текст (HTML)"
RL_TEXT_ONLY="Только текст"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Это
расширение требует %s для правильной
работы!"
RL_TIME="Время"
RL_TIME_FINISH_PUBLISHING_DESC="Время окончания
публикации
расширения.<br><br><strong>Формат:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Время начала
публикации
расширения.<br><br><strong>Формат:</strong>
23:59"
RL_TOGGLE="Переключатель"
RL_TOOLTIP="Всплывающие подсказки"
RL_TOP="Сверху"
RL_TOTAL="Всего"
RL_TYPES="Типы"
RL_TYPES_DESC="Выберите типы, для которых
расширение будет активно."
RL_UNSELECT_ALL="Снять выбор"
RL_UNSELECTED="Не выбрано"
RL_UPDATE_TO="Обновить до версии %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Соответствие URL"
RL_URL_PARTS_DESC="Введите (часть) URL адресов
для сопоставления.<br>Вводите каждое
сопоставление с новой строки."
RL_URL_PARTS_REGEX="Части URL будут сопоставлены
исспользуя регулярные
выражения.<strong>Убедитесь в том, что
строки содержат действительные
регулярные выражения.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Для привязок к
(элементам) категорий и материалов,
предварительно просмотрите раздел
материалов Joomla."
RL_USE_CUSTOM_CODE="Вставлять свой код"
RL_USE_CUSTOM_CODE_DESC="Вставка собственного
кода в редактор вместо исходного"
RL_USE_SIMPLE_BUTTON="Использовать простую
кнопку"
RL_USE_SIMPLE_BUTTON_DESC="Включите, чтобы
использовать простую кнопку вставки,
которая просто вставляет некоторые
примеры синтаксиса в редактор."
RL_USER_GROUP_LEVELS="Группы пользователей"
RL_USER_GROUPS="Группы пользователей"
RL_USER_GROUPS_DESC="Выберите группы
пользователей, для которых расширение
будет активно."
RL_USER_IDS="ID пользователей"
RL_USER_IDS_DESC="Укажите ID пользователей, для
которых расширение будет активно."
RL_USERS="Пользователи"
RL_UTF8="UTF-8"
RL_VIDEO="Видео"
RL_VIEW="Вид"
RL_VIEW_DESC="Выберите, какой режим по
умолчанию должен использоваться при
создании нового элемента."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Ширина"
RL_WINTER="Зима"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Категории ZOO"
PK�X�[c���?regularlabs/language/ru-RU/ru-RU.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
библиотека, используемая всеми
расширениями Regular Labs"
REGULAR_LABS_LIBRARY="Библиотека Regular Labs"
PK�X�[�a����;regularlabs/language/sk-SK/sk-SK.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - používané s
Regular Labs rozšírením"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs rozšírenia
potrebujú tento doplnok a nebudú bez neho
fungovať.<br><br>Regular Labs rozšírenie
obsahuje:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Neodinštalujte, alebo
nedeaktivujte tento doplnok ak používate akékoľvek Regular Labs
rozšírenie."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntax Tagov"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Popis"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Popis"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Správanie sa"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Základné
nastavenia"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Média"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Nastavenia Modulu
Administrácie"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Tlačidlo
editácie Nastavení"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Nastavenia
bezpečnosti"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Nastavenia"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Štýlovosť"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Syntax Tagov"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Inštalovať"
RL_ACTION_UNINSTALL="Odinštalovať"
RL_ACTION_UPDATE="Aktualizácia"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Administrátor"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Pokročilé"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="VŠETKY"
RL_ALL_DESC="Bude publikované ak <strong>VŠETKY</strong>
z nižšie uvedených priradení sa zhodujú."
RL_ALL_RIGHTS_RESERVED="Všetky práva vyhradené"
RL_ALSO_ON_CHILD_ITEMS="Tiež aj pre podradené položky"
RL_ALSO_ON_CHILD_ITEMS_DESC="Tiež priradiť aj podradeným položkám
už zvolených položiek?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="AKÉKOĽVEK"
RL_ANY_DESC="Bude publikované ak
<strong>AKÉKOĽVEK</strong> (jedno, alebo viaceré) z niššie
uvedených sa zhodujú.<br>Skupiny priradení kde 'Ignore'
je vybraté budú ignorované."
RL_ARE_YOU_SURE="Ste si istý(-á)?"
RL_ARTICLE="Článok"
RL_ARTICLE_AUTHORS="Autori"
RL_ARTICLE_AUTHORS_DESC="Vyberte autorov ku ktorým to bude
priradené."
RL_ARTICLES="Články"
RL_ARTICLES_DESC="Zvolte články ku ktorým bude priradený"
RL_AS_EXPORTED="Ako exportované"
RL_ASSIGNMENTS="Prevody vlastníctva"
RL_ASSIGNMENTS_DESC="Tým, že zvolíte špecifické priradenia,
môžete obmedziť kde tieto %s majú, alebo nemajú byť
publikované.<br>Ak ich chcete mať publikované na všetkých
stránkach, jednoducho nešpecifikujte žiadne priradenia."
RL_AUSTRALIA="Austrália"
RL_AUTHORS="Autori"
RL_AUTO="Automaticky"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Správanie sa"
RL_BEHAVIOUR="Správanie sa"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Máte nepovolený, neaktivovaný
Bootstrap Framework. %s potrebuje Bootstrap Framework pre fungovanie.
Uistite sa, že vaša šablóna, alebo aplikácia načíta potrebné
skripty tak, aby bola zabezpečená potrebná funkčnosť."
RL_BOTH="Obe"
RL_BOTTOM="Spodok"
RL_BROWSERS="Prehliadače"
RL_BROWSERS_DESC="Vyberte prehliadače pre ktoré ho priradíte. Majte
prosím na pamäti, že detekcia prehliadačov nie je nikdy 100% istá.
Užívatelia môžu vybrať ich prehliadač na napodobnenie iných
prehliadačov."
RL_BUTTON_ICON="Ikona tlačidla"
RL_BUTTON_ICON_DESC="Vyberte ktorá ikona bude bude zobrazená v
tlačidle."
RL_BUTTON_TEXT="Názov Tlačidla"
RL_BUTTON_TEXT_DESC="Tento názov bude zobrazený v Tlačidle
Editora."
RL_CACHE_TIME="Čas medzipamäte"
RL_CACHE_TIME_DESC="Maximálna dĺžka trvania súboru vyrovnávacej
pamäti v minútach pred tým ako bude aktualizovaný. Pre zachovanie
prednastavenej hodnoty nechajte prázdne."
RL_CATEGORIES="Kategórie"
RL_CATEGORIES_DESC="Vyberte kategórie ku ktorým bude
priradený."
; RL_CATEGORY="Category"
RL_CHANGELOG="Changelog"
RL_CLASSNAME="CSS trieda"
RL_COLLAPSE="Poskladať"
RL_COM="Komponent"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponenty"
RL_COMPONENTS_DESC="Vyberte Komponenty ku ktorým bude
priradený."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Polia obsahu"
RL_CONTENT_KEYWORDS="Kľúčové slová obsahu"
RL_CONTENT_KEYWORDS_DESC="Vložte kľúčové slová nachádzajúce sa
v obsahu. Pre ne toto priradenie bude platné. Použite čiarky na
oddelenie kľúčových slov."
RL_CONTINENTS="Svetadiely"
RL_CONTINENTS_DESC="Vyberte Svetadiel ku ktorému bude
priradený."
RL_COOKIECONFIRM="Potvrdenie Cookie"
RL_COOKIECONFIRM_COOKIES="Povolenie Cookie"
RL_COOKIECONFIRM_COOKIES_DESC="Priraďte podľa toho, či sú Cookies
povolené alebo nie, a to v závislosti na konfigurácii Cookie Confirm (od
Twentronix-u) a voľby návštevníka stránky, teda či Cookie akceptuje
alebo nie."
RL_COPY_OF="Kópia %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Krajiny"
RL_COUNTRIES_DESC="Vyberte Krajiny ku ktorým bude priradený."
RL_CSS_CLASS="Trieda (CSS)"
RL_CSS_CLASS_DESC="Definujte css názov triedy pre účely
prispôsobenia štýlu."
; RL_CURRENT="Current"
RL_CURRENT_DATE="Aktuálny dátum/čas:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Vaša aktálna verzia je %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Vlastný kód"
RL_CUSTOM_CODE_DESC="Vložte kód ktorý má Tlačidlo Editora
vložiť do obsahu (namiesto východzieho kódu)."
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="Extra Užívateľské položky"
RL_DATE="Dátum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Vracajúci sa"
RL_DATE_RECURRING_DESC="Vyberte na použitie každoročného intervalu
dátumov. (Rok bude vo výbere ignorovaný)"
RL_DATE_TIME="Dátum a Čas"
RL_DATE_TIME_DESC="Priradenia dátumu a času používajú dátum a
čas vašich serverov a nie ten, ktorý je použitý v systémoch
návševníkov."
; RL_DATE_TO="To"
RL_DAYS="Dni v týždni"
RL_DAYS_DESC="Vyberte dni týždňa ku ktorým bude priradené"
RL_DEFAULT_ORDERING="Predvolené zoradenie"
RL_DEFAULT_ORDERING_DESC="Nastavte predvolené zoradenie zoznamu
položiek"
RL_DEFAULT_SETTINGS="Základné nastavenia"
; RL_DEFAULTS="Defaults"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Smerovanie"
RL_DIRECTION_DESC="Vyberte smerovanie"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Vypnúť v komponentoch"
RL_DISABLE_ON_COMPONENTS_DESC="Vyberte pre ktoré komponenty
zobrazované na samotnej stránke sa nebude dať zvoliť použitie tohoto
rozšírenia."
RL_DISPLAY_EDITOR_BUTTON="Zobraziť Tlačidlo Editora"
RL_DISPLAY_EDITOR_BUTTON_DESC="Vyberte ak chcete zobraziť Tlačidlo
Editora."
RL_DISPLAY_LINK="Zobraziť link"
RL_DISPLAY_LINK_DESC="Ako chcete aby bol link zobrazený?"
RL_DISPLAY_TOOLBAR_BUTTON="Zobraziť Tlačidlo lišty s
nástrojmi"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Vyberte, ak chcete ukázať tlačidlo
v lište s nástrojmi."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Zobraziť Nápovedu"
RL_DISPLAY_TOOLTIP_DESC="Vyberte pre zobrazenie nápovedy s
dodatočnými informáciami kým je myš nad linkom/ikonou."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
RL_DYNAMIC_TAG_DATE="Použitie dátumu %1$sphp strftime() format%2$s.
Príklad: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Náhodné číslo v zadanom rozsahu"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Reťazec určený na preloženie do príslušnej
jazykovej verzie v texte (v závislosti na aktívnom jazyku)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="ID číslo užívateľa"
RL_DYNAMIC_TAG_USER_NAME="Meno užívateľa"
RL_DYNAMIC_TAG_USER_OTHER="Akékoľvek iné dostupné dáta od
uživateľa alebo prepojeného kontaktu. Príklad: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
RL_DYNAMIC_TAG_USER_USERNAME="Prihlasovacie meno"
RL_DYNAMIC_TAGS="Dynamické Tagy"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktivovať"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Povoliť v"
RL_ENABLE_IN_ADMIN="Zapnúť v administrácii"
RL_ENABLE_IN_ADMIN_DESC="Ak je zapnuté, zásuvný modul bude tiež
fungovať v časti administrácie webu.<br><br>Obyčajne toto
nebudete potrebovať. Taktiež to môže spôsobiť neželané následky,
ako napr. spomalenie administrácie, či záložky zásuvného modulu budú
umiestnené tam kde ich nechcete mať."
RL_ENABLE_IN_ARTICLES="Zapnúť v článkoch"
RL_ENABLE_IN_COMPONENTS="Zapnúť v komponentoch"
RL_ENABLE_IN_DESC="Rozhodnite, či má byť povolený vo frontend-e,
alebo v administrácii alebo v oboch."
RL_ENABLE_IN_FRONTEND="Povoliť vo frontend-e"
RL_ENABLE_IN_FRONTEND_DESC="Ak je povolené, bude tiež dostupná aj
vo frontend-e."
RL_ENABLE_OTHER_AREAS="Zapnúť pre iné oblasti"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Vylúčiť"
RL_EXPAND="Rozbaliť"
RL_EXPORT="Export"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Doplnkové parametre"
RL_EXTRA_PARAMETERS_DESC="Vložte akékoľvek doplňujúce parametre
ktoré nemôžu byť nastavené pomocou dostupných nastavení."
RL_FALL="Pokles"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Názov políčka"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Hodnota v políčku"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Požadovaných %s súborov nebolo
nájdených!"
RL_FILTERS="Filtre"
RL_FINISH_PUBLISHING="Ukončiť publikovanie"
RL_FINISH_PUBLISHING_DESC="Vložte dátum ukončenia
publikovania"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Pre získanie väčšej funkcionality si môžete
zakúpiť PRO verziu."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="NoNumber Framework by nemal byť
využívaný akýmkoľvek ďalším rozšírením ktoré máte
nainštalované. Asi by bolo najbezpečnejšie deaktivovať alebo
odinštalovať tento zásuvný modul."
; RL_FROM_TO="From-To"
RL_FRONTEND="Frontend"
; RL_GALLERY="Gallery"
RL_GEO="Geolokácia"
RL_GEO_DESC="Geolokácia nie je nikdy 100&#37; istá. Geolokácia
je založená na IP adrese návštevníka. Nie všetky IP adresy sú
pevné, alebo známe."
RL_GEO_GEOIP_COPYRIGHT_DESC="Tento produkt obsahuje GeoLite2 údaje
vytvorené firmou MaxMind, dostupné z [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Regular Labs - GeoIP knižnica nie je
nainštalovaná. Je potrebné [[%1:link start%]]nainštalovať Regular Labs
GeoIP knižnicu[[%2:link end%]] pre použitie Geolokačných
priradení."
RL_GO_PRO="Prejsť na Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
RL_HEADING_ACCESS_ASC="Prístup vzostupne"
RL_HEADING_ACCESS_DESC="Prístup zostupne"
RL_HEADING_CATEGORY_ASC="Kategória vzostupne"
RL_HEADING_CATEGORY_DESC="Kategória zostupne"
RL_HEADING_CLIENTID_ASC="Umiestnenie vzostupne"
RL_HEADING_CLIENTID_DESC="Umiestnenie zostupne"
RL_HEADING_COLOR_ASC="Farba vzostupne"
RL_HEADING_COLOR_DESC="Farba zostupne"
RL_HEADING_DEFAULT_ASC="Predvolené vzostupne"
RL_HEADING_DEFAULT_DESC="Predvolené zostupne"
RL_HEADING_DESCRIPTION_ASC="Popis vzostupne"
RL_HEADING_DESCRIPTION_DESC="Popis zostupne"
RL_HEADING_ID_ASC="ID vzostupne"
RL_HEADING_ID_DESC="ID zostupne"
RL_HEADING_LANGUAGE_ASC="Jazyk vzostupne"
RL_HEADING_LANGUAGE_DESC="Jazyk zostupne"
RL_HEADING_ORDERING_ASC="Zoradenie vzostupne"
RL_HEADING_ORDERING_DESC="Zoradenie zostupne"
RL_HEADING_PAGES_ASC="Položky menu vzostupne"
RL_HEADING_PAGES_DESC="Položky menu zostupne"
RL_HEADING_POSITION_ASC="Poloha vzostupne"
RL_HEADING_POSITION_DESC="Poloha zostupne"
RL_HEADING_STATUS_ASC="Status vzostupne"
RL_HEADING_STATUS_DESC="Status zostupne"
RL_HEADING_STYLE_ASC="Štýl vzostupne"
RL_HEADING_STYLE_DESC="Štýl zostupne"
RL_HEADING_TEMPLATE_ASC="Šablóna vzostupne"
RL_HEADING_TEMPLATE_DESC="Šablóna zostupne"
RL_HEADING_TITLE_ASC="Nadpis vzostupne"
RL_HEADING_TITLE_DESC="Nadpis zostupne"
RL_HEADING_TYPE_ASC="Typ vzostupne"
RL_HEADING_TYPE_DESC="Typ zostupne"
RL_HEIGHT="Výška"
RL_HEMISPHERE="Zemská pologuľa"
RL_HEMISPHERE_DESC="Vyberte zemskú pologuľu na ktorej sa nachádza
vaša webstránka"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Úvodná stránka"
RL_HOME_PAGE_DESC="Nie tak ako výber ponuky (položky) úvodnej
stránky (východzej) cez položky ponuky (menu), bude tu zohľadnená
skutočná úvodná stránka, a nie akákoľvek URL ktorá má rovnaké ID
položky ako má položka úvodnej stránky.<br><br>Toto
nemusí fungovať so všetkými SEF rozšíreniami 3. strán."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Iba ikona"
RL_IGNORE="Ignorovať"
RL_IMAGE="Obrázok"
RL_IMAGE_ALT="Popis obrázku (Alt)"
RL_IMAGE_ALT_DESC="Alt hodnota obrázku."
RL_IMAGE_ATTRIBUTES="Atribúty obrázku"
RL_IMAGE_ATTRIBUTES_DESC="Extra atribúty obrázku ako:
alt=&quot;Môj obrázok&quot; width=&quot;300&quot;"
RL_IMPORT="Import"
RL_IMPORT_ITEMS="Položky na importovanie"
RL_INCLUDE="Zahrnúť"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Priradiť aj položkám bez ID"
RL_INCLUDE_NO_ITEMID_DESC="Tiež priradiť aj keď žiadna ID položka
ponuky je nastavená v URL?"
RL_INITIALISE_EVENT="Spustenie pri udalosti"
RL_INITIALISE_EVENT_DESC="Určte vnútornú udalosť v Joomla-e pri
ktorej bude zásuvný modul spustený. Toto zmente iba vtedy, ak máte
problémy s nefunkčnosťou zásuvného modulu."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Vložiť"
; RL_INSERT_DATE_NAME="Insert Date / Name"
RL_IP_RANGES="IP Adresy / Rozsahy"
RL_IP_RANGES_DESC="Desatiná čiarka a/alebo enter oddelujú zoznam IP
adries a IP rozsahov.
Pr.:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Adresy"
RL_IS_FREE_VERSION="Toto je nekomerčná - zdarma verzia %s."
RL_ITEM="Položka"
RL_ITEM_IDS="ID položiek"
RL_ITEM_IDS_DESC="Vložte ID položiek pre ktoré má byť priradený.
Použite čiarky pre oddelenie jednotlivých ID."
RL_ITEMS="Položky"
RL_ITEMS_DESC="Vyberte položky ku ktorým bude priradený."
RL_JCONTENT="Joomla! Polia obsahu"
RL_JED_REVIEW="Páči sa vám toto rozšírenie? [[%1:start
link%]]Zanechajte svoju recenziu na JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Používate verziu %1$s z Joomly 2.5 v
Joomle 3. Na vyriešenie tohoto problému prosím preinštalujte
%1$s."
RL_JQUERY_DISABLED="Máte neaktivovaný jQuery script. %s potrebuje
jQuery pre správne fungovanie. Uistite sa, že vaša šablóna, alebo
aplikácia načíta potrebné skripty tak, aby bola zabezpečená potrebná
funkčnosť."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Kategórie"
RL_LANGUAGE="Jazyk"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Jazykové mutácie"
RL_LANGUAGES_DESC="Vyberte jazyky pre ktoré bude priradený."
RL_LAYOUT="Rozmiestnenie"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Úrovne"
RL_LEVELS_DESC="Zvolte úrovne ku ktorým bude priradený."
RL_LIB="Knižnica"
RL_LINK_TEXT="Text Linku"
RL_LINK_TEXT_DESC="Text zobrazený ako link."
RL_LIST="Zoznam"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Načítať Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Nepovoliť pre nenačítanie
Bootstrap Framework-u"
RL_LOAD_JQUERY="Načítať jQuery Script"
RL_LOAD_JQUERY_DESC="Vyberte pre načítanie jadra jQuery scriptu.
Toto môžete vypnúť v prípade konfliktu, teda ak vaša šablóna, či
iné rozšírenie používa svoju vlastnú verziu jQuery."
RL_LOAD_MOOTOOLS="Načítať jadro MooTools"
RL_LOAD_MOOTOOLS_DESC="Vyberte pre načítanie jadra MooTools scriptu.
Toto môžete vypnúť v prípade konfliktu, teda ak vaša šablóna, či
iné rozšírenie používa svoju vlastnú verziu MooTools."
RL_LOAD_STYLESHEET="Načítať zoznam štýlov"
RL_LOAD_STYLESHEET_DESC="Vyberte pre načítanie grafických štýlov.
Toto môžete vypnúť v prípade, že použijete vlastné všetky štýly
v niektorom inom zozname štýlov, ako napr. v kaskádovom štýle
šablóny."
; RL_LOW="Low"
RL_LTR="Z ľava do prava"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Porovnávacia metóda"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Max. počet položiek"
RL_MAX_LIST_COUNT_DESC="Max. počet položiek ktoré budú zobrazené
v zoznamoch s výberom viacerých položiek. Ak celkový počet položiek
je väčší, pole výberu bude ako textové
pole.<br><br>Môžete znížiť toto číslo ak máte dlhé
načítavanie stránky kvôli veľkému množstvu položiek v
zozname."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Maximalizovať"
RL_MEDIA_VERSIONING="Použiť popis verzie médií"
RL_MEDIA_VERSIONING_DESC="Vyberte ak chcete pridať číslo verzie
rozšírenia na koniec média (js/css) URL prepojení tak, aby internetový
prehliadač načítal správny súbor."
RL_MEDIUM="Stredne dlhý"
RL_MENU_ITEMS="Položky Ponuky (menu)"
RL_MENU_ITEMS_DESC="Vyberte položky z ponuky (menu) ktorým bude
priradený."
RL_META_KEYWORDS="Meta kľúčové slova"
RL_META_KEYWORDS_DESC="Vložte kľúčové slová ktoré sú
nájditeľné medzi kľúčovými slovami. Pre ne toto priradenie bude
platné. Použite čairky na oddelenie kľúčových slov."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimalizovať"
RL_MOBILE_BROWSERS="Prehliadače pre mobil. telefóny"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Mesiace"
RL_MONTHS_DESC="Vyberte mesiace ku ktorým bude priradené."
RL_MORE_INFO="Viac informácií"
RL_MY_STRING="Môj reťazec!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="Úspešne bolo aktualizovaných položiek:
%d"
RL_N_ITEMS_UPDATED_1="Jedna položka bola aktualizovaná"
RL_NEW_CATEGORY="Vytvoriť novú kategóriu"
RL_NEW_CATEGORY_ENTER="Zadajte nový názov kategórie"
RL_NEW_VERSION_AVAILABLE="Nová verzia je k dispozícii"
RL_NEW_VERSION_OF_AVAILABLE="Nová verzia %s je k dispozícii"
RL_NO_ICON="Bez ikonky"
RL_NO_ITEMS_FOUND="Neboli nájdené žiadne položky."
RL_NORMAL="Štandardné"
RL_NORTHERN="Severný"
RL_NOT="Ne"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Iba"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Dostupné iba v PRO
verzii!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Dostupné len v PRO
verzii)"
RL_ONLY_VISIBLE_TO_ADMIN="Táto správa bude zobrazená iba pre
(Super) Administrátorov."
RL_OPTION_SELECT="- Vybrať -"
RL_OPTION_SELECT_CLIENT="- Zvoliť klienta -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operačné systémy"
RL_OS_DESC="Vyberte operačný systém pre ktorý ho priradíte. Majte
prosím na pamäti, že detekcia operačných systémov nie je nikdy
100&#37; istá. Užívatelia môžu vybrať ich prehliadač na
napodobnenie iných operačných systémov."
; RL_OTHER="Other"
RL_OTHER_AREAS="Ostatné oblasti"
RL_OTHER_OPTIONS="Ďalšie nastavenia"
RL_OTHER_SETTINGS="Ostatné Nastavenia"
RL_OTHERS="Ostatné"
RL_PAGE_TYPES="Typy stránok"
RL_PAGE_TYPES_DESC="Vyberte na akom type stránky má byť priradenie
aktívne."
RL_PHP="Vlastné PHP"
RL_PHP_DESC="Vložte časť PHP kódu na prehodnotenie. Kód musí
vrátiť hodnotu pravda(true) alebo nepravda (false).
Napríklad:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Vložte HTML komentáre"
RL_PLACE_HTML_COMMENTS_DESC="Predvolene sú HTML komentáre
umiestnené v blízkosti výstupu tohoto
rozšírenia.<br><br>Tieto komentáre pomožu s hľadaním
problému keď sa nedostaví želaný výstup.<br><br>Ak
preferujete nemať tieto komentáre vo vašom HTML výstupe, vypnite túto
možnosť."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Doplnok Tlačidla Editora"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Systémový Doplnok (Plugin)"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="PSČ kódy"
RL_POSTALCODES_DESC="Čiarkou oddelený zoznam poštových smerových
čísel - ich kódov (12345), alebo ich rozsahy
(12300-12500).<br>Toto môže byť použité pre [[%1:start
link%]]obmedzené množstvo krajín a IP adries[[%2:end link%]]."
RL_POWERED_BY="Poháňaný s %s"
RL_PRODUCTS="Produkty"
RL_PUBLISHED_DESC="Toto môžete požiť na (dočasné) znefunkčnenie
tejto položky."
RL_PUBLISHING_ASSIGNMENTS="Priradenie Publikovaniu"
RL_PUBLISHING_SETTINGS="Nastavenia Publikovania"
RL_RANDOM="Náhodné"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="Regióny / Štáty"
RL_REGIONS_DESC="Vyberte regióny / štáty ku ktorým bude
priradený."
RL_REGULAR_EXPRESSIONS="Použiť Regulérne výrazy"
RL_REGULAR_EXPRESSIONS_DESC="Vyberte pre úpravu hodnôt tak, aby boli
regulérne výrazy."
RL_REMOVE_IN_DISABLED_COMPONENTS="Odstrániť z Vypnutých
komponentov"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Ak je zvolené, syntax
zásuvného modulu bude odstránená z komponentu. Ak nie, pôvodná syntax
zásuvného modulu ostane nedotknutá."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Mapa"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Z prava do ľava"
RL_SAVE_CONFIG="Po uložení Nastavení už nebude viac zobrazené v
pop up okienku počas načítavania stránky."
RL_SEASONS="Sezóny"
RL_SEASONS_DESC="Vyberte sezóny ku ktorým bude priradené."
RL_SELECT="Vyberte"
RL_SELECT_A_CATEGORY="Zvoľte kategóriu"
RL_SELECT_ALL="Označiť všetko"
RL_SELECT_AN_ARTICLE="Výber článku"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Vybraté"
RL_SELECTION="Výber"
RL_SELECTION_DESC="Vyberte či zahrnúť, alebo odobrať výber
priradenia.<br><br><strong>Zahrnúť</strong><br>Budú
publikované iba vybraté
položky.<br><br><strong>Vylúčiť</strong><br>Budú
publikované všade okrem vybratých."
RL_SETTINGS_ADMIN_MODULE="Nastavenia Modulu Administrácie"
RL_SETTINGS_EDITOR_BUTTON="Tlačidlo editácie Nastavení"
RL_SETTINGS_SECURITY="Nastavenia bezpečnosti"
RL_SHOW_ASSIGNMENTS="Ukázať Priradenia"
RL_SHOW_ASSIGNMENTS_DESC="Vyberte či ukázať iba zvolené
priradenia. Toto môžete použiť preto, aby ste získali jasný prehľad
aktívnych priradení."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Všetky nevybraté typy priradení
sú teraz skryté z prehľadu."
RL_SHOW_COPYRIGHT="Ukázať Copyright"
RL_SHOW_COPYRIGHT_DESC="Ak je zvolené, extra informácia o
copyright-e bude zobrazená v administračných náhľadoch. Regular Labs
rozšírenia nikdy nezobrazujú informáciu o copyright-e, a taktiež
nezobrazujú spätné linky v zobrazenej webstránke."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Ukázať ikonu Tlačidla"
RL_SHOW_ICON_DESC="Ak je vybraté, ikona bude zobrazená v Tlačidle
Editora."
RL_SHOW_UPDATE_NOTIFICATION="Ukázať upozornenie o
aktualizácii"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Ak je zvolené, a v prípade, že je
k dispozícii nová verzia pre dané rozšírenie, bude zobrazené v
hlavnom komponente upozornenie na túto aktualizáciu."
RL_SIMPLE="Jednoduché"
RL_SLIDES="Slides"
RL_SOUTHERN="Južný"
; RL_SPECIFIC="Specific"
RL_SPRING="Jar"
RL_START="Štart"
RL_START_PUBLISHING="Začiatok puplikovania"
RL_START_PUBLISHING_DESC="Vložte dátum začatia publikovania"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Odobrať obklopujúce značky"
RL_STRIP_SURROUNDING_TAGS_DESC="Vyberte ak chcete aby boli vždy
odobraté značky (div, p, span) obklopujúce značku zásuvného modulu.
Ak je vypnutý, zásuvný modul sa pokúsi odobrať značky ktoré
narušujú HTML štruktúru (napr. p vo vnútri p značiek)."
RL_STYLING="Štýlovosť"
RL_SUMMER="Leto"
RL_TABLE_NOT_FOUND="Požadovaných %s tabuliek databázy nebolo
nájdených!"
RL_TABS="Taby"
RL_TAG_CHARACTERS="Znaky Značiek"
RL_TAG_CHARACTERS_DESC="Obklopujúce znaky syntaxu
Značiek.<br><br><strong>Poznámka:</strong> Ak
toto zmeníte, všetky existujúce značky viac nebudú fungovať."
RL_TAG_SYNTAX="Syntax Tagov"
RL_TAG_SYNTAX_DESC="Slovo použité v
Značkách.<br><br><strong>Poznámka:</strong> Ak
toto zmeníte, všetky existujúce značky už viac nebudú
fungovať."
RL_TAGS="Tagy"
RL_TAGS_DESC="Vložte tagy pre ktoré má byť priradený. Použite
čiarky pre oddelenie jednotlivých tagov."
RL_TEMPLATES="Šablóny"
RL_TEMPLATES_DESC="Vyberte šablóny ku ktorým bude priradené."
RL_TEXT="Text"
RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Iba text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Toto
rozšírenie potrebuje %s pre správnue fungovanie!"
RL_TIME="Čas"
RL_TIME_FINISH_PUBLISHING_DESC="Vložte čas pre ukončenie
publikovania.<br><br><strong>Formát:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Vložte čas začatia
publikovania.<br><br><strong>Formát:</strong>
23:59"
RL_TOGGLE="Prepínač"
RL_TOOLTIP="Nápoveda"
RL_TOP="Vrch"
RL_TOTAL="Spolu"
RL_TYPES="Druhy"
RL_TYPES_DESC="Druhy položiek"
RL_UNSELECT_ALL="Odznačiť všetko"
RL_UNSELECTED="Nevybraté"
RL_UPDATE_TO="Aktualizovať na verziu %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Zhodné URL"
RL_URL_PARTS_DESC="Vložte (časť) URL link na
porovnanie.<br>Použite nový riadok pre každú rozdielnu
zhodu."
RL_URL_PARTS_REGEX="Časti URL budú napasované pomocou Regulérnych
výrazov. <strong>Preto sa uistite, že použijete platný regex
syntax.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Pre priradenia ku kategórii a článku
(položky), pozrite nadradenú Joomla! sekciu obsahu."
RL_USE_CUSTOM_CODE="Použiť vlastný kód"
RL_USE_CUSTOM_CODE_DESC="Ak je označené, Tlačidlo Editora vloží
definovaný vlastný kód namiesto východzieho kódu."
RL_USE_SIMPLE_BUTTON="Použiť jednoduché tlačidlo"
RL_USE_SIMPLE_BUTTON_DESC="Vyberte pre použitie tlačidla
jednoduchého vloženia, ktoré jednoducho vloží vzorový reťazec textu
do editora."
RL_USER_GROUP_LEVELS="Úrovne skupín užívateľov"
RL_USER_GROUPS="Skupiny užívateľa"
RL_USER_GROUPS_DESC="Vyberte skypiny užívateľa, pre ktorým bude
priradené."
RL_USER_IDS="ID užívateľov"
RL_USER_IDS_DESC="Vložte ID užívateľov pre ktorých bude
priradené. Použite čiarky na oddelenie ID."
RL_USERS="Užívatelia"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Náhľad"
RL_VIEW_DESC="Vyberte aký bude predvolený náhľad pri vytvorení
novej položky."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Šírka"
RL_WINTER="Zima"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategórie"
PK�X�[$[L�ii?regularlabs/language/sk-SK/sk-SK.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - používané s
Regular Labs rozšírením"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[������;regularlabs/language/sl-SI/sl-SI.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - ki jih uporabljajo
Regular Labs razširitve."
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs razširitev
potrebujejo ta vtičnik in ne bodo delovale brez
njega.<br><br>Regular Labs razširitve
vključujejo:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Ne odstranite ali onemogočite ta
vtičnik, če uporabljate katero koli Regular Labs razširitev."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Oznaka Syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Opis"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Ravnanje"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Privzete
nastavitve"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Skrbniške
možnosti modula"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Urejevalnik gumb
možnosti"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Varnostne
nastavitve"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Namestitev"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Oblikovanje"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Oznaka Syntax"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Namesti"
RL_ACTION_UNINSTALL="Odstranitev"
RL_ACTION_UPDATE="Posodobitev"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Skrbnik"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Napredno"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="VSE"
RL_ALL_DESC="Bodo objavljeni, če <strong>VSE</strong> od
spodaj, se primerjajo naloge."
RL_ALL_RIGHTS_RESERVED="Vse pravice pridržane"
RL_ALSO_ON_CHILD_ITEMS="Tudi na podrejene postavke"
RL_ALSO_ON_CHILD_ITEMS_DESC="Prav tako dodeli podrejene postavke
izbrane postavke?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="Ali"
RL_ANY_DESC="Bodo objavljene, če <strong>KATERE
KOLI</strong> (eden ali več) od spodaj se ujemajo
naloge.<br>Naloga skupine, kjer je 'Prezri' izbrana, bodo
prezrte."
RL_ARE_YOU_SURE="Ali ste prepričani?"
RL_ARTICLE="Članek"
RL_ARTICLE_AUTHORS="Avtorji"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="Prispevki"
; RL_ARTICLES_DESC="Select the articles to assign to."
RL_AS_EXPORTED="Kot izvozi"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="Australia"
RL_AUTHORS="Avtorji"
RL_AUTO="Samodejno"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Ravnanje"
RL_BEHAVIOUR="Ravnanje"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="Oboje"
RL_BOTTOM="Spodaj"
RL_BROWSERS="Brskalniki"
RL_BROWSERS_DESC="Izberite brskalnike. Imejte v mislih, da brskalnik
za odkrivanje ni nikoli 100&#37;vodo tesen. Uporabniki lahko svoje
nastavitve brskalnika, da posnemajo druge brskalnike."
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="Besedilo gumba"
RL_BUTTON_TEXT_DESC="To besedilo bo prikazano na gumbu
urejevalnika."
RL_CACHE_TIME="Cache čas"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="Kategorije"
RL_CATEGORIES_DESC="Izberite kategorije."
; RL_CATEGORY="Category"
RL_CHANGELOG="Changlog"
RL_CLASSNAME="CSS razred"
; RL_COLLAPSE="Collapse"
RL_COM="Komponenta"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Komponente"
RL_COMPONENTS_DESC="Izberite komponente."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Vsebina"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="Kopija od %s"
RL_COPYRIGHT="Avtorske pravice"
RL_COUNTRIES="Države"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
; RL_CURRENT="Current"
RL_CURRENT_DATE="Trenutni datum / čas:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Vaša trenutna različica je %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Koda po meri"
RL_CUSTOM_CODE_DESC="Vnesite kodo urejevalnik gumb je treba vstaviti v
vsebino (namesto privzetih kode)."
RL_CUSTOM_FIELD="Polje po meri"
RL_CUSTOM_FIELDS="Polja po meri"
RL_DATE="Datum"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="Datum & Čas"
RL_DATE_TIME_DESC="Naloge datum in čas uporabe datum / čas
strežnikov, ne za sistema obiskovalcev."
; RL_DATE_TO="To"
RL_DAYS="Dan v tednu"
RL_DAYS_DESC="Izberite dan v tednu."
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
RL_DEFAULT_SETTINGS="Privzete nastavitve"
RL_DEFAULTS="Privzeto"
; RL_DEVICE_DESKTOP="Desktop"
RL_DEVICE_MOBILE="Mobilni telefon"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="Smer"
RL_DIRECTION_DESC="Izberite smer"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="Onemogoči v komponentah"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="Prikaži povezave"
RL_DISPLAY_LINK_DESC="Kako želite prikazati povezavo?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Prikaži opis orodja"
RL_DISPLAY_TOOLTIP_DESC="Izberite prikaz za opis orodja z dodatnimi
informacijami, ko miška lebdi nad povezavo / ikono."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="To postavlja številko dogodka.<br>Če
se ugotovi iskanja, recimo, 4 krat, bo število prikazano v tem zaporedju 1
do 4."
RL_DYNAMIC_TAG_DATE="Datum uporablja %1$sphp strftime () format %2$s.
Primer: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Uporabite za izhod dinamičnih vrednosti
(dodajte poševnice v narekovajih)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="Naključno število v določenem razponu"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="Id številka uporabnika."
RL_DYNAMIC_TAG_USER_NAME="Ime uporabnika"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="kraji oznakah uporabniške podatke iz
prijavljeni uporabniki. Če obiskovalec ni prijavljen, oznako bo treba
odstraniti."
RL_DYNAMIC_TAG_USER_USERNAME="Uporabniško ime uporabnika."
RL_DYNAMIC_TAGS="Dinamične oznake"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Omogoči"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
RL_ENABLE_IN_ADMIN="Omogoči v skrbništvu"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="Omogoči v prispevkih"
RL_ENABLE_IN_COMPONENTS="Omogoči v komponentah"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="Omogoči v ospredju"
RL_ENABLE_IN_FRONTEND_DESC="Če je omogočeno, bo na voljo tudi v
ospredju."
RL_ENABLE_OTHER_AREAS="Omogoči v drugih področjih"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Izloči"
; RL_EXPAND="Expand"
RL_EXPORT="Izvoz"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="Padec"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
; RL_FILES_NOT_FOUND="Required %s files not found!"
RL_FILTERS="Filtri"
RL_FINISH_PUBLISHING="Konec objave"
RL_FINISH_PUBLISHING_DESC="Vpišite datum konca objave"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIvsebina"
RL_FOR_MORE_GO_PRO="Za dodatne funkcionalnosti lahko kupite PRO
različico."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="Ospredje"
RL_GALLERY="Galerija"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="Pojdite na Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="Višina"
RL_HEMISPHERE="Polobla"
RL_HEMISPHERE_DESC="Izberite poloblo vaše spletne strani se nahaja
v."
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Domača stran"
RL_HOME_PAGE_DESC="V nasprotju z izbiro domače strani (privzeto)
točko preko menija, to bo samo ustrezalo pravi domači strani, ne katero
koli URL, ki ima enako Itemid kot element Domov meni.<br><br>To
morda ne bo delaloo za vse SEF končnice."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Samo ikona"
RL_IGNORE="Prezri"
RL_IMAGE="Slika"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="Uvoz"
RL_IMPORT_ITEMS="Uvoz postavke"
RL_INCLUDE="Vključi"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="Vključi ne Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Prav tako določite, če se ne meni Itemid,
določeni v URL?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Vstavite"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Naslov"
RL_IS_FREE_VERSION="To je brezplačna različica %s."
RL_ITEM="Postavka"
RL_ITEM_IDS="ID Postavke"
RL_ITEM_IDS_DESC="Vpišite ID postavke, dodelite. Ločite z vejicami
ids."
RL_ITEMS="Postavke"
; RL_ITEMS_DESC="Select the items to assign to."
RL_JCONTENT="Joomla! Vsebina"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Kategorije"
RL_LANGUAGE="jezik"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Jeziki"
RL_LANGUAGES_DESC="Izberite jezike, dodelite."
RL_LAYOUT="Postavitev"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Nivoji"
; RL_LEVELS_DESC="Select the levels to assign to."
; RL_LIB="Library"
RL_LINK_TEXT="Besedilo povezave"
RL_LINK_TEXT_DESC="Besedilo za prikaz, kot povezavo."
RL_LIST="Seznam"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
RL_LOAD_JQUERY="Naložite jQuery skripto"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="Nalaganje jedro Moo Tools"
RL_LOAD_MOOTOOLS_DESC="Izberite za obremenitev scenarij jedro
Mootools. Lahko onemogočite to, če pride do konfliktov, če vaše
predloge ali druge razširitve obremenitev svojo lastno različico
Mootools."
RL_LOAD_STYLESHEET="Naloži datoteko s slogi"
RL_LOAD_STYLESHEET_DESC="Izberi za nalaganje razširitev datoteke s
slogi. Lahko onemogočite to, če si mesto vse svoje sloge v nekaterih
drugih slogom, kot slogi predloge."
; RL_LOW="Low"
RL_LTR="Od leve proti desni"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="Metoda ujemanja"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Povečajte"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="Srednji"
RL_MENU_ITEMS="Postavke menija"
RL_MENU_ITEMS_DESC="Izberite postavke menija, dodelite."
RL_META_KEYWORDS="Meta ključne besede"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Zmanjšajte"
RL_MOBILE_BROWSERS="Mobilni Brskalniki"
RL_MOD="Modul"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Meseci"
RL_MONTHS_DESC="Izberite mesece, dodelite."
RL_MORE_INFO="Več informacij"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d postavka posodobljena."
RL_N_ITEMS_UPDATED_1="Ena postavka je bila posodobljena"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="Novejša različica je na voljo"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
RL_NO_ICON="Brez Ikone"
RL_NO_ITEMS_FOUND="Ne najdem izdelkov"
RL_NORMAL="Običajno"
RL_NORTHERN="Severno"
RL_NOT="Ni"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Samo"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>na voljo samo v PRO
različici</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="To sporočilo se prikaže samo (Super
Administratorju."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Operacijski Sistem"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="Druga področja"
RL_OTHER_OPTIONS="Druge možnosti"
RL_OTHER_SETTINGS="Druge nastavitve"
RL_OTHERS="Drugo"
RL_PAGE_TYPES="Vrsta strani"
RL_PAGE_TYPES_DESC="Izberite o tem, katere vrste strani je treba za
dodelitev biti aktivene."
RL_PHP="Po meri PHP"
RL_PHP_DESC="Vpišite del PHP kode, da ocenite. Koda mora vrniti
vrednost, pravilna ali napačna.<br><br>Na
primer:<br><br>$user =
JFactory:&zwj;:getUser();<br>vrnitev ( $user->name ==
'Chico' );"
RL_PLACE_HTML_COMMENTS="Vstavi HTML komentarje"
RL_PLACE_HTML_COMMENTS_DESC="Privzeto se HTML komentarji dajo po
izhodu ta razširitev.<br><br>Te komentarje ki vam lahko
pomagajo težav, če ne boste dobili izhodni ste
pričakovali.<br><br>Če vam je ljubše, da ne bi te pripombe v
vašem HTML izhod, pa to možnost izklopite."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Urejevalnik gumb vtičnika"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Sistem Vtičnik"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="Izdelki"
RL_PUBLISHED_DESC="Lahko uporabite to (začasno) izklopiti to
postavko"
RL_PUBLISHING_ASSIGNMENTS="Objavljanje Razvrščanja"
RL_PUBLISHING_SETTINGS="Objavi postavko"
RL_RANDOM="Naključno"
RL_REDSHOP="RedShop"
RL_REGEX="Regularni Izrazi"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
; RL_RESIZE_IMAGES_CROP="Crop"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Zemljevid"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Od desne proti levi"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="Sezone"
RL_SEASONS_DESC="Izberite sezone, dodelite."
RL_SELECT="Izberite"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="Izberite vse"
RL_SELECT_AN_ARTICLE="Izberite Prispevek"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Izbrani"
RL_SELECTION="Izbira"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="Skrbniške možnosti modula"
RL_SETTINGS_EDITOR_BUTTON="Urejevalnik gumb možnosti"
RL_SETTINGS_SECURITY="Varnostne nastavitve"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="Prikaži ikono gumba"
RL_SHOW_ICON_DESC="Če bo izbrano, ikona se prikaže gumb v
urejevalniku."
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="Preprosto"
RL_SLIDES="Drsnik"
RL_SOUTHERN="Južni"
; RL_SPECIFIC="Specific"
RL_SPRING="Pomlad"
RL_START="Začetek"
RL_START_PUBLISHING="Začetek objavljanja"
RL_START_PUBLISHING_DESC="Vnesite datum za začetek objavljanja."
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="Oblikovanje"
RL_SUMMER="Poletje"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="Oznaka Syntax"
RL_TAG_SYNTAX_DESC="Beseda, ki se uporabljajo v
oznake.<br><br><strong>Opomba:</strong> Če
spremenite to, vse obstoječe oznake ne bodo več delovale."
RL_TAGS="Oznake"
RL_TAGS_DESC="Vnesite oznake, za dodeljevanje. Ločite oznake z
vejicami."
RL_TEMPLATES="Predloge"
RL_TEMPLATES_DESC="Izberite predlogo, dodelite."
RL_TEXT="Besedilo"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Samo besedilo"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Ta razširitev
potrebuje %s za pravilno delovanje!"
RL_TIME="Čas"
RL_TIME_FINISH_PUBLISHING_DESC="Vpišite čas do konca
objave.<br><br><strong>Oblika:</strong> 23:59"
RL_TIME_START_PUBLISHING_DESC="Vpišite čas za začetek
objave.<br><br><strong>Oblika:</strong> 23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="Tooltip"
RL_TOP="Zgoraj"
RL_TOTAL="Skupaj"
RL_TYPES="Vrste"
; RL_TYPES_DESC="Select the types to assign to."
RL_UNSELECT_ALL="Opustite vse"
RL_UNSELECTED="Neizbrano"
RL_UPDATE_TO="Posodobitev za različico %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL ujemanja"
RL_URL_PARTS_DESC="Vpišite (del) URLs za ujemanje.<br>Uporabite
novo linijo za vsako drugačno ujemanje."
RL_URL_PARTS_REGEX="Url deli se bomo primerjali z uporabo regularnih
izrazov. <strong>Zato poskrbite nizu uporabo veljavno regex
sintakso.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="Uporabite kodo po meri"
RL_USE_CUSTOM_CODE_DESC="Če je izbrano, bo urejevalnik gumb vstavil
kodo po meri, namesto tega."
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="Nivo uporabniške skupine"
RL_USER_GROUPS="Uporabniške skupine"
RL_USER_GROUPS_DESC="Izberite uporabniško skupino, dodelite."
RL_USER_IDS="ID uporabnika"
RL_USER_IDS_DESC="Vpišite ID-je uporabnikov, dodelite. Ločite z
vejicami ids."
RL_USERS="Uporabniki"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Pogled"
RL_VIEW_DESC="Izberite, kaj bo privzeti pogled uporabil pri
ustvarjanju novega elementa"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Širina"
RL_WINTER="Zima"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorije"
PK�X�[d�ll?regularlabs/language/sl-SI/sl-SI.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - ki jih uporabljajo
Regular Labs razširitve."
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[g�8�8�;regularlabs/language/sv-SE/sv-SE.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Bibliotek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs - Ramverk - används av
Regular Labs tillägg"
REGULAR_LABS_LIBRARY="Regular Labs - Ramverk"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs Extensions
behöver denna plugin och kommer inte att fungera utan
den.<br><br>Regular Labs extensions
omfattar:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Du skall
<strong>INTE</strong> avinstallera eller inaktivera denna
plugin om du använder något av Regular Labs Extensions."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Användarens
Aktivitetslogg"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tagg-syntax"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Beskrivning"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Beskrivning"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Beteende"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Standardinställningar"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administratörs
modulval"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Inställningar
för knappen i editorn"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Säkerhetsval"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Inställningar"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Utseende"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tagg syntax"

RL_ACCESS_LEVELS="Åtkomstnivåer"
RL_ACCESS_LEVELS_DESC="Välj en tillträdesnivå att koppla
till."
RL_ACTION_CHANGE_DEFAULT="Ändra Standard"
RL_ACTION_CHANGE_STATE="Ändra Publiceringsläge"
RL_ACTION_CREATE="Skapa"
RL_ACTION_DELETE="Ta bort"
RL_ACTION_INSTALL="Installera"
RL_ACTION_UNINSTALL="Avinstallera"
RL_ACTION_UPDATE="Uppdatera"
RL_ACTIONLOG_EVENTS="Händelser till loggen"
RL_ACTIONLOG_EVENTS_DESC="Välj vilka händelser som skall tas med i
aktivitetsloggen."
RL_ADMIN="Admin"
RL_ADMIN_MODULE_HAS_BEEN_DISABLED="Administrator modulen
[[%1:extension%]] har blivit avpublicerad!"
RL_ADVANCED="Avancerad"
RL_AFTER="Efter"
RL_AFTER_NOW="Efter NU"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ALLA"
RL_ALL_DESC="Kommer att publiceras om
<strong>ALLA</strong> de nedanstående villkoren
uppfylls."
RL_ALL_RIGHTS_RESERVED="Alla rättigheter är förbehållna"
RL_ALSO_ON_CHILD_ITEMS="Även på underliggande objekt"
RL_ALSO_ON_CHILD_ITEMS_DESC="Tilldela även till underliggande
artiklar till de markerade objekten?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="De underliggande objekten är
kopplade till underobjekt i urvalet ovan. De är inte kopplade till länkar
på de markerade sidorna."
RL_ANY="NÅGON"
RL_ANY_DESC="Kommer att publiceras om
<strong>valfri</strong> (en eller flera) av nedan uppdrag
matchas.<br>tilldelning av grupper där &quot;Ignorera&quot;
är markerat ignoreras."
RL_ARE_YOU_SURE="Är du säker?"
RL_ARTICLE="Artikel"
RL_ARTICLE_AUTHORS="Författare"
RL_ARTICLE_AUTHORS_DESC="Välj författare att koppla till."
RL_ARTICLES="Artiklar"
RL_ARTICLES_DESC="Välj artiklar att tilldela"
RL_AS_EXPORTED="Som exporterad"
RL_ASSIGNMENTS="Tilldelning"
RL_ASSIGNMENTS_DESC="Genom att välja specifika tilldenlningar kan du
begränsa var %s skall eller icke skall visas.<br>För att publicera
på alla sidor tilldelar du helt enkelt inget här."
RL_AUSTRALIA="Australien"
RL_AUTHORS="Författare"
RL_AUTO="Auto"
RL_BEFORE="Före"
RL_BEFORE_NOW="Före NU"
RL_BEGINS_WITH="Börjar med"
RL_BEHAVIOR="Beteende"
RL_BEHAVIOUR="Beteende"
RL_BETWEEN="Mellan"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Du har avaktiverat Bootstrap
ramverket. %s behöver använda Bootstrap ramverket för att fungera. Se
till så din mall eller annan komponent laddar de skript som krävs."
RL_BOTH="Båda"
RL_BOTTOM="Botten"
RL_BROWSERS="Webbläsare"
RL_BROWSERS_DESC="Välj de webbläsare som detta skall gälla för.
Kom ihåg att detekteringen av webbläsare inte alltid är 100&#37;
vattentätt. Användare kan ställa in sina webbläsare att imitera andra
webbläsare"
RL_BUTTON_ICON="Knapp-ikon"
RL_BUTTON_ICON_DESC="Välj vilken ikon som skall visas i
knappen."
RL_BUTTON_TEXT="Text i knapp"
RL_BUTTON_TEXT_DESC="Denna text kommer att visas för knappen i
editorn."
RL_CACHE_TIME="Cache-Tid"
RL_CACHE_TIME_DESC="Den maximala tiden i minuter som en cachad fil
skall sparas innan den cachas på nytt. Lämna tomt för att använda
globala inställningar."
RL_CATEGORIES="Kategorier"
RL_CATEGORIES_DESC="Välj kategorier att koppla till"
RL_CATEGORY="Kategori"
RL_CHANGELOG="Ändringslogg"
RL_CLASSNAME="CSS-klass"
RL_COLLAPSE="Kollapsa"
RL_COM="Komponent"
RL_COMBINE_ADMIN_MENU="Kombinera admin-meny"
RL_COMBINE_ADMIN_MENU_DESC="Markera för att lägga samman alla
Regular Labs komponenter i en undermeny i administratörsmenyn."
RL_COMPARISON="Jämförelse"
RL_COMPONENTS="Komponenter"
RL_COMPONENTS_DESC="Välj komponenter att koppla till"
RL_CONTAINS="Innehåller"
RL_CONTAINS_ONE="Innehåller en av"
RL_CONTENT="Innehåll"
RL_CONTENT_KEYWORDS="Nyckelord"
RL_CONTENT_KEYWORDS_DESC="Ange nyckelord som hittas i innehållet att
koppla till. Använd komma-tecken för att separera nyckelorden."
RL_CONTINENTS="Kontinenter"
RL_CONTINENTS_DESC="Välj vilka kontinenter som skall tilldelas"
RL_COOKIECONFIRM="Godkänn Cookies"
RL_COOKIECONFIRM_COOKIES="Cookies tillåtna"
RL_COOKIECONFIRM_COOKIES_DESC="Koppla till om cookies är tillåtna
eller otillåtna, baserat på konfigurationen av Cookie Confirm (av
Twentronix) och besökarens val att godkänna eller avvisa cookies."
RL_COPY_OF="Kopia av %s"
RL_COPYRIGHT="Copyright"
RL_COUNTRIES="Länder"
RL_COUNTRIES_DESC="Välj vilka länder som skall tilldelas"
RL_CSS_CLASS="Klass (CSS)"
RL_CSS_CLASS_DESC="Ange ett CSS klassnamn för att kunna ändra
stil."
RL_CURRENT="Nuvarande"
RL_CURRENT_DATE="Aktuellt datum/tid:
<strong>%s</strong>"
RL_CURRENT_USER="Nuvarande användare"
RL_CURRENT_VERSION="Din nuvarande version är %s"
RL_CUSTOM="Egen"
RL_CUSTOM_CODE="Egen kod"
RL_CUSTOM_CODE_DESC="Ange koden som redigeringsknappen infogar.
(Istället för standardknappen)"
RL_CUSTOM_FIELD="Anpassat fält"
RL_CUSTOM_FIELDS="Anpassade fält"
RL_DATE="Datum"
RL_DATE_DESC="Välj vilken typ av datumjämförelse du vill
tilldela."
RL_DATE_FROM="Från"
RL_DATE_RECURRING="Återkommande"
RL_DATE_RECURRING_DESC="Välj att lägga till ett datumomfång varje
år. (Så året i valet kan ignoreras)"
RL_DATE_TIME="Datum & Tid"
RL_DATE_TIME_DESC="Kopplingen till datum och tid använder serverns
datum/tid, inte den som besökaren har i sin dator."
RL_DATE_TO="Till"
RL_DAYS="Veckodag"
RL_DAYS_DESC="Välj vilka veckodagar att koppla till"
RL_DEFAULT_ORDERING="Standardsortering"
RL_DEFAULT_ORDERING_DESC="Ange en standardsortering för objekten i
listan."
RL_DEFAULT_SETTINGS="Standardinställningar"
RL_DEFAULTS="Default"
RL_DEVICE_DESKTOP="Bordsdator"
RL_DEVICE_MOBILE="Mobil"
RL_DEVICE_TABLET="Läsplatta"
RL_DEVICES="Enheter"
RL_DEVICES_DESC="Välj enheter att koppla till. Kom ihåg att
upptäckta enheter inte alltid är 100&#37; korrekt. Användare kan
justera sina enheter att imitera andra enheter."
RL_DIRECTION="Riktning"
RL_DIRECTION_DESC="Välj riktning"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Välj vilka
administratörskomponenter som INTE skall använda detta tillägg."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Välj vilka komponenter som INTE
skall aktivera användning av detta tillägg."
RL_DISABLE_ON_COMPONENTS="Inaktivera på komponenter"
RL_DISABLE_ON_COMPONENTS_DESC="Välj vilka framsideskomponenter som
INTE skall använda detta tillägg."
RL_DISPLAY_EDITOR_BUTTON="Visa editor-knapp"
RL_DISPLAY_EDITOR_BUTTON_DESC="Välj för att visa en knapp i
editorn."
RL_DISPLAY_LINK="Visa länk"
RL_DISPLAY_LINK_DESC="Hur vill du att länken skall visas?"
RL_DISPLAY_TOOLBAR_BUTTON="Visa verktygsknappar"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Välj att visa en knapp i
verktygsraden."
RL_DISPLAY_TOOLBAR_BUTTONS="Visa verktygsknappar"
RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Välj att visa knapp(arna) i
verktygsraden."
RL_DISPLAY_TOOLTIP="Visa tipsruta"
RL_DISPLAY_TOOLTIP_DESC="Välj att visa tipsruta med extra information
när man pekar på en länk eller ikon med muspekaren."
RL_DYNAMIC_TAG_ARTICLE_ID="Den aktuella artikelns ID-nummer."
RL_DYNAMIC_TAG_ARTICLE_OTHER="Annat tillgängligt data från den
aktuella artikeln."
RL_DYNAMIC_TAG_ARTICLE_TITLE="Den aktuella artikelns rubrik."
RL_DYNAMIC_TAG_COUNTER="Detta placerar antalet
förekomster.<br>Om din sökning ger tex. 4 gånger, kommer antalet
som visas att vara respektive 1 till 4."
RL_DYNAMIC_TAG_DATE="Datum med %1$sphp strftime() format%2$s. Exempel:
%3$s"
RL_DYNAMIC_TAG_ESCAPE="Använd för att undanta dynamiska värden
(lägg till snedstreck till citattecken)."
RL_DYNAMIC_TAG_LOWERCASE="Konvertera text inom taggar till gemena
tecken."
RL_DYNAMIC_TAG_RANDOM="Ett slumptal inom givet intervall"
RL_DYNAMIC_TAG_RANDOM_LIST="Ett slumpvalt värde från en lista med
strängar, tal eller omfång"
RL_DYNAMIC_TAG_TEXT="En språksträng att översätta till text
(baserad på aktivt språk)"
RL_DYNAMIC_TAG_UPPERCASE="Konvertera text inom taggar till versala
tecken."
RL_DYNAMIC_TAG_USER_ID="Användarens ID-nummer"
RL_DYNAMIC_TAG_USER_NAME="Användarens namn"
RL_DYNAMIC_TAG_USER_OTHER="Annat tillgängligt data från användaren
eller ansluten kontakt. Exempel: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Användar-taggen placerar data för den
inloggade användaren. Om besökaren inte är inloggad, kommer taggen att
tas bort."
RL_DYNAMIC_TAG_USER_USERNAME="Login-namnet på användaren"
RL_DYNAMIC_TAGS="Dynamiska taggar"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Aktivera"
RL_ENABLE_ACTIONLOG="Logga användaraktiviteter"
RL_ENABLE_ACTIONLOG_DESC="Markera för att spara vad en användare
gör. Dessa aktiviteter kan visas i modulen Logg
Användaraktiviteter."
RL_ENABLE_IN="Aktivera i"
RL_ENABLE_IN_ADMIN="Aktivera i backend"
RL_ENABLE_IN_ADMIN_DESC="Om aktiverad, kommer pluginen också att
påverka administratörssidan på din webbplats.<br><br>Normalt
behöver du inte detta och det kan orsaka oönskade effekter såsom att
backend reagerar långsammare och att plugin-taggarna påverkar områden du
inte vill skall påverkas."
RL_ENABLE_IN_ARTICLES="Aktivera i artiklar"
RL_ENABLE_IN_COMPONENTS="Aktivera i komponenter"
RL_ENABLE_IN_DESC="Markera för att välja aktivering i frontend,
backend eller båda."
RL_ENABLE_IN_FRONTEND="Aktivera i front-end"
RL_ENABLE_IN_FRONTEND_DESC="Om aktiverad, kommer det att vara
tillgänglig i front-end."
RL_ENABLE_OTHER_AREAS="Aktivera andra områden"
RL_ENDS_WITH="Slutar med"
RL_EQUALS="Lika med"
RL_EXCLUDE="Exkludera"
RL_EXPAND="Expandera"
RL_EXPORT="Exportera"
RL_EXPORT_FORMAT="Exportformat"
RL_EXPORT_FORMAT_DESC="Välj ett filformat för de exporterade
filerna."
RL_EXTRA_PARAMETERS="Extra parametrar"
RL_EXTRA_PARAMETERS_DESC="Ange extra parametrar som inte kan anges med
tillgängliga inställningar."
RL_FALL="Höst"
RL_FEATURED_DESC="Markera för att använda funktionstillståndet i
tilldelningen."
RL_FEATURES="Funktioner"
RL_FIELD="Fält"
RL_FIELD_CHECKBOXES="Kryssrutor"
RL_FIELD_DROPDOWN="Rullgardin"
RL_FIELD_MULTI_SELECT_STYLE="Flervalsstil"
RL_FIELD_MULTI_SELECT_STYLE_DESC="Visa flervalsfältet som ett
standard rullgardinsfält eller ett avancerat fält med kryssrutor."
RL_FIELD_NAME="Fältnamn"
RL_FIELD_PARAM_MULTIPLE="Multipla"
RL_FIELD_PARAM_MULTIPLE_DESC="Tillåt val av multipla värden."
RL_FIELD_SELECT_STYLE="Flervalsstil"
RL_FIELD_SELECT_STYLE_DESC="Visa flervalsfältet som ett standard
rullgardinsfält eller ett avancerat fält med kryssrutor."
RL_FIELD_VALUE="Fältvärde"
RL_FIELDS_DESC="Välj (de) fält du vill tilldela till och ange
önskade värde(n)"
RL_FILES_NOT_FOUND="%s filer som krävs hittas inte!"
RL_FILTERS="Filter"
RL_FINISH_PUBLISHING="Avsluta publicering"
RL_FINISH_PUBLISHING_DESC="Ange datum för att avsluta
publicering"
RL_FIX_HTML="Fixa HTML"
RL_FIX_HTML_DESC="Markera för att låta tillägget fixa problem i
HTML-strukturen. Detta är ofta nödvändigt för att kunna hantera de
omgivande HTML-taggarna.<br><br>Stäng endast av om det finns
problem med detta."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="För att få mer funktioner kan du köpa PRO
Versionen."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="NoNumber Framework verkar inte användas
av något annat tillägg du har installerat. Det är förmodligen säkrast
att inaktivera eller avinstallera pluginen."
RL_FROM_TO="Från-Till"
RL_FRONTEND="Framsidan"
RL_GALLERY="Galleri"
RL_GEO="Geolokation"
RL_GEO_DESC="Geolokation är inte alltid 100#37; tillfärlitligt.
Geolokationen baseras på användarens IP adress. Alla IP adresser är inte
fasta eller kända."
RL_GEO_GEOIP_COPYRIGHT_DESC="Denna produkt innehåller GeoLite2 data
som skapats av MaxMind och tillgänglig från [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Biblioteket Regular Labs GeoIP är inte
installerat. Du måste först [[%1:link start%]]installera Regular Labs
GeoIP bibliotek[[%2:link end%]] för att kunna använda koppling till
Geo-data."
RL_GO_PRO="Skaffa PRO!"
RL_GREATER_THAN="Större än"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Rubrik 1"
RL_HEADING_2="Rubrik 2"
RL_HEADING_3="Rubrik 3"
RL_HEADING_4="Rubrik 4"
RL_HEADING_5="Rubrik 5"
RL_HEADING_6="Rubrik 6"
RL_HEADING_ACCESS_ASC="Tillträde stigande"
RL_HEADING_ACCESS_DESC="Tillträde fallande"
RL_HEADING_CATEGORY_ASC="Kategori stigande"
RL_HEADING_CATEGORY_DESC="Kategori fallande"
RL_HEADING_CLIENTID_ASC="Plats stigande"
RL_HEADING_CLIENTID_DESC="Plats fallande"
RL_HEADING_COLOR_ASC="Färg stigande"
RL_HEADING_COLOR_DESC="Färg fallande"
RL_HEADING_DEFAULT_ASC="Standard stigande"
RL_HEADING_DEFAULT_DESC="Standard fallande"
RL_HEADING_DESCRIPTION_ASC="Beskrivning stigande"
RL_HEADING_DESCRIPTION_DESC="Beskrivning fallande"
RL_HEADING_ID_ASC="ID stigande"
RL_HEADING_ID_DESC="ID fallande"
RL_HEADING_LANGUAGE_ASC="Språk stigande"
RL_HEADING_LANGUAGE_DESC="Språk fallande"
RL_HEADING_ORDERING_ASC="Sortering stigande"
RL_HEADING_ORDERING_DESC="Sortering fallande"
RL_HEADING_PAGES_ASC="Menyobjekt stigande"
RL_HEADING_PAGES_DESC="Menyobjekt fallande"
RL_HEADING_POSITION_ASC="Position stigande"
RL_HEADING_POSITION_DESC="Position fallande"
RL_HEADING_STATUS_ASC="Status stigande"
RL_HEADING_STATUS_DESC="Status fallande"
RL_HEADING_STYLE_ASC="Stil stigande"
RL_HEADING_STYLE_DESC="Stil fallande"
RL_HEADING_TEMPLATE_ASC="Sidmall stigande"
RL_HEADING_TEMPLATE_DESC="Sidmall fallande"
RL_HEADING_TITLE_ASC="Rubrik stigande"
RL_HEADING_TITLE_DESC="Rubrik fallande"
RL_HEADING_TYPE_ASC="Typ stigande"
RL_HEADING_TYPE_DESC="Typ fallande"
RL_HEIGHT="Höjd"
RL_HEMISPHERE="Område"
RL_HEMISPHERE_DESC="Välj inom vilket område din webbplats
finns"
RL_HIGH="Hög"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Startsida"
RL_HOME_PAGE_DESC="I motsats till att välja Startsidans ItemID
(stadard) via menyernas ID, kommer detta att välja den verkliga
startsidan. Inte bara med samma ItemID som startsidans
ID.<br><br>Detta kanske inte fungerar med en del 3:e parts
SEF-tillägg."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="HTML-taggar"
RL_ICON_ONLY="Endast ikon"
RL_IGNORE="Ignorera"
RL_IMAGE="Bild"
RL_IMAGE_ALT="Bild Alt"
RL_IMAGE_ALT_DESC="Bildens alternativvärde."
RL_IMAGE_ATTRIBUTES="Bildattribut"
RL_IMAGE_ATTRIBUTES_DESC="Extra attribut för bilden såsom:
alt=&quot;Min Bild&quot; width=&quot;300&quot;"
RL_IMPORT="Importera"
RL_IMPORT_ITEMS="Importera objekt"
RL_INCLUDE="Inkludera"
RL_INCLUDE_CHILD_ITEMS="Ta med underliggande objekt"
RL_INCLUDE_CHILD_ITEMS_DESC="Skall du ta med underliggande objekt för
det valda objektet?"
RL_INCLUDE_NO_ITEMID="Inkludera inga ItemID"
RL_INCLUDE_NO_ITEMID_DESC="Tilldela också när inget ItemID är satt
i URL:en?"
RL_INITIALISE_EVENT="Initiera vid händelse"
RL_INITIALISE_EVENT_DESC="Ang den interna Joomla-händelse som skall
initiera pluginen. Ändra detta endast om du har problem att få pluginen
att fungera korrekt."
RL_INPUT_TYPE="Inmatningstyp"
RL_INPUT_TYPE_ALNUM="En sträng med A-Z eller 0-9 (ej
skifteskänslig)."
RL_INPUT_TYPE_ARRAY="En array."
RL_INPUT_TYPE_BOOLEAN="Ett booleskt värde."
RL_INPUT_TYPE_CMD="En sträng med A-Z, 0-9, understreck, punkter eller
bindestreck (ej skifteskänslig)."
RL_INPUT_TYPE_DESC="Välj en inmatningstyp:"
RL_INPUT_TYPE_FLOAT="Ett decimal eller en grupp med decimaltal."
RL_INPUT_TYPE_INT="Ett heltal eller en grupp med heltal."
RL_INPUT_TYPE_STRING="En fullständigt avkodad och uppstädad sträng
(standard)."
RL_INPUT_TYPE_UINT="Ett osignerat heltal eller en grupp med osignerade
heltal."
RL_INPUT_TYPE_WORD="En sträng med A-Z eller understreck (ej
skifteskänslig)."
RL_INSERT="Infoga"
RL_INSERT_DATE_NAME="Infoga Datum/Namn"
RL_IP_RANGES="IP Adresser"
RL_IP_RANGES_DESC="En komma och/eller retur separerad lista på IP
adresser. Till
exempel:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Adresser"
RL_IS_FREE_VERSION="Detta är GRATIS versionen av %s."
RL_ITEM="Objekt"
RL_ITEM_IDS="ItemID"
RL_ITEM_IDS_DESC="Ange de ItemID som skall tilldelas. Använd
komma-tecken för att separera IDn"
RL_ITEMS="Objekt"
RL_ITEMS_DESC="Välj objekt att tilldela"
RL_JCONTENT="Joomla! Innehåll"
RL_JED_REVIEW="Tycker du om detta tillägg? [[%1:start link%]]Lämna
ett betyg och recension på JED[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Du kör en Joomla 2.5 version av %1$s
på Joomla 3. Var god installera om %1$s för att lösa problemet."
RL_JQUERY_DISABLED="Du har avaktiverat jQuery script. %s behöver
använda jQuery för att fungera. Se till så din mall eller annan
komponent laddar de skript som krävs."
RL_K2="K2"
RL_K2_CATEGORIES="K2-kategorier"
RL_LANGUAGE="Språk"
RL_LANGUAGE_DESC="Välj ett språk att koppla till."
RL_LANGUAGES="Språk"
RL_LANGUAGES_DESC="Välj språk som skall tilldelas till."
RL_LAYOUT="Layout"
RL_LAYOUT_DESC="Välj vilken layout som skall användas. Du kan
kringgå detta i komponenten eller sidmallen."
RL_LESS_THAN="Mindre än"
RL_LEVELS="Nivåer"
RL_LEVELS_DESC="Välj nivåer att tilldela"
RL_LIB="Bibliotek"
RL_LINK_TEXT="Länktext"
RL_LINK_TEXT_DESC="Texten som skall visas som länk."
RL_LIST="Lista"
RL_LOAD_BOOTSTRAP_FRAMEWORK="ladda Bootstrap ramverket"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Avaktivera för att inte ladda
bootstrap ramverket"
RL_LOAD_JQUERY="Ladda jQuery Script"
RL_LOAD_JQUERY_DESC="Välj att ladda Joomlas eget jQuery script. Du
kan inaktivera detta om du upplever konflikter om din sidmall eller andra
insticksprogram laddar sina egna versioner av jQuery."
RL_LOAD_MOOTOOLS="Ladda Core MooTools"
RL_LOAD_MOOTOOLS_DESC="Välj att ladda MooTools sktiptet. Du kan
avaktivera detta om du upplever konflikter i din mall eller andra
insticksprogram och låta dom ladda MooTools."
RL_LOAD_STYLESHEET="Ladda Admin Stylesheet"
RL_LOAD_STYLESHEET_DESC="Välj om du vill ladda stylesheet. Du kan
inaktivera det här om du vill använda ditt egna styles."
RL_LOW="Låg"
RL_LTR="Vänster-Till-Höger"
RL_MATCH_ALL="Matcha Alla"
RL_MATCH_ALL_DESC="Markera detta gälla endast om samtliga markerade
kriterier skall passa."
RL_MATCHING_METHOD="Matchningsmetod"
RL_MATCHING_METHOD_DESC="Skall alla eller något av villkoren
uppfyllas?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Maximalt listantal"
RL_MAX_LIST_COUNT_DESC="Det maximala antalet element att visa i en
flervalsrullgardin. Om det totala antalet poster är högre, kommer
väljarfältet att visas som ett textfält.<br><br>Du kan ange
ett lägre antal om du upplever att laddningstiden av sidan blir lång på
grund av ett stort antal poster i listan."
RL_MAX_LIST_COUNT_INCREASE="Öka maximalt listantal"
RL_MAX_LIST_COUNT_INCREASE_DESC="Det finns fler än [[%1:max%]]
objekt.<br><br>För att förhindra långsam sidladdning, visas
detta fält som en textyta istället för en dynamisk
lista.<br><br>Du kan öka '[[%2:max setting%]]' i
Regular Labs Library plugin inställningar."
RL_MAXIMIZE="Maximera"
RL_MEDIA_VERSIONING="Använd Media-versioner"
RL_MEDIA_VERSIONING_DESC="Markera för att lägga till tilläggets
versionsnummer i slutet av media (js/css) URL:er, för att tvinga
webbläsare att ladda korrekt fil."
RL_MEDIUM="Mellan"
RL_MENU_ITEMS="Menyobjekt"
RL_MENU_ITEMS_DESC="Välj vilka menyobjekt att koppla till."
RL_META_KEYWORDS="Meta-nyckelord"
RL_META_KEYWORDS_DESC="Ange nyckelord som hittas i meta-nyckelorden
att koppla till. Använd komma-tecken för att separera nyckelorden."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Minimera"
RL_MOBILE_BROWSERS="Mobila läsare"
RL_MOD="Modul"
RL_MODULE_HAS_BEEN_DISABLED="Modulen [[%1:extension%]] har blivit
avpublicerad!"
RL_MONTHS="Månader"
RL_MONTHS_DESC="välj vilka månader som skall användas."
RL_MORE_INFO="Mer information"
RL_MY_STRING="Min sträng!"
RL_N_ITEMS_ARCHIVED="%s objekt arkiverade."
RL_N_ITEMS_ARCHIVED_1="%s objekt arkiverat."
RL_N_ITEMS_CHECKED_IN_0="Inga objekt upplåsta."
RL_N_ITEMS_CHECKED_IN_1="%d objekt upplåst."
RL_N_ITEMS_CHECKED_IN_MORE="%d objekt upplåsta."
RL_N_ITEMS_DELETED="%s objekt borttagna."
RL_N_ITEMS_DELETED_1="%s objekt borttaget."
RL_N_ITEMS_FEATURED="%s objekt utvalda."
RL_N_ITEMS_FEATURED_1="%s objekt utvalt."
RL_N_ITEMS_PUBLISHED="%s objekt publicerade."
RL_N_ITEMS_PUBLISHED_1="%s objekt publicerat."
RL_N_ITEMS_TRASHED="%s objekt kastade."
RL_N_ITEMS_TRASHED_1="%s objekt kastat."
RL_N_ITEMS_UNFEATURED="%s objekt outvalda."
RL_N_ITEMS_UNFEATURED_1="%s objekt outvalt."
RL_N_ITEMS_UNPUBLISHED="%s objekt avpublicerade."
RL_N_ITEMS_UNPUBLISHED_1="%s objekt avpublicerat."
RL_N_ITEMS_UPDATED="%d objekt uppdaterade."
RL_N_ITEMS_UPDATED_1="Ett objekt har uppdaterats"
RL_NEW_CATEGORY="Skapa ny kategori"
RL_NEW_CATEGORY_ENTER="Fyll i ett nytt namn för kategorin"
RL_NEW_VERSION_AVAILABLE="En ny version finns tillgänglig"
RL_NEW_VERSION_OF_AVAILABLE="En ny version av %s är
tillgänglig"
RL_NO_ICON="Ingen Ikon"
RL_NO_ITEMS_FOUND="Inga objekt hittades"
RL_NORMAL="Normal"
RL_NORTHERN="Norra"
RL_NOT="Inte"
RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Din installerade version av
[[%1:extension%]] är inte kompatibel med Joomla
[[%2:version%]].<br>Kontrollera om det finns en version av
[[%1:extension%]] tillgänglig för Joomla [[%2:version%]] och installera
den."
RL_NOT_CONTAINS="Innehåller inte"
RL_NOT_EQUALS="Är inte lika med"
RL_ONLY="Endast"
RL_ONLY_AVAILABLE_IN_JOOMLA="Endast tillgänglig i Joomla %s eller
högre."
RL_ONLY_AVAILABLE_IN_PRO="<em>Enbart tillgängligt i PRO
versionen!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Är endast tillgängligt i
PRO-versionen)"
RL_ONLY_VISIBLE_TO_ADMIN="Detta meddelande syns enbart för (super)
administratörer"
RL_OPTION_SELECT="- Välj -"
RL_OPTION_SELECT_CLIENT="- Välj klient -"
RL_ORDER_DIRECTION_PRIMARY="Primär ordningsriktning"
RL_ORDER_DIRECTION_SECONDARY="Sekundär ordningsriktning"
RL_ORDERING="Sorteringsordning"
RL_ORDERING_PRIMARY="Primär sorteringsordning"
RL_ORDERING_SECONDARY="Sekundär sorteringsordning"
RL_OS="Operativsystem"
RL_OS_DESC="Välj det operativsystem som skall tilldelas. Tänk på
att operativsystem avkänningen inte alltid är 100&#37;
tillförlitlig. Användare kan ställa in sina webbläsare att utge sig
för att vara olika operativsystem."
RL_OTHER="Annat"
RL_OTHER_AREAS="Andra områden"
RL_OTHER_OPTIONS="Andra alternativ"
RL_OTHER_SETTINGS="Andra inställningar"
RL_OTHERS="Andra"
RL_PAGE_TYPES="Sidtyper"
RL_PAGE_TYPES_DESC="Välj på vilka sidtyper uppdraget ska vara
aktiv."
RL_PHP="Egen PHP"
RL_PHP_DESC="Ange en PHP kod att utvärdera. Koden måste returnera
värdet Sant eller
Falskt.<br><br>exempelvis:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Placera HTML kommentarer"
RL_PLACE_HTML_COMMENTS_DESC="Som standard kommer HTML kommentarer att
placeras runt output för denna utvidgning.<br><br>These
comments can help you troubleshooting when you don't get the output
you expect.<br><br>Om du inte vill ha detta, inaktivera
alternativet."
RL_PLG_ACTIONLOG="Plugin Aktivitetslogg"
RL_PLG_EDITORS-XTD="Redaktörsknapp Instick"
RL_PLG_FIELDS="Fältplugin"
RL_PLG_SYSTEM="System instick"
RL_PLUGIN_HAS_BEEN_DISABLED="Pluginet [[%1:extension%]] har blivit
inaktiverad!"
RL_POSTALCODES="Postkoder"
RL_POSTALCODES_DESC="En komma-separerad lista med postnummer (12345)
eller postnummeromfång (12300-12500).<br>Detta kan endast användas
i [[%1:start link%]]ett begränsat antal länder och IP-adresser[[%2:end
link%]]."
RL_POWERED_BY="Drivs av %s"
RL_PRODUCTS="Produkter"
RL_PUBLISHED_DESC="Du kan använda denna för att (tillfälligt) slå
av detta objekt."
RL_PUBLISHING_ASSIGNMENTS="Publiceringsuppdrag"
RL_PUBLISHING_SETTINGS="Publicerade objekt"
RL_RANDOM="Slumpmässigt"
RL_REDSHOP="RedShop"
RL_REGEX="Regular Expressions"
RL_REGIONS="Regioner / Län"
RL_REGIONS_DESC="Välj Regioner / Län att tilldela"
RL_REGULAR_EXPRESSIONS="Använd reguljära uttryck"
RL_REGULAR_EXPRESSIONS_DESC="Välj för att behandla värde som ett
reguljärt uttryck"
RL_REMOVE_IN_DISABLED_COMPONENTS="Radera i Avstängda
komponenter"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Om markerad kommer pluginens
syntax att tas bort från komponenten. Om inte så behålls pluginens
syntax oförändrad."
RL_RESIZE_IMAGES="Skala om bilder"
RL_RESIZE_IMAGES_CROP="Beskär"
RL_RESIZE_IMAGES_CROP_DESC="Den omskalade bilden kommer alltid att ha
den angivna bredden och höjden."
RL_RESIZE_IMAGES_DESC="Om markerad kommer omskalade bilder att skapas
automatiskt för bilder om de inte redan finns. De omskalade bilderna
skapas med inställningarna nedan."
RL_RESIZE_IMAGES_FILETYPES="Endast på Filtyper"
RL_RESIZE_IMAGES_FILETYPES_DESC="Välj vilka filtyper som skall skalas
om."
RL_RESIZE_IMAGES_FOLDER="Mapp"
RL_RESIZE_IMAGES_FOLDER_DESC="Den mapp som innehåller omskalade
bilder. Detta är en undermapp till den mapp där originalbilderna
finns."
RL_RESIZE_IMAGES_HEIGHT_DESC="Ange höjden på de omskalade bilderna i
pixlar (ex. 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="Höjden kommer att beräknas baserat
på bredden angiven ovan och proportionen av originalbilden."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="Bredden kommer att beräknas baserat
på höjden angiven ovan och proportionen av originalbilden."
RL_RESIZE_IMAGES_QUALITY="JPG-kvalitet"
RL_RESIZE_IMAGES_QUALITY_DESC="Den omskalade bildens kvalitet. Välj
mellan Låg, Mellan och Hög. Ju högre kvalitet ju större
filstorlek.<br>Detta påverkar endast jpeg-bilder."
RL_RESIZE_IMAGES_SCALE="Skala"
RL_RESIZE_IMAGES_SCALE_DESC="Den omskalade bilden kommer att få
storleken satt efter maximal bredd eller höjd och behålla sin
proportion."
RL_RESIZE_IMAGES_SCALE_USING="Skala med fast..."
RL_RESIZE_IMAGES_SCALE_USING_DESC="Välj om den omskalade bilden skall
använda maximal bredd eller höjd. Det andra måttet kommer att beräknas
baserat på storleksförhållandet mellan sidorna på originalbilden."
RL_RESIZE_IMAGES_TYPE="Omskalningsmetod"
RL_RESIZE_IMAGES_TYPE_DESC="Ange typ av storleksförändring."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Ange"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Markera för att skala om
bilden med maximal bredd eller höjd."
RL_RESIZE_IMAGES_WIDTH_DESC="Ange bredden på de omskalade bilderna i
pixlar (ex. 320)."
RL_RTL="Höger-till-Vänster"
RL_SAVE_CONFIG="Efter valen sparats kommer inte popuprutan visas fler
gånger."
RL_SEASONS="Säsonger"
RL_SEASONS_DESC="Välj säsonger att tilldela."
RL_SELECT="Välj"
RL_SELECT_A_CATEGORY="Välj en kategori"
RL_SELECT_ALL="Välj allt"
RL_SELECT_AN_ARTICLE="Välj en artikel"
RL_SELECT_FIELD="Välj fält"
RL_SELECTED="Vald"
RL_SELECTION="Val"
RL_SELECTION_DESC="Välj om du vill inkludera eller exkludera
tilldelningen.<br><br><strong>Inkludera</strong><br>Publiceras
enbart vid
tilldelning.<br><br><strong>Exkludera</strong><br>Publicera
överallt utom vid tilldelningen."
RL_SETTINGS_ADMIN_MODULE="Administratörs modulval"
RL_SETTINGS_EDITOR_BUTTON="Inställningar för knappen i editorn"
RL_SETTINGS_SECURITY="Säkerhetsval"
RL_SHOW_ASSIGNMENTS="Visa tilldelningar"
RL_SHOW_ASSIGNMENTS_DESC="Välj om enbart valda tilldelningar skall
visas. Du kan använda detta för att få en enkel översikt."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Alla icke-valda tilldelade typer
är nu gömda från vyn."
RL_SHOW_COPYRIGHT="Visa upphovsrätt"
RL_SHOW_COPYRIGHT_DESC="Om markerad, kommer extra copyrightinformation
att visas i backendvyerna. Regular Labss tillägg visar aldrig
copyrightinformation eller länkar på framsidan."
RL_SHOW_HELP_MENU="Visa Hjälp-menyobjekt"
RL_SHOW_HELP_MENU_DESC="Markera för att visa en länk till Regular
Labs hemsida i administratörens hjälpmeny."
RL_SHOW_ICON="Visa knappikon"
RL_SHOW_ICON_DESC="Om vald, kommer en ikon att visas i knappen i
editorn."
RL_SHOW_UPDATE_NOTIFICATION="Visa uppdateringsnotiser"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Om markerad, kommer en
uppdateringsnotis att visas i huvudkomponenten när det finns nya versioner
av detta tillägg."
RL_SIMPLE="Enkel"
RL_SLIDES="Slides"
RL_SOUTHERN="Söder"
RL_SPECIFIC="Specifik"
RL_SPRING="Vår"
RL_START="Starta"
RL_START_PUBLISHING="Påbörja publicering"
RL_START_PUBLISHING_DESC="Ange datum som publicering skall
påbörjas"
RL_STRIP_HTML_IN_HEAD="Strippa HTML i Head"
RL_STRIP_HTML_IN_HEAD_DESC="Välj för att rensa html taggar från
pluginets output inom HTML Head sektionen"
RL_STRIP_SURROUNDING_TAGS="Ta bort omgivande taggar"
RL_STRIP_SURROUNDING_TAGS_DESC="Markera för att ta bort HTML-taggar
(div, p, span) som omger plugin-taggen. Om den är avslagen kommer pluginen
att försöka ta bort taggar som bryter HTML-strukturen (såsom p inne i
p-taggar)."
RL_STYLING="Utseende"
RL_SUMMER="Sommar"
RL_TABLE_NOT_FOUND="%s databas tabeller som krävs hittades
inte!"
RL_TABS="Flikar"
RL_TAG_CHARACTERS="Tagg-tecken"
RL_TAG_CHARACTERS_DESC="De tecken som omger
taggsyntaxen.<br><br><strong>OBS!:</strong> Om du
ändrar detta kommer alla nuvarande taggar att sluta fungera."
RL_TAG_SYNTAX="Tagg syntax"
RL_TAG_SYNTAX_DESC="Ord som skall användas i
taggarna.<br><br><strong>OBS!:</strong> Om du
ändrar detta kommer alla befintliga taggar att sluta fungera."
RL_TAGS="Taggar"
RL_TAGS_DESC="Ange taggar att tilldela till. Separera taggar med
komma."
RL_TEMPLATES="Mallar"
RL_TEMPLATES_DESC="Välj mallar att tilldela till"
RL_TEXT="Text"
RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="Endast text"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Denna
komponent behöver %s för att fungera korrekt!"
RL_TIME="Tid"
RL_TIME_FINISH_PUBLISHING_DESC="Ange tid att avsluta
publicering.<br><br><strong>Format:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="Ange tid att påbörja
publicering.<br><br><strong>Format:</strong>
23:59"
RL_TOGGLE="Ändra"
RL_TOOLTIP="Verktygstips"
RL_TOP="Toppen"
RL_TOTAL="Totalt"
RL_TYPES="Typer"
RL_TYPES_DESC="Välj vilken typ att tilldela"
RL_UNSELECT_ALL="Avmarkera allt"
RL_UNSELECTED="Ovalda"
RL_UPDATE_TO="Uppdatera till version : %s"
RL_URL="Länk"
RL_URL_PARAM_NAME="Parameternamn"
RL_URL_PARAM_NAME_DESC="Ange ett namn på URL-parametern."
RL_URL_PARTS="Länkträffar"
RL_URL_PARTS_DESC="Ange (del av) länkarna som skall
passa.<br>Använd en ny rad för varje träff."
RL_URL_PARTS_REGEX="Länkdelarna matchas med reguljäre
uttryck.<strong>Så se till att strängen innehåller giltig regex
syntax.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="För kategori & artikel (objekt)
tilldelning se ovan Joomla! innehåll sektionen."
RL_USE_CUSTOM_CODE="Använd egen kod"
RL_USE_CUSTOM_CODE_DESC="Om valt så kommer redigeringsknappen infoga
den egna koden."
RL_USE_SIMPLE_BUTTON="Använd enkel knapp"
RL_USE_SIMPLE_BUTTON_DESC="Markera för att använda en enkel
infoga-knapp, som enkelt infogar enkla syntaxer i editorn."
RL_USER_GROUP_LEVELS="Använd gruppnivå"
RL_USER_GROUPS="Användargrupper"
RL_USER_GROUPS_DESC="Välj vilka användargrupper som skall
tilldelas"
RL_USER_IDS="Användar ID"
RL_USER_IDS_DESC="Välj vilka användarID som skall tilldelas. Använd
komma för att lägga flera."
RL_USERS="Användare"
RL_UTF8="UTF-8"
RL_VIDEO="Video"
RL_VIEW="Vy"
RL_VIEW_DESC="Ange vilken Vy som skall användas när du skapar ett
nytt objekt."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Bredd"
RL_WINTER="Vinter"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorier"
PK�X�[�P+gg?regularlabs/language/sv-SE/sv-SE.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Bibliotek"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs - Ramverk - används av
Regular Labs tillägg"
REGULAR_LABS_LIBRARY="Regular Labs - Ramverk"
PK�X�[za����;regularlabs/language/th-TH/th-TH.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
เรียกใช้โดย ส่วนขยายของ Regular
Labs"
REGULAR_LABS_LIBRARY="Regular Labs - อิลลิเมน์"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]ส่วนขยายจาก
Regular Labs
จะต้องใช้งานปลั๊กอินนี้และจะไม่สามารถทำงานได้หากไม่มี<br><br>ส่วนขยายของ
Regular Labs ได้แก่:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="คุณจะต้องไม่ถอนหรือปิดการใช้งาน
ปลั๊กอินนี้ หากคุณใช้งาน
ส่วนขยายจาก Regular Labs"

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="ไวยากรณ์สำหรับแท็กคำสั่ง"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="คำอธิบาย"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="คำอธิบาย"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="พฤติกรรม"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="มีเดีย"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="ตัวเลือกสำหรับโมดูลผู้ดูแลระบบ"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="ตัวเลือกสำหรับปุ่มกดในเครื่องมือช่วยพิมพ์"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="ตั้งค่าความปลอดภัย"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="ติดตั้ง"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="การจัดรูปแบบ"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="ไวยากรณ์สำหรับแท็กคำสั่ง"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="ติดตั้ง"
RL_ACTION_UNINSTALL="ถอนการติดตั้ง"
RL_ACTION_UPDATE="อัพเดท"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="ผู้ดูแล"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="ขั้นสูงแล้ว"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ทั้งหมด"
RL_ALL_DESC="จะทำการเผยแพร่
<strong>ทั้งหมด</strong>
ถ้าที่กำหนดข้างล่างตรงกัน"
RL_ALL_RIGHTS_RESERVED="สงวนลิขสิทธิ์"
RL_ALSO_ON_CHILD_ITEMS="รวมถึงรายการย่อย"
RL_ALSO_ON_CHILD_ITEMS_DESC="กำหนดรวมถึงรายการย่อยของ
รายการที่เลือกด้วย?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="ใดๆ"
; RL_ANY_DESC="Will be published if <strong>ANY</strong>
(one or more) of below assignments are matched.<br>Assignment groups
where 'Ignore' is selected will be ignored."
RL_ARE_YOU_SURE="คุณแน่ใจ ?"
RL_ARTICLE="บทความ"
RL_ARTICLE_AUTHORS="ผู้เขียน"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="เนื้อหา"
RL_ARTICLES_DESC="เลือกบทความที่ต้องการระบุใช้"
RL_AS_EXPORTED="ระบุว่าส่งออกข้อมูลแล้ว"
; RL_ASSIGNMENTS="Assignments"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="ออสเตรเลีย"
RL_AUTHORS="ผู้เขียน"
RL_AUTO="อัตโนมัติ"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="พฤติกรรม"
RL_BEHAVIOUR="พฤติกรรม"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="ทั้งคู่"
RL_BOTTOM="ล่าง"
RL_BROWSERS="บราวเซอร์"
RL_BROWSERS_DESC="เลือกโปรแกรมบราวเซอร์ที่ต้องการใช้งาน
กรุณาจำไว้ว่าการตรวจจับโปรแกรมบราวเซอร์นั้นอาจไม่ถูกต้อง
100&#37;.
เนื่องจากผู้ใช้สามารถตั้งค่าโปรแกรมบราวเซอร์ของตนเองจำลองเป็นโปรแกรมบราวเซอร์โปรแกรมอื่นๆได้"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="ข้อความบนปุ่มกด"
RL_BUTTON_TEXT_DESC="เป็นข้อความที่จะแสดงในปุ่มกดสำหรับเครื่องมือช่วยพิมพ์"
RL_CACHE_TIME="เวลาแคช"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="แคตตากอรี่"
RL_CATEGORIES_DESC="เลือกแคตตากอรี่
ที่ต้องการกำหนด"
; RL_CATEGORY="Category"
RL_CHANGELOG="บันทึกการเปลี่ยนแปลง"
; RL_CLASSNAME="CSS Class"
; RL_COLLAPSE="Collapse"
RL_COM="คอมโพเน้นท์"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="คอมโพเน้นท์"
RL_COMPONENTS_DESC="เลือกคอมโพเน้นท์ที่ต้องการกำหนด"
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="เนื้อหา"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
; RL_CONTINENTS="Continents"
; RL_CONTINENTS_DESC="Select the continents to assign to."
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="คัดลอก %s"
RL_COPYRIGHT="ลิขสิทธิ์โดย"
RL_COUNTRIES="ประเทศ"
; RL_COUNTRIES_DESC="Select the countries to assign to."
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="เมนูที่อยู่"
RL_CURRENT_DATE="วันเวลาปัจจุบัน :
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="เวอร์ชั่นปัจจุบันของคุณคือ
%s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="โค้ดที่กำหนดเอง"
RL_CUSTOM_CODE_DESC="กรอกโค้ดที่ต้องการให้ปุ่มกดสำหรับเครื่องมือช่วยพิมพ์แทรกลงไปในเนื้อหา
(แทนการใช้โค้ดที่กำหนดไว้เริ่มต้นเดิม)"
RL_CUSTOM_FIELD="ฟิลด์กำหนดเอง"
RL_CUSTOM_FIELDS="ช่องฟิลพ์แบบกำหนดเอง"
RL_DATE="วันที่"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="วันที่ & เวลา"
RL_DATE_TIME_DESC="วันเวลาที่กำหนดใช้เป็น
วันเวลาของเครื่องเซิฟเวอร์คุณ
ไม่ใช่วันเวลาของผู้เข้าชม"
; RL_DATE_TO="To"
RL_DAYS="วันในสัปดาห์"
RL_DAYS_DESC="เลือกวันในสัปดาห์
ที่ต้องการกำหนด"
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
RL_DEFAULTS="ค่ากำหนดเริ่มต้น"
; RL_DEVICE_DESKTOP="Desktop"
; RL_DEVICE_MOBILE="Mobile"
; RL_DEVICE_TABLET="Tablet"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="ทิศทาง"
RL_DIRECTION_DESC="เลือกทิศทาง"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="ปิดการใช้งานสำหรับคอมโพเนนท์"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="แสดงลิงค์"
RL_DISPLAY_LINK_DESC="แสดงลิงค์นี้ในเมนูย่อย."
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="แสดงทูลทิป"
RL_DISPLAY_TOOLTIP_DESC="กรุณาเลือกหากต้องการแสดงกล่องข้อความอธิบาย(ทูลทิป)
พร้อมลักษณะพิเศษอื่นๆเมื่อนำเมาส์ไปวางเหนือลิงค์หรือไอคอน."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="จำนวนผลการค้นหาที่ต้องการ<br>หากมีผลการค้นหา
หากใส่ค่าเป็น 4
จะหมายถึงการแสดงผลการค้นหารายการที่
1 - 4 เท่านั้น"
RL_DYNAMIC_TAG_DATE="วันที่ ใช้เป็น %1$sphp
strftime() รูปแบบ%2$s. ตัวอย่าง: %3$s"
RL_DYNAMIC_TAG_ESCAPE="ใช้หลบเลี่ยงค่าต่างๆที่มีความซับซ้อน
(ใช้ slash
แทนเครื่องหมายคำพูด)"
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
RL_DYNAMIC_TAG_RANDOM="จำนวนสุ่มเลือกภายในช่วงที่กำหนด"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
RL_DYNAMIC_TAG_USER_ID="หมายเลขรหัสของสมาชิก"
RL_DYNAMIC_TAG_USER_NAME="ชื่อของสมาชิก"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="แท็กคำสั่งของสมาชิกจะวางข้อมูลของสมาชิกที่ล๊อคอินอยู่ในระบบ
หากผู้เยี่ยมชมยังไม่ได้เข้าสู่ระบบ
แท็กคำสั่งนี้จะถูกลบออกไป"
RL_DYNAMIC_TAG_USER_USERNAME="ชื่อที่ใช้ในการเข้าสู่ระบบของสมาชิก"
RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="เปิดใช้งาน"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="เปิดใช้งานในบทความ"
RL_ENABLE_IN_COMPONENTS="เปิดใช้งานในคอมโพเนนท์"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="เปิดใช้งานทางด้านหน้าเวป"
RL_ENABLE_IN_FRONTEND_DESC="หากเปิดใช้
จะเปิดให้ใช้งานได้ทางด้านหน้าเวป"
RL_ENABLE_OTHER_AREAS="เปิดให้ใช้งานในพื้นที่อื่นๆ"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="ไม่ต้องรวม"
; RL_EXPAND="Expand"
RL_EXPORT="ส่งออกข้อมูล"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="ฤดูใบไม้ร่วง"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_NAME="Field Name"
RL_FIELD_PARAM_MULTIPLE="พร้อมกันหลายรายการ"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
; RL_FIELD_VALUE="Field Value"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="ไม่พบไฟล์ %s
ที่จำเป็น"
RL_FILTERS="ตัวกรองข้อมูล"
RL_FINISH_PUBLISHING="วันที่สิ้นสุดการเผยแพร่"
RL_FINISH_PUBLISHING_DESC="กรอกวันที่ที่ต้องการให้สิ้นสุดการเผยแพร่"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="หากต้องการฟังก์ชั่นการทำงานเพิ่มเติม
คุณสามารถสั่งซื้อเพื่อใช้งานรุ่น
PRO ได้."
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="ด้านหน้า"
RL_GALLERY="แกลอรี่"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="เปลี่ยนเป็นรุ่น PRO!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
RL_HEADING_STATUS_ASC="สถานะจากน้อยไปมาก"
RL_HEADING_STATUS_DESC="สถานะจากมากไปน้อย"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
RL_HEADING_TITLE_ASC="เรียงตามหัวเรื่องขึ้น"
RL_HEADING_TITLE_DESC="เรียงตามหัวเรื่องลง"
RL_HEADING_TYPE_ASC="ประเภทจากน้อยไปมาก"
RL_HEADING_TYPE_DESC="ประเภทจากมากไปน้อย"
RL_HEIGHT="ความสูง"
RL_HEMISPHERE="สถานที่ตั้ง"
RL_HEMISPHERE_DESC="เลือกสถานที่ตั้งของเว็บไซต์ของคุณ"
RL_HIGH="สูง"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="หน้าแรก"
; RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via
the Menu Items, this will only match the real home page, not any URL that
has the same Itemid as the home menu item.<br><br>This might
not work for all 3rd party SEF extensions."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="เฉพาะไอคอนเท่านั้น"
RL_IGNORE="ไม่ต้องสนใจ"
RL_IMAGE="รูปภาพ"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="นำเข้าข้อมูล"
RL_IMPORT_ITEMS="นำเข้าไอเท็ม"
RL_INCLUDE="รวม"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="รวมไอเท็มที่ไม่มีรหัสไอเท็มด้วย"
RL_INCLUDE_NO_ITEMID_DESC="นำไปใช้งานเมื่อไม่มีการกำหนดรหัสไอเท็มของเมนูในที่อยู่
URL ด้วยเช่นกัน"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="แทรก"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
RL_IS_FREE_VERSION="ปลั๊กอินตัวนี้เป็นรุ่น
ฟรี ของ %s."
RL_ITEM="ไอเท็ม"
RL_ITEM_IDS="รหัสไอเท็ม"
RL_ITEM_IDS_DESC="กรอกรหัสไอเท็มที่ต้องการเลือกใช้งาน
ใช้เครื่องหมายจุลภาคคั่นระหว่างรหัส"
RL_ITEMS="ไอเท็ม"
RL_ITEMS_DESC="เลือกรายการที่ต้องการระบุใช้"
RL_JCONTENT="จูมล่า คอนเทนท์"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="หมวดหมู่ K2"
RL_LANGUAGE="ภาษา"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="ภาษา"
RL_LANGUAGES_DESC="เลือกภาษาที่ต้องการนำไปใช้"
RL_LAYOUT="รูปแบบ"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="ระดับ"
RL_LEVELS_DESC="เลือกระดับที่ต้องการระบุใช้"
RL_LIB="คลังรูปภาพ"
RL_LINK_TEXT="ข้อความสำหรับลิงค์"
RL_LINK_TEXT_DESC="เป็นข้อความสำหรับใช้แสดงเป็นลิงค์"
RL_LIST="รายการ"
; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework"
; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the
Bootstrap Framework."
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="โหลดไฟล์หลักของ
MooTools"
RL_LOAD_MOOTOOLS_DESC="เลือกเพื่อโหลดสคริปต์แกนหลักของ
MooTools
คุณสามารถปิดใช้งานค่านี้ได้หากคุณประสบปัญหาที่เกิดจากขัดแย้งกันของสคริปต์
ที่เกิดจากกรณีที่เทมเพลทหรือส่วนเสริมอื่นๆของคุณโหลดข้อมูล
MooTools
รุ่นที่ใช้งานกับเทมเพลทหรือส่วนเสริมนั้นๆเข้ามาใช้งาน"
RL_LOAD_STYLESHEET="โหลดสไตล์ชีท"
RL_LOAD_STYLESHEET_DESC="เลือกเพื่อโหลดรูปแบบสไตล์ชีทของส่วนเสริม
คุณสามารถปิดใช้งานค่านี้ได้หากคุณได้ใส่รูปแบบสไตล์ของคุณเองเข้าไปในสไตล์ชีทอื่นๆไว้แล้ว
เช่นรูปแบบสไตล์ชีทของเทมเพลทเป็นต้น"
RL_LOW="ต่ำ"
RL_LTR="ซ้ายไปขวา"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="วิธีการจับคู่"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="ขยาย"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="กลาง"
RL_MENU_ITEMS="รายการเมนู"
RL_MENU_ITEMS_DESC="เลือกรายการเมนูที่ต้องการนำไปใช้งาน"
; RL_META_KEYWORDS="Meta Keywords"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="ย่อ"
; RL_MOBILE_BROWSERS="Mobile Browsers"
RL_MOD="โมดูล"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="เดือน"
RL_MONTHS_DESC="เลือกเดือนที่ต้องการกำหนด"
RL_MORE_INFO="ข้อมูลเพิ่มเติม"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d
ไอเท็มได้รับการอัพเดทเรียบร้อยแล้ว"
RL_N_ITEMS_UPDATED_1="ไอเท็มได้รับการอัพเดทเรียบร้อยแล้ว"
; RL_NEW_CATEGORY="Create New Category"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
; RL_NEW_VERSION_AVAILABLE="A new version is available"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
; RL_NO_ICON="No icon"
RL_NO_ITEMS_FOUND="ไม่พบรายการที่ต้องการ"
RL_NORMAL="ธรรมดา"
RL_NORTHERN="เหนือ"
RL_NOT="ไม่"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="เท่านั้น"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>สามารถใช้งานได้เฉพาะรุ่น
PRO! เท่านั้น</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="ข้อความนี้จะแสดงสำหรับผู้ใช้ระบบ
(Super) Administrators."
; RL_OPTION_SELECT="- Select -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="ระบบปฏิบัติการ"
; RL_OS_DESC="Select the operating systems to assign to. Keep in mind
that operating system detection is not always 100&#37; accurate. Users
can setup their browser to mimic other operating systems."
; RL_OTHER="Other"
RL_OTHER_AREAS="พื้นที่ส่วนอื่นๆ"
RL_OTHER_OPTIONS="ตัวเลือกอื่นๆ"
RL_OTHER_SETTINGS="การกำหนดค่าอื่นๆเพิ่มเติม"
RL_OTHERS="อื่นๆ"
RL_PAGE_TYPES="ชนิดของหน้า"
RL_PAGE_TYPES_DESC="เลือกชนิดของหน้าที่ต้องการให้มีการระบุการนำไปใช้"
; RL_PHP="Custom PHP"
; RL_PHP_DESC="Enter a piece of PHP code to evaluate. The code must
return the value true or false.<br><br>For
instance:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="วางความคิดเห็นเป็น
HTML"
; RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed
around the output of this extension.<br><br>These comments can
help you troubleshoot when you don't get the output you
expect.<br><br>If you prefer to not have these comments in your
HTML output, turn this option off."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="ปลั๊กอินปุ่มกดสำหรับเครื่องมือช่วยพิมพ์"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="ปลั๊กอินสำหรับระบบ"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="รายการ"
RL_PUBLISHED_DESC="คุณสามารถใช้ตัวเลือกนี้เพื่อปิดการใช้งานไอเท็มนี้ได้
(ชั่วคราว)"
RL_PUBLISHING_ASSIGNMENTS="กำหนดค่าการเผยแพร่"
RL_PUBLISHING_SETTINGS="เผยแพร่ไอเท็ม"
RL_RANDOM="สุ่มเลือก"
RL_REDSHOP="RedShop"
RL_REGEX="Regular Expressions"
; RL_REGIONS="Regions / States"
; RL_REGIONS_DESC="Select the regions / states to assign to."
; RL_REGULAR_EXPRESSIONS="Use Regular Expressions"
; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular
expressions."
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="ตัดรูป (Crop)"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
; RL_RESIZE_IMAGES_FOLDER="Folder"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="ขวามาซ้าย"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="ฤดูกาล"
RL_SEASONS_DESC="เลือก
ฤดูที่กำหนด"
RL_SELECT="เลือก"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="เลือกทั้งหมด"
RL_SELECT_AN_ARTICLE="เลือก เนื้อหา"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="เลือกไว้แล้ว"
RL_SELECTION="เลือก"
; RL_SELECTION_DESC="Select whether to include or exclude the
selection for the
assignment.<br><br><strong>Include</strong><br>Publish
only on
selection.<br><br><strong>Exclude</strong><br>Publish
everywhere except on selection."
RL_SETTINGS_ADMIN_MODULE="ตัวเลือกสำหรับโมดูลผู้ดูแลระบบ"
RL_SETTINGS_EDITOR_BUTTON="ตัวเลือกสำหรับปุ่มกดในเครื่องมือช่วยพิมพ์"
RL_SETTINGS_SECURITY="ตั้งค่าความปลอดภัย"
; RL_SHOW_ASSIGNMENTS="Show Assignments"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="แสดงไอคอนปุ่มกด"
RL_SHOW_ICON_DESC="หากเลือกค่านี้
ไอคอนจะถูกแสดงให้ปุ่มกดสำหรับเครื่องมือช่วยพิมพ์"
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="ง่าย"
; RL_SLIDES="Slides"
RL_SOUTHERN="ใต้"
; RL_SPECIFIC="Specific"
RL_SPRING="ฤดูใบไม้ผลิ"
RL_START="เริ่ม"
RL_START_PUBLISHING="เริ่มเผยแพร่"
RL_START_PUBLISHING_DESC="ใส่วันที่
ที่ต้องการเริ่มเผยแพร่"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="การจัดรูปแบบ"
RL_SUMMER="ฤดูร้อน"
; RL_TABLE_NOT_FOUND="Required %s database table not found!"
RL_TABS="Tabs"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="ไวยากรณ์สำหรับแท็กคำสั่ง"
RL_TAG_SYNTAX_DESC="คำสำหรับใช้ในแท็กคำสั่ง<br><br><strong>หมายเหตุ:</strong>หากคุณเปลี่ยนแปลงค่าในส่วนนี้
แท็กคำสั่งทั้งหมดที่มีอยู่จะไม่สามารถใช้งานได้อีกต่อไป"
RL_TAGS="คำค้นหา"
RL_TAGS_DESC="กรอกคำค้นหาที่ต้องการนำไปใช้
ใช้เครื่องหมายคอมม่าคั่นระหว่างรายการคำค้นหา"
RL_TEMPLATES="เทมเพลต"
RL_TEMPLATES_DESC="เลือกเทมเพลตที่ต้องการกำหนด"
RL_TEXT="ข้อความ"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="ข้อความเท่านั้น"
; RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="This
extension needs %s to function correctly!"
RL_TIME="เวลา"
RL_TIME_FINISH_PUBLISHING_DESC="ใส่เวลาสิ้นสุดในการเผยแพร่<br><br><strong>รูปแบบ
:</strong> 23:59"
RL_TIME_START_PUBLISHING_DESC="ใส่เวลาที่เริ่มเผยแพร่<br><br><strong>รูปแบบ
:</strong> 23:59"
; RL_TOGGLE="Toggle"
RL_TOOLTIP="ทูลทิป"
RL_TOP="บน"
RL_TOTAL="ทั้งหมด"
RL_TYPES="ชนิด"
RL_TYPES_DESC="ชนิดของไอเท็ม"
RL_UNSELECT_ALL="ยกเลิืกการเลือกทั้งหมด"
RL_UNSELECTED="ยังไม่ได้เลือก"
RL_UPDATE_TO="อัพเดทไปเป็นรุ่น
%s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
; RL_URL_PARTS="URL matches"
; RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a
new line for each different match."
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item)
assignments, see the above Joomla! Content section."
RL_USE_CUSTOM_CODE="ใช้โค้ดที่กำหนดเอง"
RL_USE_CUSTOM_CODE_DESC="หากเลือกค่านี้
ปุ่มกดสำหรับเครื่องมือช่วยพิมพ์จะแทรกโค้ดที่กำหนดลงไปแทน"
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="ระดับกลุ่มผู้ใช้"
RL_USER_GROUPS="กลุ่มสมาชิก"
RL_USER_GROUPS_DESC="เลือกกลุ่มผู้ใช้งานที่ต้องการนำไปใช้"
RL_USER_IDS="ไอดี ผู้ใช้"
RL_USER_IDS_DESC="ใส่ ไอดี ผู้ใช้
ที่กำหนด
ใช้คอมม่าคั่นแต่ละไอดี"
RL_USERS="ผู้ใช้"
RL_UTF8="UTF-8"
RL_VIDEO="วีดีโอ"
RL_VIEW="มุมมอง"
RL_VIEW_DESC="เลือกมุมมองเริ่มต้นที่ต้องการใช้กับไอเท็มใหม่ที่สร้างขึ้น"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="ความกว้าง"
RL_WINTER="ฤดูหนาว"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO แคตตากอรี่"
PK�X�[=�}���?regularlabs/language/th-TH/th-TH.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library -
เรียกใช้โดย ส่วนขยายของ Regular
Labs"
REGULAR_LABS_LIBRARY="Regular Labs - อิลลิเมน์"
PK�X�[`�0��;regularlabs/language/tr-TR/tr-TR.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Regular Labs Kütüphanesi"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Kütüphanesi - Regular Labs
bileşenleri tarafından kullanılır."
REGULAR_LABS_LIBRARY="Regular Labs Kütüphanesi"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular Labs bileşenleri,
bu bileşen olmadan çalışamaz.<br><br>Regular Labs
Bileşenleri Şunlardır:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Herhangi bir Regular Labs bileşeni
kullanıyorsanız bu uygulama ekini kaldırmayın ya da devre dışı
bırakmayın."

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Kullanıcı İşlemleri
Günlüğü"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Etiket Söz Dizimi"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Açıklama"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Açıklama"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Davranışlar"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Varsayılan
Ayarlar"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Ortam"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Yönetim
Bölümü Modülü Ayarları"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editör Düğme
Ayarları"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Güvenlik
Ayarları"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Kurulum"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Biçem"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Etiket Söz Dizimi"

RL_ACCESS_LEVELS="Erişim Düzeyleri"
RL_ACCESS_LEVELS_DESC="Atanacak erişim düzeylerini seçin."
RL_ACTION_CHANGE_DEFAULT="Varsayılanı Değiştir"
RL_ACTION_CHANGE_STATE="Yayınlanma Durumunu Değiştirin"
RL_ACTION_CREATE="Ekleyin"
RL_ACTION_DELETE="Silin"
RL_ACTION_INSTALL="Kurun"
RL_ACTION_UNINSTALL="Kaldırın"
RL_ACTION_UPDATE="Güncelleyin"
RL_ACTIONLOG_EVENTS="Günlüğe Kaydedilecek İşlemler"
RL_ACTIONLOG_EVENTS_DESC="Kullanıcı işlemleri günlüğüne
kaydedilecek işlemleri seçin."
RL_ADMIN="Yönetim"
RL_ADMIN_MODULE_HAS_BEEN_DISABLED="[[% 1: extension%]] yönetici
modülü yayından kaldırıldı!"
RL_ADVANCED="Gelişmiş"
RL_AFTER="Sonra"
RL_AFTER_NOW="Şimdi Sonrası"
RL_AKEEBASUBS="Akeeba Abonelikleri"
RL_ALL="TÜMÜ"
RL_ALL_DESC="Aşağıdaki atamaların
<strong>TÜMÜ</strong> eşleşiyorsa yayınlanır."
RL_ALL_RIGHTS_RESERVED="Tüm Hakları Saklıdır"
RL_ALSO_ON_CHILD_ITEMS="Alt Öğelere Atansın"
RL_ALSO_ON_CHILD_ITEMS_DESC="Seçilmiş öğelerin alt öğelerine de
atansın mı?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Aşağıdaki seçimde
belirtilen öğelere bağlı alt öğeler. Seçilmiş sayfalardaki
bağlantılar ile ilişkilenmez."
RL_ANY="HERHANGİ BİRİ"
RL_ANY_DESC="Aşağıdaki atamaların <strong>HERHANGİ
BİRİ</strong> (ya da bir kaçı) eşleşiyorsa
yayınlanır.<br>'Yok Sayılsın' olarak atanmış gruplar
yok sayılır."
RL_ARE_YOU_SURE="Emin misiniz?"
RL_ARTICLE="Makale"
RL_ARTICLE_AUTHORS="Yazarlar"
RL_ARTICLE_AUTHORS_DESC="Atanacak yazarları seçin."
RL_ARTICLES="Makaleler"
RL_ARTICLES_DESC="Atanacak makaleleri seçin."
RL_AS_EXPORTED="Dışa Aktarıldığı Gibi"
RL_ASSIGNMENTS="Atamalar"
RL_ASSIGNMENTS_DESC="Özel atamalar seçerek bu %s öğesinin
yayınlanması ve yayınlanmaması gereken yerleri
belirleyebilirsiniz.<br>Tüm sayfalarda yayınlanması için herhangi
bir atama yapmayın."
RL_AUSTRALIA="Avustralya"
RL_AUTHORS="Yazarlar"
RL_AUTO="Otomatik"
RL_BEFORE="Önce"
RL_BEFORE_NOW="Şimdi Öncesi"
RL_BEGINS_WITH="İle Başlayan"
RL_BEHAVIOR="Davranış"
RL_BEHAVIOUR="Davranış"
RL_BETWEEN="Arasında"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="Bootstrap çerçevesinin
başlatılmasını devre dışı bırakmışsınız. %s çalışabilmek
için Bootstrap çerçevesine gerek duyar. Bu işlevlerin sağlanması
için tema ya da diğer eklentilerinizin gerekli betikleri yüklediğinden
emin olun."
RL_BOTH="İkisi de"
RL_BOTTOM="Alt"
RL_BROWSERS="Web Tarayıcılar"
RL_BROWSERS_DESC="Atanacak web tarayıcılarını seçin. Web
tarayıcısı algılama özelliğinin herzaman 100&#37; işe
yaramayabileceğini unutmayın. Kullanıcılar web tarayıcılarını
başka tarayıcıları taklit edecek şekilde ayarlayabilir."
RL_BUTTON_ICON="Düğme Simgesi"
RL_BUTTON_ICON_DESC="Düğmede görüntülenecek simgeyi seçin."
RL_BUTTON_TEXT="Düğme Metni"
RL_BUTTON_TEXT_DESC="Editör düğmesinde görüntülenecek
metin."
RL_CACHE_TIME="Ön Bellek Süresi"
RL_CACHE_TIME_DESC="Ön belleğe alınan bir dosyanın yenilenmeden
önce tutulacağı süreyi yazın. Genel ayarları kullanmak için boş
bırakın."
RL_CATEGORIES="Kategoriler"
RL_CATEGORIES_DESC="Atanacak kategorileri seçin."
RL_CATEGORY="Kategori"
RL_CHANGELOG="Değişiklik Günlüğü"
RL_CLASSNAME="CSS Sınıfı"
RL_COLLAPSE="Daraltın"
RL_COM="Bileşen"
RL_COMBINE_ADMIN_MENU="Yönetim Menüsüne Eklensin"
RL_COMBINE_ADMIN_MENU_DESC="Bu seçenek etkin olursa, tüm Regular
Labs bileşenleri yönetim menüsüne bir alt menü olarak eklenir."
RL_COMPARISON="Karşılaştırma"
RL_COMPONENTS="Bileşenler"
RL_COMPONENTS_DESC="Atanacak bileşenleri seçin."
RL_CONTAINS="Kapsam"
RL_CONTAINS_ONE="Şunlardan Birini İçerir"
RL_CONTENT="İçerik"
RL_CONTENT_KEYWORDS="İçerik Anahtar Sözcükleri"
RL_CONTENT_KEYWORDS_DESC="İçerik içinde bulunup atanacak anahtar
sözcükleri virgül ile ayırarak yazın."
RL_CONTINENTS="Kıtalar"
RL_CONTINENTS_DESC="Atanacak kıtaları seçin."
RL_COOKIECONFIRM="Çerez Onayı"
RL_COOKIECONFIRM_COOKIES="Çerezler Kullanılsın"
RL_COOKIECONFIRM_COOKIES_DESC="Kullanıcı seçimi ve Çerez Onayına
göre (Twentronix tarafından) çerezlerin kullanılıp
kullanılmayacağını seçin."
RL_COPY_OF="%s Kopyası"
RL_COPYRIGHT="Telif Hakkı"
RL_COUNTRIES="Ülkeler"
RL_COUNTRIES_DESC="Atanacak ülkeleri seçin."
RL_CSS_CLASS="Sınıf (CSS)"
RL_CSS_CLASS_DESC="Biçemi belirlemek için kullanılacak CSS
sınıfının adını yazın."
RL_CURRENT="Geçerli"
RL_CURRENT_DATE="Geçerli Tarih ve Saat:
<strong>%s</strong>"
RL_CURRENT_USER="Geçerli Kullanıcı"
RL_CURRENT_VERSION="Kurulu Sürüm: %s"
RL_CUSTOM="Özel"
RL_CUSTOM_CODE="Özel Kod"
RL_CUSTOM_CODE_DESC="Editör düğmesinin içeriğe ekleyeceği kodu
yazın (varsayılan kod yerine)."
RL_CUSTOM_FIELD="Özel Alan"
RL_CUSTOM_FIELDS="Özel Alanlar"
RL_DATE="Tarih"
RL_DATE_DESC="Atanacak tarih karşılaştırması türünü
seçin."
RL_DATE_FROM="Buradan"
RL_DATE_RECURRING="Yinelenen"
RL_DATE_RECURRING_DESC="Her yıl uygulanacak tarih aralığını
seçin (seçimdeki yıl yok sayılır)."
RL_DATE_TIME="Tarih ve Saat"
RL_DATE_TIME_DESC="Sunucularınızda kullanılan tarih ve saat
ataması, ziyaretçilerin değil."
RL_DATE_TO="Buraya"
RL_DAYS="Haftanın Günü"
RL_DAYS_DESC="Atanacak haftanın gününü seçin."
RL_DEFAULT_ORDERING="Varsayılan Sıralama"
RL_DEFAULT_ORDERING_DESC="Liste öğelerinin varsayılan
sıralamasını seçin."
RL_DEFAULT_SETTINGS="Varsayılan Ayarlar"
RL_DEFAULTS="Varsayılanlar"
RL_DEVICE_DESKTOP="Masaüstü"
RL_DEVICE_MOBILE="Mobil"
RL_DEVICE_TABLET="Tablet"
RL_DEVICES="Aygıtlar"
RL_DEVICES_DESC="Atanacak aygtları seçin. Aygıt algılama
özelliğinin herzaman 100&#37; işe yaramayabileceğini unutmayın.
Kullanıcılar aygıtlarını başka aygıtları taklit edecek şekilde
ayarlayabilir."
RL_DIRECTION="Yön"
RL_DIRECTION_DESC="Sıralama yönünü seçin."
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Bu eklentinin hangi yönetim
bölümü bileşenlerinde kullanılmayacağını seçin."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Bu eklentinin hangi bileşenlerde
kullanılmayacağını seçin."
RL_DISABLE_ON_COMPONENTS="Bileşenlerde Kullanılmasın"
RL_DISABLE_ON_COMPONENTS_DESC="Bu eklentinin kullanılmayacağı ön
yüz bileşenlerini seçin."
RL_DISPLAY_EDITOR_BUTTON="Editör Düğmesi Görüntülensin"
RL_DISPLAY_EDITOR_BUTTON_DESC="Bu seçenek etkin olursa, bir editör
düğmesi görüntülenir."
RL_DISPLAY_LINK="Bağlantı Görüntülensin"
RL_DISPLAY_LINK_DESC="Bağlantının nasıl görünmesini
istediğinizi belirtin."
RL_DISPLAY_TOOLBAR_BUTTON="Araç Çubuğu Düğmesi
Görüntülensin"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Bu seçenek etkin olursa, araç
çubuğunda bir düğme görüntülenir."
RL_DISPLAY_TOOLBAR_BUTTONS="Araç Çubuğu Düğmeleri
Görüntülensin"
RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Araç çubuğundaki düğmeleri
göstermeyi seçin."
RL_DISPLAY_TOOLTIP="İpucu Görüntülensin"
RL_DISPLAY_TOOLTIP_DESC="Bu seçenek etkin olursa, fare ile bir
bağlantı ya da simge üzerine gelindiğinde ek bilgi veren bir ipucu
görüntülenir."
RL_DYNAMIC_TAG_ARTICLE_ID="Geçerli Makalenin Kodu"
RL_DYNAMIC_TAG_ARTICLE_OTHER="Geçerli Makaleden Alınabilen Diğer
Veriler"
RL_DYNAMIC_TAG_ARTICLE_TITLE="Geçerli Makalenin Başlığı"
RL_DYNAMIC_TAG_COUNTER="Görüntülenme numarası.<br>Örneğin
aramanızda 4 kez bulunuyorsa, sayı 1 ile 4 arasında
görüntülenir."
RL_DYNAMIC_TAG_DATE="%1$sPHP strftime () Biçimini %2$s Kullanan
Tarih. Örnek: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Dinamik değerlerden kaçış kullanılsın
(tırnaklara / karakteri ekler)."
RL_DYNAMIC_TAG_LOWERCASE="Etiketler arasındaki metin küçük harfe
dönüştürülür."
RL_DYNAMIC_TAG_RANDOM="Belirtilen Aralıkta Rastgele Bir Sayı"
RL_DYNAMIC_TAG_RANDOM_LIST="Dizeler, sayılar veya aralıklar
listesinden rastgele bir değer."
RL_DYNAMIC_TAG_TEXT="Metin Olarak Çevrilecek Dil Dizgesi (Etkin Dile
Göre)"
RL_DYNAMIC_TAG_UPPERCASE="Etiketler arasındaki metin büyük harfe
dönüştürülür."
RL_DYNAMIC_TAG_USER_ID="Kullanıcının Kod Numarası"
RL_DYNAMIC_TAG_USER_NAME="Kullanıcının Adı"
RL_DYNAMIC_TAG_USER_OTHER="Kullanıcı Ya da İlgili Kişinin Diğer
Bilgileri. Örnek: [[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Kullanıcı etiketi oturum açmış
kullanıcının bilgilerini getirir. Ziyaretçi oturum açmamış ise
etiket kaldırılır."
RL_DYNAMIC_TAG_USER_USERNAME="Kullanıcının Kullanıcı Adı"
RL_DYNAMIC_TAGS="Dinamik Etiketler"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Etkin Olsun"
RL_ENABLE_ACTIONLOG="Kullanıcı İşlemleri Günlüğe
Kaydedilsin"
RL_ENABLE_ACTIONLOG_DESC="Bu seçenek etkin olursa, kullanıcıların
yaptığı işlemler günlüğe kaydedilir ve kullanıcı işlemleri
günlüğü modülü üzerinden görülebilir."
RL_ENABLE_IN="Şurada Kullanılsın"
RL_ENABLE_IN_ADMIN="Yönetim Bölümünde Kullanılsın"
RL_ENABLE_IN_ADMIN_DESC="Bu seçenek etkin olursa, uygulama eki web
sitesinin yönetim bölümünde de kullanılır.<br><br>Normal
durumda buna gerek duyulmaz ve yönetim bölümünün yavaşlamasına yol
açabilir ve uygulama eki kod imlerini işlemesi istenmeyebilir."
RL_ENABLE_IN_ARTICLES="Makalelerde Kullanılsın"
RL_ENABLE_IN_COMPONENTS="Bileşenlerde Kullanılsın"
RL_ENABLE_IN_DESC="Ön yüz, yönetim ya da ikisinde de kullanılacak
şekilde seçin."
RL_ENABLE_IN_FRONTEND="Ön Yüzde Kullanılsın"
RL_ENABLE_IN_FRONTEND_DESC="Bu seçenek etkin olursa, ön yüzde de
kullanılır."
RL_ENABLE_OTHER_AREAS="Diğer Alanlarda Kullanılsın"
RL_ENDS_WITH="İle Biten"
RL_EQUALS="Eşit"
RL_EXCLUDE="Katılmasın"
RL_EXPAND="Genişletin"
RL_EXPORT="Dışa aktar"
RL_EXPORT_FORMAT="Dışa Aktarma Biçimi"
RL_EXPORT_FORMAT_DESC="Dışa aktarılacak dosyaların biçimini
seçin."
RL_EXTRA_PARAMETERS="Ek Parametreler"
RL_EXTRA_PARAMETERS_DESC="Kullanılabilen seçenekler ile
ayarlanamayan diğer parametreleri yazın."
RL_FALL="Sonbahar"
RL_FEATURED_DESC="Atamadaki özellik durumunu kullanmak için
seçin."
RL_FEATURES="Özellikler"
RL_FIELD="Alan"
RL_FIELD_CHECKBOXES="Onay Kutuları"
RL_FIELD_DROPDOWN="Alta Açılır Alan"
RL_FIELD_MULTI_SELECT_STYLE="Çoklu Seçim Biçemi"
RL_FIELD_MULTI_SELECT_STYLE_DESC="Çoklu seçim alanını, standart
alta açılır alan veya onay kutularını temel alan gelişmiş bir alan
olarak gösterin."
RL_FIELD_NAME="Alan Adı"
RL_FIELD_PARAM_MULTIPLE="Çoklu"
RL_FIELD_PARAM_MULTIPLE_DESC="Birden çok değer seçilebilsin."
RL_FIELD_SELECT_STYLE="Çoklu Seçim Biçemi"
RL_FIELD_SELECT_STYLE_DESC="Çoklu seçim alanını, standart alta
açılır alan veya onay kutularını temel alan gelişmiş bir alan olarak
gösterin."
RL_FIELD_VALUE="Alan Değeri"
RL_FIELDS_DESC="Atamak istediğiniz alanları seçin ve istediğiniz
değerleri girin."
RL_FILES_NOT_FOUND="%s gereken dosya bulunamadı!"
RL_FILTERS="Süzgeçler"
RL_FINISH_PUBLISHING="Yayınlama Bitişi"
RL_FINISH_PUBLISHING_DESC="Yayınlamanın bitirileceği tarihi
yazın."
RL_FIX_HTML="HTML Düzeltilsin"
RL_FIX_HTML_DESC="Bu seçenek etkin olursa, HTML yapısı ile ilgili
olarak bulunan sorunlar düzeltilir. Bu seçenek genellikle geride kalan
HTML kod imleri için gereklidir.<br><br>Bu seçeneği yalnız
sorun yaşıyorsanız devre dışı bırakın."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Daha çok özellik için PRO sürümünü satın
almalısınız."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="NoNumber Framework kurduğunuz başka bir
eklenti tarafından kullanılmıyor gibi görünüyor. Devre dışı
bırakmak ya da kaldırmak bir sorun oluşturmayabilir."
RL_FROM_TO="Kime"
RL_FRONTEND="Ön Yüz"
RL_GALLERY="Galeri"
RL_GEO="Coğrafi Konumlama"
RL_GEO_DESC="Coğrafi Konum ziyaretçinin IP adresine göre
belirlenir. Tüm IP adresleri sabit ya da bilinir olmadığından, Coğrafi
Konumlama her zaman 100&#37; güvenli çalışmaz."
RL_GEO_GEOIP_COPYRIGHT_DESC="Bu üründe MaxMind tarafından
oluşturulan GeoLite2 verileri bulunur ve şuradan alınabilir
[[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Regular Labs GeoIP kitaplığı kurulmamış.
Coğrafi Konumun belirlenebilmesi için [[%1:link start%]]Regular Labs
GeoIP kitaplığını kurun[[%2:link end%]]."
RL_GO_PRO="Pro Sürümüne Geçin"
RL_GREATER_THAN="Daha Büyük"
RL_HANDLE_HTML_HEAD="HTML Başlığı Kullanılsın"
RL_HANDLE_HTML_HEAD_DESC="Eklentinin HTML başlık bölümünü de
işlemesini sağlamak için seçin.<br><br>Lütfen bunun
istenmeyen html'lerin HTML başlık etiketlerinin içine
yerleştirilmesine ve HTML sözdizimi sorunlarına neden olabileceğini
unutmayın."
RL_HEADING_1="1. Başlık"
RL_HEADING_2="2. Başlık"
RL_HEADING_3="3. Başlık"
RL_HEADING_4="4. Başlık"
RL_HEADING_5="5. Başlık"
RL_HEADING_6="6. Başlık"
RL_HEADING_ACCESS_ASC="Erişime Göre Artan"
RL_HEADING_ACCESS_DESC="Erişime Göre Azalan"
RL_HEADING_CATEGORY_ASC="Kategoriye Göre Artan"
RL_HEADING_CATEGORY_DESC="Kategoriye Göre Azalan"
RL_HEADING_CLIENTID_ASC="Konuma Göre Artan"
RL_HEADING_CLIENTID_DESC="Konuma Göre Azalan"
RL_HEADING_COLOR_ASC="Renge Göre Artan"
RL_HEADING_COLOR_DESC="Renge Göre Azalan"
RL_HEADING_DEFAULT_ASC="Varsayılana Göre Artan"
RL_HEADING_DEFAULT_DESC="Varsayılana Göre Azalan"
RL_HEADING_DESCRIPTION_ASC="Açıklamaya Göre Artan"
RL_HEADING_DESCRIPTION_DESC="Açıklamaya Göre Azalan"
RL_HEADING_ID_ASC="Koda Göre Artan"
RL_HEADING_ID_DESC="Koda Göre Azalan"
RL_HEADING_LANGUAGE_ASC="Dile Göre Artan"
RL_HEADING_LANGUAGE_DESC="Dile Göre Azalan"
RL_HEADING_ORDERING_ASC="Sıralamaya Göre Artan"
RL_HEADING_ORDERING_DESC="Sıralamaya Göre Azalan"
RL_HEADING_PAGES_ASC="Menü Öğelerine Göre Artan"
RL_HEADING_PAGES_DESC="Menü Öğelerine Göre Azalan"
RL_HEADING_POSITION_ASC="Konuma Göre Artan"
RL_HEADING_POSITION_DESC="Konuma Göre Azalan"
RL_HEADING_STATUS_ASC="Duruma Göre Artan"
RL_HEADING_STATUS_DESC="Duruma göre azalan"
RL_HEADING_STYLE_ASC="Biçeme Göre Artan"
RL_HEADING_STYLE_DESC="Biçeme göre azalan"
RL_HEADING_TEMPLATE_ASC="Temaya Göre Artan"
RL_HEADING_TEMPLATE_DESC="Temaya göre azalan"
RL_HEADING_TITLE_ASC="Başlığa Göre Artan"
RL_HEADING_TITLE_DESC="Başlığa Göre Azalan"
RL_HEADING_TYPE_ASC="Türe Göre Artan"
RL_HEADING_TYPE_DESC="Türe Göre Azalan"
RL_HEIGHT="Yükseklik"
RL_HEMISPHERE="Yarıküre"
RL_HEMISPHERE_DESC="Web sitenizin bulunduğu yarıküreyi
seçin."
RL_HIGH="Yüksek"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Ana Sayfa"
RL_HOME_PAGE_DESC="Menü Öğeleri ile ana sayfanın (varsayılan)
seçilmesinden farklı olarak bu özellik, Ana Sayfa menü öğesindeki
aynı öğe kodlu herhangi bir adresi değil, yalnız gerçek ana sayfayı
görüntüler.<br><br>Bu özellik bazı 3. taraf AMD
eklentileri ile çalışmayabilir."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="HTML Etiket"
RL_ICON_ONLY="Yalnız Simge"
RL_IGNORE="Yok Sayın"
RL_IMAGE="Görsel"
RL_IMAGE_ALT="Görsel Alt Metni"
RL_IMAGE_ALT_DESC="Görselin alt içeriği."
RL_IMAGE_ATTRIBUTES="Görsel Öznitelikleri"
RL_IMAGE_ATTRIBUTES_DESC="Görselin ek öznitelikleri, örneğin:
alt=&quot;Görselim&quot; width=&quot;300&quot;"
RL_IMPORT="İçe Aktarın"
RL_IMPORT_ITEMS="Öğeleri İçe Aktarın"
RL_INCLUDE="Katılsın"
RL_INCLUDE_CHILD_ITEMS="Alt Öğeler Katılsın"
RL_INCLUDE_CHILD_ITEMS_DESC="Seçilmiş öğelerin alt öğeleri de
katılsın mı?"
RL_INCLUDE_NO_ITEMID="Öğe Kodu Katılmasın"
RL_INCLUDE_NO_ITEMID_DESC="Adreste menü öğe kodu bulunmadığında
da atansın mı?"
RL_INITIALISE_EVENT="Şu İşlemde Başlatılsın"
RL_INITIALISE_EVENT_DESC="Uygulama ekinin başlatılacağı iç joomla
işlemini ayarlayın. Burayı yalnız uygulama eki düzgün çalışmıyor
ise değiştirin."
RL_INPUT_TYPE="Giriş Türü"
RL_INPUT_TYPE_ALNUM="Yalnızca A-Z veya 0-9 içeren bir dize (büyük
/ küçük harfe duyarlı değildir)."
RL_INPUT_TYPE_ARRAY="Dizi"
RL_INPUT_TYPE_BOOLEAN="Boole Değeri"
RL_INPUT_TYPE_CMD="A-Z, 0-9, alt çizgi, nokta veya kısa çizgi
içeren bir dize (büyük / küçük harfe duyarlı değildir)."
RL_INPUT_TYPE_DESC="Bir giriş türü seçin:"
RL_INPUT_TYPE_FLOAT="Kayan nokta sayısı veya kayan nokta sayısı
dizisi."
RL_INPUT_TYPE_INT="Bir tam sayı veya bir tam sayı dizisi."
RL_INPUT_TYPE_STRING="Tamamen kodu çözülmüş ve ayıklanmış
edilmiş bir dize (varsayılan)."
RL_INPUT_TYPE_UINT="İşaretsiz bir tam sayı veya işaretsiz bir tam
sayı dizisi."
RL_INPUT_TYPE_WORD="Yalnızca A-Z veya alt çizgi içeren bir dize
(büyük / küçük harfe duyarlı değildir)."
RL_INSERT="Ekleyin"
RL_INSERT_DATE_NAME="Tarih / Ad Ekleyin"
RL_IP_RANGES="IP Adresleri / Aralıklar"
RL_IP_RANGES_DESC="IP adresleri ve IP aralıklarının virgül ya da
Enter ile ayrılmış listesi.
Örnek:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP Adresleri"
RL_IS_FREE_VERSION="%s ÜCRETSİZ sürümü"
RL_ITEM="Öğe"
RL_ITEM_IDS="Öğe Kodları"
RL_ITEM_IDS_DESC="Atanacak öğe kodlarını virgül ile ayırarak
yazın."
RL_ITEMS="Öğeler"
RL_ITEMS_DESC="Atanacak öğeleri seçin."
RL_JCONTENT="Joomla İçeriği"
RL_JED_REVIEW="Bu eklentiyi beğendiyseniz [[%1:start link%]]JED
sitesinde değerlendirin[[%2:end link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="%1$s uygulamasının joomla 2.5 için
yapılmış bir sürümünü joomla 3 üzerinde kullanıyorsunuz. Lütfen
sorunu çözmek için %1$s uygulamasını yeniden kurun."
RL_JQUERY_DISABLED="JQuery betğini devre dışı bırakmışsınız.
%s çalışabilmek için jQuery bileşenine gerek duyar. Bu işlevlerin
sağlanması için tema ya da diğer eklentilerinizin gerekli betikleri
yüklediğinden emin olun."
RL_K2="K2"
RL_K2_CATEGORIES="K2 Kategorileri"
RL_LANGUAGE="Dil"
RL_LANGUAGE_DESC="Atanacak dili seçin."
RL_LANGUAGES="Diller"
RL_LANGUAGES_DESC="Atanacak dilleri seçin."
RL_LAYOUT="Görünüm"
RL_LAYOUT_DESC="Kullanılacak görünümü seçin. Bu görünüm
bileşen ya da kalıp içinden değiştirilebilir."
RL_LESS_THAN="Daha Küçük"
RL_LEVELS="Düzeyler"
RL_LEVELS_DESC="Atanacak düzeyleri seçin."
RL_LIB="Kütüphane"
RL_LINK_TEXT="Bağlantı Metni"
RL_LINK_TEXT_DESC="Bağlantı olarak görüntülenecek metin."
RL_LIST="Liste"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Bootstrap Çerçevesi Yüklensin"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Bu seçenek devre dışı
bırakıldığında, Bootstrap Çerçevesi yüklenmez."
RL_LOAD_JQUERY="jQuery Betiği Yüklensin"
RL_LOAD_JQUERY_DESC="Bu seçenek etkin olursa, jQuery betiği
yüklenir. Temanız ya da kullandığınız diğer eklentiler kendi jQuery
sürümlerini yüklediğinden çakışma sorunları yaşıyorsanız bu
seçeneği devre dışı bırakabilirsiniz."
RL_LOAD_MOOTOOLS="MooTools Çekirdeği Yüklensin"
RL_LOAD_MOOTOOLS_DESC="Bu seçenek etkin olursa, MooTools betiği
yüklenir. Temanız ya da kullandığınız diğer eklentiler kendi
MooTools sürümlerini yüklediğinden çakışma sorunları
yaşıyorsanız bu seçeneği devre dışı bırakabilirsiniz."
RL_LOAD_STYLESHEET="Biçem Sayfası Yüklensin"
RL_LOAD_STYLESHEET_DESC="Bu seçenek etkin olursa, eklentinin biçem
sayfası yüklenir. Tüm biçemler tema biçem sayfası gibi başka bir
biçem sayfasında bulunuyorsa bu seçenek devre dışı
bırakılabilir."
RL_LOW="Düşük"
RL_LTR="Soldan Sağa"
RL_MATCH_ALL="Tümü Eşleşsin"
RL_MATCH_ALL_DESC="Bu seçenek etkin olursa, yalnız seçilmiş tüm
öğeler eşleşiyorsa atama yapılır."
RL_MATCHING_METHOD="Eşleştirme Yöntemi"
RL_MATCHING_METHOD_DESC="Tüm atamaların mı yoksa herhangi bir
atamanın mı
eşleştirileceği.<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="En Fazla Liste Sayısı"
RL_MAX_LIST_COUNT_DESC="Çoklu seçim listelerinde görüntülenecek
en fazla öğe sayısı. Toplam öğe sayısı daha yüksek olduğunda,
seçim alanı metin alanı olarak görüntülenir.<br><br>Liste
öğelerinin çokluğu nedeniyle sayfalar daha yavaş yükleniyorsa daha
düşük bir değere ayarlayabilirsiniz."
RL_MAX_LIST_COUNT_INCREASE="En Fazla Liste Sayısını
Arttırın"
RL_MAX_LIST_COUNT_INCREASE_DESC="Öğe sayısı [[%1:max%]]
değerinden fazla.<br><br>Sayfaların yavaşlamasını
engellemek için güncellenen bir seçim listesi yerine bir metin alanı
görüntülenecek.<br><br>Regular Labs Kütüphanesi uygulama
eki ayarlarından '[[%2:max setting%]]' değerini
arttırabilirsiniz."
RL_MAXIMIZE="Büyütün"
RL_MEDIA_VERSIONING="Ortam Sürümleri Kullanılsın"
RL_MEDIA_VERSIONING_DESC="Bu seçenek etkin olursa, ortam (js/css)
adreslerin sonuna, web tarayıcının doğru sürümü yükleyebilmesi
için bileşenin sürüm numarası eklenir."
RL_MEDIUM="Orta"
RL_MENU_ITEMS="Menü Öğeleri"
RL_MENU_ITEMS_DESC="Atanacak menü öğesini seçin."
RL_META_KEYWORDS="Üst Veri Anahtar Sözcükleri"
RL_META_KEYWORDS_DESC="Üst veri sözcükleri içinde bulunup atanacak
anahtar sözcükleri virgül ile ayırarak yazın."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Küçültün"
RL_MOBILE_BROWSERS="Mobil Web Tarayıcılar"
RL_MOD="Modül"
RL_MODULE_HAS_BEEN_DISABLED="[[% 1: extension%]] modülü yayından
kaldırıldı!"
RL_MONTHS="Aylar"
RL_MONTHS_DESC="Atanacak ayları seçin."
RL_MORE_INFO="Ayrıntılı Bilgiler"
RL_MY_STRING="Dizgem!"
RL_N_ITEMS_ARCHIVED="%s öğe arşivlendi."
RL_N_ITEMS_ARCHIVED_1="%s öğe arşivlendi."
RL_N_ITEMS_CHECKED_IN_0="Herhangi bir öğe devir alınamadı."
RL_N_ITEMS_CHECKED_IN_1="%s öğe devir alındı."
RL_N_ITEMS_CHECKED_IN_MORE="%s öğe devir alındı."
RL_N_ITEMS_DELETED="%s öğe silindi."
RL_N_ITEMS_DELETED_1="%s öğe silindi."
RL_N_ITEMS_FEATURED="%s öğe öne çıkarıldı."
RL_N_ITEMS_FEATURED_1="%s öğe öne çıkarıldı."
RL_N_ITEMS_PUBLISHED="%s öğe yayınlandı."
RL_N_ITEMS_PUBLISHED_1="%s öğe yayınlandı."
RL_N_ITEMS_TRASHED="%s öğe çöpe atıldı."
RL_N_ITEMS_TRASHED_1="%s öğe çöpe atıldı."
RL_N_ITEMS_UNFEATURED="%s öğe öne çıkarılmışlardan
kaldırıldı."
RL_N_ITEMS_UNFEATURED_1="%s öğe öne çıkarılmışlardan
kaldırıldı."
RL_N_ITEMS_UNPUBLISHED="%s öğe yayından kaldırıldı."
RL_N_ITEMS_UNPUBLISHED_1="%s öğe yayından kaldırıldı."
RL_N_ITEMS_UPDATED="%d öğe güncellendi"
RL_N_ITEMS_UPDATED_1="Bir öğe güncellendi"
RL_NEW_CATEGORY="Kategori Ekleyin"
RL_NEW_CATEGORY_ENTER="Yeni kategorinin adını yazın"
RL_NEW_VERSION_AVAILABLE="Yeni bir sürüm yayınlanmış"
RL_NEW_VERSION_OF_AVAILABLE="Yeni bir %s sürümü
yayınlanmış"
RL_NO_ICON="Simge Yok"
RL_NO_ITEMS_FOUND="Herhangi bir öğe bulunamadı."
RL_NORMAL="Normal"
RL_NORTHERN="Kuzey"
RL_NOT="Değil"
RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Yüklü olan [[% 1:
extension%]] sürümünüz Joomla [[% 2: version%]] sürümüyle uyumlu
değildir. Lütfen Joomla [[%2:version%]] sürümü için [[% 1:
extension%]] sürümü olup olmadığını kontrol edin ve onu
yükleyin."
RL_NOT_CONTAINS="İçermiyor"
RL_NOT_EQUALS="Eşit Değil"
RL_ONLY="Yalnız"
RL_ONLY_AVAILABLE_IN_JOOMLA="Yalnız Joomla %s ya da üzerindeki
sürümler ile kullanılabilir."
RL_ONLY_AVAILABLE_IN_PRO="<em>Yalnız PRO sürümü ile
kullanılabilir!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Yalnız PRO sürümü ile
kullanılabilir)"
RL_ONLY_VISIBLE_TO_ADMIN="Bu ileti yalnız (Süper) Yöneticilere
görüntülenir."
RL_OPTION_SELECT="- Seçin -"
RL_OPTION_SELECT_CLIENT="- İstemciyi Seçin -"
RL_ORDER_DIRECTION_PRIMARY="Öncelikli Sıralama Yönü"
RL_ORDER_DIRECTION_SECONDARY="İkincil Sıralama Yönü"
RL_ORDERING="Sıralama Düzeni"
RL_ORDERING_PRIMARY="Öncelikli Sıralama Düzeni"
RL_ORDERING_SECONDARY="İkincil Sıralama Düzeni"
RL_OS="İşletim Sistemleri"
RL_OS_DESC="Atanacak işletim sistemlerini seçin. İşletim sistemi
algılama özelliğinin herzaman 100&#37; işe yaramayabileceğini
unutmayın. Kullanıcılar web tarayıcılarını başka işletim
sistemlerini taklit edecek şekilde ayarlayabilir."
RL_OTHER="Diğer"
RL_OTHER_AREAS="Diğer Alanlar"
RL_OTHER_OPTIONS="Diğer Seçenekler"
RL_OTHER_SETTINGS="Diğer Ayarlar"
RL_OTHERS="Diğerleri"
RL_PAGE_TYPES="Sayfa Türleri"
RL_PAGE_TYPES_DESC="Atamaların etkin olacağı sayfa türlerini
seçin."
RL_PHP="Özel PHP"
RL_PHP_DESC="Yürütülecek PHP kodunu yazın. Kod doğru ya da
yanlış şeklinde bir değer
döndürmelidir.<br><br>Örnek:<br><br>return (
$user->name == 'Ali Kaya' );"
RL_PLACE_HTML_COMMENTS="HTML Yorumları Kullanılsın"
RL_PLACE_HTML_COMMENTS_DESC="Varsayılan olarak bu eklentinin
çıktısında HTML yorumları bulunur<br><br>Bu yorumlar
beklenen çıktının alınamaması durumunda sorunu çözmeye yardımcı
olur.<br><br>Bu seçenek devre dışı bırakıldığında,
HTML çıktısında yorumlar görüntülenmez."
RL_PLG_ACTIONLOG="İşlem Günlüğü Uygulama Eki"
RL_PLG_EDITORS-XTD="Editör Düğmesi Uygulama Eki"
RL_PLG_FIELDS="Alan Uygulama Eki"
RL_PLG_SYSTEM="Sistem Uygulama Eki"
RL_PLUGIN_HAS_BEEN_DISABLED="[[%1:extension%]] uygulama eki devre
dışı bırakıldı!"
RL_POSTALCODES="Posta Kodları"
RL_POSTALCODES_DESC="Posta kodlarının (12345) ya da kod
aralıklarının (12300-12500) virgül ile ayrılmış
listesi.<br>Yalnız [[%1:start link%]]sınırlı sayıda ülke ve IP
adresleri için[[%2:end link%]] kullanılabilir."
RL_POWERED_BY="%s tarafından sunulmaktadır."
RL_PRODUCTS="Ürünler"
RL_PUBLISHED_DESC="Bu öğeyi devre dışı bırakmak için (geçici
olarak) bunu kullanabilirsiniz."
RL_PUBLISHING_ASSIGNMENTS="Yayınlama Atamaları"
RL_PUBLISHING_SETTINGS="Öğeler Yayınlansın"
RL_RANDOM="Rastgele"
RL_REDSHOP="RedShop"
RL_REGEX="Kurallı İfadeler"
RL_REGIONS="Bölgeler / Eyaletler"
RL_REGIONS_DESC="Atanacak bölgeleri / eyaletleri seçin."
RL_REGULAR_EXPRESSIONS="Kurallı İfadeler Kullanılsın"
RL_REGULAR_EXPRESSIONS_DESC="Bu seçenek etkin olursa, değer kurallı
ifade olarak işlenir."
RL_REMOVE_IN_DISABLED_COMPONENTS="Devre Dışı Bileşenlerden
Kaldırılsın"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Bu seçenek etkin olursa,
bileşenden uygulama eki söz dizimi kaldırılır. Devre dışı
bırakıldığında özgün uygulama eki söz dizimi korunur."
RL_RESIZE_IMAGES="Görseller Yeniden Boyutlandırılsın"
RL_RESIZE_IMAGES_CROP="Kırpın"
RL_RESIZE_IMAGES_CROP_DESC="Yeniden boyutlandırılan görüntü her
zaman ayarlanan genişlik ve yüksekliğe sahip olacaktır."
RL_RESIZE_IMAGES_DESC="Bu seçenek etkin olursa, henüz var olmayan
görseller için yeniden boyutlandırılmış görseller otomatik olarak
oluşturulur. Görseller aşağıdaki ayarlara göre yeniden
boyutlandırılır."
RL_RESIZE_IMAGES_FILETYPES="Yalnız Şu Dosya Türlerinde"
RL_RESIZE_IMAGES_FILETYPES_DESC="Yeniden boyutlandırılacak dosya
türlerini seçin."
RL_RESIZE_IMAGES_FOLDER="Klasör"
RL_RESIZE_IMAGES_FOLDER_DESC="Yeniden boyutlandırılmış
görsellerin kaydedileceği klasör. Özgün görsellerin bulunduğu
klasörün altında bir klasör olur."
RL_RESIZE_IMAGES_HEIGHT_DESC="Piksel cinsinden yeniden
boyutlandırılacak görselin yüksekliği (Ornek: 180)."
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="Yükseklik değeri yukarıda
belirtilen genişlik değerine ve özgün görselin en boy oranına göre
hesaplanır."
RL_RESIZE_IMAGES_NO_WIDTH_DESC="Genişlik değeri aşağıda
belirtilen yükseklik değerine ve özgün görselin en boy oranına göre
hesaplanır."
RL_RESIZE_IMAGES_QUALITY="JPG Kalitesi"
RL_RESIZE_IMAGES_QUALITY_DESC="Yeniden boyutlandırılan görsellerin
kalitesi. Düşük, Orta ya da Yüksek olarak seçin. Kalite arttıkça
dosya boyutu büyür.<br>Bu seçenek yalnız jpeg görsellerini
etkiler."
RL_RESIZE_IMAGES_SCALE="Ölçek"
RL_RESIZE_IMAGES_SCALE_DESC="Yeniden görüntü boyutlandırmada, en
boy oranını koruyarak maksimum genişliğe veya yüksekliğe yeniden
boyutlandırılır."
RL_RESIZE_IMAGES_SCALE_USING="Sabit kullanarak
ölçeklendirin..."
RL_RESIZE_IMAGES_SCALE_USING_DESC="Maksimum genişlik veya
yüksekliği kullanarak görüntülerin yeniden boyutlandırılıp
boyutlandırılmayacağını seçin. Diğer boyut, orijinal görüntünün
en boy oranına göre hesaplanır."
RL_RESIZE_IMAGES_TYPE="Yeniden Boyutlandırma Yöntemi"
RL_RESIZE_IMAGES_TYPE_DESC="Yeniden boyutlandırma türünü
ayarlayın."
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Ayarlayın"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Görsellerin yeniden
boyutlandırılması için en büyük genişlik ya da yükseklik
değerlerinden hangisinin kullanılacağını seçin."
RL_RESIZE_IMAGES_WIDTH_DESC="Piksel cinsinden yeniden
boyutlandırılacak görselin genişliği (Ornek: 320)."
RL_RTL="Sağdan Sola"
RL_SAVE_CONFIG="Seçenekler kaydedildikten sonra sayfa yüklenmesinde
açılmayacak."
RL_SEASONS="Sezonlar"
RL_SEASONS_DESC="Atanacak sezonları seçin."
RL_SELECT="Seçin"
RL_SELECT_A_CATEGORY="Kategori Seçin"
RL_SELECT_ALL="Tümünü Seçin"
RL_SELECT_AN_ARTICLE="Makale Seçin"
RL_SELECT_FIELD="Alan Seçin"
RL_SELECTED="Seçilmiş"
RL_SELECTION="Seçim"
RL_SELECTION_DESC="Seçimin katılıp katılmayacağını
seçin.<br><br><strong>Katılsın</strong><br>Yalnız
seçimde
yayınlanır.<br><br><strong>Katılmasın</strong><br>Seçim
dışında her yerde yayınlanır."
RL_SETTINGS_ADMIN_MODULE="Yönetim Bölümü Modülü Ayarları"
RL_SETTINGS_EDITOR_BUTTON="Editör Düğmesi Ayarları"
RL_SETTINGS_SECURITY="Güvenlik Ayarları"
RL_SHOW_ASSIGNMENTS="Atamalar Görüntülensin"
RL_SHOW_ASSIGNMENTS_DESC="Görüntülenecek öğeleri yalnız
seçilmişlar ya da tümü olacak şekilde seçin. Bu özelliği etkin
atamaları kolayca görebilmek için kullanabilirsiniz."
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Seçilmemiş atama türleri artık
görüntülenmeyecek."
RL_SHOW_COPYRIGHT="Telif Hakkı Görüntülensin"
RL_SHOW_COPYRIGHT_DESC="Bu seçenek etkin olursa, yönetim
bölümünde fazladan bir telif hakkı bilgisi görüntülenir. Regular
Labs eklentileri ön yüzde asla telif hakkı bilgisi ya da kendi sitesine
bir bağlantı görüntülemez."
RL_SHOW_HELP_MENU="Yardım Menüsü Görüntülensin"
RL_SHOW_HELP_MENU_DESC="Bu seçenek etkin olursa, yönetim
bölümündeki yardım menüsünde Regular Labs web sitesine giden bir
bağlantı görüntülenir."
RL_SHOW_ICON="Düğme Simgesi Görüntülensin"
RL_SHOW_ICON_DESC="Bu seçenek etkin olursa, Editör Düğmesinde bir
simge görüntülenir."
RL_SHOW_UPDATE_NOTIFICATION="Güncelleme Bildirimi
Görüntülensin"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Bu seçenek etkin olursa, yeni bir
sürüm yayınlandığında ana bileşen görünümünde güncelleme
bildirimi görüntülenir"
RL_SIMPLE="Basit"
RL_SLIDES="Kayan"
RL_SOUTHERN="Güney"
RL_SPECIFIC="Özgül"
RL_SPRING="Bahar"
RL_START="Başlayın"
RL_START_PUBLISHING="Yayınlama Başlangıcı"
RL_START_PUBLISHING_DESC="Yayınlamaya başlanacak tarihi yazın"
RL_STRIP_HTML_IN_HEAD="HTML Başlıktan Çıkarılsın"
RL_STRIP_HTML_IN_HEAD_DESC="HTML başlık bölümü içindeki
eklentinin çıktısından html etiketlerini boşaltmak için seçin."
RL_STRIP_SURROUNDING_TAGS="Etiketler Ayıklansın"
RL_STRIP_SURROUNDING_TAGS_DESC="Bu seçenek etkin olursa, HTML kod
imleri (div, p, span) her zaman kaldırılır. Devre dışı
bırakıldığında uygulama eki HTML yapısını bozabilecek kod imlerini
ayıklamaya çalışır (p içindeki p kod imleri gibi)."
RL_STYLING="Biçem"
RL_SUMMER="Yaz"
RL_TABLE_NOT_FOUND="Gereken %s veritabanı tablosu bulunamadı!"
RL_TABS="Sekmeler"
RL_TAG_CHARACTERS="Etiket Karakterleri"
RL_TAG_CHARACTERS_DESC="Etiket söz diziminde kullanılacak
karakterler.<br><br><strong>Not:</strong> Bunu
değiştirirseniz, var olan etiketler çalışmaz."
RL_TAG_SYNTAX="Etiket Söz Dizimi"
RL_TAG_SYNTAX_DESC="Etiketlerde kullanılacak
sözcük.<br><br><strong>Not:</strong> Bunu
değiştirirseniz, var olan kod imleri çalışmaz."
RL_TAGS="Etiketler"
RL_TAGS_DESC="Atanacak etiketleri virgül ile ayırarak yazın."
RL_TEMPLATES="Temalar"
RL_TEMPLATES_DESC="Atanacak temaları seçin."
RL_TEXT="Metin"
RL_TEXT_HTML="Metin (HTML)"
RL_TEXT_ONLY="Yalnız Metin"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Bu eklentinin
çalışabilmesi için %s gereklidir!"
RL_TIME="Saat"
RL_TIME_FINISH_PUBLISHING_DESC="Yayın bitiş saatini
yazın.<br><br><strong>Biçim:</strong> 23:59"
RL_TIME_START_PUBLISHING_DESC="Yayın başlangıç saatini
yazın.<br><br><strong>Biçim:</strong> 23:59"
RL_TOGGLE="Değiştirin"
RL_TOOLTIP="İpucu"
RL_TOP="Üst"
RL_TOTAL="Toplam"
RL_TYPES="Türler"
RL_TYPES_DESC="Atanacak türleri seçin."
RL_UNSELECT_ALL="Tümü Seçilmemiş"
RL_UNSELECTED="Seçilmemiş"
RL_UPDATE_TO="%s sürümüne güncelleyin."
RL_URL="Adres"
RL_URL_PARAM_NAME="Parametre Adı"
RL_URL_PARAM_NAME_DESC="URL parametresinin adını girin."
RL_URL_PARTS="Adres Eşleşmeleri"
RL_URL_PARTS_DESC="Eşleştirilecek adresleri (ya da bir bölümünü)
yazın.<br>Her eşleşmeyi ayrı bir satıra yazın."
RL_URL_PARTS_REGEX="Adres bölümleri kurallı ifadeler kullanılarak
eşleştirilir.<strong>Dizgenin geçerli bir kurallı ifade söz
dizimi kullandığından emin olun.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="Kategori ve makale (öğe) atamaları
için yukarıdaki Joomla! İçeriği bölümüne bakın."
RL_USE_CUSTOM_CODE="Özel Kod Kullanılsın"
RL_USE_CUSTOM_CODE_DESC="Bu seçenek etkin olursa, editör düğmesi
belirtilen özel kodu ekler."
RL_USE_SIMPLE_BUTTON="Basit Düğme Kullanılsın"
RL_USE_SIMPLE_BUTTON_DESC="Bu seçenek etkin olursa, editörde basit
bir örnek söz dizimi ekleyen basit ekleme düğmesi kullanılır."
RL_USER_GROUP_LEVELS="Kullanıcı Grup Düzeyleri"
RL_USER_GROUPS="Kullanıcı Grupları"
RL_USER_GROUPS_DESC="Atanacak kullanıcı gruplarını seçin."
RL_USER_IDS="Kullanıcı Kodları"
RL_USER_IDS_DESC="Atanacak kullanıcı kodlarını virgül ile
ayırarak yazın."
RL_USERS="Kullanıcılar"
RL_UTF8="UTF-8"
RL_VIDEO="Görüntü"
RL_VIEW="Görünüm"
RL_VIEW_DESC="Yeni bir öğe eklenirken kullanılacak varsayılan
görünümü seçin."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Genişlik"
RL_WINTER="Kış"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO Kategorileri"
PK�X�[�!Q���?regularlabs/language/tr-TR/tr-TR.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="Sistem - Regular Labs Kütüphanesi"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Kütüphanesi - Regular Labs
bileşenleri tarafından kullanılır."
REGULAR_LABS_LIBRARY="Regular Labs Kütüphanesi"
PK�X�[�F��H�H�;regularlabs/language/uk-UA/uk-UA.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - службовий
компонент для розширень Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Розширенням
Regular Labs необхідний цей
плагін.<br><br>Розширення Regular Labs
це:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="Не видаляйте та не
відключайте цей плагін, якщо ви
використовуєте хоча б одне із розширення
Regular Labs."

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Синтаксис
тегу"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Опис"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Опис"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Режим"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Установки
за замовчуванням"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Зображення"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Опції
модуля адміністрування"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Налаштування
Editor Button"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Опції
безпеки"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Налаштування"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Стиль"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Синтаксис
тегу"

RL_ACCESS_LEVELS="Рівні доступу"
RL_ACCESS_LEVELS_DESC="Виберіть рівні доступу
для призначення."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="Встановити"
RL_ACTION_UNINSTALL="Видалити"
RL_ACTION_UPDATE="Оновити"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
RL_ADMIN="Адміністратор"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="Розширені"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="ВСЕ"
RL_ALL_DESC="Розширення буде активно
(опубліковано), якщо <strong>відразу
всі</strong> умови, перераховані нижче,
будуть дотримані."
RL_ALL_RIGHTS_RESERVED="Усі права захищені"
RL_ALSO_ON_CHILD_ITEMS="активно і у вкладених
пунктах"
RL_ALSO_ON_CHILD_ITEMS_DESC="Розширення буде
активно також і у вкладених пунктах
меню"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Дочірні елементи
відносяться до фактичних підпунктів в
наведеному вище виборі. Вони не належать
до посилань на обраних сторінках."
RL_ANY="БУДЬ ЯКИЙ"
RL_ANY_DESC="Розширення буде активно, якщо
<strong>хоча б одне з</strong> (або
декілька) умов, перераховані нижче,
будуть дотримані.<br>При цьому умови,
що мають значення 'Ignore' будуть
проігноровані."
RL_ARE_YOU_SURE="Ви впевнені?"
RL_ARTICLE="Стаття"
RL_ARTICLE_AUTHORS="Автори"
RL_ARTICLE_AUTHORS_DESC="Вкажіть авторів, для
яких розширення буде активно."
RL_ARTICLES="Матеріали"
RL_ARTICLES_DESC="Виберіть статті, в яких буде
активним дане розширення."
RL_AS_EXPORTED="Як при експорті"
RL_ASSIGNMENTS="Призначення"
RL_ASSIGNMENTS_DESC="Вибираючи певні
призначення ви можете обмежувати, де це %s
треба або не треба
опубліковувати.<br>Для публікації на
всії сторінках просто не вказуйте щодних
призначень."
RL_AUSTRALIA="Австралія"
RL_AUTHORS="Автори"
RL_AUTO="Авто"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="Режим"
RL_BEHAVIOUR="Режим"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="У вас відключено
Bootstrap Framework. %s вимагає щоб Bootstrap Framework був
задіяний. Переконайтеся, що ваш шаблон
або інші розширення завантажують
необхідні скрипти щоб змінити необхідну
функціональність."
RL_BOTH="Обидва"
RL_BOTTOM="Внизу"
RL_BROWSERS="Браузери"
RL_BROWSERS_DESC="Виберіть браузери, в яких
буде активно дане розширення. Однак,
пам'ятайте, що розпізнання браузерів
не завжди 100% точно. Користувачі можуть
налаштувати свої браузери так, що вони
будуть маскуватися під інші браузери."
RL_BUTTON_ICON="Іконка на кнопці"
RL_BUTTON_ICON_DESC="Виберіть іконку, яку
показувати на кнопці."
RL_BUTTON_TEXT="Текст кнопки"
RL_BUTTON_TEXT_DESC="Цей текст буде на кнопці в
редакторі."
RL_CACHE_TIME="Час кешу"
RL_CACHE_TIME_DESC="Максимальний інтервал часу
у хвилинах, який кеш-файл буде
зберігатися до його оновлення. Залиште
поле порожнім, щоб використовувати
глобальні налаштування."
RL_CATEGORIES="Категорії"
RL_CATEGORIES_DESC="Виберіть категорії, в яких
буде активно дане розширення."
; RL_CATEGORY="Category"
RL_CHANGELOG="Зміни"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="Згорнути"
RL_COM="Компонент"
RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
RL_COMBINE_ADMIN_MENU_DESC="Виберіть, щоб
об'єднати всі компоненти Regular Labs в
окреме підміню в меню адміністратора."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="Компоненти"
RL_COMPONENTS_DESC="Вкажіть, в яких компонентах
розширення буде активно."
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="Зміст"
RL_CONTENT_KEYWORDS="Ключові слова"
RL_CONTENT_KEYWORDS_DESC="Вкажіть через кому
ключові слова зі змісту, при наявності
яких розширення буде активно."
RL_CONTINENTS="Континенти"
RL_CONTINENTS_DESC="Вкажіть, для яких
континентів розширення буде активно."
RL_COOKIECONFIRM="Підтвердження використання
кукіз"
RL_COOKIECONFIRM_COOKIES="Кукіз дозволено"
RL_COOKIECONFIRM_COOKIES_DESC="Визначити - дозволені
чи заборонені куки, в залежності від
конфігурації налаштувань кук (в Twentronix) і
вибір користувача прийняти або
відхилити куки."
RL_COPY_OF="Копія %s"
RL_COPYRIGHT="Авторські права"
RL_COUNTRIES="Країни"
RL_COUNTRIES_DESC="Вкажіть, для яких країн
розширення буде активно."
RL_CSS_CLASS="Клас (CSS)"
RL_CSS_CLASS_DESC="Визначте ім'я класу CSS"
RL_CURRENT="Поточна"
RL_CURRENT_DATE="Поточна дата/час:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="Ваша версія %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="Власний код"
RL_CUSTOM_CODE_DESC="Введіть код, що кнопка
редактора вставлятиме у вміст (замість
коду за замовчуванням)."
RL_CUSTOM_FIELD="Користувальницьке поле"
RL_CUSTOM_FIELDS="Користувальницькі поля"
RL_DATE="Дата"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
RL_DATE_RECURRING="Повторювані"
RL_DATE_RECURRING_DESC="Виберіть, щоб
застосувати діапазон дат у кожний рік.
(Так що рік, у відбірі буде
ігноруватися)"
RL_DATE_TIME="Дата і час"
RL_DATE_TIME_DESC="Дата і час вказані тут - це
дата і час сервера, на якому розташований
ваш сайт, а НЕ дата і час у відвідувачів
вашого сайту."
; RL_DATE_TO="To"
RL_DAYS="Дні тижня"
RL_DAYS_DESC="Виберіть дні тижня, протягом
яких буде активно дане розширення"
RL_DEFAULT_ORDERING="Порядок за
замовчуванням"
RL_DEFAULT_ORDERING_DESC="Встановити
впорядкування елементів списку за
замовчуванням"
RL_DEFAULT_SETTINGS="Установки за
замовчуванням"
RL_DEFAULTS="За замовчуванням"
RL_DEVICE_DESKTOP="ПК"
RL_DEVICE_MOBILE="Мобільний телефон"
RL_DEVICE_TABLET="Планшет"
RL_DEVICES="Пристрій"
RL_DEVICES_DESC="Виберіть пристрої для
призначення. Майте на увазі, що виявлення
пристроїв не завжди є точним на 100&#37; .
Користувачі можуть налаштувати їх
пристрій, щоб імітувати інші пристрої"
RL_DIRECTION="Напрям"
RL_DIRECTION_DESC="Оберіть напрям"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Виберіть, в якому
Адміністративному компоненті не
використовувати це розширення."
RL_DISABLE_ON_ALL_COMPONENTS_DESC="Виберіть, в якому
компоненті не використовувати це
розширення."
RL_DISABLE_ON_COMPONENTS="Заборонити в
Компонентах"
RL_DISABLE_ON_COMPONENTS_DESC="Виберіть, в яких
компонентах на сайті НЕ використовувати
це розширення."
RL_DISPLAY_EDITOR_BUTTON="Показати Кнопку
редактора"
RL_DISPLAY_EDITOR_BUTTON_DESC="Виберіть, щоб
показувати Кнопку редактора"
RL_DISPLAY_LINK="Показати посилання"
RL_DISPLAY_LINK_DESC="Як Ви хочете, щоб
посилання було виведене на екран?"
RL_DISPLAY_TOOLBAR_BUTTON="Показати кнопку на
панелі інструментів"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="Виберіть, щоб
показати кнопку на панелі
інструментів."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="Відображати підказку"
RL_DISPLAY_TOOLTIP_DESC="Виберіть, щоб
з'являлася підказка з додатковою
інформацією, коли миша перебуває над
посиланням/значком."
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
RL_DYNAMIC_TAG_COUNTER="Це показує число
входжень.<br>Якщо ваш пошук дав,
скажімо, 4 значення, лічильник
показуватиме відповідно від 1 до 4."
RL_DYNAMIC_TAG_DATE="Дата у форматі %1$sphp strftime()
format%2$s. Приклад: %3$s"
RL_DYNAMIC_TAG_ESCAPE="Використовуйте, щоб
уникнути динамічних значень (додайте
слеші к лапкам)."
RL_DYNAMIC_TAG_LOWERCASE="Змінити текст всередині
тегів до нижнього регістру."
RL_DYNAMIC_TAG_RANDOM="Випадкове число в
зазначеному діапазоні"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="Мовний рядок для перекладу
у тексті (на основі активної мови)"
RL_DYNAMIC_TAG_UPPERCASE="Змінити текст всередині
тегів до верхнього регістру."
RL_DYNAMIC_TAG_USER_ID="Ідентифікатор
користувача"
RL_DYNAMIC_TAG_USER_NAME="Ім'я користувача"
RL_DYNAMIC_TAG_USER_OTHER="Ніяких інших
відповідних даних від користувача або
підключеної контактної особи. Приклад:
[[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="Тег користувача
поміщає дані від користувача, що увійшов
в систему. Якщо користувач не ввійшов у
систему, тег буде видалено."
RL_DYNAMIC_TAG_USER_USERNAME="Логін користувача"
RL_DYNAMIC_TAGS="Динамічні теги"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="Дозволити"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
RL_ENABLE_IN="Задіяно в"
RL_ENABLE_IN_ADMIN="Увімкнути у адмінпанелі"
RL_ENABLE_IN_ADMIN_DESC="Якщо включено, плагін
буде працювати також і на боці
адмінпанелі сайту.<br><br>Як правило,
ви не будете мати потребу в цьому. Також
це може викликати небажані ефекти, такі
як уповільнення адмінпанелі і теги
плагіну можуть обробляється в небажаних
вами місцях."
RL_ENABLE_IN_ARTICLES="Дозволити в Статтях"
RL_ENABLE_IN_COMPONENTS="Дозволити в
Компонентах"
RL_ENABLE_IN_DESC="Виберіть, чи слід включити
на сайті або адмінпанелі або в скрізь."
RL_ENABLE_IN_FRONTEND="Доступно в фронтенді"
RL_ENABLE_IN_FRONTEND_DESC="Якщо включено, то вона
також буде доступна в фронтенді."
RL_ENABLE_OTHER_AREAS="Дозволити в інших
місцях"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="Виключити"
RL_EXPAND="Розгорнути"
RL_EXPORT="Експорт"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
RL_EXTRA_PARAMETERS="Extra Parameters"
RL_EXTRA_PARAMETERS_DESC="Введіть будь-які
додаткові параметри, які не можуть бути
встановлені разом з доступними
параметрами"
RL_FALL="Осінь"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="Ім'я поля"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="Значення поля"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="Необхідний файл %s не
знайдено!"
RL_FILTERS="Фільтри"
RL_FINISH_PUBLISHING="Закінчення публікації"
RL_FINISH_PUBLISHING_DESC="Вкажіть дату
деактивації розширення"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="Для більшої
функціональності замовляйте версію
PRO."
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="NoNumber Framework здається не
використовується будь-якими іншими
розширеннями, які Ви встановили. ЇЇ,
ймовірно, можна відключити або видалити
цей плагін."
; RL_FROM_TO="From-To"
RL_FRONTEND="фронтенд"
RL_GALLERY="Gallery"
RL_GEO="Геолокація"
RL_GEO_DESC="Геолокація не завжди точна на
100&#37;. Геогокація базується на IP-адресі
відвідувача. Не всі IP-адреси фіксуються
або відомі."
RL_GEO_GEOIP_COPYRIGHT_DESC="Цей продукт містить
дані GeoLite2 розроблений MaxMind, та доступний
на [[%1:link%]]"
RL_GEO_NO_GEOIP_LIBRARY="Бібліотека Regular Labs GeoIP не
встановлена. Вам треба [[%1:link start%]]
встановити бібліотеку Regular Labs GeoIP [[%2:link
end%]] щоб мати змогу використовувати
геолокацію."
RL_GO_PRO="Переходь на Pro!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="Заголовок 1"
RL_HEADING_2="Заголовок 2"
RL_HEADING_3="Заголовок 3"
RL_HEADING_4="Заголовок 4"
RL_HEADING_5="Заголовок 5"
RL_HEADING_6="Заголовок 6"
RL_HEADING_ACCESS_ASC="Доступ за зростанням"
RL_HEADING_ACCESS_DESC="Доступ за зменшенням"
RL_HEADING_CATEGORY_ASC="Категорія за
зростанням"
RL_HEADING_CATEGORY_DESC="Категорія за
зменшенням"
RL_HEADING_CLIENTID_ASC="Розташування за
зростанням"
RL_HEADING_CLIENTID_DESC="Розташування за
зменшенням"
RL_HEADING_COLOR_ASC="Колір за зростанням"
RL_HEADING_COLOR_DESC="Колір за зменшенням"
RL_HEADING_DEFAULT_ASC="За зростанням"
RL_HEADING_DEFAULT_DESC="За зменшенням"
RL_HEADING_DESCRIPTION_ASC="Опис за зростанням"
RL_HEADING_DESCRIPTION_DESC="Опис за зменшенням"
RL_HEADING_ID_ASC="ID за зростанням"
RL_HEADING_ID_DESC="ID за зменшенням"
RL_HEADING_LANGUAGE_ASC="Мова за зростанням"
RL_HEADING_LANGUAGE_DESC="Мова за зменшенням"
RL_HEADING_ORDERING_ASC="Впорядкувати за
зростанням"
RL_HEADING_ORDERING_DESC="Впорядкування за
зменшенням"
RL_HEADING_PAGES_ASC="Пункти меню за
зростанням"
RL_HEADING_PAGES_DESC="Пункти меню за
зменшенням"
RL_HEADING_POSITION_ASC="Позиція за
зростанням"
RL_HEADING_POSITION_DESC="Позиція за
зменшенням"
RL_HEADING_STATUS_ASC="Статус за зростанням"
RL_HEADING_STATUS_DESC="Статус за зменшенням"
RL_HEADING_STYLE_ASC="Стиль за зростанням"
RL_HEADING_STYLE_DESC="Стиль за зменшенням"
RL_HEADING_TEMPLATE_ASC="Шаблони за
зростанням"
RL_HEADING_TEMPLATE_DESC="Шаблони за
зменшенням"
RL_HEADING_TITLE_ASC="Заголовок за
зростанням"
RL_HEADING_TITLE_DESC="Заголовок за
зменшенням"
RL_HEADING_TYPE_ASC="Тип за зростанням"
RL_HEADING_TYPE_DESC="Тип за зменшенням"
RL_HEIGHT="Висота"
RL_HEMISPHERE="Розташування сайту"
RL_HEMISPHERE_DESC="Виберіть півкулю землі, у
якой розміщений СЕРВЕР з вашим сайтом"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="Домашня сторінка"
RL_HOME_PAGE_DESC="На відміну від обрання
домашньої сторінки (за замовчуванням)
через пункти меню, цей відповідає лише
спражній головній сторінці, ігноруючи
різні посилання з тим самим Itemid, що пункт
меню головної сторінки.<br><br>Це
може не працювати для сторонніх
розробників SEF розширень."
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="Тільки іконка"
RL_IGNORE="Ігнорувати"
RL_IMAGE="Зображення"
RL_IMAGE_ALT="Зображення Alt"
RL_IMAGE_ALT_DESC="Значення Alt для
зображення"
RL_IMAGE_ATTRIBUTES="Атрибути зображення"
RL_IMAGE_ATTRIBUTES_DESC="Додаткові атрибути
зображенн, як то: alt=&quot;Моє
зображення&quot; width=&quot;300&quot;"
RL_IMPORT="Імпорт"
RL_IMPORT_ITEMS="Елементи імпорту"
RL_INCLUDE="Увімкнути"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="активно і без Itemid"
RL_INCLUDE_NO_ITEMID_DESC="Розширення буде
активно також і за відсутності Itemid в
URL"
RL_INITIALISE_EVENT="Ініціалізація за
подією"
RL_INITIALISE_EVENT_DESC="Встановити внутрішню
подію Joomla, на яку має ініціалізується
плагін. Змініть це, тільки якщо у вас
виникли питання та плагін не працює."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="Вставка"
RL_INSERT_DATE_NAME="Вставити Дата / Ім'я"
RL_IP_RANGES="IP адреса / інтервал"
RL_IP_RANGES_DESC="Список IP-адрес і діапазонів
IP-адрес розділений комами і/або введений
з нового рядка.
Наприклад:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP адреси"
RL_IS_FREE_VERSION="Це БЕЗКОШТОВНА версія %s."
RL_ITEM="Пункт"
RL_ITEM_IDS="ID пунктів"
RL_ITEM_IDS_DESC="Вкажіть id пунктів, до яких
призначати. Використовуйте кому, як
роздільник id."
RL_ITEMS="елементи"
RL_ITEMS_DESC="Виберіть матеріали, в яких
буде активним дане розширення."
RL_JCONTENT="Joomla! Вміст"
RL_JED_REVIEW="Подобається це розширення?
[[%1:start link%]] Залиште відгук на JED[[%2:end
link%]]"
RL_JOOMLA2_VERSION_ON_JOOMLA3="Ви використовуєте
версію %1$s для Joomla 2.5 на Joomla 3. Будь ласка,
перевстановіть %1$s, щоб усунути
проблему."
RL_JQUERY_DISABLED="У вас відключено скрипт
jQuery. %s потребує функції jQuery.
Переконайтеся, що ваш шаблон або інші
розширення завантажують необхідні
скрипти щоб замінити необхідну
функціональність."
RL_K2="K2"
RL_K2_CATEGORIES="Категорії K2"
RL_LANGUAGE="Мова"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="Мови"
RL_LANGUAGES_DESC="Вкажіть мови, для яких
розширення буде активно."
RL_LAYOUT="Макет"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="Рівні"
RL_LEVELS_DESC="Виберіть рівні, в яких буде
активним дане розширення."
RL_LIB="Бібліотека"
RL_LINK_TEXT="Текст посилання"
RL_LINK_TEXT_DESC="Текст, який буде виведений
на кнопці."
RL_LIST="Список"
RL_LOAD_BOOTSTRAP_FRAMEWORK="Завантажити Bootstrap
Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Відключити, щоб не
використовувати Bootstrap Framework."
RL_LOAD_JQUERY="Завантажити скрипт jQuery"
RL_LOAD_JQUERY_DESC="Виберіть, щоб завантажити
основний скрипт jQuery. Ви можете
відключити це, якщо виникають конфлікти,
якщо ваш шаблон або інші розширення
завантажують свої власні версії jQuery."
RL_LOAD_MOOTOOLS="Завантажувати MooTools"
RL_LOAD_MOOTOOLS_DESC="Оберіть, щоб завантажити
базовий скрипт MooTools. Ви можете вимкнути
це, якщо Ваш шаблон або інші розширення
завантажують їх власну версію MooTools і
вони конфліктують."
RL_LOAD_STYLESHEET="Завантажити таблицю
стилів"
RL_LOAD_STYLESHEET_DESC="Оберіть, щоби
завантажувати таблицю стилів
розширення. Вимкніть, якщо розташовуєте
власні стилі деінде, наприклад у теці
шаблону."
; RL_LOW="Low"
RL_LTR="Зліва направо"
RL_MATCH_ALL="Вибрати все"
RL_MATCH_ALL_DESC="Виберіть, щоб співставлення
виконувалось, якщо всі вибрані елементи
збігаються."
RL_MATCHING_METHOD="Режим порівняння умов"
RL_MATCHING_METHOD_DESC="Якщо все або будь-які
завдання будуть
підібрані?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="Максимальна кількість
рядків"
RL_MAX_LIST_COUNT_DESC="Максимальна кількість
елементів для показу в списках з
множинним вибором. Якщо загальна
кількість елементів більша, поле вибору
відображається у вигляді текстового
поля.<br><br>Ви можете встановити це
число менше, якщо ви відчуваєте довге
завантаження сторінки з-за великої
кількості елементів у списках."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="Максимізувати"
RL_MEDIA_VERSIONING="Використовувати версії
для Media"
RL_MEDIA_VERSIONING_DESC="Виберіть, щоб додати
додатковий номер версії в кінець
URL-адреси файлу (JS / CSS) , щоб змусити
браузери завантажувати правильний
файл."
RL_MEDIUM="Середній"
RL_MENU_ITEMS="Пункти меню"
RL_MENU_ITEMS_DESC="Вкажіть пункти меню, в яких
розширення буде активно."
RL_META_KEYWORDS="Ключові слова метатегу"
RL_META_KEYWORDS_DESC="Введіть ключові слова,
які мають бути знайдені в ключових
словах метатегів щоб задіяти
призначення розширення. Використовуйте
коми для розділення ключових слів."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="Мінімізувати"
RL_MOBILE_BROWSERS="Мобільні браузери"
RL_MOD="Модуль"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="Місяці"
RL_MONTHS_DESC="Виберіть місяці, в яких буде
активно дане розширення."
RL_MORE_INFO="Допомога"
RL_MY_STRING="Мій рядок!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="Пунктів змінено: %d"
RL_N_ITEMS_UPDATED_1="Один пункт змінено"
RL_NEW_CATEGORY="Створити нову категорію"
RL_NEW_CATEGORY_ENTER="Введіть нову назву
категорії"
RL_NEW_VERSION_AVAILABLE="Доступна нова версія"
RL_NEW_VERSION_OF_AVAILABLE="Доступна нова версія
%s"
RL_NO_ICON="Без іконки"
RL_NO_ITEMS_FOUND="Матеріали не знайдено"
RL_NORMAL="Звичайний"
RL_NORTHERN="Північне"
RL_NOT="Не"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="Тільки"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>Доступно тільки у
версії PRO!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Доступно тільки
в PRO версії)"
RL_ONLY_VISIBLE_TO_ADMIN="Це повідомлення буде
відображено тільки для (супер)
адміністраторів."
RL_OPTION_SELECT="- Виберіть -"
RL_OPTION_SELECT_CLIENT="-- Виберіть клієнта--"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="Операційні системи"
RL_OS_DESC="Оберіть операційні системи, в
яких буде активним дане розширення.
Однак, пам'ятайте, що розпізнавання
операційної системи не завжди на 100&#37;
точне. Користувачі можуть налаштувати
свій браузер так, що від буде вдавати
себе, як інша операційна система"
; RL_OTHER="Other"
RL_OTHER_AREAS="Інші місця"
RL_OTHER_OPTIONS="Інші опції"
RL_OTHER_SETTINGS="Інші Установки"
RL_OTHERS="Інші"
RL_PAGE_TYPES="Типи сторінок"
RL_PAGE_TYPES_DESC="Вкажіть, на яких типах
сторінок буде активно розширення."
RL_PHP="Довільний код PHP"
RL_PHP_DESC="Введіть сюди PHP-код. Результат
виконання коду повинен повертати або
<strong>true</strong>, або
<strong>false</strong>.<br><br>Наприклад:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="Коментар HTML"
RL_PLACE_HTML_COMMENTS_DESC="За замовчуванням HTML
коментарі розміщені навколо виведення
це розширення.<br><br>Ці коментарі
можуть допомогти Вам знайти і усунення
несправності, коли Ви не отримуєте те, що
Ви очікуєте.<br><br>Якщо Ви бажаєте не
виводити ці коментарі у своєму HTML коді,
вимкніть цю опцію."
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="Плагін кнопки редактора"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="Системний плагін"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="Поштовий індекс"
RL_POSTALCODES_DESC="Розділений комами список
поштових індексів (12345) або діапазон
поштових індесів (12300-12500).<br>Це може
бути використано тільки для [[%1:start link%]]
обмеженої кількості країн та ІР адрес
[[%2:end link%]]."
RL_POWERED_BY="Працює на %s"
RL_PRODUCTS="Продукти"
RL_PUBLISHED_DESC="Можна використовувати для
(тимчасового) виключення цього
елемента."
RL_PUBLISHING_ASSIGNMENTS="Активація розширення
за умовами"
RL_PUBLISHING_SETTINGS="Налаштування
публікації"
RL_RANDOM="&quot;Випадкові&quot;"
RL_REDSHOP="RedShop"
RL_REGEX="Регулярний вираз"
RL_REGIONS="Район / Штат"
RL_REGIONS_DESC="Вкажіть, для яких районів /
штатів розширення буде активно."
RL_REGULAR_EXPRESSIONS="Використовувати
регулярні вирази"
RL_REGULAR_EXPRESSIONS_DESC="Виберіть щоб
трактувати значення як регулярні
вирази."
RL_REMOVE_IN_DISABLED_COMPONENTS="Видалити у
відключених Компонентах"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="Якщо обрано,
синтаксис плагіну буде видалений з
компоненту. Якщо ні - синтаксис плагіну
залишиться."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="Обрізати"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="Карта"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="Зправа наліво"
RL_SAVE_CONFIG="Після збереження налаштувань
вони не будуть більше з'являтися на
сторінці завантаження."
RL_SEASONS="Пори року"
RL_SEASONS_DESC="Виберіть пори року, у якіх
буде активно дане розширення."
RL_SELECT="Виберіть"
RL_SELECT_A_CATEGORY="Виберіть категорію"
RL_SELECT_ALL="Вибрати все"
RL_SELECT_AN_ARTICLE="Виберіть матеріал"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="Обрано"
RL_SELECTION="Вибрати"
RL_SELECTION_DESC="Вкажіть, коли розширення
буде
активно.<br><br><strong>Включити</strong><br>Розширення
буде активно тільки в обраних
умовах.<br><br><strong>Виключити</strong><br>Розширення
буде активно у всіх умовах, окрім
вибраних.<br><br><strong>Завжди</strong><br>Розширення
буде активно завжди."
RL_SETTINGS_ADMIN_MODULE="Опції модуля
адміністрування"
RL_SETTINGS_EDITOR_BUTTON="Налаштування Editor
Button"
RL_SETTINGS_SECURITY="Опції безпеки"
RL_SHOW_ASSIGNMENTS="Показати призначення"
RL_SHOW_ASSIGNMENTS_DESC="Виберіть, чи слід
відображати тільки вибрані призначення.
Ви можете використовувати це, щоб
отримати огляд тільки активних
призначень"
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="Всі не-вибрані типи
призначень приховані від перегляду."
RL_SHOW_COPYRIGHT="Показувати авторські
права"
RL_SHOW_COPYRIGHT_DESC="Якщо вибрано, додаткових
інформація щодо авторських прав буде
відображатися в адмінпанелі. Розширення
Regular Labs ніколи не показують відомості про
авторські права або посилання на
сайті."
RL_SHOW_HELP_MENU="Показати Пункт меню -
Допомога"
RL_SHOW_HELP_MENU_DESC="Виберіть, щоб показати
посилання на веб-сай Regular Labs в меню
Довідка адмінпанелі."
RL_SHOW_ICON="Іконка на кнопці"
RL_SHOW_ICON_DESC="Якщо вибрано, іконка буде
відображена на кнопці в редакторі."
RL_SHOW_UPDATE_NOTIFICATION="Показати повідомлення
про оновлення"
RL_SHOW_UPDATE_NOTIFICATION_DESC="Якщо пвибрано,
повідомлення про оновлення буде
показано при перегляді головного
компоненту, коли є нова версія цього
розширення."
RL_SIMPLE="Простий"
RL_SLIDES="Слайди"
RL_SOUTHERN="Південний"
; RL_SPECIFIC="Specific"
RL_SPRING="Весна"
RL_START="Почати"
RL_START_PUBLISHING="Початок публікації"
RL_START_PUBLISHING_DESC="Вкажіть дату початку
активації розширення"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="Видалити оточуючі
теги"
RL_STRIP_SURROUNDING_TAGS_DESC="Виберіть, щоб завжди
видалити HTML-теги (div, p, span), що оточують тег
плагіну. Якщо вимкнено, плагін буде
намагатися видалити теги, які порушують
HTML-структуру (наприклад, р всередині
р-тегів)."
RL_STYLING="Стиль"
RL_SUMMER="Літо"
RL_TABLE_NOT_FOUND="Необхідну таблицю %s в базі
даних не знайдено!"
RL_TABS="Закладки"
RL_TAG_CHARACTERS="Символи тегів"
RL_TAG_CHARACTERS_DESC="Символи синтаксису
тегів<br><br><strong>Увага:</strong>якщо
ви зміните цю опцію, всі існуючі теги не
будуть більше працювати."
RL_TAG_SYNTAX="Синтаксис тегу"
RL_TAG_SYNTAX_DESC="Слово, яке буде
використовуватися в
тегах.<br><br><strong>Примітка:</strong>
Якщо Ви зміните це слово, всі існуючі
теги, більше не будуть працювати."
RL_TAGS="Тегі"
RL_TAGS_DESC="Вкажіть через кому тегі, до
яких призначити."
RL_TEMPLATES="Шаблони"
RL_TEMPLATES_DESC="Вкажіть шаблони, для яких
розширення буде активно."
RL_TEXT="Текст"
RL_TEXT_HTML="Текст (HTML)"
RL_TEXT_ONLY="Тільки текст"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="Це
розширення потребує %s для коректної
роботи!"
RL_TIME="Час"
RL_TIME_FINISH_PUBLISHING_DESC="Час закінчення
публікації
розширення.<br><br><strong>Формат
часу:</strong> 23:59"
RL_TIME_START_PUBLISHING_DESC="Час початку
публікації
розширення.<br><br><strong>Формат
времени:</strong> 23:59"
RL_TOGGLE="Перемикач"
RL_TOOLTIP="Підказка"
RL_TOP="Вгорі"
RL_TOTAL="Всього"
RL_TYPES="Тип"
RL_TYPES_DESC="Вкажіть типи, для яких
розширення буде активно."
RL_UNSELECT_ALL="Зняти вибір із всього"
RL_UNSELECTED="Не обрано"
RL_UPDATE_TO="Оновитись до версії %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="Відповідність URL"
RL_URL_PARTS_DESC="Введіть URL-адреси, (або їх
частини), що мають
співпадати.<br>Використовуйте новий
рядок для кожного окремого
співпадання."
RL_URL_PARTS_REGEX="Частини Url будуть
порівнюватися за допомогою регулярних
виразів. <strong>Тому переконайтеся, що
Ви використовуйте вірний
синтаксис</strong>."
RL_USE_CONTENT_ASSIGNMENTS="Для призначення
розширення до категорії і статті
(матеріалу), дивіться вище розділ Joomla!
Контент."
RL_USE_CUSTOM_CODE="Використовувати власний
код"
RL_USE_CUSTOM_CODE_DESC="Якщо обрано, кнопка
редактора вставить власний код."
RL_USE_SIMPLE_BUTTON="Використати Кнопку
спрощеного вводу"
RL_USE_SIMPLE_BUTTON_DESC="Виберіть щоб
використовувати кнопку спрощеної
вставки, яка просто вставляє деякі
приклади синтаксису в редакторі."
RL_USER_GROUP_LEVELS="Групи користувачів"
RL_USER_GROUPS="Групи користувачів"
RL_USER_GROUPS_DESC="Оберіть групи
користувачів, до яких призначити."
RL_USER_IDS="ID користувачів"
RL_USER_IDS_DESC="Вкажіть ідентифікатори
користувачів, для яких розширення буде
активно."
RL_USERS="Користувачі"
RL_UTF8="UTF-8"
RL_VIDEO="Відео"
RL_VIEW="Вид"
RL_VIEW_DESC="Виберіть, яке режим за
замовчуванням повинен
використовуватися при створенні нового
елемента."
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="Ширина"
RL_WINTER="Зима"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="Категорії ZOO"
PK�X�[�K���?regularlabs/language/uk-UA/uk-UA.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="System - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - службовий
компонент для розширень Regular Labs"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[O�p�*u*u;regularlabs/language/zh-CN/zh-CN.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="系统 - Regular Labs依赖库"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs依赖库 - 由Regular
Labs扩展使用"
REGULAR_LABS_LIBRARY="Regular Labs依赖库"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Regular
Labs扩展需要此插件,没有它就无法运行。<br><br>Regular
Labs扩展包括:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="如果您使用任何Regular
Labs扩展,请不要卸载或禁用此插件。"

COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="用户操作日志"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="标记语法"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="描述"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="描述"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="行为"
COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="默认设置"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="媒体"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="管理员模块选项"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="编辑器按钮选项"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="安全选项"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="设置"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="造型"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="标记语法"

RL_ACCESS_LEVELS="访问级别"
RL_ACCESS_LEVELS_DESC="选择要分配的访问级别。"
RL_ACTION_CHANGE_DEFAULT="更改默认值"
RL_ACTION_CHANGE_STATE="更改发布状态"
RL_ACTION_CREATE="创建"
RL_ACTION_DELETE="删除"
RL_ACTION_INSTALL="安装"
RL_ACTION_UNINSTALL="卸载"
RL_ACTION_UPDATE="更新"
RL_ACTIONLOG_EVENTS="要记录的事件"
RL_ACTIONLOG_EVENTS_DESC="选择要包含在用户操作日志中的操作。"
RL_ADMIN="管理"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="高级"
RL_AFTER="之后"
RL_AFTER_NOW="现在之后"
RL_AKEEBASUBS="Akeeba订阅"
RL_ALL="全部"
RL_ALL_DESC="如果<strong>所有</strong>以下分配匹配,将会发布。"
RL_ALL_RIGHTS_RESERVED="保留所有权利"
RL_ALSO_ON_CHILD_ITEMS="同样适用子项"
RL_ALSO_ON_CHILD_ITEMS_DESC="还分配给所选项目的子项?"
RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="子项目引用上述选择中的实际子项目。它们不引用所选页面上的链接。"
RL_ANY="任何"
RL_ANY_DESC="如果匹配以下分配的<strong>任何</strong>(一个或多个),将会发布。<br><br>将忽略选择”忽略“的分配组。"
RL_ARE_YOU_SURE="您确定吗?"
RL_ARTICLE="文章"
RL_ARTICLE_AUTHORS="作者"
RL_ARTICLE_AUTHORS_DESC="选择要分配给的作者。"
RL_ARTICLES="文章"
RL_ARTICLES_DESC="选择要分配的文章。"
RL_AS_EXPORTED="如同导出的"
RL_ASSIGNMENTS="分配"
RL_ASSIGNMENTS_DESC="通过选择特定的分配,您可以限制应该或不应该发布%s的位置。<br>要在所有页面上发布它,只需不指定任何分配。"
RL_AUSTRALIA="澳大利亚"
RL_AUTHORS="作者"
RL_AUTO="自动"
RL_BEFORE="之前"
RL_BEFORE_NOW="现在之前"
RL_BEGINS_WITH="开始于"
RL_BEHAVIOR="行为"
RL_BEHAVIOUR="行为"
RL_BETWEEN="之间"
RL_BOOTSTRAP="Bootstrap"
RL_BOOTSTRAP_FRAMEWORK_DISABLED="您已禁用要启动的Bootstrap框架。%s需要Bootstrap框架才能运行。请确保您的模板或其他扩展程序加载必要的脚本以替换所需的功能。"
RL_BOTH="两者"
RL_BOTTOM="底部"
RL_BROWSERS="浏览器"
RL_BROWSERS_DESC="选择要分配的浏览器。请记住,浏览器检测并不总是100&#37;准确。用户可以设置他们的浏览器来模仿其他浏览器"
RL_BUTTON_ICON="按钮图标"
RL_BUTTON_ICON_DESC="选择要在按钮中显示的图标。"
RL_BUTTON_TEXT="按钮文字"
RL_BUTTON_TEXT_DESC="此文本将显示在编辑器按钮中。"
RL_CACHE_TIME="缓存时间"
RL_CACHE_TIME_DESC="刷新缓存文件之前存储的最长时间(以分钟为单位)。保留为空以使用全局设置。"
RL_CATEGORIES="类别"
RL_CATEGORIES_DESC="选择要分配的类别。"
; RL_CATEGORY="Category"
RL_CHANGELOG="更新日志"
RL_CLASSNAME="CSS类"
RL_COLLAPSE="收起"
RL_COM="组件"
RL_COMBINE_ADMIN_MENU="合并管理员菜单"
RL_COMBINE_ADMIN_MENU_DESC="选择将所有Regular
Labs组件组合到管理员菜单中的子菜单中。"
RL_COMPARISON="比较方式"
RL_COMPONENTS="组件"
RL_COMPONENTS_DESC="选择要分配的组件。"
RL_CONTAINS="包含"
RL_CONTAINS_ONE="包含其中之一"
RL_CONTENT="内容"
RL_CONTENT_KEYWORDS="内容关键字"
RL_CONTENT_KEYWORDS_DESC="输入在内容中找到的关键字来分配。使用英文逗号分隔关键字。"
RL_CONTINENTS="大洲"
RL_CONTINENTS_DESC="选择要分配的大陆。"
RL_COOKIECONFIRM="Cookie确认"
RL_COOKIECONFIRM_COOKIES="允许使用Cookie"
RL_COOKIECONFIRM_COOKIES_DESC="根据Cookie确认(Twentronix)的配置以及访问者接受或拒绝cookie的选择,分配是允许还是不允许cookie。"
RL_COPY_OF="%s的副本"
RL_COPYRIGHT="版权"
RL_COUNTRIES="国家"
RL_COUNTRIES_DESC="选择要分配的国家/地区。"
RL_CSS_CLASS="类(CSS)"
RL_CSS_CLASS_DESC="为样式目的定义css类名称。"
RL_CURRENT="当前"
RL_CURRENT_DATE="当前日期/时间:<strong>%s</strong>"
RL_CURRENT_USER="当前用户"
RL_CURRENT_VERSION="您当前的版本是%s"
RL_CUSTOM="自定义"
RL_CUSTOM_CODE="自定义代码"
RL_CUSTOM_CODE_DESC="输入编辑器按钮应插入内容的代码(而不是默认代码)。"
RL_CUSTOM_FIELD="自定义字段"
RL_CUSTOM_FIELDS="自定义字段"
RL_DATE="日期"
RL_DATE_DESC="选择要指定的日期比较类型。"
RL_DATE_FROM="从"
RL_DATE_RECURRING="定期"
RL_DATE_RECURRING_DESC="选择每年应用日期范围。(因此选择中的年份将被忽略)"
RL_DATE_TIME="日期和时间"
RL_DATE_TIME_DESC="日期和时间分配使用服务器的日期/时间,而不是访客系统的日期/时间。"
RL_DATE_TO="至"
RL_DAYS="星期几"
RL_DAYS_DESC="选择要分配的星期几。"
RL_DEFAULT_ORDERING="默认顺序"
RL_DEFAULT_ORDERING_DESC="设置列表项的默认顺序"
RL_DEFAULT_SETTINGS="默认设置"
RL_DEFAULTS="预设"
RL_DEVICE_DESKTOP="桌面"
RL_DEVICE_MOBILE="手机"
RL_DEVICE_TABLET="平板电脑"
RL_DEVICES="设备"
RL_DEVICES_DESC="选择要分配的设备。请记住,设备检测并不总是100&#37;准确。用户可以设置他们的设备以模仿其他设备"
RL_DIRECTION="方向"
RL_DIRECTION_DESC="选择方向"
RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="选择哪个管理员组件不允许使用此扩展。"
RL_DISABLE_ON_ALL_COMPONENTS_DESC="选择哪些组件不允许使用此扩展。"
RL_DISABLE_ON_COMPONENTS="禁用组件"
RL_DISABLE_ON_COMPONENTS_DESC="选择哪个前端组件不允许使用此扩展。"
RL_DISPLAY_EDITOR_BUTTON="显示编辑器按钮"
RL_DISPLAY_EDITOR_BUTTON_DESC="选择显示编辑器按钮。"
RL_DISPLAY_LINK="显示链接"
RL_DISPLAY_LINK_DESC="您希望如何显示链接?"
RL_DISPLAY_TOOLBAR_BUTTON="显示工具栏按钮"
RL_DISPLAY_TOOLBAR_BUTTON_DESC="选择以在工具栏中显示按钮。"
RL_DISPLAY_TOOLBAR_BUTTONS="显示工具栏按钮"
RL_DISPLAY_TOOLBAR_BUTTONS_DESC="选择在工具栏中显示的按钮。"
RL_DISPLAY_TOOLTIP="显示工具提示"
RL_DISPLAY_TOOLTIP_DESC="当鼠标悬停在链接/图标上时,选择显示带有额外信息的工具提示。"
RL_DYNAMIC_TAG_ARTICLE_ID="当前文章的ID号。"
RL_DYNAMIC_TAG_ARTICLE_OTHER="当前文章中的任何其他可用数据。"
RL_DYNAMIC_TAG_ARTICLE_TITLE="当前文章的标题。"
RL_DYNAMIC_TAG_COUNTER="这会放置发生的次数。<br>如果找到您的搜索,例如4次,则计数将分别显示为1到4。"
RL_DYNAMIC_TAG_DATE="日期使用%1$sphp
strftime()格式%1$s。示例:%1$s"
RL_DYNAMIC_TAG_ESCAPE="用于转义动态值(在引号中添加斜杠)。"
RL_DYNAMIC_TAG_LOWERCASE="将标记内的文本转换为小写。"
RL_DYNAMIC_TAG_RANDOM="给定范围内的随机数"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
RL_DYNAMIC_TAG_TEXT="要翻译成文本的语言字符串(基于活动语言)"
RL_DYNAMIC_TAG_UPPERCASE="将标记内的文本转换为大写。"
RL_DYNAMIC_TAG_USER_ID="用户的ID号"
RL_DYNAMIC_TAG_USER_NAME="用户名"
RL_DYNAMIC_TAG_USER_OTHER="来自用户或连接的联系人的任何其他可用数据。示例:[[user:misc]]"
RL_DYNAMIC_TAG_USER_TAG_DESC="用户标记放置来自登录用户的数据。如果访问者不是登录后,标签将被删除。"
RL_DYNAMIC_TAG_USER_USERNAME="用户的登录名"
RL_DYNAMIC_TAGS="动态标签"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="启用"
RL_ENABLE_ACTIONLOG="记录用户操作"
RL_ENABLE_ACTIONLOG_DESC="选择存储用户操作。这些操作将显示在用户操作日志模块中。"
RL_ENABLE_IN="启用"
RL_ENABLE_IN_ADMIN="在管理员中启用"
RL_ENABLE_IN_ADMIN_DESC="如果启用,该插件也可以在网站的管理员端工作。<br><br>通常你不需要这个。它可能会导致不必要的影响,比如减慢管理员和处理插件标签的速度在你不想要的地方。"
RL_ENABLE_IN_ARTICLES="在文章中启用"
RL_ENABLE_IN_COMPONENTS="在组件中启用"
RL_ENABLE_IN_DESC="选择是在前端还是在管理员端启用,或两者都启用。"
RL_ENABLE_IN_FRONTEND="在前端启用"
RL_ENABLE_IN_FRONTEND_DESC="如果启用,它也将在前端提供。"
RL_ENABLE_OTHER_AREAS="启用其他区域"
RL_ENDS_WITH="结束于"
RL_EQUALS="等于"
RL_EXCLUDE="排除"
RL_EXPAND="展开"
RL_EXPORT="导出"
RL_EXPORT_FORMAT="导出格式"
RL_EXPORT_FORMAT_DESC="选择导出文件的文件格式。"
RL_EXTRA_PARAMETERS="额外参数"
RL_EXTRA_PARAMETERS_DESC="输入可用设置除外的任何额外参数"
RL_FALL="秋天"
RL_FEATURED_DESC="选择在分配中使用功能状态。"
RL_FEATURES="功能"
RL_FIELD="字段"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="字段名称"
RL_FIELD_PARAM_MULTIPLE="多选"
RL_FIELD_PARAM_MULTIPLE_DESC="允许选择多个值。"
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="字段值"
RL_FIELDS_DESC="选择要分配的字段,然后输入所需的值。"
RL_FILES_NOT_FOUND="找不到所需的%s文件!"
RL_FILTERS="过滤"
RL_FINISH_PUBLISHING="完成发布"
RL_FINISH_PUBLISHING_DESC="输入结束发布的日期"
RL_FIX_HTML="修复HTML"
RL_FIX_HTML_DESC="选择让扩展程序修复它找到的任何html结构问题。这通常是处理周围的html标记所必需的。<br><br>如果你遇到问题,只能关闭它。"
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="如需更多功能,您可以购买专业版本。"
RL_FORM2CONTENT="Form2Content"
RL_FRAMEWORK_NO_LONGER_USED="旧的NoNumber框架似乎没有被您安装的任何其他扩展程序使用。禁用或卸载此插件可能是安全的。"
RL_FROM_TO="从-至"
RL_FRONTEND="前端"
RL_GALLERY="画廊"
RL_GEO="地理定位"
RL_GEO_DESC="Geolocating并不总是100&#37;准确。地理定位基于访问者的IP地址。并非所有IP地址都是固定的或已知的。"
RL_GEO_GEOIP_COPYRIGHT_DESC="此产品包含MaxMind创建的GeoLite2数据,可从[[%1:link%]]获取"
RL_GEO_NO_GEOIP_LIBRARY="未安装Regular Labs
GeoIP库。您需要[[%1:link start%]]i安装Regular Labs GeoIP库[[%2:link
end%]]才能使用Geolocating分配。"
RL_GO_PRO="Go Pro!"
RL_GREATER_THAN="多于"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
RL_HEADING_1="标题1"
RL_HEADING_2="标题2"
RL_HEADING_3="标题3"
RL_HEADING_4="标题4"
RL_HEADING_5="标题5"
RL_HEADING_6="标题6"
RL_HEADING_ACCESS_ASC="访问升序"
RL_HEADING_ACCESS_DESC="访问降序"
RL_HEADING_CATEGORY_ASC="类别升序"
RL_HEADING_CATEGORY_DESC="类别降序"
RL_HEADING_CLIENTID_ASC="位置升序"
RL_HEADING_CLIENTID_DESC="位置降序"
RL_HEADING_COLOR_ASC="颜色升序"
RL_HEADING_COLOR_DESC="颜色降序"
RL_HEADING_DEFAULT_ASC="默认升序"
RL_HEADING_DEFAULT_DESC="默认降序"
RL_HEADING_DESCRIPTION_ASC="描述升序"
RL_HEADING_DESCRIPTION_DESC="描述降序"
RL_HEADING_ID_ASC="ID升序"
RL_HEADING_ID_DESC="ID降序"
RL_HEADING_LANGUAGE_ASC="语言升序"
RL_HEADING_LANGUAGE_DESC="语言降序"
RL_HEADING_ORDERING_ASC="排序升序"
RL_HEADING_ORDERING_DESC="排序降序"
RL_HEADING_PAGES_ASC="菜单项升序"
RL_HEADING_PAGES_DESC="菜单项降序"
RL_HEADING_POSITION_ASC="位置升序"
RL_HEADING_POSITION_DESC="位置降序"
RL_HEADING_STATUS_ASC="状态升序"
RL_HEADING_STATUS_DESC="状态降序"
RL_HEADING_STYLE_ASC="风格升序"
RL_HEADING_STYLE_DESC="风格降序"
RL_HEADING_TEMPLATE_ASC="模板升序"
RL_HEADING_TEMPLATE_DESC="模板降序"
RL_HEADING_TITLE_ASC="标题升序"
RL_HEADING_TITLE_DESC="标题降序"
RL_HEADING_TYPE_ASC="类型升序"
RL_HEADING_TYPE_DESC="类型降序"
RL_HEIGHT="高度"
RL_HEMISPHERE="半球"
RL_HEMISPHERE_DESC="选择您的网站所在的半球"
RL_HIGH="高"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="主页"
RL_HOME_PAGE_DESC="与通过菜单项选择主页(默认)项不同,这只会匹配真实的主页,而不是与主菜单项具有相同Itemid的任何URL。<br><br>这可能不起作用适用于所有第三方SEF扩展。"
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
RL_HTML_TAGS="HTML标签"
RL_ICON_ONLY="仅限图标"
RL_IGNORE="忽略"
RL_IMAGE="图像"
RL_IMAGE_ALT="图像Alt"
RL_IMAGE_ALT_DESC="图像的Alt值。"
RL_IMAGE_ATTRIBUTES="图像属性"
RL_IMAGE_ATTRIBUTES_DESC="图像的额外属性,如:alt=&quot;我的图像&quot;
width=&quot;300&quot;"
RL_IMPORT="导入"
RL_IMPORT_ITEMS="导入项目"
RL_INCLUDE="包含"
RL_INCLUDE_CHILD_ITEMS="包含子项"
RL_INCLUDE_CHILD_ITEMS_DESC="还包括所选项目的子项?"
RL_INCLUDE_NO_ITEMID="包括没有Itemid"
RL_INCLUDE_NO_ITEMID_DESC="当在URL中没有设置菜单Itemid时也分配?"
RL_INITIALISE_EVENT="事件初始化"
RL_INITIALISE_EVENT_DESC="设置应该初始化插件的内部Joomla事件。只有在遇到插件无法正常工作的问题时才更改此设置。"
RL_INPUT_TYPE="输入类型"
RL_INPUT_TYPE_ALNUM="仅包含A-Z或0-9的字符串(不区分大小写)。"
RL_INPUT_TYPE_ARRAY="数组。"
RL_INPUT_TYPE_BOOLEAN="布尔值。"
RL_INPUT_TYPE_CMD="包含A-Z,0-9,下划线,句点或连字符的字符串(不区分大小写)。"
RL_INPUT_TYPE_DESC="选择输入类型:"
RL_INPUT_TYPE_FLOAT="浮点数或浮点数数组。"
RL_INPUT_TYPE_INT="整数或整数数组。"
RL_INPUT_TYPE_STRING="完全解码和清理的字符串(默认)。"
RL_INPUT_TYPE_UINT="无符号整数或无符号整数数组。"
RL_INPUT_TYPE_WORD="仅包含A-Z或下划线的字符串(不区分大小写)。"
RL_INSERT="插入"
RL_INSERT_DATE_NAME="插入日期/名称"
RL_IP_RANGES="IP地址/范围"
RL_IP_RANGES_DESC="逗号和/或输入分隔的IP地址和IP范围列表。例如:<br>127.0.0.1<br>128.0-128.1<br>129"
RL_IPS="IP地址"
RL_IS_FREE_VERSION="这是%s的免费版本。"
RL_ITEM="项目"
RL_ITEM_IDS="项目ID"
RL_ITEM_IDS_DESC="输入要分配的项目ID。使用英文逗号分隔ID。"
RL_ITEMS="项目"
RL_ITEMS_DESC="选择要分配的项目。"
RL_JCONTENT="Joomla! 内容"
RL_JED_REVIEW="喜欢这个扩展?[[%1:start link%]]在JED[[%2:end
link%]]上留个好评吧"
RL_JOOMLA2_VERSION_ON_JOOMLA3="您正在Joomla 3上运行Joomla
2.5版本的%1$s。请重新安装%1$s以解决问题。"
RL_JQUERY_DISABLED="您已禁用jQuery脚本。%s需要jQuery才能运行。请确保您的模板或其他扩展程序加载必要的脚本以替换所需的功能。"
RL_K2="K2"
RL_K2_CATEGORIES="K2类别"
RL_LANGUAGE="语言"
RL_LANGUAGE_DESC="选择要分配的语言。"
RL_LANGUAGES="语言"
RL_LANGUAGES_DESC="选择要分配的语言。"
RL_LAYOUT="布局"
RL_LAYOUT_DESC="选择要使用的布局。您可以在组件或模板中覆盖此布局。"
RL_LESS_THAN="少于"
RL_LEVELS="级别"
RL_LEVELS_DESC="选择要分配的级别。"
RL_LIB="依赖库"
RL_LINK_TEXT="链接文字"
RL_LINK_TEXT_DESC="要显示为链接的文本。"
RL_LIST="清单"
RL_LOAD_BOOTSTRAP_FRAMEWORK="加载Bootstrap框架"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="禁用不启动Bootstrap框架。"
RL_LOAD_JQUERY="加载jQuery脚本"
RL_LOAD_JQUERY_DESC="选择加载核心jQuery脚本。如果您的模板或其他扩展加载了自己的jQuery版本,如果遇到冲突,可以禁用此功能。"
RL_LOAD_MOOTOOLS="加载核心MooTools"
RL_LOAD_MOOTOOLS_DESC="选择加载核心MooTools脚本。如果您的模板或其他扩展加载了自己的MooTools版本,如果遇到冲突,可以禁用此功能。"
RL_LOAD_STYLESHEET="加载样式表"
RL_LOAD_STYLESHEET_DESC="选择加载扩展样式表。如果将所有样式放在其他样式表中,可以禁用它,例如模板样式表。"
RL_LOW="低"
RL_LTR="左到右"
RL_MATCH_ALL="全部匹配"
RL_MATCH_ALL_DESC="如果所有选定的项目都匹配,则选择仅让分配通过。"
RL_MATCHING_METHOD="匹配方法"
RL_MATCHING_METHOD_DESC="是否应匹配所有或任何分配?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
RL_MAX_LIST_COUNT="最大列表计数"
RL_MAX_LIST_COUNT_DESC="多选列表中显示的最大元素数。如果项目总数较高,则选择字段将显示为文本字段。<br><br>如果项目数量较少,则可以设置此数字。由于列表中的项目数量很多,您会遇到长页面加载。"
RL_MAX_LIST_COUNT_INCREASE="增加最大列表计数"
RL_MAX_LIST_COUNT_INCREASE_DESC="有超过[[%1:max%]]个项目。<br><br>为了防止慢速页面,此字段显示为textarea而不是动态选择列表。<br><br>您可以增加Regular
Labs依赖库插件设置中的'[[%2:max setting%]]'。"
RL_MAXIMIZE="最大化"
RL_MEDIA_VERSIONING="使用媒体版本控制"
RL_MEDIA_VERSIONING_DESC="选择将扩展版本号添加到媒体(js/css)URL的末尾,以使浏览器强制加载正确的文件。"
RL_MEDIUM="中"
RL_MENU_ITEMS="菜单项"
RL_MENU_ITEMS_DESC="选择要分配的菜单项。"
RL_META_KEYWORDS="元关键字"
RL_META_KEYWORDS_DESC="输入要分配给的meta关键字中的关键字。使用逗号分隔关键字。"
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="最小化"
RL_MOBILE_BROWSERS="移动浏览器"
RL_MOD="模块"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="月"
RL_MONTHS_DESC="选择要分配的月份。"
RL_MORE_INFO="更多信息"
RL_MY_STRING="我的字符串!"
RL_N_ITEMS_ARCHIVED="%s项目已存档。"
RL_N_ITEMS_ARCHIVED_1="%s项目已存档。"
RL_N_ITEMS_CHECKED_IN_0="没有签入任何项目。"
RL_N_ITEMS_CHECKED_IN_1="%d项已签入。"
RL_N_ITEMS_CHECKED_IN_MORE="%d项已签入。"
RL_N_ITEMS_DELETED="已删除%s项目。"
RL_N_ITEMS_DELETED_1="%s项已删除。"
RL_N_ITEMS_FEATURED="%s项目精选。"
RL_N_ITEMS_FEATURED_1="%s项目精选。"
RL_N_ITEMS_PUBLISHED="已发布%s项目。"
RL_N_ITEMS_PUBLISHED_1="已发布%s项目。"
RL_N_ITEMS_TRASHED="%s项目已被删除。"
RL_N_ITEMS_TRASHED_1="%s项目已被删除。"
RL_N_ITEMS_UNFEATURED="%s项目取消推荐。"
RL_N_ITEMS_UNFEATURED_1="%s项目取消推荐。"
RL_N_ITEMS_UNPUBLISHED="%s项目取消发布。"
RL_N_ITEMS_UNPUBLISHED_1="%s项目取消发布。"
RL_N_ITEMS_UPDATED="%d项已更新。"
RL_N_ITEMS_UPDATED_1="一项已更新"
RL_NEW_CATEGORY="创建新类别"
RL_NEW_CATEGORY_ENTER="输入新的类别名称"
RL_NEW_VERSION_AVAILABLE="有新版本可用"
RL_NEW_VERSION_OF_AVAILABLE="%s的新版本可用"
RL_NO_ICON="没有图标"
RL_NO_ITEMS_FOUND="找不到任何物品。"
RL_NORMAL="正常"
RL_NORTHERN="北"
RL_NOT="不"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
RL_NOT_CONTAINS="不包含"
RL_NOT_EQUALS="不等于"
RL_ONLY="只有"
RL_ONLY_AVAILABLE_IN_JOOMLA="仅适用于Joomla%s或更高版本。"
RL_ONLY_AVAILABLE_IN_PRO="<em>仅适用于PRO版本!</em>"
RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(仅适用于PRO版本)"
RL_ONLY_VISIBLE_TO_ADMIN="此消息仅显示给(超级)管理员。"
RL_OPTION_SELECT="- 选择 -"
RL_OPTION_SELECT_CLIENT="- 选择客户 -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="操作系统"
RL_OS_DESC="选择要分配的操作系统。请记住,操作系统检测并不总是100&#37;准确。用户可以设置他们的浏览器来模仿其他操作系统。"
RL_OTHER="其他"
RL_OTHER_AREAS="其他地区"
RL_OTHER_OPTIONS="其他选项"
RL_OTHER_SETTINGS="其他设置"
RL_OTHERS="其他"
RL_PAGE_TYPES="页面类型"
RL_PAGE_TYPES_DESC="选择分配应该处于哪种页面类型。"
RL_PHP="自定义PHP"
RL_PHP_DESC="输入一段要评估的PHP代码。代码必须返回值true或false。<br><br>例如:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="放置HTML评论"
RL_PLACE_HTML_COMMENTS_DESC="默认情况下,HTML注释放在此扩展的输出周围。<br><br>这些注释可以帮助您在未获得预期输出时进行故障排除。<br><br>如果您不愿意在HTML输出中添加这些注释,关闭此选项。"
RL_PLG_ACTIONLOG="操作日志插件"
RL_PLG_EDITORS-XTD="编辑器按钮插件"
RL_PLG_FIELDS="字段插件"
RL_PLG_SYSTEM="系统插件"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
RL_POSTALCODES="邮政编码"
RL_POSTALCODES_DESC="以逗号分隔的邮政编码列表(12345)或邮政编码范围(12300-12500)。<br>这只能用于[[%1:start
link%]]有限数量的国家/地区和IP地址[[%2:end link%]]。"
RL_POWERED_BY="由%s提供支持"
RL_PRODUCTS="产品"
RL_PUBLISHED_DESC="您可以使用它来暂时禁用此项目。"
RL_PUBLISHING_ASSIGNMENTS="发布作业"
RL_PUBLISHING_SETTINGS="发布项目"
RL_RANDOM="随机"
RL_REDSHOP="RedShop"
RL_REGEX="正则表达式"
RL_REGIONS="地区/国家"
RL_REGIONS_DESC="选择要分配的区域/状态。"
RL_REGULAR_EXPRESSIONS="使用正则表达式"
RL_REGULAR_EXPRESSIONS_DESC="选择将值视为正则表达式。"
RL_REMOVE_IN_DISABLED_COMPONENTS="删除已禁用的组件"
RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="如果选中,将从组件中删除插件语法。如果没有,原始插件语法将保持不变。"
RL_RESIZE_IMAGES="调整图片大小"
RL_RESIZE_IMAGES_CROP="剪裁"
RL_RESIZE_IMAGES_CROP_DESC="已调整大小的图像将始终具有设置​​的宽度和高度。"
RL_RESIZE_IMAGES_DESC="如果选中,则会自动为图像创建已调整大小的图像(如果它们尚不存在。将使用以下设置创建已调整大小的图像。"
RL_RESIZE_IMAGES_FILETYPES="仅在文件类型上"
RL_RESIZE_IMAGES_FILETYPES_DESC="选择要调整大小的文件类型。"
RL_RESIZE_IMAGES_FOLDER="文件夹"
RL_RESIZE_IMAGES_FOLDER_DESC="包含已调整大小的图像的文件夹。这将是包含原始图像的文件夹的子文件夹。"
RL_RESIZE_IMAGES_HEIGHT_DESC="以像素为单位设置已调整大小的图像的高度(即180)。"
RL_RESIZE_IMAGES_NO_HEIGHT_DESC="高度将根据上面定义的宽度和原始图像的纵横比计算。"
RL_RESIZE_IMAGES_NO_WIDTH_DESC="宽度将根据下面定义的高度和原始图像的宽高比计算。"
RL_RESIZE_IMAGES_QUALITY="JPG质量"
RL_RESIZE_IMAGES_QUALITY_DESC="已调整大小的图像的质量。从低,中或高中选择。质量越高,生成的文件越大。<br>这只会影响jpeg图像。"
RL_RESIZE_IMAGES_SCALE="比例"
RL_RESIZE_IMAGES_SCALE_DESC="调整大小的图像将调整为最大宽度或高度,保持其纵横比。"
RL_RESIZE_IMAGES_SCALE_USING="使用固定的比例 …"
RL_RESIZE_IMAGES_SCALE_USING_DESC="选择是否使用最大宽度或高度调整图像大小。另一个尺寸将根据原始图像的纵横比计算。"
RL_RESIZE_IMAGES_TYPE="调整大小方法"
RL_RESIZE_IMAGES_TYPE_DESC="设置调整大小的类型。"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="设置"
RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="选择是否使用最大宽度或高度调整图像大小。"
RL_RESIZE_IMAGES_WIDTH_DESC="设置已调整大小的图像的宽度(以像素为单位)(例如320)。"
RL_RTL="从右至左"
RL_SAVE_CONFIG="保存选项后,它不会再在页面加载时弹出。"
RL_SEASONS="季节"
RL_SEASONS_DESC="选择要分配的季节。"
RL_SELECT="选择"
RL_SELECT_A_CATEGORY="选择一个类别"
RL_SELECT_ALL="全选"
RL_SELECT_AN_ARTICLE="选择文章"
RL_SELECT_FIELD="选择字段"
RL_SELECTED="选择"
RL_SELECTION="选择"
RL_SELECTION_DESC="选择是否包含或排除作业的选择。<br><br><strong>包含</strong><br>仅在选择时发布。<br><br><strong>排除</strong><br>除了选择外,每个地方都会发布。"
RL_SETTINGS_ADMIN_MODULE="管理员模块选项"
RL_SETTINGS_EDITOR_BUTTON="编辑器按钮选项"
RL_SETTINGS_SECURITY="安全选项"
RL_SHOW_ASSIGNMENTS="显示分配"
RL_SHOW_ASSIGNMENTS_DESC="选择是否仅显示所选分配。您可以使用它来清楚地了解有效分配。"
RL_SHOW_ASSIGNMENTS_SELECTED_DESC="所有未选择的分配类型现在都隐藏在视图之外。"
RL_SHOW_COPYRIGHT="显示版权"
RL_SHOW_COPYRIGHT_DESC="如果选中,管理员视图中将显示额外的版权信息。Regular
Labs扩展程序永远不会在前端显示版权信息或反向链接。"
RL_SHOW_HELP_MENU="显示帮助菜单项"
RL_SHOW_HELP_MENU_DESC="选择此选项可在管理员帮助菜单中显示指向Regular
Labs网站的链接。"
RL_SHOW_ICON="显示按钮图标"
RL_SHOW_ICON_DESC="如果选中,图标将显示在编辑器按钮中。"
RL_SHOW_UPDATE_NOTIFICATION="显示更新通知"
RL_SHOW_UPDATE_NOTIFICATION_DESC="如果选中此选项,则当此扩展程序有新版本时,主组件视图中将显示更新通知。"
RL_SIMPLE="简单"
RL_SLIDES="幻灯片"
RL_SOUTHERN="南方"
RL_SPECIFIC="具体"
RL_SPRING="春天"
RL_START="开始"
RL_START_PUBLISHING="开始发布"
RL_START_PUBLISHING_DESC="输入开始发布的日期"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
RL_STRIP_SURROUNDING_TAGS="剥离周围标签"
RL_STRIP_SURROUNDING_TAGS_DESC="选择始终删除插件标签周围的html标签(div,
p,
span)。如果关闭,插件将尝试删除打破html结构的标签(如p标签内的p)。"
RL_STYLING="样式"
RL_SUMMER="夏天"
RL_TABLE_NOT_FOUND="找不到所需的%s数据库表!"
RL_TABS="标签"
RL_TAG_CHARACTERS="标签字符"
RL_TAG_CHARACTERS_DESC="标记语法的周围字符。<br><br><strong>注意:</strong>如果更改此项,则所有现有标记将不再起作用。"
RL_TAG_SYNTAX="标记语法"
RL_TAG_SYNTAX_DESC="标签中使用的单词。<br><br><strong>注意:</strong>如果更改此标签,则所有现有标签将不再起作用。"
RL_TAGS="标签"
RL_TAGS_DESC="输入要分配的标签。使用逗号分隔标签。"
RL_TEMPLATES="模板"
RL_TEMPLATES_DESC="选择要分配的模板。"
RL_TEXT="文字"
RL_TEXT_HTML="文字(HTML)"
RL_TEXT_ONLY="仅限文字"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="此扩展程序需要%s才能正常运行!"
RL_TIME="时代"
RL_TIME_FINISH_PUBLISHING_DESC="输入结束发布的时间。<br><br><strong>格式:</strong>23:59"
RL_TIME_START_PUBLISHING_DESC="输入开始发布的时间。<br><br><strong>格式:</strong>23:59"
RL_TOGGLE="切换"
RL_TOOLTIP="工具提示"
RL_TOP="顶部"
RL_TOTAL="总计"
RL_TYPES="类型"
RL_TYPES_DESC="选择要分配的类型。"
RL_UNSELECT_ALL="取消全选"
RL_UNSELECTED="未选定"
RL_UPDATE_TO="更新到版本%s"
RL_URL="URL"
RL_URL_PARAM_NAME="参数名称"
RL_URL_PARAM_NAME_DESC="输入url参数的名称。"
RL_URL_PARTS="网址匹配"
RL_URL_PARTS_DESC="输入(部分)要匹配的网址。<br>为每个不同的匹配使用新行。"
RL_URL_PARTS_REGEX="将使用正则表达式匹配Url部分。<strong>因此请确保该字符串使用有效的正则表达式语法。</strong>"
RL_USE_CONTENT_ASSIGNMENTS="有关类别和文章(项目)作业,请参阅上面的Joomla!
内容部分。"
RL_USE_CUSTOM_CODE="使用自定义代码"
RL_USE_CUSTOM_CODE_DESC="如果选中,编辑器按钮将插入给定的自定义代码。"
RL_USE_SIMPLE_BUTTON="使用简单按钮"
RL_USE_SIMPLE_BUTTON_DESC="选择使用简单的插入按钮,只需将一些示例语法插入编辑器即可。"
RL_USER_GROUP_LEVELS="用户组级别"
RL_USER_GROUPS="用户组"
RL_USER_GROUPS_DESC="选择要分配的用户组。"
RL_USER_IDS="用户ID"
RL_USER_IDS_DESC="输入要分配给的用户ID。使用逗号分隔ID。"
RL_USERS="用户"
RL_UTF8="UTF-8"
RL_VIDEO="视频"
RL_VIEW="查看"
RL_VIEW_DESC="选择创建新项目时应使用的默认视图。"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="宽度"
RL_WINTER="冬天"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO类别"
PK�X�[UA�^^?regularlabs/language/zh-CN/zh-CN.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="系统 - Regular Labs依赖库"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs依赖库 - 由Regular
Labs扩展使用"
REGULAR_LABS_LIBRARY="Regular Labs依赖库"
PK�X�[Ef�|�|;regularlabs/language/zh-TW/zh-TW.plg_system_regularlabs.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="系統 - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - 由 Regular Labs
擴充套件使用"
REGULAR_LABS_LIBRARY="Regular Labs Library"

REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]] Regular Labs
擴充套件需要此外掛且沒有它將無法動作。<br><br>Regular
Labs 擴充套件包含:[[%2:extensions%]]"
REGULAR_LABS_LIBRARY_DESC_WARNING="如果您使用任何 Regular Labs
擴充套件,不要解除安裝或停用此外掛。"

; COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log"
COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="標籤語法"
COM_MODULES_DESCRIPTION_FIELDSET_LABEL="描述"
COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="描述"
COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="行為"
; COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default
Settings"
COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="多媒體檔"
COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator
模組選項"
COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="編輯器按鈕選項"
COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="安全性選項"
COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="設定"
COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="樣式"
COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="標籤語法"

; RL_ACCESS_LEVELS="Access Levels"
; RL_ACCESS_LEVELS_DESC="Select the access levels to assign to."
; RL_ACTION_CHANGE_DEFAULT="Change Default"
; RL_ACTION_CHANGE_STATE="Change Publish State"
; RL_ACTION_CREATE="Create"
; RL_ACTION_DELETE="Delete"
RL_ACTION_INSTALL="安裝"
RL_ACTION_UNINSTALL="解除安裝"
RL_ACTION_UPDATE="更新"
; RL_ACTIONLOG_EVENTS="Events To Log"
; RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User
Actions Log."
; RL_ADMIN="Admin"
; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]]
administrator module has been unpublished!"
RL_ADVANCED="進階"
; RL_AFTER="After"
; RL_AFTER_NOW="After NOW"
RL_AKEEBASUBS="Akeeba Subscriptions"
RL_ALL="全部"
RL_ALL_DESC="如果符合以下 <strong>全部</strong>
的指派將發佈。"
RL_ALL_RIGHTS_RESERVED="保留所有權利"
RL_ALSO_ON_CHILD_ITEMS="也在子項目"
RL_ALSO_ON_CHILD_ITEMS_DESC="同時指派到選取項目的子項目?"
; RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to
actual sub-items in the above selection. They do not refer to links on
selected pages."
RL_ANY="任何"
RL_ANY_DESC="如果符合以下 <strong>任何</strong>
(一個或多個) 的指派將發佈。<br>選取 [忽略]
的指派群組將忽略。"
RL_ARE_YOU_SURE="確定嗎?"
RL_ARTICLE="文章"
RL_ARTICLE_AUTHORS="“作者”"
; RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to."
RL_ARTICLES="文章"
RL_ARTICLES_DESC="選取指派的文章。"
RL_AS_EXPORTED="作為匯出"
RL_ASSIGNMENTS="屬於"
; RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can
limit where this %s should or shouldn't be published.<br>To have
it published on all pages, simply do not specify any assignments."
RL_AUSTRALIA="澳大利亞"
RL_AUTHORS="作者"
RL_AUTO="自動"
; RL_BEFORE="Before"
; RL_BEFORE_NOW="Before NOW"
; RL_BEGINS_WITH="Begins with"
RL_BEHAVIOR="行為"
RL_BEHAVIOUR="行為"
; RL_BETWEEN="Between"
RL_BOOTSTRAP="Bootstrap"
; RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap
Framework to be initiated. %s needs the Bootstrap Framework to function.
Make sure your template or other extensions load the necessary scripts to
replace the required functionality."
RL_BOTH="同時"
RL_BOTTOM="下"
RL_BROWSERS="瀏覽器"
RL_BROWSERS_DESC="選取指派的瀏覽器。
請記住,瀏覽器偵測絕不是 100&#37; 準確。
使用者可以設定瀏覽器以模擬其它瀏覽器。"
; RL_BUTTON_ICON="Button Icon"
; RL_BUTTON_ICON_DESC="Select which icon to show in the button."
RL_BUTTON_TEXT="按鈕文字"
RL_BUTTON_TEXT_DESC="此文字顯示在編輯器按鈕。"
RL_CACHE_TIME="快取時間"
; RL_CACHE_TIME_DESC="The maximum length of time in minutes for a
cache file to be stored before it is refreshed. Leave empty to use the
global setting."
RL_CATEGORIES="分類"
RL_CATEGORIES_DESC="選取指派的分類。"
; RL_CATEGORY="Category"
RL_CHANGELOG="變更日誌"
; RL_CLASSNAME="CSS Class"
RL_COLLAPSE="摺疊"
RL_COM="元件"
; RL_COMBINE_ADMIN_MENU="Combine Admin Menu"
; RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs -
components into a submenu in the administrator menu."
; RL_COMPARISON="Comparison"
RL_COMPONENTS="元件"
RL_COMPONENTS_DESC="選取指派的元件。"
; RL_CONTAINS="Contains"
; RL_CONTAINS_ONE="Contains one of"
RL_CONTENT="內容"
; RL_CONTENT_KEYWORDS="Content Keywords"
; RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to
assign to. Use commas to separate the keywords."
RL_CONTINENTS="洲"
RL_CONTINENTS_DESC="選取指派的洲。"
; RL_COOKIECONFIRM="Cookie Confirm"
; RL_COOKIECONFIRM_COOKIES="Cookies allowed"
; RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed
or disallowed, based on the configuration of Cookie Confirm (by Twentronix)
and the visitor's choice to accept or decline cookies."
RL_COPY_OF="%s 的副本"
RL_COPYRIGHT="著作權"
RL_COUNTRIES="國家"
RL_COUNTRIES_DESC="選取指派的國家。"
; RL_CSS_CLASS="Class (CSS)"
; RL_CSS_CLASS_DESC="Define a css class name for styling
purposes."
RL_CURRENT="目前"
RL_CURRENT_DATE="目前日期/時間:
<strong>%s</strong>"
; RL_CURRENT_USER="Current User"
RL_CURRENT_VERSION="目前的版本 %s"
; RL_CUSTOM="Custom"
RL_CUSTOM_CODE="自訂碼"
RL_CUSTOM_CODE_DESC="輸入編輯器按鈕應插入到文章的代碼
(而不是預設碼)。"
; RL_CUSTOM_FIELD="Custom Field"
RL_CUSTOM_FIELDS="自訂欄位"
RL_DATE="日期"
; RL_DATE_DESC="Select the type of date comparison to assign by."
; RL_DATE_FROM="From"
; RL_DATE_RECURRING="Recurring"
; RL_DATE_RECURRING_DESC="Select to apply date range every year. (So
the year in the selection will be ignored)"
RL_DATE_TIME="日期 & 時間"
RL_DATE_TIME_DESC="日期和時間指派使用伺服器上的日期/時間,非訪問者系統的。"
; RL_DATE_TO="To"
RL_DAYS="星期幾"
RL_DAYS_DESC="選取指派的星期天數"
; RL_DEFAULT_ORDERING="Default Ordering"
; RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list
items"
; RL_DEFAULT_SETTINGS="Default Settings"
RL_DEFAULTS="預設"
RL_DEVICE_DESKTOP="一般螢幕"
RL_DEVICE_MOBILE="手機"
RL_DEVICE_TABLET="平板"
; RL_DEVICES="Devices"
; RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that
device detection is not always 100&#37; accurate. Users can setup their
device to mimic other devices"
RL_DIRECTION="方向"
RL_DIRECTION_DESC="選取方向"
; RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator
components NOT to enable the use of this extension."
; RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to
enable the use of this extension."
RL_DISABLE_ON_COMPONENTS="在元件停用"
; RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components
NOT to enable the use of this extension."
; RL_DISPLAY_EDITOR_BUTTON="Display Editor Button"
; RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor
button."
RL_DISPLAY_LINK="顯示連結"
RL_DISPLAY_LINK_DESC="您要連結如何顯示?"
; RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button"
; RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the
toolbar."
; RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons"
; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the
toolbar."
RL_DISPLAY_TOOLTIP="顯示工具提示"
RL_DISPLAY_TOOLTIP_DESC="選取滑鼠暫留連結/圖示上方時顯示額外資訊的工具提示。"
; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current
article."
; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the
current article."
; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current
article."
; RL_DYNAMIC_TAG_COUNTER="This places the number of the
occurrence.<br>If your search is found, say, 4 times, the count will
show respectively 1 to 4."
; RL_DYNAMIC_TAG_DATE="Date using %1$sphp strftime() format%2$s.
Example: %3$s"
; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to
quotes)."
; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to
lowercase."
; RL_DYNAMIC_TAG_RANDOM="A random number within the given range"
; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings,
numbers or ranges"
; RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based
on the active language)"
; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to
uppercase."
; RL_DYNAMIC_TAG_USER_ID="The id number of the user"
; RL_DYNAMIC_TAG_USER_NAME="The name of the user"
; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or
the connected contact. Example: [[user:misc]]"
; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the
logged in user. If the visitor is not logged in, the tag will be
removed."
; RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user"
; RL_DYNAMIC_TAGS="Dynamic Tags"
RL_EASYBLOG="EasyBlog"
RL_ENABLE="啟用"
; RL_ENABLE_ACTIONLOG="Log User Actions"
; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These
actions will be visible in the User Actions Log module."
; RL_ENABLE_IN="Enable in"
; RL_ENABLE_IN_ADMIN="Enable in administrator"
; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in
the administrator side of the website.<br><br>Normally you will
not need this. And it can cause unwanted effects, like slowing down the
administrator and the plugin tags being handled in areas you don't
want it."
RL_ENABLE_IN_ARTICLES="在文章啟用"
RL_ENABLE_IN_COMPONENTS="在元件啟用"
; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or
administrator side or both."
RL_ENABLE_IN_FRONTEND="在前台啟用"
RL_ENABLE_IN_FRONTEND_DESC="如果啟用,也可以在前台使用。"
RL_ENABLE_OTHER_AREAS="在其它區域啟用"
; RL_ENDS_WITH="Ends with"
; RL_EQUALS="Equals"
RL_EXCLUDE="排除"
RL_EXPAND="展開"
RL_EXPORT="匯出"
; RL_EXPORT_FORMAT="Export Format"
; RL_EXPORT_FORMAT_DESC="Select the file format for the export
files."
; RL_EXTRA_PARAMETERS="Extra Parameters"
; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be
set with the available settings"
RL_FALL="秋天"
; RL_FEATURED_DESC="Select to use the feature state in the
assignment."
; RL_FEATURES="Features"
; RL_FIELD="Field"
; RL_FIELD_CHECKBOXES="Checkboxes"
; RL_FIELD_DROPDOWN="Dropdown"
; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_NAME="欄位名稱"
; RL_FIELD_PARAM_MULTIPLE="Multiple"
; RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be
selected."
; RL_FIELD_SELECT_STYLE="Multi-Select Style"
; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a
standard dropdown field or an advanced field based on checkboxes."
RL_FIELD_VALUE="欄位值"
; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter
the desired value(s)."
RL_FILES_NOT_FOUND="找不到所需的 %s 檔案!"
RL_FILTERS="篩選器"
RL_FINISH_PUBLISHING="完成發佈"
RL_FINISH_PUBLISHING_DESC="輸入結束發佈的日期"
; RL_FIX_HTML="Fix HTML"
; RL_FIX_HTML_DESC="Select to let the extension fix any html structure
issues it finds. This is often necessary to deal with surrounding html
tags.<br><br>Only switch this off if you have issues with
this."
RL_FLEXICONTENT="FLEXIcontent"
RL_FOR_MORE_GO_PRO="更多功能您可以購買 PRO 版。"
RL_FORM2CONTENT="Form2Content"
; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not
seem to be used by any other extensions you have installed. It is probably
safe to disable or uninstall this plugin."
; RL_FROM_TO="From-To"
RL_FRONTEND="前台"
; RL_GALLERY="Gallery"
; RL_GEO="Geolocating"
; RL_GEO_DESC="Geolocating is not always 100&#37; accurate. The
geolocation is based on the IP address of the visitor. Not all IP addresses
are fixed or known."
; RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data
created by MaxMind, available from [[%1:link%]]"
; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not
installed. You need to [[%1:link start%]]install the Regular Labs GeoIP
library[[%2:link end%]] to be able to use the Geolocating
assignments."
RL_GO_PRO="取得 Pro 版!"
; RL_GREATER_THAN="Greater than"
; RL_HANDLE_HTML_HEAD="Handle HTML Head"
; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the
HTML head section.<br><br>Please not that this can potentially
cause unwanted html to be placed inside the HTML head tags and cause HTML
syntax issues."
; RL_HEADING_1="Heading 1"
; RL_HEADING_2="Heading 2"
; RL_HEADING_3="Heading 3"
; RL_HEADING_4="Heading 4"
; RL_HEADING_5="Heading 5"
; RL_HEADING_6="Heading 6"
; RL_HEADING_ACCESS_ASC="Access ascending"
; RL_HEADING_ACCESS_DESC="Access descending"
; RL_HEADING_CATEGORY_ASC="Category ascending"
; RL_HEADING_CATEGORY_DESC="Category descending"
; RL_HEADING_CLIENTID_ASC="Location ascending"
; RL_HEADING_CLIENTID_DESC="Location descending"
; RL_HEADING_COLOR_ASC="Colour ascending"
; RL_HEADING_COLOR_DESC="Colour descending"
; RL_HEADING_DEFAULT_ASC="Default ascending"
; RL_HEADING_DEFAULT_DESC="Default descending"
; RL_HEADING_DESCRIPTION_ASC="Description ascending"
; RL_HEADING_DESCRIPTION_DESC="Description descending"
; RL_HEADING_ID_ASC="ID ascending"
; RL_HEADING_ID_DESC="ID descending"
; RL_HEADING_LANGUAGE_ASC="Language ascending"
; RL_HEADING_LANGUAGE_DESC="Language descending"
; RL_HEADING_ORDERING_ASC="Ordering ascending"
; RL_HEADING_ORDERING_DESC="Ordering descending"
; RL_HEADING_PAGES_ASC="Menu Items ascending"
; RL_HEADING_PAGES_DESC="Menu Items descending"
; RL_HEADING_POSITION_ASC="Position ascending"
; RL_HEADING_POSITION_DESC="Position descending"
; RL_HEADING_STATUS_ASC="Status ascending"
; RL_HEADING_STATUS_DESC="Status descending"
; RL_HEADING_STYLE_ASC="Style ascending"
; RL_HEADING_STYLE_DESC="Style descending"
; RL_HEADING_TEMPLATE_ASC="Template ascending"
; RL_HEADING_TEMPLATE_DESC="Template descending"
; RL_HEADING_TITLE_ASC="Title ascending"
; RL_HEADING_TITLE_DESC="Title descending"
; RL_HEADING_TYPE_ASC="Type ascending"
; RL_HEADING_TYPE_DESC="Type descending"
RL_HEIGHT="高度"
RL_HEMISPHERE="半球"
RL_HEMISPHERE_DESC="選取網站位於南半球"
; RL_HIGH="High"
RL_HIKASHOP="HikaShop"
RL_HOME_PAGE="首頁"
RL_HOME_PAGE_DESC="不像透過選單項目選取首頁 (預設)
項目,這將只符合真實首頁,不是與首頁選單項目有相同項目
ID 的任何 URL。<br><br>這可能無法在所有的第 3 方
SEF 擴充套件動作。"
RL_HTML_LINK="<a href=&quot;[[%2:url%]]&quot;
target=&quot;_blank&quot;
class=&quot;[[%3:class%]]&quot;>[[%1:text%]]</a>"
; RL_HTML_TAGS="HTML Tags"
RL_ICON_ONLY="只有圖示"
RL_IGNORE="忽略"
RL_IMAGE="圖像"
; RL_IMAGE_ALT="Image Alt"
; RL_IMAGE_ALT_DESC="The Alt value of the image."
; RL_IMAGE_ATTRIBUTES="Image Attributes"
; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like:
alt=&quot;My image&quot; width=&quot;300&quot;"
RL_IMPORT="匯入"
RL_IMPORT_ITEMS="匯入類型"
RL_INCLUDE="包含"
; RL_INCLUDE_CHILD_ITEMS="Include child items"
; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the
selected items?"
RL_INCLUDE_NO_ITEMID="包含沒有項目 ID"
RL_INCLUDE_NO_ITEMID_DESC="同時指派 URL 中未設定選單項目
ID?"
; RL_INITIALISE_EVENT="Initialise on Event"
; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the
plugin should be initialised. Only change this if you experience issues
with the plugin not working."
; RL_INPUT_TYPE="Input Type"
; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case
sensitive)."
; RL_INPUT_TYPE_ARRAY="An array."
; RL_INPUT_TYPE_BOOLEAN="A boolean value."
; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores,
periods or hyphens (not case sensitive)."
; RL_INPUT_TYPE_DESC="Select an input type:"
; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of
floating point numbers."
; RL_INPUT_TYPE_INT="An integer, or an array of integers."
; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string
(default)."
; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned
integers."
; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not
case sensitive)."
RL_INSERT="插入"
; RL_INSERT_DATE_NAME="Insert Date / Name"
; RL_IP_RANGES="IP Addresses / Ranges"
; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP
addresses and IP ranges. For
instance:<br>127.0.0.1<br>128.0-128.1<br>129"
; RL_IPS="IP Addresses"
RL_IS_FREE_VERSION="這是 %s 的 FREE 版。"
RL_ITEM="項目"
RL_ITEM_IDS="項目 IDs"
RL_ITEM_IDS_DESC="輸入指派的項目 ID。 使用逗號分隔
ID。"
RL_ITEMS="項目"
RL_ITEMS_DESC="選取指派的項目。"
RL_JCONTENT="Joomla! Content"
; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review
at the JED[[%2:end link%]]"
; RL_JOOMLA2_VERSION_ON_JOOMLA3="You are running a Joomla 2.5 version
of %1$s on Joomla 3. Please reinstall %1$s to fix the problem."
; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs
jQuery to function. Make sure your template or other extensions load the
necessary scripts to replace the required functionality."
RL_K2="K2"
RL_K2_CATEGORIES="K2 分類"
RL_LANGUAGE="語言"
; RL_LANGUAGE_DESC="Select the language to assign to."
RL_LANGUAGES="語言"
RL_LANGUAGES_DESC="選取指派的語言。"
RL_LAYOUT="版型"
; RL_LAYOUT_DESC="Select the layout to use. You can override this
layout in the component or template."
; RL_LESS_THAN="Less than"
RL_LEVELS="等級"
RL_LEVELS_DESC="選取指派的等級。"
; RL_LIB="Library"
RL_LINK_TEXT="連結文字"
RL_LINK_TEXT_DESC="顯示為連結的文字。"
RL_LIST="清單"
RL_LOAD_BOOTSTRAP_FRAMEWORK="載入 Bootstrap Framework"
RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="停用不初始化 Bootstrap
Framework"
; RL_LOAD_JQUERY="Load jQuery Script"
; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can
disable this if you experience conflicts if your template or other
extensions load their own version of jQuery."
RL_LOAD_MOOTOOLS="載入核心 MooTools"
RL_LOAD_MOOTOOLS_DESC="選取載入核心 MooTools script。
如果您的範本或其它擴充套件載入自己的 MooTools
版本因而遭遇衝突則可以停用此。"
RL_LOAD_STYLESHEET="載入樣式表"
RL_LOAD_STYLESHEET_DESC="選取載入擴充套件樣式表。
如果您放置所有自己的樣式在某些其它樣式表則可以停用此,比如範本樣式表。"
; RL_LOW="Low"
RL_LTR="由左到右"
; RL_MATCH_ALL="Match All"
; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of
the selected items are matched."
RL_MATCHING_METHOD="符合方式"
; RL_MATCHING_METHOD_DESC="Should all or any assignments be
matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all
description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any
description%]]"
; RL_MAX_LIST_COUNT="Maximum List Count"
; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in
the multi-select lists. If the total number of items is higher, the
selection field will be displayed as a text field.<br><br>You
can set this number lower if you experience long pageloads due to high
number of items in lists."
; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count"
; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]]
items.<br><br>To prevent slow pages this field is displayed as
a textarea instead of a dynamic select list.<br><br>You can
increase the '[[%2:max setting%]]' in the Regular Labs Library
plugin settings."
RL_MAXIMIZE="最大化"
; RL_MEDIA_VERSIONING="Use Media Versioning"
; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number
to the end of media (js/css) urls, to make browsers force load the correct
file."
RL_MEDIUM="中"
RL_MENU_ITEMS="選單項目"
RL_MENU_ITEMS_DESC="選取指派的選單項目。"
RL_META_KEYWORDS="搜尋引擎關鍵字"
; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords
to assign to. Use commas to separate the keywords."
RL_MIJOSHOP="MijoShop"
RL_MINIMIZE="最小化"
RL_MOBILE_BROWSERS="行動裝置瀏覽器"
RL_MOD="模組"
; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been
unpublished!"
RL_MONTHS="月份"
RL_MONTHS_DESC="選取指派的月份"
RL_MORE_INFO="更多資訊"
; RL_MY_STRING="My string!"
; RL_N_ITEMS_ARCHIVED="%s items archived."
; RL_N_ITEMS_ARCHIVED_1="%s item archived."
; RL_N_ITEMS_CHECKED_IN_0="No items checked in."
; RL_N_ITEMS_CHECKED_IN_1="%d item checked in."
; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in."
; RL_N_ITEMS_DELETED="%s items deleted."
; RL_N_ITEMS_DELETED_1="%s item deleted."
; RL_N_ITEMS_FEATURED="%s items featured."
; RL_N_ITEMS_FEATURED_1="%s item featured."
; RL_N_ITEMS_PUBLISHED="%s items published."
; RL_N_ITEMS_PUBLISHED_1="%s item published."
; RL_N_ITEMS_TRASHED="%s items trashed."
; RL_N_ITEMS_TRASHED_1="%s item trashed."
; RL_N_ITEMS_UNFEATURED="%s items unfeatured."
; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured."
; RL_N_ITEMS_UNPUBLISHED="%s items unpublished."
; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished."
RL_N_ITEMS_UPDATED="%d 個項目已更新。"
RL_N_ITEMS_UPDATED_1="一個項目已更新"
RL_NEW_CATEGORY="創建新類別"
; RL_NEW_CATEGORY_ENTER="Enter a new category name"
RL_NEW_VERSION_AVAILABLE="新的版本可以使用"
; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available"
RL_NO_ICON="沒有圖示"
RL_NO_ITEMS_FOUND="找不到項目。"
RL_NORMAL="標準"
RL_NORTHERN="北方"
RL_NOT="不是"
; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of
[[%1:extension%]] is not compatible with Joomla
[[%2:version%]].<br>Please check if there is a version of
[[%1:extension%]] available for Joomla [[%2:version%]] and install
that."
; RL_NOT_CONTAINS="Does not contain"
; RL_NOT_EQUALS="Is not equal to"
RL_ONLY="只有"
; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or
higher."
RL_ONLY_AVAILABLE_IN_PRO="<em>只在 PRO
版可以使用!</em>"
; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO
version)"
RL_ONLY_VISIBLE_TO_ADMIN="此訊息只在 (Super) Administrators
顯示。"
RL_OPTION_SELECT="- 選擇 -"
; RL_OPTION_SELECT_CLIENT="- Select Client -"
; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction"
; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction"
; RL_ORDERING="Sort Order"
; RL_ORDERING_PRIMARY="Primary Sort Order"
; RL_ORDERING_SECONDARY="Secondary Sort Order"
RL_OS="作業系統"
RL_OS_DESC="選取要指派的作業系統。
請記得作業系統偵測不會很準確。
使用者能設定其瀏覽器模擬其它作業系統。"
; RL_OTHER="Other"
RL_OTHER_AREAS="其它區域"
RL_OTHER_OPTIONS="其它選項"
RL_OTHER_SETTINGS="其它設定"
RL_OTHERS="其它"
RL_PAGE_TYPES="頁面類型"
RL_PAGE_TYPES_DESC="選取指派應啟動的頁面類型。"
; RL_PHP="Custom PHP"
RL_PHP_DESC="輸入一小段 PHP 碼評估。 代碼必須返回值
true 或
false。<br><br>實例:<br><br>[[%1:code%]]"
RL_PLACE_HTML_COMMENTS="放置 HTML 註解"
RL_PLACE_HTML_COMMENTS_DESC="預設 HTML
註解會放在此擴充套件的輸出。<br><br>這些註解能在未取得預期的輸出時協助疑難排解。<br><br>如果您不希望在
HTML 輸出有這些註解,關閉此選項。"
; RL_PLG_ACTIONLOG="Action Log Plugin"
RL_PLG_EDITORS-XTD="編輯器按鈕外掛"
; RL_PLG_FIELDS="Field Plugin"
RL_PLG_SYSTEM="系統外掛"
; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been
disabled!"
; RL_POSTALCODES="Postal Codes"
; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345)
or postal code ranges (12300-12500).<br>This can only be used for
[[%1:start link%]]a limited number of countries and IP addresses[[%2:end
link%]]."
; RL_POWERED_BY="Powered by %s"
RL_PRODUCTS="商品"
RL_PUBLISHED_DESC="您可以使用此 (暫時)
停用此項目。"
RL_PUBLISHING_ASSIGNMENTS="發佈指派"
RL_PUBLISHING_SETTINGS="發佈項目"
RL_RANDOM="隨機"
RL_REDSHOP="RedShop"
; RL_REGEX="Regular Expressions"
RL_REGIONS="縣 / 市"
RL_REGIONS_DESC="選取指派的縣 / 市。"
RL_REGULAR_EXPRESSIONS="使用規則運算式"
RL_REGULAR_EXPRESSIONS_DESC="選取該值作為規則運算式。"
; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled
Components"
; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin
syntax will get removed from the component. If not, the original plugins
syntax will remain intact."
; RL_RESIZE_IMAGES="Resize Images"
RL_RESIZE_IMAGES_CROP="裁切"
; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the
set width and height."
; RL_RESIZE_IMAGES_DESC="If selected, resized images will be
automatically created for images if they do not exist yet. The resized
images will be created using below settings."
; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes"
; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing
on."
RL_RESIZE_IMAGES_FOLDER="資料夾"
; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized
images. This will be a subfolder of the folder containing your original
images."
; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in
pixels (ie 180)."
; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based
on the Width defined above and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based
on the Height defined below and the aspect ratio of the original
image."
; RL_RESIZE_IMAGES_QUALITY="JPG Quality"
; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images.
Choose from Low, Medium or High. The higher the quality, the larger the
resulting files.<br>This only affects jpeg images."
; RL_RESIZE_IMAGES_SCALE="Scale"
; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to
the maximum width or height maintaining its aspect ratio."
; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..."
; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images
using the maximum width or height. The other dimension will be calculated
based on the aspect ratio of the original image."
; RL_RESIZE_IMAGES_TYPE="Resize Method"
; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing."
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set"
; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize
images using the maximum width or height."
; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in
pixels (ie 320)."
RL_RTL="由右到左"
; RL_SAVE_CONFIG="After saving the Options it will not pop up on page
load anymore."
RL_SEASONS="季節"
RL_SEASONS_DESC="選取指派的季節。"
RL_SELECT="選取"
; RL_SELECT_A_CATEGORY="Select a Category"
RL_SELECT_ALL="全選"
RL_SELECT_AN_ARTICLE="選取文章"
; RL_SELECT_FIELD="Select Field"
RL_SELECTED="已選取"
RL_SELECTION="選取"
RL_SELECTION_DESC="選取是否包含或排除指派的選取範圍。<br><br><strong>包含</strong><br>只發佈選取範圍。<br><br><strong>排除</strong><br>除了選取範圍全部發佈。"
RL_SETTINGS_ADMIN_MODULE="Administrator 模組選項"
RL_SETTINGS_EDITOR_BUTTON="編輯器按鈕選項"
RL_SETTINGS_SECURITY="安全性選項"
RL_SHOW_ASSIGNMENTS="顯示指派"
; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected
assignments. You can use this to get a clean overview of the active
assignments."
; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types
are now hidden from view."
; RL_SHOW_COPYRIGHT="Show Copyright"
; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be
displayed in the admin views. Regular Labs extensions never show copyright
info or backlinks on the frontend."
; RL_SHOW_HELP_MENU="Show Help Menu Item"
; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs
website in the Administrator Help menu."
RL_SHOW_ICON="顯示按鈕圖示"
RL_SHOW_ICON_DESC="如果選取,圖示將顯示在編輯器按鈕。"
; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification"
; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update
notification will be shown in the main component view when there is a new
version for this extension."
RL_SIMPLE="簡單"
RL_SLIDES="下滑"
RL_SOUTHERN="南方"
; RL_SPECIFIC="Specific"
RL_SPRING="春天"
RL_START="開始"
RL_START_PUBLISHING="開始發佈"
RL_START_PUBLISHING_DESC="輸入開始發佈的日期"
; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head"
; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the
output of the plugin inside the HTML Head section"
; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags"
; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags
(div, p, span) surrounding the plugin tag. If switched off, the plugin will
try to remove tags that break the html structure (like p inside p
tags)."
RL_STYLING="樣式"
RL_SUMMER="夏天"
RL_TABLE_NOT_FOUND="找不到所需的 %s 資料庫!"
RL_TABS="分頁"
; RL_TAG_CHARACTERS="Tag Characters"
; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag
syntax.<br><br><strong>Note:</strong> If you change
this, all existing tags will not work anymore."
RL_TAG_SYNTAX="標籤語法"
RL_TAG_SYNTAX_DESC="標籤中所用的單字。<br><br><strong>請注意:</strong>
如果您變更此,所有現有標籤將不再動作。"
RL_TAGS="標籤"
RL_TAGS_DESC="輸入指派的標籤。
使用逗號分隔標籤。"
RL_TEMPLATES="範本"
RL_TEMPLATES_DESC="選取指派的範本。"
RL_TEXT="文本"
; RL_TEXT_HTML="Text (HTML)"
RL_TEXT_ONLY="只有文字"
RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="此擴充套件需要
%s 以正常動作!"
RL_TIME="時間"
RL_TIME_FINISH_PUBLISHING_DESC="輸入結束發佈的時間。<br><br><strong>格式:</strong>
23:59"
RL_TIME_START_PUBLISHING_DESC="輸入開始發佈的時間。<br><br><strong>格式:</strong>
23:59"
RL_TOGGLE="切換"
RL_TOOLTIP="Tooltip"
RL_TOP="上"
RL_TOTAL="總計"
RL_TYPES="類型"
RL_TYPES_DESC="項目類型"
RL_UNSELECT_ALL="選取全選"
RL_UNSELECTED="不選"
RL_UPDATE_TO="更新到版本 %s"
RL_URL="URL"
; RL_URL_PARAM_NAME="Parameter Name"
; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter."
RL_URL_PARTS="URL 符合"
RL_URL_PARTS_DESC="輸入符合的 URLs
(部分)。<br><br>每個不同符合使用新行。<br><br>Url
部分將使用正規運算式符合。<strong>因此請確認字串使用有效的
regex 語法。</strong>"
; RL_URL_PARTS_REGEX="Url parts will be matched using regular
expressions. <strong>So make sure the string uses valid regex
syntax.</strong>"
RL_USE_CONTENT_ASSIGNMENTS="針對分類 & 文章 (項目)
指派,查看以上 Joomla! 內容單元。"
RL_USE_CUSTOM_CODE="使用自訂碼"
RL_USE_CUSTOM_CODE_DESC="如果選取,編輯器按鈕將插入給予的自訂碼替代。"
; RL_USE_SIMPLE_BUTTON="Use Simple Button"
; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button,
that simply inserts some example syntax into the editor."
RL_USER_GROUP_LEVELS="使用者群組層級"
RL_USER_GROUPS="使用者群組"
RL_USER_GROUPS_DESC="選取指派的使用者群組。"
RL_USER_IDS="使用者 IDs"
RL_USER_IDS_DESC="輸入指派的使用者 ID。 使用逗號分隔
ID。"
RL_USERS="使用者"
RL_UTF8="UTF-8"
RL_VIDEO="影片"
RL_VIEW="檢視"
RL_VIEW_DESC="選取建立新項目時應使用的預設檢視。"
RL_VIRTUEMART="VirtueMart"
RL_WIDTH="寬度"
RL_WINTER="冬天"
RL_ZOO="ZOO"
RL_ZOO_CATEGORIES="ZOO 分類"
PK�X�[1�Dvcc?regularlabs/language/zh-TW/zh-TW.plg_system_regularlabs.sys.ininu�[���;;
@package         Regular Labs Library
;; @version         21.2.19653
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_SYSTEM_REGULARLABS="系統 - Regular Labs Library"
PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - 由 Regular Labs
擴充套件使用"
REGULAR_LABS_LIBRARY="Regular Labs Library"
PK�X�[�G��iiregularlabs/regularlabs.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Plugin\CMSPlugin as JPlugin;
use Joomla\CMS\Uri\Uri as JUri;
use Joomla\Registry\Registry;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Extension as RL_Extension;
use RegularLabs\Library\Parameters as RL_Parameters;
use RegularLabs\Library\Uri as RL_Uri;
use RegularLabs\Plugin\System\RegularLabs\AdminMenu as RL_AdminMenu;
use RegularLabs\Plugin\System\RegularLabs\DownloadKey as RL_DownloadKey;
use RegularLabs\Plugin\System\RegularLabs\QuickPage as RL_QuickPage;
use RegularLabs\Plugin\System\RegularLabs\SearchHelper as RL_SearchHelper;

if ( ! is_file(__DIR__ . '/vendor/autoload.php'))
{
	return;
}

require_once __DIR__ . '/vendor/autoload.php';

if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
	require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';
}

JFactory::getLanguage()->load('plg_system_regularlabs',
__DIR__);

$config = new JConfig;

$input = JFactory::getApplication()->input;

// Deal with error reporting when loading pages we don't want to break
due to php warnings
if ( ! in_array($config->error_reporting, ['none',
'0'])
	&& (
		($input->get('option') == 'com_regularlabsmanager'
			&& ($input->get('task') == 'update' ||
$input->get('view') == 'process')
		)
		||
		($input->getInt('rl_qp') == 1 &&
$input->get('url') != '')
	)
)
{
	RL_Extension::orderPluginFirst('regularlabs');

	error_reporting(E_ERROR);
}

class PlgSystemRegularLabs extends JPlugin
{
	public function onAfterRoute()
	{
		if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
		{
			if (JFactory::getApplication()->isClient('administrator'))
			{
				JFactory::getApplication()->enqueueMessage('The Regular Labs
Library folder is missing or incomplete: ' . JPATH_LIBRARIES .
'/regularlabs', 'error');
			}

			return;
		}

		RL_DownloadKey::update();

		RL_SearchHelper::load();

		RL_QuickPage::render();
	}

	public function onAfterDispatch()
	{
		if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
		{
			return;
		}

		if ( ! RL_Document::isAdmin(true) || ! RL_Document::isHtml()
		)
		{
			return;
		}

		RL_Document::loadMainDependencies();
	}

	public function onAfterRender()
	{
		if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
		{
			return;
		}

		if ( ! RL_Document::isAdmin(true) || ! RL_Document::isHtml()
		)
		{
			return;
		}

		$this->fixQuotesInTooltips();

		RL_AdminMenu::combine();

		RL_AdminMenu::addHelpItem();
	}

	private function fixQuotesInTooltips()
	{
		$html = JFactory::getApplication()->getBody();

		if ($html == '')
		{
			return;
		}

		if (strpos($html, '&amp;quot;rl_code&amp;quot;') ===
false)
		{
			return;
		}

		$html = str_replace('&amp;quot;rl_code&amp;quot;',
'&quot;rl_code&quot;', $html);

		JFactory::getApplication()->setBody($html);
	}

	public function onInstallerBeforePackageDownload(&$url, &$headers)
	{
		$uri  = JUri::getInstance($url);
		$host = $uri->getHost();

		if (
			strpos($host, 'regularlabs.com') === false
			&& strpos($host, 'nonumber.nl') === false
		)
		{
			return true;
		}

		$uri->setScheme('https');
		$uri->setHost('download.regularlabs.com');
		$uri->delVar('pro');
		$url = $uri->toString();

		$params =
RL_Parameters::getInstance()->getComponentParams('regularlabsmanager');

		if (empty($params) || empty($params->key))
		{
			return true;
		}

		$uri->setVar('k', $params->key);
		$url = $uri->toString();

		return true;
	}

	public function onAjaxRegularLabs()
	{
		$input = JFactory::getApplication()->input;

		$format = $input->getString('format', 'json');

		$attributes = RL_Uri::getCompressedAttributes();
		$attributes = new Registry($attributes);

		$field      = $attributes->get('field');
		$field_type = $attributes->get('fieldtype');

		$class = $this->getAjaxClass($field, $field_type);

		if (empty($class) || ! class_exists($class))
		{
			return false;
		}

		$type = isset($attributes->type) ? $attributes->type :
'';

		$method = 'getAjax' . ucfirst($format) . ucfirst($type);

		$class = new $class;

		if ( ! method_exists($class, $method))
		{
			return false;
		}

		echo $class->$method($attributes);
	}

	public function getAjaxClass($field, $field_type = '')
	{
		if (empty($field))
		{
			return false;
		}

		if ($field_type)
		{
			return $this->getFieldClass($field, $field_type);
		}

		$file = JPATH_LIBRARIES . '/regularlabs/fields/' .
strtolower($field) . '.php';

		if ( ! file_exists($file))
		{
			return $this->getFieldClass($field, $field);
		}

		require_once $file;

		return 'JFormFieldRL_' . ucfirst($field);
	}

	public function getFieldClass($field, $field_type)
	{
		$file = JPATH_PLUGINS . '/fields/' . strtolower($field_type) .
'/fields/' . strtolower($field) . '.php';

		if ( ! file_exists($file))
		{
			return false;
		}

		require_once $file;

		return 'JFormField' . ucfirst($field);
	}
}

PK�X�[���rrregularlabs/regularlabs.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
	<name>PLG_SYSTEM_REGULARLABS</name>
	<description>PLG_SYSTEM_REGULARLABS_DESC</description>
	<version>21.2.19653</version>
	<creationDate>February 2021</creationDate>
	<author>Regular Labs (Peter van Westen)</author>
	<authorEmail>info@regularlabs.com</authorEmail>
	<authorUrl>https://www.regularlabs.com</authorUrl>
	<copyright>Copyright © 2018 Regular Labs - All Rights
Reserved</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>

	<scriptfile>script.install.php</scriptfile>

	<files>
		<filename
plugin="regularlabs">regularlabs.php</filename>
		<filename>script.install.helper.php</filename>
		<folder>language</folder>
		<folder>src</folder>
		<folder>vendor</folder>
	</files>

	<config>
		<fields name="params"
addfieldpath="/libraries/regularlabs/fields">
			<fieldset name="basic">
				<field name="@header" type="rl_header_library"
					   label="REGULAR_LABS_LIBRARY"
					   description="REGULAR_LABS_LIBRARY_DESC"
					   warning="REGULAR_LABS_LIBRARY_DESC_WARNING" />
			</fieldset>

			<fieldset name="advanced">
				<field name="combine_admin_menu" type="radio"
class="btn-group" default="0"
					   label="RL_COMBINE_ADMIN_MENU"
					   description="RL_COMBINE_ADMIN_MENU_DESC">
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>
				<field name="show_help_menu" type="radio"
class="btn-group" default="1"
					   label="RL_SHOW_HELP_MENU"
					   description="RL_SHOW_HELP_MENU_DESC">
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>
				<field name="max_list_count" type="number"
step="1000" size="10" class="input-mini"
default="10000"
					   label="RL_MAX_LIST_COUNT"
					   description="RL_MAX_LIST_COUNT_DESC" />
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�tYtY%regularlabs/script.install.helper.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Filesystem\File as JFile;
use Joomla\CMS\Filesystem\Folder as JFolder;
use Joomla\CMS\Installer\Installer as JInstaller;
use Joomla\CMS\Language\Text as JText;

class PlgSystemRegularLabsInstallerScriptHelper
{
	public $name              = '';
	public $alias             = '';
	public $extname           = '';
	public $extension_type    = '';
	public $plugin_folder     = 'system';
	public $module_position   = 'status';
	public $client_id         = 1;
	public $install_type      = 'install';
	public $show_message      = true;
	public $db                = null;
	public $softbreak         = null;
	public $installed_version = '';

	public function __construct(&$params)
	{
		$this->extname = $this->extname ?: $this->alias;
		$this->db      = JFactory::getDbo();
	}

	public function preflight($route, $adapter)
	{
		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		JFactory::getLanguage()->load('plg_system_regularlabsinstaller',
JPATH_PLUGINS . '/system/regularlabsinstaller');

		$this->installed_version =
$this->getVersion($this->getInstalledXMLFile());

		if ($this->show_message && $this->isInstalled())
		{
			$this->install_type = 'update';
		}

//		if ($this->extension_type == 'component')
//		{
//			// Remove admin menu to prevent error on creating it again
//			$query = $this->db->getQuery(true)
//				->delete('#__menu')
//				->where($this->db->quoteName('path') . ' =
' . $this->db->quote('com-' . $this->extname))
//				->where($this->db->quoteName('client_id') . '
= 1');
//			$this->db->setQuery($query);
//			$this->db->execute();
//		}

		if ($this->onBeforeInstall($route) === false)
		{
			return false;
		}

		return true;
	}

	public function postflight($route, $adapter)
	{
		$this->removeGlobalLanguageFiles();
		$this->removeUnusedLanguageFiles();

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, $this->getMainFolder());

		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		$this->fixExtensionNames();
		$this->updateUpdateSites();
		$this->removeAdminCache();

		if ($this->onAfterInstall($route) === false)
		{
			return false;
		}

		if ($route == 'install')
		{
			$this->publishExtension();
		}

		if ($this->show_message)
		{
			$this->addInstalledMessage();
		}

		JFactory::getCache()->clean('com_plugins');
		JFactory::getCache()->clean('_system');

		return true;
	}

	public function isInstalled()
	{
		if ( ! is_file($this->getInstalledXMLFile()))
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($this->extension_type))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName()))
			->setLimit(1);
		$this->db->setQuery($query);
		$result = $this->db->loadResult();

		return empty($result) ? false : true;
	}

	public function getMainFolder()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				return JPATH_PLUGINS . '/' . $this->plugin_folder .
'/' . $this->extname;

			case 'component' :
				return JPATH_ADMINISTRATOR . '/components/com_' .
$this->extname;

			case 'module' :
				return JPATH_ADMINISTRATOR . '/modules/mod_' .
$this->extname;

			case 'library' :
				return JPATH_SITE . '/libraries/' . $this->extname;
		}
	}

	public function getInstalledXMLFile()
	{
		return $this->getXMLFile($this->getMainFolder());
	}

	public function getCurrentXMLFile()
	{
		return $this->getXMLFile(__DIR__);
	}

	public function getXMLFile($folder)
	{
		switch ($this->extension_type)
		{
			case 'module' :
				return $folder . '/mod_' . $this->extname .
'.xml';

			default :
				return $folder . '/' . $this->extname . '.xml';
		}
	}

	public function uninstallExtension($extname, $type = 'plugin',
$folder = 'system', $show_message = true)
	{
		if (empty($extname))
		{
			return;
		}

		$folders = [];

		switch ($type)
		{
			case 'plugin':
				$folders[] = JPATH_PLUGINS . '/' . $folder . '/' .
$extname;
				break;

			case 'component':
				$folders[] = JPATH_ADMINISTRATOR . '/components/com_' .
$extname;
				$folders[] = JPATH_SITE . '/components/com_' . $extname;
				break;

			case 'module':
				$folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' .
$extname;
				$folders[] = JPATH_SITE . '/modules/mod_' . $extname;
				break;
		}

		if ( ! $this->foldersExist($folders))
		{
			return;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName($type, $extname)))
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($type));

		if ($type == 'plugin')
		{
			$query->where($this->db->quoteName('folder') . '
= ' . $this->db->quote($folder));
		}

		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			foreach ($folders as $folder)
			{
				JFactory::getApplication()->enqueueMessage('2. Deleting: '
. $folder, 'notice');
				JFolder::delete($folder);
			}

			return;
		}

		$ignore_ids =
JFactory::getApplication()->getUserState('rl_ignore_uninstall_ids',
[]);

		if (JFactory::getApplication()->input->get('option') ==
'com_installer' &&
JFactory::getApplication()->input->get('task') ==
'remove')
		{
			// Don't attempt to uninstall extensions that are already selected
to get uninstalled by them selves
			$ignore_ids = array_merge($ignore_ids,
JFactory::getApplication()->input->get('cid', [],
'array'));
			JFactory::getApplication()->input->set('cid',
array_merge($ignore_ids, $ids));
		}

		$ids = array_diff($ids, $ignore_ids);

		if (empty($ids))
		{
			return;
		}

		$ignore_ids = array_merge($ignore_ids, $ids);
		JFactory::getApplication()->setUserState('rl_ignore_uninstall_ids',
$ignore_ids);

		foreach ($ids as $id)
		{
			$tmpInstaller = new JInstaller;
			$tmpInstaller->uninstall($type, $id);
		}

		if ($show_message)
		{
			JFactory::getApplication()->enqueueMessage(
				JText::sprintf(
					'COM_INSTALLER_UNINSTALL_SUCCESS',
					JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type))
				), 'success'
			);
		}
	}

	public function foldersExist($folders = [])
	{
		foreach ($folders as $folder)
		{
			if (is_dir($folder))
			{
				return true;
			}
		}

		return false;
	}

	public function uninstallPlugin($extname, $folder = 'system',
$show_message = true)
	{
		$this->uninstallExtension($extname, 'plugin', $folder,
$show_message);
	}

	public function uninstallComponent($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'component', null,
$show_message);
	}

	public function uninstallModule($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'module', null,
$show_message);
	}

	public function publishExtension()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				$this->publishPlugin();

			case 'module' :
				$this->publishModule();
		}
	}

	public function publishPlugin()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('enabled') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->extname))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote($this->plugin_folder));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function publishModule()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		// check if module is already in the modules_menu table (meaning is is
already saved)
		$query->clear()
			->select($this->db->quoteName('moduleid'))
			->from('#__modules_menu')
			->where($this->db->quoteName('moduleid') . ' =
' . (int) $id)
			->setLimit(1);
		$this->db->setQuery($query);
		$exists = $this->db->loadResult();

		if ($exists)
		{
			return;
		}

		// Get highest ordering number in position
		$query->clear()
			->select($this->db->quoteName('ordering'))
			->from('#__modules')
			->where($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id)
			->order('ordering DESC');
		$this->db->setQuery($query, 0, 1);
		$ordering = $this->db->loadResult();
		$ordering++;

		// publish module and set ordering number
		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('published') . ' =
1')
			->set($this->db->quoteName('ordering') . ' =
' . (int) $ordering)
			->set($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('id') . ' = '
. (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		// add module to the modules_menu table
		$query->clear()
			->insert('#__modules_menu')
			->columns([$this->db->quoteName('moduleid'),
$this->db->quoteName('menuid')])
			->values((int) $id . ', 0');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function addInstalledMessage()
	{
		JFactory::getApplication()->enqueueMessage(
			JText::sprintf(
				$this->install_type == 'update' ?
'RLI_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' :
'RLI_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY',
				'<strong>' . JText::_($this->name) .
'</strong>',
				'<strong>' . $this->getVersion() .
'</strong>',
				$this->getFullType()
			), 'success'
		);
	}

	public function getPrefix()
	{
		switch ($this->extension_type)
		{
			case 'plugin':
				return JText::_('plg_' .
strtolower($this->plugin_folder));

			case 'component':
				return JText::_('com');

			case 'module':
				return JText::_('mod');

			case 'library':
				return JText::_('lib');

			default:
				return $this->extension_type;
		}
	}

	public function getElementName($type = null, $extname = null)
	{
		$type    = is_null($type) ? $this->extension_type : $type;
		$extname = is_null($extname) ? $this->extname : $extname;

		switch ($type)
		{
			case 'component' :
				return 'com_' . $extname;

			case 'module' :
				return 'mod_' . $extname;

			case 'plugin' :
			default:
				return $extname;
		}
	}

	public function getFullType()
	{
		return JText::_('RLI_' . strtoupper($this->getPrefix()));
	}

	public function getVersion($file = '')
	{
		$file = $file ?: $this->getCurrentXMLFile();

		if ( ! is_file($file))
		{
			return '';
		}

		$xml = JInstaller::parseXMLInstallFile($file);

		if ( ! $xml || ! isset($xml['version']))
		{
			return '';
		}

		return $xml['version'];
	}

	public function isNewer()
	{
		if ( ! $this->installed_version)
		{
			return true;
		}

		$package_version = $this->getVersion();

		return version_compare($this->installed_version, $package_version,
'<=');
	}

	public function canInstall()
	{
		// The extension is not installed yet
		if ( ! $this->installed_version)
		{
			return true;
		}

		// The free version is installed. So any version is ok to install
		if (strpos($this->installed_version, 'PRO') === false)
		{
			return true;
		}

		// Current package is a pro version, so all good
		if (strpos($this->getVersion(), 'PRO') !== false)
		{
			return true;
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, __DIR__);

		JFactory::getApplication()->enqueueMessage(JText::_('RLI_ERROR_PRO_TO_FREE'),
'error');

		JFactory::getApplication()->enqueueMessage(
			html_entity_decode(
				JText::sprintf(
					'RLI_ERROR_UNINSTALL_FIRST',
					'<a href="https://www.regularlabs.com/extensions/' .
$this->alias . '" target="_blank">',
					'</a>',
					JText::_($this->name)
				)
			), 'error'
		);

		return false;
	}

	/*
	 * Fixes incorrectly formed versions because of issues in old packager
	 */
	public function fixFileVersions($file)
	{
		if (is_array($file))
		{
			foreach ($file as $f)
			{
				self::fixFileVersions($f);
			}

			return;
		}

		if ( ! is_string($file) || ! is_file($file))
		{
			return;
		}

		$contents = file_get_contents($file);

		if (
			strpos($contents, 'FREEFREE') === false
			&& strpos($contents, 'FREEPRO') === false
			&& strpos($contents, 'PROFREE') === false
			&& strpos($contents, 'PROPRO') === false
		)
		{
			return;
		}

		$contents = str_replace(
			['FREEFREE', 'FREEPRO', 'PROFREE',
'PROPRO'],
			['FREE', 'PRO', 'FREE', 'PRO'],
			$contents
		);

		JFile::write($file, $contents);
	}

	public function onBeforeInstall($route)
	{
		if ( ! $this->canInstall())
		{
			return false;
		}

		return true;
	}

	public function onAfterInstall($route)
	{
		return true;
	}

	public function delete($files = [])
	{
		foreach ($files as $file)
		{
			if (is_dir($file))
			{
				JFolder::delete($file);
			}

			if (is_file($file))
			{
				JFile::delete($file);
			}
		}
	}

	public function fixAssetsRules()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('rules'))
			->from('#__assets')
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname))
			->setLimit(1);
		$this->db->setQuery($query);
		$rules = $this->db->loadResult();

		$rules = json_decode($rules);

		if (empty($rules))
		{
			return;
		}

		foreach ($rules as $key => $value)
		{
			if ( ! empty($value))
			{
				continue;
			}

			unset($rules->$key);
		}

		$rules = json_encode($rules);

		$query = $this->db->getQuery(true)
			->update($this->db->quoteName('#__assets'))
			->set($this->db->quoteName('rules') . ' = '
. $this->db->quote($rules))
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function fixExtensionNames()
	{
		switch ($this->extension_type)
		{
			case 'module' :
				$this->fixModuleNames();
		}
	}

	private function fixModuleNames()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$module_id = $this->db->loadResult();

		if (empty($module_id))
		{
			return;
		}

		$title = 'Regular Labs - ' . JText::_($this->name);

		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $module_id)
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'));
		$this->db->setQuery($query);
		$this->db->execute();

		// Fix module assets

		// Get asset id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__assets')
			->where($this->db->quoteName('name') . ' =
' . $this->db->quote('com_modules.module.' . (int)
$module_id))
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$asset_id = $this->db->loadResult();

		if (empty($asset_id))
		{
			return;
		}

		$query->clear()
			->update('#__assets')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $asset_id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateUpdateSites()
	{
		$this->removeOldUpdateSites();
		$this->updateNamesInUpdateSites();
		$this->updateHttptoHttpsInUpdateSites();
		$this->removeDuplicateUpdateSite();
		$this->updateDownloadKey();
	}

	private function removeOldUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('nonumber.nl%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateNamesInUpdateSites()
	{
		$name = JText::_($this->name);
		if ($this->alias != 'extensionmanager')
		{
			$name = 'Regular Labs - ' . $name;
		}

		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('name') . ' = '
. $this->db->quote($name))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateHttptoHttpsInUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('location') . ' =
REPLACE('
				. $this->db->quoteName('location') . ', '
				. $this->db->quote('http://') . ', '
				. $this->db->quote('https://')
				. ')')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('http://download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeDuplicateUpdateSite()
	{
		// First check to see if there is a pro entry

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('location') . ' NOT
LIKE ' . $this->db->quote('%pro=1%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$id = $this->db->loadResult();

		// Otherwise just get the first match
		if ( ! $id)
		{
			$query->clear()
				->select($this->db->quoteName('update_site_id'))
				->from('#__update_sites')
				->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
				->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
			$this->db->setQuery($query, 0, 1);
			$id = $this->db->loadResult();

			// Remove pro=1 from the found update site
			$query->clear()
				->update('#__update_sites')
				->set($this->db->quoteName('location')
					. ' = replace(' .
$this->db->quoteName('location') . ', ' .
$this->db->quote('&pro=1') . ', ' .
$this->db->quote('') . ')')
				->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
			$this->db->setQuery($query);
			$this->db->execute();
		}

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('update_site_id') .
' != ' . $id);
		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	// Save the download key from the Regular Labs Extension Manager config to
the update sites
	private function updateDownloadKey()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('params'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote('com_regularlabsmanager'));
		$this->db->setQuery($query);
		$params = $this->db->loadResult();

		if ( ! $params)
		{
			return;
		}

		$params = json_decode($params);

		if ( ! isset($params->key))
		{
			return;
		}

		// Add the key on all regularlabs.com urls
		$query->clear()
			->update('#__update_sites')
			->set($this->db->quoteName('extra_query') . ' =
' . $this->db->quote('k=' . $params->key))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeAdminCache()
	{
		$this->delete([JPATH_ADMINISTRATOR . '/cache/regularlabs']);
		$this->delete([JPATH_ADMINISTRATOR . '/cache/nonumber']);
	}

	private function removeGlobalLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		$language_files = JFolder::files(JPATH_ADMINISTRATOR .
'/language', '\.' . $this->getPrefix() .
'_' . $this->extname . '\.', true, true);

		// Remove override files
		foreach ($language_files as $i => $language_file)
		{
			if (strpos($language_file, '/overrides/') === false)
			{
				continue;
			}

			unset($language_files[$i]);
		}

		if (empty($language_files))
		{
			return;
		}

		JFile::delete($language_files);
	}

	private function removeUnusedLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		if ( ! is_file(__DIR__ . '/language'))
		{
			return;
		}

		$installed_languages = array_merge(
			is_file(JPATH_SITE . '/language') ?
JFolder::folders(JPATH_SITE . '/language') : [],
			is_file(JPATH_ADMINISTRATOR . '/language') ?
JFolder::folders(JPATH_ADMINISTRATOR . '/language') : []
		);

		$languages = array_diff(
			JFolder::folders(__DIR__ . '/language') ?: [],
			$installed_languages
		);

		$delete_languages = [];

		foreach ($languages as $language)
		{
			$delete_languages[] = $this->getMainFolder() . '/language/'
. $language;
		}

		if (empty($delete_languages))
		{
			return;
		}

		// Remove folders
		$this->delete($delete_languages);
	}
}
PK�X�[.���FFregularlabs/script.install.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

if ( ! class_exists('PlgSystemRegularLabsInstallerScript'))
{
	require_once __DIR__ . '/script.install.helper.php';

	class PlgSystemRegularLabsInstallerScript extends
PlgSystemRegularLabsInstallerScriptHelper
	{
		public $name           = 'REGULAR_LABS_LIBRARY';
		public $alias          = 'regularlabs';
		public $extension_type = 'plugin';
		public $show_message   = false;

		public function onBeforeInstall($route)
		{
			if ( ! $this->isNewer())
			{
				$this->softbreak = true;

				return false;
			}

			return true;
		}

		public function uninstall($adapter)
		{
			$this->deleteLibrary();
		}

		private function deleteLibrary()
		{
			$this->delete(
				[
					JPATH_LIBRARIES . '/regularlabs',
				]
			);
		}
	}
}
PK�X�[4��
��regularlabs/src/AdminMenu.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use RegularLabs\Library\RegEx as RL_RegEx;

class AdminMenu
{
	public static function combine()
	{
		$params = Params::get();

		if ( ! $params->combine_admin_menu)
		{
			return;
		}

		$html = JFactory::getApplication()->getBody();

		if ($html == '')
		{
			return;
		}

		if (strpos($html, '<ul id="menu"') === false
			|| (strpos($html, '">Regular Labs ') === false
				&& strpos($html, '" >Regular Labs ') ===
false)
		)
		{
			return;
		}

		if ( ! RL_RegEx::matchAll(
			'<li><a class="(?:no-dropdown
)?menu-[^>]*>Regular Labs [^<]*</a></li>',
			$html,
			$matches,
			null,
			PREG_PATTERN_ORDER
		)
		)
		{
			return;
		}

		$menu_items = $matches[0];

		if (count($menu_items) < 2)
		{
			return;
		}

		$manager = null;

		foreach ($menu_items as $i => &$menu_item)
		{
			RL_RegEx::match('class="(?:no-dropdown
)?menu-(.*?)"', $menu_item, $icon);

			$icon = str_replace('icon-icon-', 'icon-',
'icon-' . $icon[1]);

			$menu_item = str_replace(
				['>Regular Labs - ', '>Regular Labs '],
				'><span class="icon-reglab ' . $icon .
'"></span> ',
				$menu_item
			);

			if ($icon != 'icon-regularlabsmanager')
			{
				continue;
			}

			$manager = $menu_item;
			unset($menu_items[$i]);
		}

		$main_link = "";

		if ( ! is_null($manager))
		{
			array_unshift($menu_items, $manager);
			$main_link =
'href="index.php?option=com_regularlabsmanager"';
		}

		$new_menu_item =
			'<li class="dropdown-submenu">'
			. '<a class="dropdown-toggle menu-regularlabs"
data-toggle="dropdown" ' . $main_link . '>Regular
Labs</a>'
			. "\n" . '<ul id="menu-cregularlabs"
class="dropdown-menu menu-scrollable menu-component">'
			. "\n" . implode("\n", $menu_items)
			. "\n" . '</ul>'
			. '</li>';

		$first = array_shift($matches[0]);

		$html = str_replace($first, $new_menu_item, $html);
		$html = str_replace($matches[0], '', $html);

		JFactory::getApplication()->setBody($html);
	}

	public static function addHelpItem()
	{
		$params = Params::get();

		if ( ! $params->show_help_menu)
		{
			return;
		}

		$html = JFactory::getApplication()->getBody();

		if ($html == '')
		{
			return;
		}

		$pos_1 = strpos($html, '<!-- Top Navigation -->');
		$pos_2 = strpos($html, '<!-- Header -->');

		if ( ! $pos_1 || ! $pos_2)
		{
			return;
		}

		$nav = substr($html, $pos_1, $pos_2 - $pos_1);

		$shop_item = '(\s*<li>\s*<a
[^>]*class="[^"]*menu-help-)shop("\s[^>]*)href="[^"]+\.joomla\.org[^"]*"([^>]*>)[^<]*(</a>s*</li>)';

		$nav = RL_RegEx::replace(
			$shop_item,
			'\0<li
class="divider"><span></span></li>\1dev\2href="https://www.regularlabs.com"\3Regular
Labs Extensions\4',
			$nav
		);

		// Just in case something fails
		if (empty($nav))
		{
			return;
		}

		$html = substr_replace($html, $nav, $pos_1, $pos_2 - $pos_1);

		JFactory::getApplication()->setBody($html);
	}
}
PK�X�[\�quuregularlabs/src/Application.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Plugin\PluginHelper as JPluginHelper;

class Application
{
	public function render()
	{
		$app      = JFactory::getApplication();
		$document = JFactory::getDocument();
		$app->loadDocument($document);

		$params = [
			'template'  => $app->get('theme'),
			'file'      => $app->get('themeFile',
'index.php'),
			'params'    => $app->get('themeParams'),
			'directory' => self::getThemesDirectory(),
		];

		// Parse the document.
		$document->parse($params);

		// Trigger the onBeforeRender event.
		JPluginHelper::importPlugin('system');
		$app->triggerEvent('onBeforeRender');

		$caching = false;

		if ($app->isClient('site') &&
$app->get('caching') &&
$app->get('caching', 2) == 2 && !
JFactory::getUser()->get('id'))
		{
			$caching = true;
		}

		// Render the document.
		$data = $document->render($caching, $params);

		// Set the application output data.
		$app->setBody($data);

		// Trigger the onAfterRender event.
		$app->triggerEvent('onAfterRender');

		// Mark afterRender in the profiler.
		// Causes issues, so commented out.
		// JDEBUG ? $app->profiler->mark('afterRender') : null;
	}

	static function getThemesDirectory()
	{
		if (JFactory::getApplication()->get('themes.base'))
		{
			return JFactory::getApplication()->get('themes.base');
		}

		if (defined('JPATH_THEMES'))
		{
			return JPATH_THEMES;
		}

		if (defined('JPATH_BASE'))
		{
			return JPATH_BASE . '/themes';
		}

		return __DIR__ . '/themes';
	}
}

PK�X�[�i����regularlabs/src/DownloadKey.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use RegularLabs\Library\Document as RL_Document;

class DownloadKey
{
	public static function update()
	{
		// Save the download key from the Regular Labs Extension Manager config
to the update sites
		if (
			RL_Document::isClient('site')
			|| JFactory::getApplication()->input->get('option') !=
'com_config'
			|| JFactory::getApplication()->input->get('task') !=
'config.save.component.apply'
			|| JFactory::getApplication()->input->get('component')
!= 'com_regularlabsmanager'
		)
		{
			return;
		}

		$form =
JFactory::getApplication()->input->post->get('jform',
[], 'array');

		if ( ! isset($form['key']))
		{
			return;
		}

		$key = $form['key'];

		$db = JFactory::getDbo();

		$query = $db->getQuery(true)
			->update('#__update_sites')
			->set($db->quoteName('extra_query') . ' = ' .
$db->quote('k=' . $key))
			->where($db->quoteName('location') . ' LIKE '
. $db->quote('%download.regularlabs.com%'));
		$db->setQuery($query);
		$db->execute();
	}
}
PK�X�[Ƙ��regularlabs/src/Params.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use RegularLabs\Library\Parameters as RL_Parameters;

class Params
{
	protected static $params = null;

	public static function get()
	{
		if ( ! is_null(self::$params))
		{
			return self::$params;
		}

		self::$params =
RL_Parameters::getInstance()->getPluginParams('regularlabs');

		return self::$params;
	}
}
PK�X�[��{T��regularlabs/src/QuickPage.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\HTML\HTMLHelper as JHtml;
use Joomla\CMS\Uri\Uri as JUri;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\RegEx as RL_RegEx;

class QuickPage
{
	public static function render()
	{
		if ( ! JFactory::getApplication()->input->getInt('rl_qp',
0))
		{
			return;
		}

		$url =
JFactory::getApplication()->input->getString('url',
'');

		if ($url)
		{
			echo \RegularLabs\Library\Http::getFromServer($url,
JFactory::getApplication()->input->getInt('timeout',
''));

			die;
		}

		$allowed = [
			'administrator/components/com_dbreplacer/ajax.php',
			'administrator/modules/mod_addtomenu/popup.php',
			'media/rereplacer/images/popup.php',
			'plugins/editors-xtd/articlesanywhere/popup.php',
			'plugins/editors-xtd/conditionalcontent/popup.php',
			'plugins/editors-xtd/contenttemplater/data.php',
			'plugins/editors-xtd/contenttemplater/popup.php',
			'plugins/editors-xtd/dummycontent/popup.php',
			'plugins/editors-xtd/modals/popup.php',
			'plugins/editors-xtd/modulesanywhere/popup.php',
			'plugins/editors-xtd/sliders/data.php',
			'plugins/editors-xtd/sliders/popup.php',
			'plugins/editors-xtd/snippets/popup.php',
			'plugins/editors-xtd/sourcerer/popup.php',
			'plugins/editors-xtd/tabs/data.php',
			'plugins/editors-xtd/tabs/popup.php',
			'plugins/editors-xtd/tooltips/popup.php',
		];

		$file   =
JFactory::getApplication()->input->getString('file',
'');
		$folder =
JFactory::getApplication()->input->getString('folder',
'');

		if ($folder)
		{
			$file = implode('/', explode('.', $folder)) .
'/' . $file;
		}

		if ( ! $file || in_array($file, $allowed) === false)
		{
			die;
		}

		jimport('joomla.filesystem.file');

		if (RL_Document::isClient('site'))
		{
			JFactory::getApplication()->setTemplate('../administrator/templates/isis');
		}

		$_REQUEST['tmpl'] = 'component';
		JFactory::getApplication()->input->set('option',
'com_content');

		switch
(JFactory::getApplication()->input->getCmd('format',
'html'))
		{
			case 'json' :
				$format = 'application/json';
				break;

			default:
			case 'html' :
				$format = 'text/html';
				break;
		}

		header('Content-Type: ' . $format . ';
charset=utf-8');
		JHtml::_('bootstrap.framework');
		JFactory::getDocument()->addScript(
			JUri::root(true) .
'/administrator/templates/isis/js/template.js'
		);
		JFactory::getDocument()->addStylesheet(
			JUri::root(true) .
'/administrator/templates/isis/css/template' .
(JFactory::getDocument()->direction === 'rtl' ?
'-rtl' : '') . '.css'
		);

		RL_Document::style('regularlabs/popup.min.css');

		$file = JPATH_SITE . '/' . $file;

		$html = '';
		if (is_file($file))
		{
			ob_start();
			include $file;
			$html = ob_get_contents();
			ob_end_clean();
		}

		RL_Document::setBuffer($html);

		$app = new Application;
		$app->render();

		$html = JFactory::getApplication()->getBody();

		$html = RL_RegEx::replace('\s*<link
[^>]*href="[^"]*templates/system/[^"]*\.css[^"]*"[^>]*(
/)?>', '', $html);
		$html = RL_RegEx::replace('(<body [^>]*class=")',
'\1reglab-popup ', $html);
		$html = str_replace('<body>', '<body
class="reglab-popup"', $html);

		// Move the template css down to last
		$html = RL_RegEx::replace('(<link
[^>]*href="[^"]*templates/isis/[^"]*\.css[^"]*"[^>]*(?:
/)?>\s*)(.*?)(<script)', '\2\1\3', $html);

		echo $html;

		die;
	}
}

PK�X�[�.��
regularlabs/src/SearchHelper.phpnu�[���<?php
/**
 * @package         Regular Labs Library
 * @version         21.2.19653
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace RegularLabs\Plugin\System\RegularLabs;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use RegularLabs\Library\Document as RL_Document;

class SearchHelper
{
	public static function load()
	{
		// Only in frontend search component view
		if ( ! RL_Document::isClient('site') ||
JFactory::getApplication()->input->get('option') !=
'com_search')
		{
			return;
		}

		$classes = get_declared_classes();

		if (in_array('SearchModelSearch', $classes) ||
in_array('searchmodelsearch', $classes))
		{
			return;
		}

		require_once JPATH_LIBRARIES .
'/regularlabs/helpers/search.php';
	}
}
PK�X�[�]Tز�regularlabs/vendor/autoload.phpnu�[���<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit024eacf405310863b3206effceefe496::getLoader();
PK�X�[?�6H��1regularlabs/vendor/composer/autoload_classmap.phpnu�[���<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
];
PK�X�[�-�z��3regularlabs/vendor/composer/autoload_namespaces.phpnu�[���<?php

// autoload_namespaces.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
];
PK�X�[���r��-regularlabs/vendor/composer/autoload_psr4.phpnu�[���<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir   = dirname($vendorDir);

return [
	'RegularLabs\\Plugin\\System\\RegularLabs\\' => [$baseDir .
'/src'],
];
PK�X�[ԩ�:��-regularlabs/vendor/composer/autoload_real.phpnu�[���<?php

// autoload_real.php @generated by Composer

class ComposerAutoloaderInit024eacf405310863b3206effceefe496
{
	private static $loader;

	public static function loadClassLoader($class)
	{
		if ('Composer\Autoload\ClassLoader' === $class)
		{
			require __DIR__ . '/ClassLoader.php';
		}
	}

	public static function getLoader()
	{
		if (null !== self::$loader)
		{
			return self::$loader;
		}

		spl_autoload_register(['ComposerAutoloaderInit024eacf405310863b3206effceefe496',
'loadClassLoader'], true, true);
		self::$loader = $loader = new \Composer\Autoload\ClassLoader;
		spl_autoload_unregister(['ComposerAutoloaderInit024eacf405310863b3206effceefe496',
'loadClassLoader']);

		$useStaticLoader = PHP_VERSION_ID >= 50600 && !
defined('HHVM_VERSION') && ( !
function_exists('zend_loader_file_encoded') || !
zend_loader_file_encoded());
		if ($useStaticLoader)
		{
			require_once __DIR__ . '/autoload_static.php';

			call_user_func(\Composer\Autoload\ComposerStaticInit024eacf405310863b3206effceefe496::getInitializer($loader));
		}
		else
		{
			$map = require __DIR__ . '/autoload_namespaces.php';
			foreach ($map as $namespace => $path)
			{
				$loader->set($namespace, $path);
			}

			$map = require __DIR__ . '/autoload_psr4.php';
			foreach ($map as $namespace => $path)
			{
				$loader->setPsr4($namespace, $path);
			}

			$classMap = require __DIR__ . '/autoload_classmap.php';
			if ($classMap)
			{
				$loader->addClassMap($classMap);
			}
		}

		$loader->register(true);

		return $loader;
	}
}
PK�X�[�	���/regularlabs/vendor/composer/autoload_static.phpnu�[���<?php

// autoload_static.php @generated by Composer

namespace Composer\Autoload;

class ComposerStaticInit024eacf405310863b3206effceefe496
{
	public static $prefixLengthsPsr4 = [
		'R' =>
			[
				'RegularLabs\\Plugin\\System\\RegularLabs\\' => 38,
			],
	];

	public static $prefixDirsPsr4 = [
		'RegularLabs\\Plugin\\System\\RegularLabs\\' =>
			[
				0 => __DIR__ . '/../..' . '/src',
			],
	];

	public static function getInitializer(ClassLoader $loader)
	{
		return \Closure::bind(function () use ($loader) {
			$loader->prefixLengthsPsr4 =
ComposerStaticInit024eacf405310863b3206effceefe496::$prefixLengthsPsr4;
			$loader->prefixDirsPsr4    =
ComposerStaticInit024eacf405310863b3206effceefe496::$prefixDirsPsr4;
		}, null, ClassLoader::class);
	}
}
PK�X�[f�p�,�,+regularlabs/vendor/composer/ClassLoader.phpnu�[���<?php

/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <naderman@naderman.de>
 *     Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Composer\Autoload;

/**
 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
 *
 *     $loader = new \Composer\Autoload\ClassLoader();
 *
 *     // register classes with namespaces
 *     $loader->add('Symfony\Component',
__DIR__.'/component');
 *     $loader->add('Symfony',          
__DIR__.'/framework');
 *
 *     // activate the autoloader
 *     $loader->register();
 *
 *     // to enable searching the include path (eg. for PEAR packages)
 *     $loader->setUseIncludePath(true);
 *
 * In this example, if you try to use a class in the Symfony\Component
 * namespace or one of its children (Symfony\Component\Console for
instance),
 * the autoloader will first look for the class under the component/
 * directory, and it will then fallback to the framework/ directory if not
 * found before giving up.
 *
 * This class is loosely based on the Symfony UniversalClassLoader.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @see    http://www.php-fig.org/psr/psr-0/
 * @see    http://www.php-fig.org/psr/psr-4/
 */
class ClassLoader
{
	// PSR-4
	private $prefixLengthsPsr4 = [];
	private $prefixDirsPsr4    = [];
	private $fallbackDirsPsr4  = [];

	// PSR-0
	private $prefixesPsr0     = [];
	private $fallbackDirsPsr0 = [];

	private $useIncludePath        = false;
	private $classMap              = [];
	private $classMapAuthoritative = false;
	private $missingClasses        = [];
	private $apcuPrefix;

	public function getPrefixes()
	{
		if ( ! empty($this->prefixesPsr0))
		{
			return call_user_func_array('array_merge',
$this->prefixesPsr0);
		}

		return [];
	}

	public function getPrefixesPsr4()
	{
		return $this->prefixDirsPsr4;
	}

	public function getFallbackDirs()
	{
		return $this->fallbackDirsPsr0;
	}

	public function getFallbackDirsPsr4()
	{
		return $this->fallbackDirsPsr4;
	}

	public function getClassMap()
	{
		return $this->classMap;
	}

	/**
	 * @param array $classMap Class to filename map
	 */
	public function addClassMap(array $classMap)
	{
		if ($this->classMap)
		{
			$this->classMap = array_merge($this->classMap, $classMap);
		}
		else
		{
			$this->classMap = $classMap;
		}
	}

	/**
	 * Registers a set of PSR-0 directories for a given prefix, either
	 * appending or prepending to the ones previously set for this prefix.
	 *
	 * @param string       $prefix  The prefix
	 * @param array|string $paths   The PSR-0 root directories
	 * @param bool         $prepend Whether to prepend the directories
	 */
	public function add($prefix, $paths, $prepend = false)
	{
		if ( ! $prefix)
		{
			if ($prepend)
			{
				$this->fallbackDirsPsr0 = array_merge(
					(array) $paths,
					$this->fallbackDirsPsr0
				);
			}
			else
			{
				$this->fallbackDirsPsr0 = array_merge(
					$this->fallbackDirsPsr0,
					(array) $paths
				);
			}

			return;
		}

		$first = $prefix[0];
		if ( ! isset($this->prefixesPsr0[$first][$prefix]))
		{
			$this->prefixesPsr0[$first][$prefix] = (array) $paths;

			return;
		}
		if ($prepend)
		{
			$this->prefixesPsr0[$first][$prefix] = array_merge(
				(array) $paths,
				$this->prefixesPsr0[$first][$prefix]
			);
		}
		else
		{
			$this->prefixesPsr0[$first][$prefix] = array_merge(
				$this->prefixesPsr0[$first][$prefix],
				(array) $paths
			);
		}
	}

	/**
	 * Registers a set of PSR-4 directories for a given namespace, either
	 * appending or prepending to the ones previously set for this namespace.
	 *
	 * @param string       $prefix  The prefix/namespace, with trailing
'\\'
	 * @param array|string $paths   The PSR-4 base directories
	 * @param bool         $prepend Whether to prepend the directories
	 *
	 * @throws \InvalidArgumentException
	 */
	public function addPsr4($prefix, $paths, $prepend = false)
	{
		if ( ! $prefix)
		{
			// Register directories for the root namespace.
			if ($prepend)
			{
				$this->fallbackDirsPsr4 = array_merge(
					(array) $paths,
					$this->fallbackDirsPsr4
				);
			}
			else
			{
				$this->fallbackDirsPsr4 = array_merge(
					$this->fallbackDirsPsr4,
					(array) $paths
				);
			}
		}
		elseif ( ! isset($this->prefixDirsPsr4[$prefix]))
		{
			// Register directories for a new namespace.
			$length = strlen($prefix);
			if ('\\' !== $prefix[$length - 1])
			{
				throw new \InvalidArgumentException("A non-empty PSR-4 prefix must
end with a namespace separator.");
			}
			$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
			$this->prefixDirsPsr4[$prefix]                = (array) $paths;
		}
		elseif ($prepend)
		{
			// Prepend directories for an already registered namespace.
			$this->prefixDirsPsr4[$prefix] = array_merge(
				(array) $paths,
				$this->prefixDirsPsr4[$prefix]
			);
		}
		else
		{
			// Append directories for an already registered namespace.
			$this->prefixDirsPsr4[$prefix] = array_merge(
				$this->prefixDirsPsr4[$prefix],
				(array) $paths
			);
		}
	}

	/**
	 * Registers a set of PSR-0 directories for a given prefix,
	 * replacing any others previously set for this prefix.
	 *
	 * @param string       $prefix The prefix
	 * @param array|string $paths  The PSR-0 base directories
	 */
	public function set($prefix, $paths)
	{
		if ( ! $prefix)
		{
			$this->fallbackDirsPsr0 = (array) $paths;
		}
		else
		{
			$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
		}
	}

	/**
	 * Registers a set of PSR-4 directories for a given namespace,
	 * replacing any others previously set for this namespace.
	 *
	 * @param string       $prefix The prefix/namespace, with trailing
'\\'
	 * @param array|string $paths  The PSR-4 base directories
	 *
	 * @throws \InvalidArgumentException
	 */
	public function setPsr4($prefix, $paths)
	{
		if ( ! $prefix)
		{
			$this->fallbackDirsPsr4 = (array) $paths;
		}
		else
		{
			$length = strlen($prefix);
			if ('\\' !== $prefix[$length - 1])
			{
				throw new \InvalidArgumentException("A non-empty PSR-4 prefix must
end with a namespace separator.");
			}
			$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
			$this->prefixDirsPsr4[$prefix]                = (array) $paths;
		}
	}

	/**
	 * Turns on searching the include path for class files.
	 *
	 * @param bool $useIncludePath
	 */
	public function setUseIncludePath($useIncludePath)
	{
		$this->useIncludePath = $useIncludePath;
	}

	/**
	 * Can be used to check if the autoloader uses the include path to check
	 * for classes.
	 *
	 * @return bool
	 */
	public function getUseIncludePath()
	{
		return $this->useIncludePath;
	}

	/**
	 * Turns off searching the prefix and fallback directories for classes
	 * that have not been registered with the class map.
	 *
	 * @param bool $classMapAuthoritative
	 */
	public function setClassMapAuthoritative($classMapAuthoritative)
	{
		$this->classMapAuthoritative = $classMapAuthoritative;
	}

	/**
	 * Should class lookup fail if not found in the current class map?
	 *
	 * @return bool
	 */
	public function isClassMapAuthoritative()
	{
		return $this->classMapAuthoritative;
	}

	/**
	 * APCu prefix to use to cache found/not-found classes, if the extension
is enabled.
	 *
	 * @param string|null $apcuPrefix
	 */
	public function setApcuPrefix($apcuPrefix)
	{
		$this->apcuPrefix = function_exists('apcu_fetch') &&
ini_get('apc.enabled') ? $apcuPrefix : null;
	}

	/**
	 * The APCu prefix in use, or null if APCu caching is not enabled.
	 *
	 * @return string|null
	 */
	public function getApcuPrefix()
	{
		return $this->apcuPrefix;
	}

	/**
	 * Registers this instance as an autoloader.
	 *
	 * @param bool $prepend Whether to prepend the autoloader or not
	 */
	public function register($prepend = false)
	{
		spl_autoload_register([$this, 'loadClass'], true, $prepend);
	}

	/**
	 * Unregisters this instance as an autoloader.
	 */
	public function unregister()
	{
		spl_autoload_unregister([$this, 'loadClass']);
	}

	/**
	 * Loads the given class or interface.
	 *
	 * @param string $class The name of the class
	 *
	 * @return bool|null True if loaded, null otherwise
	 */
	public function loadClass($class)
	{
		if ($file = $this->findFile($class))
		{
			includeFile($file);

			return true;
		}
	}

	/**
	 * Finds the path to the file where the class is defined.
	 *
	 * @param string $class The name of the class
	 *
	 * @return string|false The path if found, false otherwise
	 */
	public function findFile($class)
	{
		// class map lookup
		if (isset($this->classMap[$class]))
		{
			return $this->classMap[$class];
		}
		if ($this->classMapAuthoritative ||
isset($this->missingClasses[$class]))
		{
			return false;
		}
		if (null !== $this->apcuPrefix)
		{
			$file = apcu_fetch($this->apcuPrefix . $class, $hit);
			if ($hit)
			{
				return $file;
			}
		}

		$file = $this->findFileWithExtension($class, '.php');

		// Search for Hack files if we are running on HHVM
		if (false === $file && defined('HHVM_VERSION'))
		{
			$file = $this->findFileWithExtension($class, '.hh');
		}

		if (null !== $this->apcuPrefix)
		{
			apcu_add($this->apcuPrefix . $class, $file);
		}

		if (false === $file)
		{
			// Remember that this class does not exist.
			$this->missingClasses[$class] = true;
		}

		return $file;
	}

	private function findFileWithExtension($class, $ext)
	{
		// PSR-4 lookup
		$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) .
$ext;

		$first = $class[0];
		if (isset($this->prefixLengthsPsr4[$first]))
		{
			$subPath = $class;
			while (false !== $lastPos = strrpos($subPath, '\\'))
			{
				$subPath = substr($subPath, 0, $lastPos);
				$search  = $subPath . '\\';
				if (isset($this->prefixDirsPsr4[$search]))
				{
					foreach ($this->prefixDirsPsr4[$search] as $dir)
					{
						$length = $this->prefixLengthsPsr4[$first][$search];
						if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
substr($logicalPathPsr4, $length)))
						{
							return $file;
						}
					}
				}
			}
		}

		// PSR-4 fallback dirs
		foreach ($this->fallbackDirsPsr4 as $dir)
		{
			if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4))
			{
				return $file;
			}
		}

		// PSR-0 lookup
		if (false !== $pos = strrpos($class, '\\'))
		{
			// namespaced class name
			$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
				. strtr(substr($logicalPathPsr4, $pos + 1), '_',
DIRECTORY_SEPARATOR);
		}
		else
		{
			// PEAR-like class name
			$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) .
$ext;
		}

		if (isset($this->prefixesPsr0[$first]))
		{
			foreach ($this->prefixesPsr0[$first] as $prefix => $dirs)
			{
				if (0 === strpos($class, $prefix))
				{
					foreach ($dirs as $dir)
					{
						if (file_exists($file = $dir . DIRECTORY_SEPARATOR .
$logicalPathPsr0))
						{
							return $file;
						}
					}
				}
			}
		}

		// PSR-0 fallback dirs
		foreach ($this->fallbackDirsPsr0 as $dir)
		{
			if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0))
			{
				return $file;
			}
		}

		// PSR-0 include paths.
		if ($this->useIncludePath && $file =
stream_resolve_include_path($logicalPathPsr0))
		{
			return $file;
		}

		return false;
	}
}

/**
 * Scope isolated include.
 *
 * Prevents access to $this/self from included files.
 */
function includeFile($file)
{
	include $file;
}
PK�X�[D�hp*regularlabs/vendor/composer/installed.jsonnu�[���[]
PK�X�[
�..#regularlabs/vendor/composer/LICENSEnu�[���
Copyright (c) Nils Adermann, Jordi Boggiano

Permission is hereby granted, free of charge, to any person obtaining a
copy
of this software and associated documentation files (the
"Software"), to deal
in the Software without restriction, including without limitation the
rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

PK�X�[w��
�
remember/remember.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.remember
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Joomla! System Remember Me Plugin
 *
 * @since  1.5
 */

class PlgSystemRemember extends JPlugin
{
	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.2
	 */
	protected $app;

	/**
	 * Remember me method to run onAfterInitialise
	 * Only purpose is to initialise the login authentication process if a
cookie is present
	 *
	 * @return  void
	 *
	 * @since   1.5
	 * @throws  InvalidArgumentException
	 */
	public function onAfterInitialise()
	{
		// Get the application if not done by JPlugin. This may happen during
upgrades from Joomla 2.5.
		if (!$this->app)
		{
			$this->app = JFactory::getApplication();
		}

		// No remember me for admin.
		if ($this->app->isClient('administrator'))
		{
			return;
		}

		// Check for a cookie if user is not logged in
		if (JFactory::getUser()->get('guest'))
		{
			$cookieName = 'joomla_remember_me_' .
JUserHelper::getShortHashedUserAgent();

			// Try with old cookieName (pre 3.6.0) if not found
			if (!$this->app->input->cookie->get($cookieName))
			{
				$cookieName = JUserHelper::getShortHashedUserAgent();
			}

			// Check for the cookie
			if ($this->app->input->cookie->get($cookieName))
			{
				$this->app->login(array('username' => ''),
array('silent' => true));
			}
		}
	}

	/**
	 * Imports the authentication plugin on user logout to make sure that the
cookie is destroyed.
	 *
	 * @param   array  $user     Holds the user data.
	 * @param   array  $options  Array holding options (remember,
autoregister, group).
	 *
	 * @return  boolean
	 */
	public function onUserLogout($user, $options)
	{
		// No remember me for admin
		if ($this->app->isClient('administrator'))
		{
			return true;
		}

		$cookieName = 'joomla_remember_me_' .
JUserHelper::getShortHashedUserAgent();

		// Check for the cookie
		if ($this->app->input->cookie->get($cookieName))
		{
			// Make sure authentication group is loaded to process onUserAfterLogout
event
			JPluginHelper::importPlugin('authentication');
		}

		return true;
	}

	/**
	 * Method is called before user data is stored in the database
	 * Invalidate all existing remember-me cookies after a password change
	 *
	 * @param   array    $user   Holds the old user data.
	 * @param   boolean  $isnew  True if a new user is stored.
	 * @param   array    $data   Holds the new user data.
	 *
	 * @return    boolean
	 *
	 * @since   3.8.6
	 */
	public function onUserBeforeSave($user, $isnew, $data)
	{
		// Irrelevant on new users
		if ($isnew)
		{
			return true;
		}

		// Irrelevant, because password was not changed by user
		if (empty($data['password_clear']))
		{
			return true;
		}

		/*
		 * But now, we need to do something 
		 * Delete all tokens for this user!
		 */
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->delete('#__user_keys')
			->where($db->quoteName('user_id') . ' = ' .
$db->quote($user['username']));
		try
		{
			$db->setQuery($query)->execute();
		}
		catch (RuntimeException $e)
		{
			// Log an alert for the site admin
			JLog::add(
				sprintf('Failed to delete cookie token for user %s with the
following error: %s', $user['username'],
$e->getMessage()),
				JLog::WARNING,
				'security'
			);
		}

		return true;
	}
}
PK�X�[M��))remember/remember.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_remember</name>
	<author>Joomla! Project</author>
	<creationDate>April 2007</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_REMEMBER_XML_DESCRIPTION</description>
	<files>
		<filename plugin="remember">remember.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_remember.ini</language>
		<language
tag="en-GB">en-GB.plg_system_remember.sys.ini</language>
	</languages>
</extension>
PK�X�[�#o,,rsmembership/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[�^-�1�1rsmembership/rsmembership.phpnu�[���<?php
/**
 * @package	RSMembership!
 * @copyright	(c) 2009 - 2016 RSJoomla!
 * @link		https://www.rsjoomla.com
 * @license	GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
 */

defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.plugin.plugin');

class plgSystemRSMembership extends JPlugin
{
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
		
		if
(file_exists(JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/rsmembership.php'))
{
			require_once
JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/rsmembership.php';
		}
	}
	
	public function onAfterInitialise() {
		if (!class_exists('RSMembershipHelper')) {
			return;
		}

		$this->loadLanguage('plg_system_rsmembership');

		$this->updateMemberships();
		$this->sendExpirationEmails();
	}

	public function onAfterModuleList(&$modules) {
		if (!class_exists('RSMembershipHelper')) {
			return;
		}

		$db 	= JFactory::getDbo();
		$query	= $db->getQuery(true);

		list($memberships, $extras) =
RSMembershipHelper::getUserSubscriptions();

		$query
			->select($db->qn('membership_id'))
			->select($db->qn('params'))
			->from($db->qn('#__rsmembership_membership_shared'))
			->where($db->qn('type').' =
'.$db->q('module'))
			->where($db->qn('published').' =
'.$db->q('1'));
		$db->setQuery($query);
		$shared = $db->loadObjectList();

		if (empty($shared)) {
			$shared = array();
		}

		$query
			->clear()
			->select($db->qn('extra_value_id'))
			->select($db->qn('params'))
			->from($db->qn('#__rsmembership_extra_value_shared'))
			->where($db->qn('type').' =
'.$db->q('module'))
			->where($db->qn('published').' =
'.$db->q('1'));
		$db->setQuery($query);
		$shared2 = $db->loadObjectList();

		if (!empty($shared2)) {
			$shared = array_merge($shared, $shared2);
		}

		$allowed 		= array();
		$not_allowed 	= array();
		foreach ($shared as $share) {
			$what  = isset($share->membership_id) ? 'membership_id' :
'extra_value_id';
			$where = isset($share->membership_id) ? $memberships : $extras;

			if (in_array($share->{$what}, $where)) {
				$allowed[] = $share->params;
			}
		}

		foreach ($shared as $share) {
			if (!in_array($share->params, $allowed)) {
				$not_allowed[] = $share->params;
			}
		}

		if ($not_allowed) {
			foreach ($modules as $i => $module) {
				if (in_array($module->id, $not_allowed)) {
					unset($modules[$i]);
				}
			}
		}
	}
	
	protected function updateMemberships() {
		$db 		= JFactory::getDbo();
		$query		= $db->getQuery(true);
		$config   	= RSMembershipConfig::getInstance();
		
		$date		= JFactory::getDate();
		$unixDate 	= $date->toUnix();
		if ( ( $config->get('last_check') +
($config->get('interval') * 60) ) > $unixDate )
			return;
		
		// update config value Last Check
		$config->set('last_check', $unixDate);
		
		$offset = $config->get('delete_pending_after');
		if ($offset < 1) $offset = 1;
		$offset = $offset * 3600;

		// delete pending transactions
		$date->modify("-$offset seconds");
		$query->delete()
			  ->from($db->qn('#__rsmembership_transactions'))
			  ->where($db->qn('status').' =
'.$db->q('pending'))
			  ->where($db->qn('date') . ' < '.
$db->q($date->toSql()));
		$db->setQuery($query);
		$db->execute();
		$query->clear();

		// Limit 10 so we don't overload the server
		$query->select($db->qn('mu.id'))
			  ->select($db->qn('m.gid_enable'))
			  ->select($db->qn('m.gid_expire'))
			  ->select($db->qn('m.disable_expired_account'))
			  ->select($db->qn('mu.user_id'))
			  ->from(
$db->qn('#__rsmembership_membership_subscribers',
'mu') )
			  ->join( 'left',
$db->qn('#__rsmembership_memberships', 'm') .'
ON '. $db->qn('mu.membership_id').' = '.
$db->qn('m.id'))
			  ->where($db->qn('mu.status').' =
'.$db->q('0'))
			  ->where($db->qn('mu.membership_end').' !=
'.$db->q($db->getNullDate()))
			  ->where($db->qn('mu.membership_end').' <
'.$db->q(JFactory::getDate()->toSql()));
		$db->setQuery( $query, 0, 10 );
		$updates 	= $db->loadObjectList('id');
		$query->clear();
		$to_update 	= array_keys($updates);

		if (!empty($to_update))
		{
			$query->update($db->qn('#__rsmembership_membership_subscribers'))
				  ->set($db->qn('status').' = '.
$db->q(MEMBERSHIP_STATUS_EXPIRED))
				  ->where($db->qn('id') . ' IN
('.RSMembershipHelper::quoteImplode($to_update).')');
			$db->setQuery($query);
			$db->execute();
			$query->clear();
		}
		
		foreach ( $updates as $update ) 
		{
			if ($update->gid_enable)
				RSMembership::updateGid($update->user_id, $update->gid_expire,
false, 'remove');
			if ($update->disable_expired_account) {
				// Do not disable the user if he has active subscriptions.
				list($memberships, $extras) =
RSMembershipHelper::getUserSubscriptions($update->user_id);
				if (!$memberships) {
					RSMembership::disableUser($update->user_id);
				}
			}
		}
	}
	
	protected function sendExpirationEmails() 
	{
		$db 	= JFactory::getDbo();
		$query	= $db->getQuery(true);
		$date 	= JFactory::getDate();
		$config = RSMembershipConfig::getInstance();

		// Check the last time this has been run
		$now = $date->toUnix();
		if ($now < $config->get('expire_last_run') +
$config->get('expire_check_in')*60) 
			return;

		// update config value for last time the expiration emails were sent
		$config->set('expire_last_run', $now);

		// Get expiration intervals and memberships
		// Performance check - if no emails can be sent, no need to grab the
membership
		$query->select('*')
			  ->from($db->qn('#__rsmembership_memberships'))
			 
->where('('.$db->qn('user_email_from_addr').'
!= '.$db->q('').' OR
'.$db->qn('user_email_use_global').' =
'.$db->q(1).')')
			 
->where('('.$db->qn('user_email_expire_subject').'
!= '.$db->q('').' OR
'.$db->qn('admin_email_expire_subject').' !=
'.$db->q('').')')
			  ->where($db->qn('published').' =
'.$db->q(1));
		$db->setQuery($query);
		$memberships = $db->loadObjectList();
		
		if ($memberships) {
			RSMembership::sendNotifications($memberships);
		}
	}

	public function onAfterDispatch()
	{
		if (!class_exists('RSMembershipHelper') ||
!RSMembershipHelper::getConfig('disable_registration')) {
			return;
		}

		$jinput	= JFactory::getApplication()->input;
		$option = $jinput->get('option', '',
'cmd');
		$view 	= $jinput->get('view',   '',
'cmd');
		$task 	= $jinput->get('task',   '',
'cmd');

		if ($option == 'com_users' && ($task ==
'registration.register' || $view == 'registration')) {
			$url 		= JRoute::_('index.php?option=com_rsmembership',
false);
			$custom_url =
RSMembershipHelper::getConfig('registration_page');
			if (!empty($custom_url))
				$url = $custom_url;
			
			$app = JFactory::getApplication();
			$app->redirect($url);
		}
	}

	public function onAfterRoute()
	{
		if (class_exists('RSMembershipHelper')) {
			RSMembershipHelper::checkShared();

			$app = JFactory::getApplication();
			if ($app->isSite() && ($menu = $app->getMenu())) {
				$db 	= JFactory::getDbo();
				$query	= $db->getQuery(true);

				list($memberships, $extras) =
RSMembershipHelper::getUserSubscriptions();

				$query
					->clear()
					->select($db->qn('membership_id'))
					->select($db->qn('params'))
					->from($db->qn('#__rsmembership_membership_shared'))
					->where($db->qn('type').' =
'.$db->q('menu'))
					->where($db->qn('published').' =
'.$db->q('1'));
				$db->setQuery($query);
				$shared = $db->loadObjectList();

				$query
					->clear()
					->select($db->qn('extra_value_id'))
					->select($db->qn('params'))
					->from($db->qn('#__rsmembership_extra_value_shared'))
					->where($db->qn('type').' =
'.$db->q('menu'))
					->where($db->qn('published').' =
'.$db->q('1'));
				$db->setQuery($query);
				$shared2 = $db->loadObjectList();

				if (!empty($shared2))
					$shared = array_merge($shared, $shared2);

				$allowed = array();
				foreach ($shared as $share) {
					$what  = isset($share->membership_id) ? 'membership_id' :
'extra_value_id';
					$where = isset($share->membership_id) ? $memberships : $extras;

					if (in_array($share->{$what}, $where))
						$allowed[] = $share->params;
				}

				foreach ($shared as $share) {
					if (!in_array($share->params, $allowed))
					{
						if ($item = $menu->getItem($share->params)) {
							$item->access = null;
						}
					}
				}
			}
		}
	}

	public function onAfterRender() 
	{
		$app 	= JFactory::getApplication();
		$db 	= JFactory::getDbo();

		if ($app->isAdmin() || !class_exists('RSMembershipHelper'))
{
			return;
		}

		$body = JResponse::getBody();
		if (strpos($body, '{rsmembership-subscribe') !== false) {
			$pattern = '#\{rsmembership-subscribe ([0-9]+)\}#i';
			if (preg_match_all($pattern, $body, $matches)) {
				$find 		= array();
				$replace 	= array();
				foreach ($matches[1] as $i => $membership_id) {
					$membership_id = (int) $membership_id;
					$query	= $db->getQuery(true);
					$query
						->select( $db->qn('id') . ', ' .
$db->qn('name') )
						->from($db->qn('#__rsmembership_memberships'))
						->where($db->qn('published').' =
'.$db->q(1))
						->where($db->qn('id').' =
'.$db->q($membership_id));
					$db->setQuery($query);
					if ($membership = $db->loadObject()) {
						$find[]    = $matches[0][$i];
						$replace[] =
JRoute::_('index.php?option=com_rsmembership&task=subscribe&cid='.$membership_id.':'.JFilterOutput::stringURLSafe($membership->name));
					}
				}

				$body = str_replace($find, $replace, $body);
				JResponse::setBody($body);
			}
		}
		
		if (strpos($body, '{rsmembership ') !== false) {
			$pattern = '#\{rsmembership
(id|category)="([0-9,\s]+)"\}(.*?){/rsmembership}#is';
			if (preg_match_all($pattern, $body, $matches)) {
				$find 		= array();
				$replace	= array();
				
				// Get current user's memberships and extras
				list($userMemberships, $userExtras) =
RSMembershipHelper::getUserSubscriptions();
				
				foreach ($matches[0] as $i => $fullmatch) {
					$type 	= strtolower($matches[1][$i]);
					$values	= explode(',', $matches[2][$i]);
					$inside = $matches[3][$i];
					$find[] = $fullmatch;
					
					// Make sure we have only numbers.
					$values = array_map('intval', $values);
					
					// Two argument types: either membership IDs or category IDs
					if ($type == 'id') {
						$sharedMemberships = $values;
					} elseif ($type == 'category') {
						$query = $db->getQuery(true);
						$query->select('id')
							  ->from($db->qn('#__rsmembership_memberships'))
							  ->where($db->qn('category_id').' IN
('.RSMembershipHelper::quoteImplode($values).')');
						$sharedMemberships = $db->setQuery($query)->loadColumn();
					}
					
					// Do we have an {else} statement?
					if (strpos($inside, '{else}') !== false) {
						list($inside, $other) = explode('{else}', $inside, 2);
					} else {
						$other = '';
					}
					
					// Does the user have the required memberships?
					if (array_intersect($sharedMemberships, $userMemberships)) {
						$replace[] = $inside;
					} else {
						$replace[] = $other;
					}
				}
				
				$body = str_replace($find, $replace, $body);
				JResponse::setBody($body);
			}
		}
	}

	public function onCreateModuleQuery(&$extra)
	{
		if (class_exists('RSMembershipHelper'))
			if (is_array($extra->where))
			{
				$where = RSMembershipHelper::getModulesWhere();
				if ($where)
					$extra->where[] = $where;
			}
			else
				$extra->where .= RSMembershipHelper::getModulesWhere();
	}
	
	public function onUserAfterDelete($user, $succes, $msg)
	{
		if (!$succes) 
			return false;

		$db 	= JFactory::getDbo();
		$query  = $db->getQuery(true);

		// delete from transactions
		$query->delete($db->qn('#__rsmembership_transactions'))->where($db->qn('user_id').'
= '. $db->q( (int) $user['id'] ));
		$db->setQuery($query);
		$db->execute();
		$query->clear();

		// delete from subscribers
		$query->delete($db->qn('#__rsmembership_subscribers'))->where($db->qn('user_id').'
= '. $db->q( (int) $user['id'] ));
		$db->setQuery($query);
		$db->execute();
		$query->clear();

		// delete from membership_subscribers
		$query->delete($db->qn('#__rsmembership_membership_subscribers'))->where($db->qn('user_id').'
= '. $db->q( (int) $user['id'] ));
		$db->setQuery($query);
		$db->execute();
		$query->clear();

		// delete from logs
		$query->delete($db->qn('#__rsmembership_logs'))->where($db->qn('user_id').'
= '. $db->q( (int) $user['id'] ));
		$db->setQuery($query);
		$db->execute();
		$query->clear();

		return true;
	}
}PK�X�[Q^���rsmembership/rsmembership.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5.0"
group="system" method="upgrade">
	<name>System - RSMembership!</name>
	<creationDate>March 2014</creationDate>
	<author>RSJoomla!</author>
	<copyright>(C) 2009-2014 www.rsjoomla.com</copyright>
	<license>http://www.gnu.org/copyleft/gpl.html
GNU/GPL</license> 
	<authorEmail>support@rsjoomla.com</authorEmail>
	<authorUrl>www.rsjoomla.com</authorUrl>
	<version>1.0.0</version>
	<description>COM_RSMEMBERSHIP_SYSTEM_PLUGIN_DESC</description>
	<files>
		<filename>index.html</filename>
		<filename
plugin="rsmembership">rsmembership.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_rsmembership.ini</language>
	</languages>
</extension>PK�X�[�#o,,rsmembershipwire/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[
O���%rsmembershipwire/rsmembershipwire.phpnu�[���<?php
/**
 * @package	RSMembership!
 * @copyright	(c) 2009 - 2016 RSJoomla!
 * @link		https://www.rsjoomla.com
 * @license	GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
 */

defined('_JEXEC') or die('Restricted access');

jimport('joomla.plugin.plugin');

class plgSystemRSMembershipWire extends JPlugin
{
	public function __construct(&$subject, $config) {
		parent::__construct($subject, $config);

		if ($this->canRun()) {
			require_once
JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/rsmembership.php';
			$this->_loadLanguage();
			$this->addOurPayments();
		}
	}
	
	protected function canRun() {
		return
file_exists(JPATH_ADMINISTRATOR.'/components/com_rsmembership/helpers/rsmembership.php');
	}
	
	protected function addOurPayments() {
		$db 	= JFactory::getDBO();
		$query	= $db->getQuery(true);

		$query->select('*')
			  ->from($db->qn('#__rsmembership_payments'))
			  ->where($db->qn('published').' =
'.$db->q('1'))
			  ->order($db->qn('ordering').' ASC');
		$db->setQuery($query);
		$payments = $db->loadObjectList();
		
		foreach ($payments as $payment) {
			$tax_details =
$this->getTaxDetails('rsmembershipwire'.$payment->id);
			RSMembership::addPlugin($this->getTranslation($payment->name),
'rsmembershipwire'.$payment->id, $tax_details);
		}
	}
	
	protected function getTranslation($text) {
		$lang = JFactory::getLanguage();
		$key  = str_replace(' ', '_', $text);
		if ($lang->hasKey($key)) {
			return JText::_($key);
		} else {
			return $text;
		}
	}

	protected function getTaxDetails($plugin) {
		if (preg_match('#rsmembershipwire([0-9]+)#', $plugin, $match))
{
			$id = $match[1];
			JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_rsmembership/tables');
			$payment = JTable::getInstance('Payment',
'RSMembershipTable');
			$payment->load($id);

			if (!empty($payment->tax_value)) {
				return array('tax_type' => $payment->tax_type,
'tax_value' => $payment->tax_value);
			}
		}

		return false;
	}

	public function onMembershipPayment($plugin, $data, $extra, $membership,
&$transaction, $html) {
		$this->loadLanguage('plg_system_rsmembership',
JPATH_ADMINISTRATOR);
		$this->loadLanguage('plg_system_rsmembershipwire',
JPATH_ADMINISTRATOR);

		if (preg_match('#rsmembershipwire([0-9]+)#', $plugin, $match))
{
			$id = $match[1];

			$payment =
JTable::getInstance('Payment','RSMembershipTable');
			$payment->load($id);

			$tax_value = $payment->tax_value;
			if (!empty($tax_value)) {
				$tax_type = $payment->tax_type;

				// percent ?
				if ($tax_type == 0)
				{
					$tax_value = $transaction->price * ($tax_value / 100);
				}
				else
				{
					$transaction->tax_type = 1;
				}

				$transaction->tax_value = $tax_value;

				$transaction->price = $transaction->price + $tax_value;
			}

			if (RSMembershipHelper::getConfig('trigger_content_plugins'))
{
				$payment->details = JHtml::_('content.prepare',
$payment->details);
			}
			
			$html = $payment->details;

			// Store the transaction so we can get an ID
			$transaction->store();
			
			$replacements = array(
				'{price}' 		=>
RSMembershipHelper::getPriceFormat($transaction->price),
				'{transaction_id}' => $transaction->id,
				'{tax}'			=>
RSMembershipHelper::getPriceFormat($tax_value),
				'{membership}' 	=> $membership->name,
				'{category}'	=>
RSMembershipHelper::getCategoryName($membership->category_id)
			);
			
			if (!empty($data) && is_object($data)) {
				if (isset($data->username)) {
					$replacements['{username}'] = $data->username;
				}
				if (isset($data->name)) {
					$replacements['{name}'] = $data->name;
				}
				if (isset($data->email)) {
					$replacements['{email}'] = $data->email;
				}
				if (isset($data->coupon)) {
					$replacements['{coupon}'] = $data->coupon;
				}
				if (isset($data->fields) && is_array($data->fields)) {
					foreach ($data->fields as $field => $value) {
						if (is_array($value)) {
							$value = implode("\n", $value);
						}
						$replacements['{'.$field.'}'] = $value;
					}
				}
			}
			
			$replace = array_keys($replacements);
			$with 	 = array_values($replacements);
			
			$html = str_replace($replace, $with, $html);

			$html .= '<form method="post"
action="'.JRoute::_('index.php?option=com_rsmembership&task=thankyou').'">';
			$html .= '<div class="form-actions"><input
class="button btn btn-success pull-right" type="submit"
value="'.JText::_('COM_RSMEMBERSHIP_CONTINUE').'"
/></div>';
			$html .= '<input type="hidden" name="option"
value="com_rsmembership" />';
			$html .= '<input type="hidden" name="task"
value="thankyou" />';
			$html .= '</form>';
			
			// No hash for this
			$transaction->hash = '';
			$transaction->gateway = $payment->name;
			
			if ($membership->activation == 2) 
				$transaction->status = 'completed';
			
			return $html;
		}
	}
	
	protected function _loadLanguage() {
		$this->loadLanguage('plg_system_rsmembershipwire',
JPATH_ADMINISTRATOR);
	}
}PK�X�[
���%rsmembershipwire/rsmembershipwire.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5.0"
group="system" method="upgrade">
	<name>System - RSMembership! - Wire Transfer</name>
	<author>RSJoomla!</author>
	<creationDate>March 2014</creationDate>
	<copyright>(C) 2009-2014 www.rsjoomla.com</copyright>
	<license>http://www.gnu.org/copyleft/gpl.html
GNU/GPL</license> 
	<authorEmail>support@rsjoomla.com</authorEmail>
	<authorUrl>www.rsjoomla.com</authorUrl>
	<version>1.0.0</version>
	<description>COM_RSMEMBERSHIP_WIRE_PLUGIN_DESC</description>
	<files>
		<filename>index.html</filename>
		<filename
plugin="rsmembershipwire">rsmembershipwire.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_rsmembershipwire.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic"
addfieldpath="/administrator/components/com_rsmembership/fields">
				<field type="spacer"
label="COM_RSMEMBERSHIP_WIRE_PLUGIN_MOVED" />
			</fieldset>
		</fields>
	</config>
</extension>PK�X�[�#o,,rsticketspro/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[��3rsticketspro/rsticketspro.phpnu�[���<?php
/**
 * @package    RSTickets! Pro
 *
 * @copyright  (c) 2010 - 2016 RSJoomla!
 * @link       https://www.rsjoomla.com
 * @license    GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

/**
 * RSTickets! Pro System Plugin
 */
class plgSystemRsticketspro extends JPlugin
{
	/**
	 *
	 */
	public function onAfterInitialise()
	{
		/**
		 * No point in running if RSTickets!Pro is not installed
		 */
		if (!$this->canRun())
		{
			return;
		}

		$lang = JFactory::getLanguage();
		$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
'en-GB', true);
		$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
$lang->getDefault(), true);
		$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR, null,
true);

		$config = RSTicketsProConfig::getInstance();

		if ($config->get('autoclose_enabled'))
		{
			if ($config->get('autoclose_cron_lastcheck') +
$config->get('autoclose_cron_interval') * 60 <
JFactory::getDate()->toUnix())
			{
				$this->setAutocronLastCheck('autoclose');

				if ($config->get('autoclose_automatically'))
				{
					$this->autoNotifyTickets($config->get('autoclose_interval'));
				}

				$this->closeNotifiedTickets($config->get('autoclose_interval'));
			}
		}

		if ($config->get('enable_followup'))
		{
			if ($config->get('followup_cron_lastcheck') +
$config->get('followup_cron_interval') * 60 <
JFactory::getDate()->toUnix())
			{
				$this->setAutocronLastCheck('followup');

				$this->sendFollowUp($config->get('followup_enabled_time'),
$config->get('followup_interval'));
			}
		}

	}

	/**
	 * @param $interval
	 */
	protected function closeNotifiedTickets($interval)
	{
//	    echo '<pre>';
//	    var_dump(fgdgf);
//	    echo '</pre>';
//	    exit();
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true);
		$date  = JFactory::getDate()->toUnix() - ($interval * 86400);

		$query->clear()
			->select($db->qn('id'))
			->from($db->qn('#__rsticketspro_tickets'))
			->where($db->qn('status_id') . ' <> ' .
$db->q(2))
			->where($db->qn('autoclose_sent') . ' > ' .
$db->q(0))
			->where($db->qn('autoclose_sent') . ' < ' .
$db->q($date));
		$db->setQuery($query);
		if ($tickets = $db->loadColumn())
		{
			/**
			 * Joomla\Utilities\ArrayHelper::toInteger should be used
			 */
            $tickets = array_map('intval', $tickets);
			foreach ($tickets as $ticket_id)
			{
				RSTicketsProHelper::addHistory($ticket_id, 'autoclose', 0);
				RSTicketsProHelper::saveSystemMessage($ticket_id, array(
					'type' => 'autoclose',
					'days' => $interval
				), false);
			}

			$query->clear()
				->update($db->qn('#__rsticketspro_tickets'))
				->set($db->qn('status_id') . ' = ' .
$db->q(2))
				->set($db->qn('closed') . ' = ' .
$db->q(JFactory::getDate()->toSql()))
				->where($db->qn('id') . ' IN (' .
$this->implodeArray($tickets) . ')');

			$db->setQuery($query);
			$db->execute();
		}
	}

	/**
	 * @param $interval
	 */
	protected function autoNotifyTickets($interval)
	{
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true);
		$query->clear()
			->select('id')
			->from($db->qn('#__rsticketspro_tickets'))
			->where($db->qn('status_id') . ' != ' .
$db->q(2))
			->where($db->qn('last_reply_customer') . ' = '
. $db->q(0))
			->where($db->qn('autoclose_sent') . ' = ' .
$db->q(0))
			->where('DATE_ADD(' . $db->qn('last_reply') .
', INTERVAL ' . (int) $interval . ' DAY) < ' .
$db->q(JFactory::getDate()->toSql()));
		$db->setQuery($query, 0, 5);
		$ids = $db->loadColumn();

		if (!empty($ids))
		{
			require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/models/ticket.php';
			$model = new RsticketsproModelTicket;
			foreach ($ids as $id)
			{
				$model->notify($id);
			}
		}
	}

	/**
	 * @param $startingTime
	 * @param $interval
	 */
	protected function sendFollowUp($startingTime, $interval)
	{
		$date  = JFactory::getDate()->toSql();
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true);

		/**
		 * Get the tickets that are in the interval
		 * defined in the Configuration,
		 * but were closed after the option was enabled
		 */
		$query->clear()
			->select(array('id', 'department_id'))
			->from($db->qn('#__rsticketspro_tickets'))
			->where($db->qn('status_id') . ' = ' .
$db->q(2))
			->where('DATE_ADD(' . $db->qn('closed') .
', INTERVAL ' . (int) $interval . ' DAY) < ' .
$db->q($date))
			->where($db->qn('closed') . ' > ' .
$db->q($startingTime))
			->where($db->qn('followup_sent') .' = ' .
$db->q(0))
			->where($db->qn('feedback') . ' = ' .
$db->q(0));
		$db->setQuery($query, 0, 5);

		$tickets = $db->loadAssocList('id');

		/**
		 * If there is any match,
		 * we need to send the followup email
		 */
		if (!empty($tickets))
		{
			require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/models/ticket.php';
			require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/emails.php';

			$model = new RsticketsproModelTicket;
			$ticketArray = array();

			foreach ($tickets as $ticket)
			{
				// original ticket
				$original = $model->getTicket($ticket['id']);
				RSTicketsProEmailsHelper::sendEmail('feedback_followup_email',
array(
					'ticket'        => $original,
					'department_id' => $original->department_id
				));

				$ticketArray[] = $ticket['id'];
			}

			$query->clear()
				->update($db->qn('#__rsticketspro_tickets'))
				->set($db->qn('followup_sent') . ' = ' .
$db->q(1))
				->where($db->qn('id') . ' IN (' .
$this->implodeArray($ticketArray) . ')');
			$db->setQuery($query);
			$db->execute();
		}
	}

	/**
	 * @param $type
	 */
	protected function setAutocronLastCheck($type)
	{
		$db    = JFactory::getDbo();
		$query = $db->getQuery(true);

		$query->clear()
			->update($db->qn('#__rsticketspro_configuration'))
			->set($db->qn('value') . ' = ' .
$db->q(JFactory::getDate()->toUnix()))
			->where($db->qn('name') . ' = ' .
$db->q($type . '_cron_lastcheck'));

		$db->setQuery($query);
		$db->execute();
	}

	/**
	 * @param $array
	 *
	 * @return string
	 */
	protected function implodeArray($array)
	{
		$db = JFactory::getDbo();

		foreach ($array as $i => $value)
		{
			$array[$i] = $db->q($value);
		}

		return implode(',', $array);
	}

    public function onContentPrepareForm(JForm $form, $data)
    {
        $context = $form->getName();
        if ($context !== 'com_users.user')
        {
            return;
        }

        if (!empty($data->id))
        {
            $this->loadLanguage();
            JForm::addFormPath(__DIR__);
            $form->loadFile('rsticketspro_anonymise', false);
        }
    }

	/**
	 * @return bool
	 */
	protected function canRun()
	{
		$helper = JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/rsticketspro.php';

		if (class_exists('RSTicketsProHelper'))
		{
			return true;
		}
		else
		{
			if (file_exists($helper))
			{
				require_once $helper;

				return true;
			}
		}

		return false;
	}
}PK�X�[�ؒ���rsticketspro/rsticketspro.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension method="upgrade" version="2.5"
type="plugin" group="system">
	<name>plg_system_rsticketspro</name>
	<author>RSJoomla!</author>
	<creationDate>February 2014</creationDate>
	<copyright>Copyright (C) 2010-2014 www.rsjoomla.com. All rights
reserved.</copyright>
	<license>GNU General Public License</license>
	<authorEmail>support@rsjoomla.com</authorEmail>
	<authorUrl>www.rsjoomla.com</authorUrl>
	<version>1.0.0</version>
	<description><![CDATA[PLG_SYSTEM_RSTICKETSPRO_DESC]]></description>
	<files>
		<filename
plugin="rsticketspro">rsticketspro.php</filename>
		<filename>rsticketspro_anonymise.xml</filename>
		<filename>index.html</filename>
	</files>
	
	<languages folder="language/en-GB">
		<language
tag="en-GB">en-GB.plg_system_rsticketspro.ini</language>
		<language
tag="en-GB">en-GB.plg_system_rsticketspro.sys.ini</language>
	</languages>
</extension>PK�X�[���ii'rsticketspro/rsticketspro_anonymise.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
    <fieldset name="rsticketspro_anonymise"
addfieldpath="administrator/components/com_rsticketspro/models/fields">
        <field
                name="anonymise"
                type="RSTicketsProAnonymiseButton"
                label=""
                description=""
        />
    </fieldset>
</form>PK�X�[s�3?��sef/sef.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.sef
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Joomla! SEF Plugin.
 *
 * @since  1.5
 */
class PlgSystemSef extends JPlugin
{
	/**
	 * Application object.
	 *
	 * @var    JApplicationCms
	 * @since  3.5
	 */
	protected $app;

	/**
	 * Add the canonical uri to the head.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function onAfterDispatch()
	{
		$doc = $this->app->getDocument();

		if (!$this->app->isClient('site') || $doc->getType()
!== 'html')
		{
			return;
		}

		$sefDomain = $this->params->get('domain', false);

		// Don't add a canonical html tag if no alternative domain has added
in SEF plugin domain field.
		if (empty($sefDomain))
		{
			return;
		}

		// Check if a canonical html tag already exists (for instance, added by a
component).
		$canonical = '';

		foreach ($doc->_links as $linkUrl => $link)
		{
			if (isset($link['relation']) &&
$link['relation'] === 'canonical')
			{
				$canonical = $linkUrl;
				break;
			}
		}

		// If a canonical html tag already exists get the canonical and change it
to use the SEF plugin domain field.
		if (!empty($canonical))
		{
			// Remove current canonical link.
			unset($doc->_links[$canonical]);

			// Set the current canonical link but use the SEF system plugin domain
field.
			$canonical = $sefDomain .
JUri::getInstance($canonical)->toString(array('path',
'query', 'fragment'));
		}
		// If a canonical html doesn't exists already add a canonical html
tag using the SEF plugin domain field.
		else
		{
			$canonical = $sefDomain .
JUri::getInstance()->toString(array('path', 'query',
'fragment'));
		}

		// Add the canonical link.
		$doc->addHeadLink(htmlspecialchars($canonical),
'canonical');
	}

	/**
	 * Convert the site URL to fit to the HTTP request.
	 *
	 * @return  void
	 */
	public function onAfterRender()
	{
		if (!$this->app->isClient('site'))
		{
			return;
		}

		// Replace src links.
		$base   = JUri::base(true) . '/';
		$buffer = $this->app->getBody();

		// For feeds we need to search for the URL with domain.
		$prefix = $this->app->getDocument()->getType() ===
'feed' ? JUri::root() : '';

		// Replace index.php URI by SEF URI.
		if (strpos($buffer, 'href="' . $prefix .
'index.php?') !== false)
		{
			preg_match_all('#href="' . $prefix .
'index.php\?([^"]+)"#m', $buffer, $matches);

			foreach ($matches[1] as $urlQueryString)
			{
				$buffer = str_replace(
					'href="' . $prefix . 'index.php?' .
$urlQueryString . '"',
					'href="' . trim($prefix, '/') .
JRoute::_('index.php?' . $urlQueryString) . '"',
					$buffer
				);
			}

			$this->checkBuffer($buffer);
		}

		// Check for all unknown protocols (a protocol must contain at least one
alphanumeric character followed by a ":").
		$protocols  = '[a-zA-Z0-9\-]+:';
		$attributes = array('href=', 'src=',
'poster=');

		foreach ($attributes as $attribute)
		{
			if (strpos($buffer, $attribute) !== false)
			{
				$regex  = '#\s' . $attribute . '"(?!/|' .
$protocols . '|\#|\')([^"]*)"#m';
				$buffer = preg_replace($regex, ' ' . $attribute .
'"' . $base . '$1"', $buffer);
				$this->checkBuffer($buffer);
			}
		}

		if (strpos($buffer, 'srcset=') !== false)
		{
			$regex = '#\s+srcset="([^"]+)"#m';

			$buffer = preg_replace_callback(
				$regex,
				function ($match) use ($base, $protocols)
				{
					preg_match_all('#(?:[^\s]+)\s*(?:[\d\.]+[wx])?(?:\,\s*)?#i',
$match[1], $matches);

					foreach ($matches[0] as &$src)
					{
						$src = preg_replace('#^(?!/|' . $protocols .
'|\#|\')(.+)#', $base . '$1', $src);
					}

					return ' srcset="' . implode($matches[0]) .
'"';
				},
				$buffer
			);

			$this->checkBuffer($buffer);
		}

		// Replace all unknown protocols in javascript window open events.
		if (strpos($buffer, 'window.open(') !== false)
		{
			$regex  = '#onclick="window.open\(\'(?!/|' .
$protocols . '|\#)([^/]+[^\']*?\')#m';
			$buffer = preg_replace($regex,
'onclick="window.open(\'' . $base . '$1',
$buffer);
			$this->checkBuffer($buffer);
		}

		// Replace all unknown protocols in onmouseover and onmouseout
attributes.
		$attributes = array('onmouseover=', 'onmouseout=');

		foreach ($attributes as $attribute)
		{
			if (strpos($buffer, $attribute) !== false)
			{
				$regex  = '#' . $attribute .
'"this.src=([\']+)(?!/|' . $protocols .
'|\#|\')([^"]+)"#m';
				$buffer = preg_replace($regex, $attribute .
'"this.src=$1' . $base . '$2"', $buffer);
				$this->checkBuffer($buffer);
			}
		}

		// Replace all unknown protocols in CSS background image.
		if (strpos($buffer, 'style=') !== false)
		{
			$regex_url  =
'\s*url\s*\(([\'\"]|\&\#0?3[49];)?(?!/|\&\#0?3[49];|'
. $protocols .
'|\#)([^\)\'\"]+)([\'\"]|\&\#0?3[49];)?\)';
			$regex  = '#style=\s*([\'\"])(.*):' . $regex_url .
'#m';
			$buffer = preg_replace($regex, 'style=$1$2: url($3' . $base .
'$4$5)', $buffer);
			$this->checkBuffer($buffer);
		}

		// Replace all unknown protocols in OBJECT param tag.
		if (strpos($buffer, '<param') !== false)
		{
			// OBJECT <param name="xx", value="yy"> -- fix
it only inside the <param> tag.
			$regex  =
'#(<param\s+)name\s*=\s*"(movie|src|url)"[^>]\s*value\s*=\s*"(?!/|'
. $protocols . '|\#|\')([^"]*)"#m';
			$buffer = preg_replace($regex, '$1name="$2"
value="' . $base . '$3"', $buffer);
			$this->checkBuffer($buffer);

			// OBJECT <param value="xx", name="yy"> -- fix
it only inside the <param> tag.
			$regex  = '#(<param\s+[^>]*)value\s*=\s*"(?!/|' .
$protocols .
'|\#|\')([^"]*)"\s*name\s*=\s*"(movie|src|url)"#m';
			$buffer = preg_replace($regex, '<param value="' .
$base . '$2" name="$3"', $buffer);
			$this->checkBuffer($buffer);
		}

		// Replace all unknown protocols in OBJECT tag.
		if (strpos($buffer, '<object') !== false)
		{
			$regex  = '#(<object\s+[^>]*)data\s*=\s*"(?!/|' .
$protocols . '|\#|\')([^"]*)"#m';
			$buffer = preg_replace($regex, '$1data="' . $base .
'$2"', $buffer);
			$this->checkBuffer($buffer);
		}

		// Use the replaced HTML body.
		$this->app->setBody($buffer);
	}

	/**
	 * Check the buffer.
	 *
	 * @param   string  $buffer  Buffer to be checked.
	 *
	 * @return  void
	 */
	private function checkBuffer($buffer)
	{
		if ($buffer === null)
		{
			switch (preg_last_error())
			{
				case PREG_BACKTRACK_LIMIT_ERROR:
					$message = 'PHP regular expression limit reached
(pcre.backtrack_limit)';
					break;
				case PREG_RECURSION_LIMIT_ERROR:
					$message = 'PHP regular expression limit reached
(pcre.recursion_limit)';
					break;
				case PREG_BAD_UTF8_ERROR:
					$message = 'Bad UTF8 passed to PCRE function';
					break;
				default:
					$message = 'Unknown PCRE error calling PCRE function';
			}

			throw new RuntimeException($message);
		}
	}

	/**
	 * Replace the matched tags.
	 *
	 * @param   array  &$matches  An array of matches (see
preg_match_all).
	 *
	 * @return  string
	 *
	 * @deprecated  4.0  No replacement.
	 */
	protected static function route(&$matches)
	{
		JLog::add(__METHOD__ . ' is deprecated, no replacement.',
JLog::WARNING, 'deprecated');

		$url   = $matches[1];
		$url   = str_replace('&amp;', '&', $url);
		$route = JRoute::_('index.php?' . $url);

		return 'href="' . $route;
	}
}
PK�X�[N
c4AAsef/sef.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>plg_system_sef</name>
	<author>Joomla! Project</author>
	<creationDate>December 2007</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>PLG_SEF_XML_DESCRIPTION</description>
	<files>
		<filename plugin="sef">sef.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_system_sef.ini</language>
		<language
tag="en-GB">en-GB.plg_system_sef.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="domain"
					type="url"
					label="PLG_SEF_DOMAIN_LABEL"
					description="PLG_SEF_DOMAIN_DESCRIPTION"
					hint="https://www.example.com"
					filter="url"
					validate="url"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[_պ���sessiongc/sessiongc.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.sessiongc
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Session\MetadataManager;

/**
 * Garbage collection handler for session related data
 *
 * @since  3.8.6
 */
class PlgSystemSessionGc extends CMSPlugin
{
	/**
	 * Application object
	 *
	 * @var    CMSApplication
	 * @since  3.8.6
	 */
	protected $app;

	/**
	 * Database driver
	 *
	 * @var    JDatabaseDriver
	 * @since  3.8.6
	 */
	protected $db;

	/**
	 * Runs after the HTTP response has been sent to the client and performs
garbage collection tasks
	 *
	 * @return  void
	 *
	 * @since   3.8.6
	 */
	public function onAfterRespond()
	{
		$session = Factory::getSession();

		if ($this->params->get('enable_session_gc', 1))
		{
			$probability = $this->params->get('gc_probability', 1);
			$divisor     = $this->params->get('gc_divisor', 100);

			$random = $divisor * lcg_value();

			if ($probability > 0 && $random < $probability)
			{
				$session->gc();
			}
		}

		if ($this->app->get('session_handler', 'none')
!== 'database' &&
$this->params->get('enable_session_metadata_gc', 1))
		{
			$probability = $this->params->get('gc_probability', 1);
			$divisor     = $this->params->get('gc_divisor', 100);

			$random = $divisor * lcg_value();

			if ($probability > 0 && $random < $probability)
			{
				$metadataManager = new MetadataManager($this->app, $this->db);
				$metadataManager->deletePriorTo(time() - $session->getExpire());
			}
		}
	}
}
PK�X�[o���		sessiongc/sessiongc.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.8" type="plugin"
group="system" method="upgrade">
	<name>plg_system_sessiongc</name>
	<author>Joomla! Project</author>
	<creationDate>February 2018</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.8.6</version>
	<description>PLG_SYSTEM_SESSIONGC_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="sessiongc">sessiongc.php</filename>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_sessiongc.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_sessiongc.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="enable_session_gc"
					type="radio"
					label="PLG_SYSTEM_SESSIONGC_ENABLE_SESSION_GC_LABEL"
					description="PLG_SYSTEM_SESSIONGC_ENABLE_SESSION_GC_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="uint"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="enable_session_metadata_gc"
					type="radio"
					label="PLG_SYSTEM_SESSIONGC_ENABLE_SESSION_METADATA_GC_LABEL"
					description="PLG_SYSTEM_SESSIONGC_ENABLE_SESSION_METADATA_GC_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="uint"
					>
					<option value="1">JYES</option>
					<option value="0">JNO</option>
				</field>

				<field
					name="gc_probability"
					type="number"
					label="PLG_SYSTEM_SESSIONGC_GC_PROBABILITY_LABEL"
					description="PLG_SYSTEM_SESSIONGC_GC_PROBABILITY_DESC"
					filter="uint"
					validate="number"
					min="1"
					default="1"
					showon="enable_session_gc:1[OR]enable_session_metadata_gc:1"
				/>

				<field
					name="gc_divisor"
					type="number"
					label="PLG_SYSTEM_SESSIONGC_GC_DIVISOR_LABEL"
					description="PLG_SYSTEM_SESSIONGC_GC_DIVISOR_DESC"
					filter="uint"
					validate="number"
					min="1"
					default="100"
					showon="enable_session_gc:1[OR]enable_session_metadata_gc:1"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[smartslider3/index.htmlnu�[���PK�X�[ɜ�%%smartslider3/smartslider3.phpnu�[���<?php

use Nextend\SmartSlider3\Platform\Joomla\Plugin\PluginSmartSlider3;

defined('_JEXEC') or die;

jimport("smartslider3.joomla");

if
(class_exists('\Nextend\SmartSlider3\Platform\Joomla\Plugin\PluginSmartSlider3'))
{
    class_alias(PluginSmartSlider3::class,
'plgSystemSmartSlider3');
}PK�X�[f袯�smartslider3/smartslider3.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
    <name>Smart Slider 3 System Plugin</name>
    <author>Nextendweb</author>
    <creationDate>2021-05-31</creationDate>
    <copyright>Copyright (C) 2020 Nextendweb.com. All rights
reserved.</copyright>
    <license>http://www.gnu.org/licenses/gpl-3.0.txt GNU General
Public License</license>
    <authorEmail>roland@nextendweb.com</authorEmail>
    <authorUrl>https://smartslider3.com</authorUrl>
    <version>3.5.0.8</version>
    <files>
        <filename
plugin="smartslider3">smartslider3.php</filename>
        <filename>index.html</filename>
    </files>
</extension>PK�X�[�V�&smsnotificationforrstickets/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[
c]][smsnotificationforrstickets/language/en-GB/en-GB.plg_system_smsnotificationforrstickets.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt,
see LICENSE.php
; Note : All ini files need to be saved as UTF-8

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_RSTICKETS_MENU = "SMS
notification!"

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED =
"Enabled"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED_DESC =
"Turn this feature On or Off"

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_TAB = "Customer
Notification"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_LABEL =
"Message"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_DESC =
"When the customer submits a ticket, this message will be sent to
him/her. <br /> <br />Options to include in the message: <br
/>{customer_name} <br />{staff_name} <br />{code}"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_LABEL =
"Reply message"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_DESC =
"When the staff replies to the ticket, this message will be sent to
the customer. <br /> <br />Options to include in the message:
<br />{customer_name} <br />{staff_name} <br
/>{code}"


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_TAB = "Staff
notification"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_LABEL =
"Message"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_DESC = "In
this field you should enter the admin message notification. <br />
<br />Options to include in the message: <br />{subject} <br
/>{code}"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_LABEL =
"Reply message"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_DESC =
"When the customer replies to the ticket, this message will be sent to
the staff. <br /> <br />Options to include in the message:
<br />{customer_name} <br />{staff_name} <br
/>{code}"


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CONFIG_TAB = "Web Service
Configuration"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_HINT = "Enter
Username"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_LABEL =
"Username"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_DESC = "Enter the
username of your webservice. <br />Get it from your SMS Service
provider."
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_HINT = "Enter
Password"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_LABEL =
"Password"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_DESC = "Enter the
password of your webservice. <br />Get it from your SMS Service
provider."
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_HINT = "Enter
sender's Phone number"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_LABEL =
"Sender"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_DESC = "Enter the
Sender Phone Number. <br />Get it from your SMS Service
provider."PK�X�[�*�HH_smsnotificationforrstickets/language/en-GB/en-GB.plg_system_smsnotificationforrstickets.sys.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt,
see LICENSE.php
; Note : All ini files need to be saved as UTF-8


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_XML_DESCRIPTION = "SMS
notification for
RSTickets!"PK�X�[�V�5smsnotificationforrstickets/language/en-GB/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�9_g��[smsnotificationforrstickets/language/fa-IR/fa-IR.plg_system_smsnotificationforrstickets.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt,
see LICENSE.php
; Note : All ini files need to be saved as UTF-8

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_RSTICKETS_MENU = "هشدار
از طریق پیامک"

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED =
"فعال"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED_DESC =
"ارسال پیامک"

PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_TAB = "تنظیم
پیامک مشتری"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_LABEL =
"متن پیام"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_DESC =
"هنگامی که مشتری تیکت جدید ثبت کند، این
پیام تاییدیه برای مشتری ارسال می شود. <br
/> <br />موارد قابل استفاده در متن پیام:
<br />{customer_name} <br />{staff_name} <br
/>{code}"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_LABEL =
"پیام هنگام ثبت پاسخ"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_DESC =
"این پیام هنگامی که پشتیبان تیکت را
پاسخ دهد، برای مشتری ارسال می شود. <br />
<br />موارد قابل استفاده در متن پیام: <br
/>{customer_name} <br />{staff_name} <br />{code}"


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_TAB = "تنظیم
پیامک پشتیبان"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_LABEL =
"متن پیام"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_DESC = "این
پیام هنگامی که مشتری تیکت جدیدی ثبت کند،
برای پشتیبان اختصاص داده شده ارسال می
شود. <br /> <br />موارد قابل استفاده در
متن پیام: <br />{subject} <br />{code}"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_LABEL =
"پیام هنگام ثبت پاسخ"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_DESC =
"این پیام هنگامی که مشتری به تیکت پاسخ
دهد، برای پشتیبان مربوطه ارسال می شود.
<br /><br />موارد قابل استفاده در متن
پیام: <br />{customer_name} <br />{staff_name} <br
/>{code}"


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CONFIG_TAB = "تنظیمات
وب سرویس پیامک"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_HINT = "نام
کاربری را وارد کنید"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_LABEL = "نام
کاربری"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_DESC = "نام
کاربری وب سرویس را وارد کنید. <br /> این
اطلاعات را از سرویس دهنده پیامک خود
دریافت کنید."
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_HINT = "کلمه
عبور را وارد کنید"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_LABEL = "کلمه
عبور"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_DESC = "کلمه
عبور وب سرویس را وارد کنید. <br /> این
اطلاعات را از سرویس دهنده پیامک خود
دریافت کنید."
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_HINT = "شماره
تلفن فرستنده را وارد کنید"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_LABEL = "شمار
فرستنده"
PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_DESC = "شماره
تماس فرستنده را وارد کنید. <br /> این
اطلاعات را از سرویس دهنده پیامک خود
دریافت
کنید."PK�X�[/�O_smsnotificationforrstickets/language/fa-IR/fa-IR.plg_system_smsnotificationforrstickets.sys.ininu�[���;
Joomla! Project
; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt,
see LICENSE.php
; Note : All ini files need to be saved as UTF-8


PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_XML_DESCRIPTION = "SMS
notification for RSTickets!  پلاگین اتصال آر اس تیکت
به سامانه پیامک . برای استفاده از این
پلاگین ابتدا در سایت زیر ثبت نام کنید
sms.golchinonline.ir"PK�X�[�V�5smsnotificationforrstickets/language/fa-IR/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[�V�/smsnotificationforrstickets/language/index.htmlnu�[���<!DOCTYPE
html><title></title>
PK�X�[V]��!�!;smsnotificationforrstickets/smsnotificationforrstickets.phpnu�[���<?php
/**
 * @package		SMS Notification for RSTickets!
 * @version		1.0.2
 * @author		www.golchinonline.ir
 * @copyright	(C) 2019 kiasaty.com All rights reserved.
 * @license		GNU General Public License version 2 or later
 */

// no direct access
defined( '_JEXEC' ) or die;

class plgSystemSmsnotificationforrstickets extends JPlugin
{
	/**
	 * Load the language file on instantiation. Note this is only available in
Joomla 3.1 and higher.
	 * If you want to support 3.0 series you must override the constructor
	 *
	 * @var    boolean
	 * @since  3.1
	 */
	protected $autoloadLanguage = true;

	/**
	 * Plugin method with the same name as the event will be called
automatically.
	 */
	function onAfterStoreTicket($data)
	{
   
	    echo '<pre>';
	    var_dump($data);
	    echo '</pre>';
	    exit();
		$ticketCode = $data['code'];

		$sendNotificationToCustomer =
$this->params->get('customer_notification');
		if ($sendNotificationToCustomer) {
			$customerID = $data['customer_id'];

			// get customer's name
			$customerName = '';
			if (array_key_exists('name', $data)) {
				// if the user is not logged in, RSTicket asks her/his name
				$customerName = $data['name'];
			} else {
				// if the user is logged in, find the customers name (because RSTickets
doesn't provide the name)
				$customerName = $this->findNameByID($customerID);
			}

			// get customer's phone number
			$customerPhoneNumber = $this->findPhoneNumberByUserID($customerID);

			// get the staff name
			$staffID = $data['staff_id'];
			$staffName = $this->findNameByID($staffID);

			$customerMessage =
$this->params->get('customer_message');
			$StringsToReplace = array('{customer_name}' =>
$customerName, '{code}' => $ticketCode,
'{staff_name}' => $staffName);
			$customerMessage = $this->replaceStringsInMessage($customerMessage,
$StringsToReplace);
			$this->sendSMS($customerMessage, $customerPhoneNumber);
		}
		
		$sendNotificationToStaff =
$this->params->get('staff_notification');
		if ($sendNotificationToStaff) {
			$staffID = $data['staff_id'];
			$subject = $data['subject'];

			// get staff's phone number
			$staffPhoneNumber = $this->findPhoneNumberByUserID($staffID);

			$staffMessage = $this->params->get('staff_message');
			$StringsToReplace = array('{subject}' => $subject,
'{code}' => $ticketCode);
			$staffMessage = $this->replaceStringsInMessage($staffMessage,
$StringsToReplace);
			$this->sendSMS($staffMessage, $staffPhoneNumber);
		}
		return true;
	}

	/**
	 * Plugin method with the same name as the event will be called
automatically.
	 */
	function onAfterStoreTicketReply($data)
	{
        echo "salamssss";
    die();
		$ticketID = $data['ticket_id'];
		$ticketCode = $this->findTicketCodeByTicketID($ticketID);

		$userID = $data['user_id'];

		// get customer's name
		$staffID = '';
		if (array_key_exists('staff_id', $data)) {
			// if RSTickets has provided staff_id, get it
			$staffID = $data['staff_id'];
		} else {
			// if RSTickets hasn't provided staff_id, find it using ticket id
			$staffID = $this->findStaffIDByTicketID($ticketID);
		}
		$staffName = $this->findNameByID($staffID);

		// get customer's name
		$customerID = '';
		if (array_key_exists('customer_id', $data)) {
			// if RSTickets has provided customer_id, get it
			$customerID = $data['customer_id']; 
		} else {
			// if RSTickets hasn't provided customer_id, find it using ticket
id
			$customerID = $this->findCustomerIDByTicketID($ticketID);
		}
		$customerName = $this->findNameByID($customerID);
		
		// if the staff has replied, notify the customer
		if ($userID == $staffID) {
			$sendNotificationToCustomer =
$this->params->get('customer_notification');
			if ($sendNotificationToCustomer) {
				// find the customer's phone number
				$customerPhoneNumber = $this->findPhoneNumberByUserID($customerID);
				// prepare the message
				$customerMessage =
$this->params->get('customer_message_on_staff_reply');
				$StringsToReplace = array('{customer_name}' =>
$customerName, '{staff_name}' => $staffName,
'{code}' => $ticketCode);
				$customerMessage = $this->replaceStringsInMessage($customerMessage,
$StringsToReplace);
				// notify the customer
				$this->sendSMS($customerMessage, $customerPhoneNumber);
			}
		}
		
		// if the customer has replied, notify the staff
		if ($userID == $customerID) {
			$sendNotificationToStaff =
$this->params->get('staff_notification');
			if ($sendNotificationToStaff) {
				// find the staff's phone number
				$staffPhoneNumber = $this->findPhoneNumberByUserID($staffID);
				// prepare the message
				$staffMessage =
$this->params->get('staff_message_on_customer_reply');
				$StringsToReplace = array('{customer_name}' =>
$customerName, '{staff_name}' => $staffName,
'{code}' => $ticketCode);
				$staffMessage = $this->replaceStringsInMessage($staffMessage,
$StringsToReplace);
				// notify the customer
				$this->sendSMS($staffMessage, $staffPhoneNumber);
			}
		}
		return true;
	}

	/**
	 * This method sends SMS using REST
	 */
	private function sendSMS($message, $phoneNumber)
	{
		$url = 'https://ippanel.com/services.jspd';
		$username = $this->params->get('username');
		$password = $this->params->get('password');
		$sender = $this->params->get('from');
		
		$recipients = array($phoneNumber);

		$fields = array
					(
						'uname'=>$username,
						'pass'=>$password,
						'from'=>$sender,
						'message'=>$message,
						'to'=>json_encode($recipients),
						'op'=>'send'
					);
					
		$handler = curl_init($url);             
		curl_setopt($handler, CURLOPT_CUSTOMREQUEST, "POST");
		curl_setopt($handler, CURLOPT_POSTFIELDS, $fields);                      

		curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
		$result = curl_exec($handler);

		return $result;
	}

	/**
	 * This method replaces strings in a given message
	 */
	private function replaceStringsInMessage($message, $stringArray)
	{
		// if stringArray is not an array, return and do not preceed.
		if (!is_array($stringArray)) {
			return $message;
		}

		foreach ($stringArray as $key => $value) {
			if (strpos($message, $key) !== false) {
				$message = str_replace($key, $value, $message);
			}
		}
		return $message;
	}

	/**
	 * This method finds Ticket code using Ticket id
	 */
	private function findTicketCodeByTicketID($ticketID)
	{
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

        $query->select($db->quoteName(array('code')));
       
$query->from($db->quoteName('#__rsticketspro_tickets'));
        $query->where($db->quoteName('id') . " =
" . $db->quote($ticketID));
		$query->setLimit('1');

        $db->setQuery($query);
        $ticketCode = $db->loadResult();

        return $ticketCode;
	}

	/**
	 * This method finds Staff id using Ticket id
	 */
	private function findStaffIDByTicketID($ticketID)
	{
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

        $query->select($db->quoteName(array('staff_id')));
       
$query->from($db->quoteName('#__rsticketspro_tickets'));
        $query->where($db->quoteName('id') . " =
" . $db->quote($ticketID));
		$query->setLimit('1');

        $db->setQuery($query);
        $staffID = $db->loadResult();

        return $staffID;
	}

	/**
	 * This method finds Customer id using Ticket id
	 */
	private function findCustomerIDByTicketID($ticketID)
	{
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

       
$query->select($db->quoteName(array('customer_id')));
       
$query->from($db->quoteName('#__rsticketspro_tickets'));
        $query->where($db->quoteName('id') . " =
" . $db->quote($ticketID));
		$query->setLimit('1');

        $db->setQuery($query);
        $customerID = $db->loadResult();

        return $customerID;
	}

	/**
	 * This method find user's name using her/his id.
	 */
	private function findNameByID($userID)
	{
		$userData = JFactory::getUser($userID);
		return $userData->name;
	}

	/**
	 * This method find user's Phone Number using her/his id.
	 */
	private function findPhoneNumberByUserID($userID)
	{
		$userProfile = JUserHelper::getProfile($userID);
		$phoneNumber = $userProfile->profile['phone'];

		return $this->validatePhoneNumber($phoneNumber);
	}

	/**
	 * This method checkes if the phone number is not empty and is valid
	 */
	private function validatePhoneNumber($phoneNumber)
	{
		if ($phoneNumber) {
			return $phoneNumber;
		} else return false;
	}
}PK�X�[�Q�W��;smsnotificationforrstickets/smsnotificationforrstickets.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin"
group="system" method="upgrade">
	<name>System - SMS Notification for RSTickets!</name>
	<author>Ehsan Kiasaty</author>
	<creationDate>April 2019</creationDate>
	<copyright>Copyright (C) 2019 golchinonline.ir All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or
later</license>
	<authorEmail>info2@golchinonline.ir</authorEmail>
	<authorUrl>www.golchinonline.ir</authorUrl>
	<version>1.0.1</version>
	<description>PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="smsnotificationforrstickets">smsnotificationforrstickets.php</filename>
		<filename>index.html</filename>
		<folder>language</folder>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_smsnotificationforrstickets.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_smsnotificationforrstickets.sys.ini</language>
		<language
tag="fa-IR">fa-IR/fa-IR.plg_system_smsnotificationforrstickets.ini</language>
		<language
tag="fa-IR">fa-IR/fa-IR.plg_system_smsnotificationforrstickets.sys.ini</language>
	</languages>
	<config>
		<fields name="params">

			<fieldset name="customer"
label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_TAB">
				<field
					name="customer_notification"
					type="radio"
					class="btn-group"
					default="1"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED"
				>
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>
				<field
					name="customer_message"
					type="textarea"
					default="Dear {customer_name}, your ticket was submitted
successfully. {staff_name} will check soon. Tracking ID: {code}"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_MESSAGE_LABEL"
					rows="10"
					filter="raw"
				/>
				<field
					name="customer_message_on_staff_reply"
					type="textarea"
					default="Dear {customer_name}, {staff_name} replied to your
ticket. Tracking ID: {code}"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CUSTOMER_REPLY_MESSAGE_LABEL"
					rows="10"
					filter="raw"
				/>
			</fieldset>

			<fieldset name="staff"
label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_TAB">
				<field
					name="staff_notification"
					type="radio"
					class="btn-group"
					default="1"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_NOTIFICATION_ENABLED"
				>
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>
				<field
					name="staff_message"
					type="textarea"
					default="A new ticket was submitted. Subject: {subject} Tracking
ID: {code}"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_MESSAGE_LABEL"
					rows="10"
					filter="raw"
				/>
				<field
					name="staff_message_on_customer_reply"
					type="textarea"
					default="{customer_name} replied to {code} ticket."
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_DESC"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_STAFF_REPLY_MESSAGE_LABEL"
					rows="10"
					filter="raw"
				/>
			</fieldset>

			<fieldset name="config"
label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_CONFIG_TAB">

				<field
					name="username"
					type="text"
					default=""
					hint="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_HINT"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_LABEL"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_USERNAME_DESC"
					size="20"
				/>

				<field
					name="password"
					type="text"
					default=""
					hint="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_HINT"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_LABEL"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_PASSWORD_DESC"
					size="20"
				/>

				<field
					name="from"
					type="text"
					default=""
					hint="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_HINT"
					label="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_LABEL"
					description="PLG_SYSTEM_SMS_NOTIFICATION_FOR_RSTICKETS_SENDER_DESC"
					size="20"
				/>
				
			</fieldset>

		</fields>
	</config>
</extension>PK�X�[�6�I��stats/field/base.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Base field for the Stats Plugin.
 *
 * @since  3.5
 */
abstract class PlgSystemStatsFormFieldBase extends JFormField
{
	/**
	 * Get the layouts paths
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	protected function getLayoutPaths()
	{
		$template = JFactory::getApplication()->getTemplate();

		return array(
			JPATH_ADMINISTRATOR . '/templates/' . $template .
'/html/layouts/plugins/system/stats',
			dirname(__DIR__) . '/layouts',
			JPATH_SITE . '/layouts'
		);
	}
}
PK�X�[=�ؙ��stats/field/data.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 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('PlgSystemStatsFormFieldBase', __DIR__ .
'/base.php');

/**
 * Unique ID Field class for the Stats Plugin.
 *
 * @since  3.5
 */
class PlgSystemStatsFormFieldData extends PlgSystemStatsFormFieldBase
{
	/**
	 * The form field type.
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $type = 'Data';

	/**
	 * Name of the layout being used to render the field
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $layout = 'field.data';

	/**
	 * Method to get the data to be passed to the layout for rendering.
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	protected function getLayoutData()
	{
		$data       = parent::getLayoutData();

		$dispatcher = JEventDispatcher::getInstance();
		JPluginHelper::importPlugin('system', 'stats');

		$result = $dispatcher->trigger('onGetStatsData',
array('stats.field.data'));

		$data['statsData'] = $result ? reset($result) : array();

		return $data;
	}
}
PK�X�[G���stats/field/uniqueid.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 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('PlgSystemStatsFormFieldBase', __DIR__ .
'/base.php');

/**
 * Unique ID Field class for the Stats Plugin.
 *
 * @since  3.5
 */
class PlgSystemStatsFormFieldUniqueid extends PlgSystemStatsFormFieldBase
{
	/**
	 * The form field type.
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $type = 'Uniqueid';

	/**
	 * Name of the layout being used to render the field
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $layout = 'field.uniqueid';
}
PK�X�[����stats/layouts/field/data.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

extract($displayData);

/**
 * Layout variables
 * -----------------
 * @var   string   $autocomplete    Autocomplete attribute for the field.
 * @var   boolean  $autofocus       Is autofocus enabled?
 * @var   string   $class           Classes for the input.
 * @var   string   $description     Description of the field.
 * @var   boolean  $disabled        Is this field disabled?
 * @var   string   $group           Group the field belongs to.
<fields> section in form XML.
 * @var   boolean  $hidden          Is this field hidden in the form?
 * @var   string   $hint            Placeholder for the field.
 * @var   string   $id              DOM id of the field.
 * @var   string   $label           Label of the field.
 * @var   string   $labelclass      Classes to apply to the label.
 * @var   boolean  $multiple        Does this field support multiple
values?
 * @var   string   $name            Name of the input field.
 * @var   string   $onchange        Onchange attribute for the field.
 * @var   string   $onclick         Onclick attribute for the field.
 * @var   string   $pattern         Pattern (Reg Ex) of value of the form
field.
 * @var   boolean  $readonly        Is this field read only?
 * @var   boolean  $repeat          Allows extensions to duplicate
elements.
 * @var   boolean  $required        Is this field required?
 * @var   integer  $size            Size attribute of the input.
 * @var   boolean  $spellcheck      Spellcheck state for the form field.
 * @var   string   $validate        Validation rules to apply.
 * @var   string   $value           Value attribute of the field.
 * @var   array    $options         Options available for this field.
 * @var   array    $statsData       Statistics that will be sent to the
stats server
 */

JHtml::_('jquery.framework');
?>
<a href="#" onclick="jQuery(this).next().toggle(200);
return false;"><?php echo
JText::_('PLG_SYSTEM_STATS_MSG_WHAT_DATA_WILL_BE_SENT');
?></a>
<?php
echo $field->render('stats', compact('statsData'));
PK�X�[CT�^		
stats/layouts/field/uniqueid.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

extract($displayData);

/**
 * Layout variables
 * -----------------
 * @var   string   $autocomplete    Autocomplete attribute for the field.
 * @var   boolean  $autofocus       Is autofocus enabled?
 * @var   string   $class           Classes for the input.
 * @var   string   $description     Description of the field.
 * @var   boolean  $disabled        Is this field disabled?
 * @var   string   $group           Group the field belongs to.
<fields> section in form XML.
 * @var   boolean  $hidden          Is this field hidden in the form?
 * @var   string   $hint            Placeholder for the field.
 * @var   string   $id              DOM id of the field.
 * @var   string   $label           Label of the field.
 * @var   string   $labelclass      Classes to apply to the label.
 * @var   boolean  $multiple        Does this field support multiple
values?
 * @var   string   $name            Name of the input field.
 * @var   string   $onchange        Onchange attribute for the field.
 * @var   string   $onclick         Onclick attribute for the field.
 * @var   string   $pattern         Pattern (Reg Ex) of value of the form
field.
 * @var   boolean  $readonly        Is this field read only?
 * @var   boolean  $repeat          Allows extensions to duplicate
elements.
 * @var   boolean  $required        Is this field required?
 * @var   integer  $size            Size attribute of the input.
 * @var   boolean  $spellcheck      Spellcheck state for the form field.
 * @var   string   $validate        Validation rules to apply.
 * @var   string   $value           Value attribute of the field.
 * @var   array    $options         Options available for this field.
 */
?>
<input type="hidden" name="<?php echo $name;
?>" id="<?php echo $id; ?>" value="<?php
echo htmlspecialchars($value, ENT_COMPAT, 'UTF-8'); ?>"
/>
<a class="btn"
onclick="document.getElementById('<?php echo $id;
?>').value='';Joomla.submitbutton('plugin.apply');">
	<span class="icon-refresh"></span> <?php echo
JText::_('PLG_SYSTEM_STATS_RESET_UNIQUE_ID'); ?>
</a>PK�X�[9�^stats/layouts/message.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

extract($displayData);

/**
 * Layout variables
 * -----------------
 * @var  PlgSystemStats             $plugin        Plugin rendering this
layout
 * @var  \Joomla\Registry\Registry  $pluginParams  Plugin parameters
 * @var  array                      $statsData     Array containing the
data that will be sent to the stats server
 */
?>
<div class="alert alert-info js-pstats-alert"
style="display:none;">
	<button data-dismiss="alert" class="close"
type="button">×</button>
	<h2><?php echo
JText::_('PLG_SYSTEM_STATS_LABEL_MESSAGE_TITLE');
?></h2>
	<p>
		<?php echo
JText::_('PLG_SYSTEM_STATS_MSG_JOOMLA_WANTS_TO_SEND_DATA'); ?>
		<a href="#" class="js-pstats-btn-details
alert-link"><?php echo
JText::_('PLG_SYSTEM_STATS_MSG_WHAT_DATA_WILL_BE_SENT');
?></a>
	</p>
	<?php
		echo $plugin->render('stats',
compact('statsData'));
	?>
	<p><?php echo
JText::_('PLG_SYSTEM_STATS_MSG_ALLOW_SENDING_DATA');
?></p>
	<p class="actions">
		<a href="#" class="btn
js-pstats-btn-allow-always"><?php echo
JText::_('PLG_SYSTEM_STATS_BTN_SEND_ALWAYS'); ?></a>
		<a href="#" class="btn
js-pstats-btn-allow-once"><?php echo
JText::_('PLG_SYSTEM_STATS_BTN_SEND_NOW'); ?></a>
		<a href="#" class="btn
js-pstats-btn-allow-never"><?php echo
JText::_('PLG_SYSTEM_STATS_BTN_NEVER_SEND'); ?></a>
	</p>
</div>
PK�X�[�ossstats/layouts/stats.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

extract($displayData);

/**
 * Layout variables
 * -----------------
 * @var  array  $statsData  Array containing the data that will be sent to
the stats server
 */

$versionFields = array('php_version', 'db_version',
'cms_version');
?>
<dl class="dl-horizontal js-pstats-data-details" 
style="display:none;">
	<?php foreach ($statsData as $key => $value) : ?>
		<dt><?php echo JText::_('PLG_SYSTEM_STATS_LABEL_' .
strtoupper($key)); ?></dt>
		<dd><?php echo in_array($key, $versionFields) ?
(preg_match('/\d+(?:\.\d+)+/', $value, $matches) ? $matches[0] :
$value) : $value; ?></dd>
	<?php endforeach; ?>
</dl>
PK�X�[�:'�1�1stats/stats.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.stats
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

// Uncomment the following line to enable debug mode for testing purposes.
Note: statistics will be sent on every page load
// define('PLG_SYSTEM_STATS_DEBUG', 1);

/**
 * Statistics system plugin. This sends anonymous data back to the Joomla!
Project about the
 * PHP, SQL, Joomla and OS versions
 *
 * @since  3.5
 */
class PlgSystemStats extends JPlugin
{
	/**
	 * Indicates sending statistics is always allowed.
	 *
	 * @var    integer
	 * @since  3.5
	 */
	const MODE_ALLOW_ALWAYS = 1;

	/**
	 * Indicates sending statistics is only allowed one time.
	 *
	 * @var    integer
	 * @since  3.5
	 */
	const MODE_ALLOW_ONCE = 2;

	/**
	 * Indicates sending statistics is never allowed.
	 *
	 * @var    integer
	 * @since  3.5
	 */
	const MODE_ALLOW_NEVER = 3;

	/**
	 * Application object
	 *
	 * @var    JApplicationCms
	 * @since  3.5
	 */
	protected $app;

	/**
	 * Database object
	 *
	 * @var    JDatabaseDriver
	 * @since  3.5
	 */
	protected $db;

	/**
	 * URL to send the statistics.
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $serverUrl =
'https://developer.joomla.org/stats/submit';

	/**
	 * Unique identifier for this site
	 *
	 * @var    string
	 * @since  3.5
	 */
	protected $uniqueId;

	/**
	 * Listener for the `onAfterInitialise` event
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function onAfterInitialise()
	{
		if (!$this->app->isClient('administrator') ||
!$this->isAllowedUser())
		{
			return;
		}

		if (!$this->isDebugEnabled() && !$this->isUpdateRequired())
		{
			return;
		}

		if (JUri::getInstance()->getVar('tmpl') ===
'component')
		{
			return;
		}

		// Load plugin language files only when needed (ex: they are not needed
in site client).
		$this->loadLanguage();

		JHtml::_('jquery.framework');
		JHtml::_('script', 'plg_system_stats/stats.js',
array('version' => 'auto', 'relative'
=> true));
	}

	/**
	 * User selected to always send data
	 *
	 * @return  void
	 *
	 * @since   3.5
	 *
	 * @throws  Exception         If user is not allowed.
	 * @throws  RuntimeException  If there is an error saving the params or
sending the data.
	 */
	public function onAjaxSendAlways()
	{
		if (!$this->isAllowedUser() || !$this->isAjaxRequest())
		{
			throw new Exception(JText::_('JGLOBAL_AUTH_ACCESS_DENIED'),
403);
		}

		$this->params->set('mode', static::MODE_ALLOW_ALWAYS);

		if (!$this->saveParams())
		{
			throw new RuntimeException('Unable to save plugin settings',
500);
		}

		$this->sendStats();

		echo json_encode(array('sent' => 1));
	}

	/**
	 * User selected to never send data.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 *
	 * @throws  Exception         If user is not allowed.
	 * @throws  RuntimeException  If there is an error saving the params.
	 */
	public function onAjaxSendNever()
	{
		if (!$this->isAllowedUser() || !$this->isAjaxRequest())
		{
			throw new Exception(JText::_('JGLOBAL_AUTH_ACCESS_DENIED'),
403);
		}

		$this->params->set('mode', static::MODE_ALLOW_NEVER);

		if (!$this->saveParams())
		{
			throw new RuntimeException('Unable to save plugin settings',
500);
		}

		echo json_encode(array('sent' => 0));
	}

	/**
	 * User selected to send data once.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 *
	 * @throws  Exception         If user is not allowed.
	 * @throws  RuntimeException  If there is an error saving the params or
sending the data.
	 */
	public function onAjaxSendOnce()
	{
		if (!$this->isAllowedUser() || !$this->isAjaxRequest())
		{
			throw new Exception(JText::_('JGLOBAL_AUTH_ACCESS_DENIED'),
403);
		}

		$this->params->set('mode', static::MODE_ALLOW_ONCE);

		if (!$this->saveParams())
		{
			throw new RuntimeException('Unable to save plugin settings',
500);
		}

		$this->sendStats();

		echo json_encode(array('sent' => 1));
	}

	/**
	 * Send the stats to the server.
	 * On first load | on demand mode it will show a message asking users to
select mode.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 *
	 * @throws  Exception         If user is not allowed.
	 * @throws  RuntimeException  If there is an error saving the params or
sending the data.
	 */
	public function onAjaxSendStats()
	{
		if (!$this->isAllowedUser() || !$this->isAjaxRequest())
		{
			throw new Exception(JText::_('JGLOBAL_AUTH_ACCESS_DENIED'),
403);
		}

		// User has not selected the mode. Show message.
		if ((int) $this->params->get('mode') !==
static::MODE_ALLOW_ALWAYS)
		{
			$data = array(
				'sent' => 0,
				'html' =>
$this->getRenderer('message')->render($this->getLayoutData())
			);

			echo json_encode($data);

			return;
		}

		if (!$this->saveParams())
		{
			throw new RuntimeException('Unable to save plugin settings',
500);
		}

		$this->sendStats();

		echo json_encode(array('sent' => 1));
	}

	/**
	 * Get the data through events
	 *
	 * @param   string  $context  Context where this will be called from
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	public function onGetStatsData($context)
	{
		return $this->getStatsData();
	}

	/**
	 * Debug a layout of this plugin
	 *
	 * @param   string  $layoutId  Layout identifier
	 * @param   array   $data      Optional data for the layout
	 *
	 * @return  string
	 *
	 * @since   3.5
	 */
	public function debug($layoutId, $data = array())
	{
		$data = array_merge($this->getLayoutData(), $data);

		return $this->getRenderer($layoutId)->debug($data);
	}

	/**
	 * Get the data for the layout
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	protected function getLayoutData()
	{
		return array(
			'plugin'       => $this,
			'pluginParams' => $this->params,
			'statsData'    => $this->getStatsData()
		);
	}

	/**
	 * Get the layout paths
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	protected function getLayoutPaths()
	{
		$template = JFactory::getApplication()->getTemplate();

		return array(
			JPATH_ADMINISTRATOR . '/templates/' . $template .
'/html/layouts/plugins/' . $this->_type . '/' .
$this->_name,
			__DIR__ . '/layouts',
		);
	}

	/**
	 * Get the plugin renderer
	 *
	 * @param   string  $layoutId  Layout identifier
	 *
	 * @return  JLayout
	 *
	 * @since   3.5
	 */
	protected function getRenderer($layoutId = 'default')
	{
		$renderer = new JLayoutFile($layoutId);

		$renderer->setIncludePaths($this->getLayoutPaths());

		return $renderer;
	}

	/**
	 * Get the data that will be sent to the stats server.
	 *
	 * @return  array
	 *
	 * @since   3.5
	 */
	private function getStatsData()
	{
		$data = array(
			'unique_id'   => $this->getUniqueId(),
			'php_version' => PHP_VERSION,
			'db_type'     => $this->db->name,
			'db_version'  => $this->db->getVersion(),
			'cms_version' => JVERSION,
			'server_os'   => php_uname('s') . ' ' .
php_uname('r')
		);

		// Check if we have a MariaDB version string and extract the proper
version from it
		if
(preg_match('/^(?:5\.5\.5-)?(mariadb-)?(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)/i',
$data['db_version'], $versionParts))
		{
			$data['db_version'] = $versionParts['major'] .
'.' . $versionParts['minor'] . '.' .
$versionParts['patch'];
		}

		return $data;
	}

	/**
	 * Get the unique id. Generates one if none is set.
	 *
	 * @return  integer
	 *
	 * @since   3.5
	 */
	private function getUniqueId()
	{
		if (null === $this->uniqueId)
		{
			$this->uniqueId = $this->params->get('unique_id',
hash('sha1', JUserHelper::genRandomPassword(28) . time()));
		}

		return $this->uniqueId;
	}

	/**
	 * Check if current user is allowed to send the data
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 */
	private function isAllowedUser()
	{
		return JFactory::getUser()->authorise('core.admin');
	}

	/**
	 * Check if the debug is enabled
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 */
	private function isDebugEnabled()
	{
		return defined('PLG_SYSTEM_STATS_DEBUG');
	}

	/**
	 * Check if last_run + interval > now
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 */
	private function isUpdateRequired()
	{
		$last     = (int) $this->params->get('lastrun', 0);
		$interval = (int) $this->params->get('interval', 12);
		$mode     = (int) $this->params->get('mode', 0);

		if ($mode === static::MODE_ALLOW_NEVER)
		{
			return false;
		}

		// Never updated or debug enabled
		if (!$last || $this->isDebugEnabled())
		{
			return true;
		}

		return (abs(time() - $last) > $interval * 3600);
	}

	/**
	 * Check valid AJAX request
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 */
	private function isAjaxRequest()
	{
		return
strtolower($this->app->input->server->get('HTTP_X_REQUESTED_WITH',
'')) === 'xmlhttprequest';
	}

	/**
	 * Render a layout of this plugin
	 *
	 * @param   string  $layoutId  Layout identifier
	 * @param   array   $data      Optional data for the layout
	 *
	 * @return  string
	 *
	 * @since   3.5
	 */
	public function render($layoutId, $data = array())
	{
		$data = array_merge($this->getLayoutData(), $data);

		return $this->getRenderer($layoutId)->render($data);
	}

	/**
	 * Save the plugin parameters
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 */
	private function saveParams()
	{
		// Update params
		$this->params->set('lastrun', time());
		$this->params->set('unique_id', $this->getUniqueId());
		$interval = (int) $this->params->get('interval', 12);
		$this->params->set('interval', $interval ?: 12);

		$query = $this->db->getQuery(true)
				->update($this->db->quoteName('#__extensions'))
				->set($this->db->quoteName('params') . ' =
' .
$this->db->quote($this->params->toString('JSON')))
				->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
				->where($this->db->quoteName('folder') . ' =
' . $this->db->quote('system'))
				->where($this->db->quoteName('element') . ' =
' . $this->db->quote('stats'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$this->db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risky to continue
execution
			return false;
		}

		try
		{
			// Update the plugin parameters
			$result = $this->db->setQuery($query)->execute();

			$this->clearCacheGroups(array('com_plugins'), array(0, 1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$this->db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$this->db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		return $result;
	}

	/**
	 * Send the stats to the stats server
	 *
	 * @return  boolean
	 *
	 * @since   3.5
	 *
	 * @throws  RuntimeException  If there is an error sending the data.
	 */
	private function sendStats()
	{
		try
		{
			// Don't let the request take longer than 2 seconds to avoid page
timeout issues
			$response = JHttpFactory::getHttp()->post($this->serverUrl,
$this->getStatsData(), null, 2);
		}
		catch (UnexpectedValueException $e)
		{
			// There was an error sending stats. Should we do anything?
			throw new RuntimeException('Could not send site statistics to
remote server: ' . $e->getMessage(), 500);
		}
		catch (RuntimeException $e)
		{
			// There was an error connecting to the server or in the post request
			throw new RuntimeException('Could not connect to statistics server:
' . $e->getMessage(), 500);
		}
		catch (Exception $e)
		{
			// An unexpected error in processing; don't let this failure kill
the site
			throw new RuntimeException('Unexpected error connecting to
statistics server: ' . $e->getMessage(), 500);
		}

		if ($response->code !== 200)
		{
			$data = json_decode($response->body);

			throw new RuntimeException('Could not send site statistics to
remote server: ' . $data->message, $response->code);
		}

		return true;
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => $client_id ? JPATH_ADMINISTRATOR .
'/cache' : $this->app->get('cache_path',
JPATH_SITE . '/cache')
					);

					$cache = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}
}
PK�X�[O���stats/stats.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin"
group="system" method="upgrade">
	<name>plg_system_stats</name>
	<author>Joomla! Project</author>
	<creationDate>November 2013</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.5.0</version>
	<description>PLG_SYSTEM_STATS_XML_DESCRIPTION</description>
	<files>
		<folder>field</folder>
		<folder>layouts</folder>
		<filename plugin="stats">stats.php</filename>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_stats.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_stats.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="data"
					type="plgsystemstats.data"
					label=""
				/>

				<field
					name="unique_id"
					type="plgsystemstats.uniqueid"
					label="PLG_SYSTEM_STATS_UNIQUE_ID_LABEL"
					description="PLG_SYSTEM_STATS_UNIQUE_ID_DESC"
					size="10"
				/>

				<field
					name="interval"
					type="number"
					label="PLG_SYSTEM_STATS_INTERVAL_LABEL"
					description="PLG_SYSTEM_STATS_INTERVAL_DESC"
					filter="integer"
					default="12"
				/>

				<field
					name="mode"
					type="list"
					label="PLG_SYSTEM_STATS_MODE_LABEL"
					description="PLG_SYSTEM_STATS_MODE_DESC"
					default="1"
					>
					<option
value="1">PLG_SYSTEM_STATS_MODE_OPTION_ALWAYS_SEND</option>
					<option
value="2">PLG_SYSTEM_STATS_MODE_OPTION_ON_DEMAND</option>
					<option
value="3">PLG_SYSTEM_STATS_MODE_OPTION_NEVER_SEND</option>
				</field>

				<field
					name="lastrun"
					type="hidden"
					default="0"
					size="15"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[��ހzz/ticketfromcontactform/ticketfromcontactform.phpnu�[���<?php
/**
 * @version        4.3.0
 * @package        Joomla
 * @subpackage     Helpdesk Pro
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2013 - 2021 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */

defined('_JEXEC') or die;

use Joomla\CMS\Plugin\CMSPlugin;

class plgSystemTicketFromContactForm extends CMSPlugin
{

	public function onAfterRoute()
	{
		$app = JFactory::getApplication();

		if ($app->isClient('administrator'))
		{
			return;
		}

		if (!file_exists(JPATH_ROOT .
'/components/com_helpdeskpro/Helper/Helper.php'))
		{
			return;
		}

		$option = $app->input->getCmd('option');
		$task   = $app->input->getCmd('task');
		if ($option == 'com_contact' && $task ==
'contact.submit')
		{
			// Bootstrap the component
			require_once JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/init.php';

			// Get component config data
			$config = require JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/config.php';

			// Creating component container, register auto-loader
			$container =
OSL\Container\Container::getInstance('com_helpdeskpro',
$config);

			$config              =
OSSolution\HelpdeskPro\Site\Helper\Helper::getConfig();
			$contactData         = $app->input->get('jform',
array(), 'array');
			$data                = array();
			$data['name']        =
$contactData['contact_name'];
			$data['email']       =
$contactData['contact_email'];
			$data['subject']     =
$contactData['contact_subject'];
			$data['message']     =
nl2br($contactData['contact_message']);
			$data['category_id'] =
$this->params->get('category_id');
			$data['priority_id'] =
$config->default_ticket_priority_id;

			if (!empty($data['name']) &&
!empty($data['email']) &&
!empty($data['subject']) &&
!empty($data['message']))
			{
				OSSolution\HelpdeskPro\Site\Helper\Helper::storeTicket($data);
			}
		}
	}
}PK�X�[�H/ticketfromcontactform/ticketfromcontactform.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="1.6" type="plugin"
group="system" method="upgrade">
	<name>System - Helpdesk Pro Ticket From Contact Form</name>
	<author>Tuan Pham Ngoc</author>
	<authorEmail>contact@joomdonation.com</authorEmail>
	<authorUrl>http://www.joomdonation.com</authorUrl>
	<copyright>Copyright (C) 2012 - 2021 Ossolution
Team</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<version>2.1.0</version>
	<description>This is a system plugin which is used to generate
Helpdesk Pro ticket when users send contact email via Joomla contact
Form</description>
	<files>		
		<filename
plugin="ticketfromcontactform">ticketfromcontactform.php</filename>				
	</files>
	<config>
		<fields name="params">
			<fieldset name="basic">				
				<field name="category_id" label="Default
Category" type="text" size="30"
default="" description="Enter ID of the category which the
ticket will be assigned to"></field>
			</fieldset>
		</fields>
	</config>	
</extension>PK�X�[k���2updatenotification/postinstall/updatecachetime.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.updatenotification
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

/**
 * Checks if the com_installer config for the cache Hours are eq 0 and the
updatenotification Plugin is enabled
 *
 * @return  boolean
 *
 * @since   3.6.3
 */
function updatecachetime_postinstall_condition()
{
	$cacheTimeout = (int)
JComponentHelper::getComponent('com_installer')->params->get('cachetimeout',
6);

	// Check if cachetimeout is eq zero
	if ($cacheTimeout === 0 &&
JPluginHelper::isEnabled('system',
'updatenotification'))
	{
		return true;
	}

	return false;
}

/**
 * Sets the cachtimeout back to the default (6 hours)
 *
 * @return  void
 *
 * @since   3.6.3
 */
function updatecachetime_postinstall_action()
{
	$installer = JComponentHelper::getComponent('com_installer');

	// Sets the cachtimeout back to the default (6 hours)
	$installer->params->set('cachetimeout', 6);

	// Save the new parameters back to com_installer
	$table = JTable::getInstance('extension');
	$table->load($installer->id);
	$table->bind(array('params' =>
$installer->params->toString()));

	// Store the changes
	if (!$table->store())
	{
		// If there is an error show it to the admin
		JFactory::getApplication()->enqueueMessage($table->getError(),
'error');
	}
}
PK�X�[��c-c-)updatenotification/updatenotification.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.updatenotification
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

// Uncomment the following line to enable debug mode (update notification
email sent every single time)
// define('PLG_SYSTEM_UPDATENOTIFICATION_DEBUG', 1);

/**
 * Joomla! Update Notification plugin
 *
 * Sends out an email to all Super Users or a predefined email address when
a new Joomla! version is available.
 *
 * This plugin is a direct adaptation of the corresponding plugin in Akeeba
Ltd's Admin Tools. The author has
 * consented to relicensing their plugin's code under GPLv2 or later
(the original version was licensed under
 * GPLv3 or later) to allow its inclusion in the Joomla! CMS.
 *
 * @since  3.5
 */
class PlgSystemUpdatenotification extends JPlugin
{
	/**
	 * Load plugin language files automatically
	 *
	 * @var    boolean
	 * @since  3.6.3
	 */
	protected $autoloadLanguage = true;

	/**
	 * The update check and notification email code is triggered after the
page has fully rendered.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function onAfterRender()
	{
		// Get the timeout for Joomla! updates, as configured in
com_installer's component parameters
		$component = JComponentHelper::getComponent('com_installer');

		/** @var \Joomla\Registry\Registry $params */
		$params        = $component->params;
		$cache_timeout = (int) $params->get('cachetimeout', 6);
		$cache_timeout = 3600 * $cache_timeout;

		// Do we need to run? Compare the last run timestamp stored in the
plugin's options with the current
		// timestamp. If the difference is greater than the cache timeout we
shall not execute again.
		$now  = time();
		$last = (int) $this->params->get('lastrun', 0);

		if (!defined('PLG_SYSTEM_UPDATENOTIFICATION_DEBUG') &&
(abs($now - $last) < $cache_timeout))
		{
			return;
		}

		// Update last run status
		// If I have the time of the last run, I can update, otherwise insert
		$this->params->set('lastrun', $now);

		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
					->update($db->qn('#__extensions'))
					->set($db->qn('params') . ' = ' .
$db->q($this->params->toString('JSON')))
					->where($db->qn('type') . ' = ' .
$db->q('plugin'))
					->where($db->qn('folder') . ' = ' .
$db->q('system'))
					->where($db->qn('element') . ' = ' .
$db->q('updatenotification'));

		try
		{
			// Lock the tables to prevent multiple plugin executions causing a race
condition
			$db->lockTable('#__extensions');
		}
		catch (Exception $e)
		{
			// If we can't lock the tables it's too risky to continue
execution
			return;
		}

		try
		{
			// Update the plugin parameters
			$result = $db->setQuery($query)->execute();

			$this->clearCacheGroups(array('com_plugins'), array(0, 1));
		}
		catch (Exception $exc)
		{
			// If we failed to execute
			$db->unlockTables();
			$result = false;
		}

		try
		{
			// Unlock the tables after writing
			$db->unlockTables();
		}
		catch (Exception $e)
		{
			// If we can't lock the tables assume we have somehow failed
			$result = false;
		}

		// Abort on failure
		if (!$result)
		{
			return;
		}

		// This is the extension ID for Joomla! itself
		$eid = 700;

		// Get any available updates
		$updater = JUpdater::getInstance();
		$results = $updater->findUpdates(array($eid), $cache_timeout);

		// If there are no updates our job is done. We need BOTH this check AND
the one below.
		if (!$results)
		{
			return;
		}

		// Unfortunately Joomla! MVC doesn't allow us to autoload classes
		JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_installer/models', 'InstallerModel');

		// Get the update model and retrieve the Joomla! core updates
		$model = JModelLegacy::getInstance('Update',
'InstallerModel');
		$model->setState('filter.extension_id', $eid);
		$updates = $model->getItems();

		// If there are no updates we don't have to notify anyone about
anything. This is NOT a duplicate check.
		if (empty($updates))
		{
			return;
		}

		// Get the available update
		$update = array_pop($updates);

		// Check the available version. If it's the same or less than the
installed version we have no updates to notify about.
		if (version_compare($update->version, JVERSION, 'le'))
		{
			return;
		}

		// If we're here, we have updates. First, get a link to the Joomla!
Update component.
		$baseURL  = JUri::base();
		$baseURL  = rtrim($baseURL, '/');
		$baseURL .= (substr($baseURL, -13) !== 'administrator') ?
'/administrator/' : '/';
		$baseURL .= 'index.php?option=com_joomlaupdate';
		$uri      = new JUri($baseURL);

		/**
		 * Some third party security solutions require a secret query parameter
to allow log in to the administrator
		 * backend of the site. The link generated above will be invalid and
could probably block the user out of their
		 * site, confusing them (they can't understand the third party
security solution is not part of Joomla! proper).
		 * So, we're calling the onBuildAdministratorLoginURL system plugin
event to let these third party solutions
		 * add any necessary secret query parameters to the URL. The plugins are
supposed to have a method with the
		 * signature:
		 *
		 * public function onBuildAdministratorLoginURL(JUri &$uri);
		 *
		 * The plugins should modify the $uri object directly and return null.
		 */

		JEventDispatcher::getInstance()->trigger('onBuildAdministratorLoginURL',
array(&$uri));

		// Let's find out the email addresses to notify
		$superUsers    = array();
		$specificEmail = $this->params->get('email',
'');

		if (!empty($specificEmail))
		{
			$superUsers = $this->getSuperUsers($specificEmail);
		}

		if (empty($superUsers))
		{
			$superUsers = $this->getSuperUsers();
		}

		if (empty($superUsers))
		{
			return;
		}

		/*
		 * Load the appropriate language. We try to load English (UK), the
current user's language and the forced
		 * language preference, in this order. This ensures that we'll never
end up with untranslated strings in the
		 * update email which would make Joomla! seem bad. So, please, if you
don't fully understand what the
		 * following code does DO NOT TOUCH IT. It makes the difference between a
hobbyist CMS and a professional
		 * solution! 
		 */
		$jLanguage = JFactory::getLanguage();
		$jLanguage->load('plg_system_updatenotification',
JPATH_ADMINISTRATOR, 'en-GB', true, true);
		$jLanguage->load('plg_system_updatenotification',
JPATH_ADMINISTRATOR, null, true, false);

		// Then try loading the preferred (forced) language
		$forcedLanguage = $this->params->get('language_override',
'');

		if (!empty($forcedLanguage))
		{
			$jLanguage->load('plg_system_updatenotification',
JPATH_ADMINISTRATOR, $forcedLanguage, true, false);
		}

		// Set up the email subject and body

		$email_subject =
JText::_('PLG_SYSTEM_UPDATENOTIFICATION_EMAIL_SUBJECT');
		$email_body    =
JText::_('PLG_SYSTEM_UPDATENOTIFICATION_EMAIL_BODY');

		// Replace merge codes with their values
		$newVersion = $update->version;

		$jVersion       = new JVersion;
		$currentVersion = $jVersion->getShortVersion();

		$jConfig  = JFactory::getConfig();
		$sitename = $jConfig->get('sitename');
		$mailFrom = $jConfig->get('mailfrom');
		$fromName = $jConfig->get('fromname');

		$substitutions = array(
			'[NEWVERSION]'  => $newVersion,
			'[CURVERSION]'  => $currentVersion,
			'[SITENAME]'    => $sitename,
			'[URL]'         => JUri::base(),
			'[LINK]'        => $uri->toString(),
			'[RELEASENEWS]' =>
'https://www.joomla.org/announcements/release-news/',
			'\\n'           => "\n",
		);

		foreach ($substitutions as $k => $v)
		{
			$email_subject = str_replace($k, $v, $email_subject);
			$email_body    = str_replace($k, $v, $email_body);
		}

		// Send the emails to the Super Users
		foreach ($superUsers as $superUser)
		{
			$mailer = JFactory::getMailer();
			$mailer->setSender(array($mailFrom, $fromName));
			$mailer->addRecipient($superUser->email);
			$mailer->setSubject($email_subject);
			$mailer->setBody($email_body);
			$mailer->Send();
		}
	}

	/**
	 * Returns the Super Users email information. If you provide a comma
separated $email list
	 * we will check that these emails do belong to Super Users and that they
have not blocked
	 * system emails.
	 *
	 * @param   null|string  $email  A list of Super Users to email
	 *
	 * @return  array  The list of Super User emails
	 *
	 * @since   3.5
	 */
	private function getSuperUsers($email = null)
	{
		// Get a reference to the database object
		$db = JFactory::getDbo();

		// Convert the email list to an array
		if (!empty($email))
		{
			$temp   = explode(',', $email);
			$emails = array();

			foreach ($temp as $entry)
			{
				$entry    = trim($entry);
				$emails[] = $db->q($entry);
			}

			$emails = array_unique($emails);
		}
		else
		{
			$emails = array();
		}

		// Get a list of groups which have Super User privileges
		$ret = array();

		try
		{
			$rootId    = JTable::getInstance('Asset',
'JTable')->getRootId();
			$rules     = JAccess::getAssetRules($rootId)->getData();
			$rawGroups = $rules['core.admin']->getData();
			$groups    = array();

			if (empty($rawGroups))
			{
				return $ret;
			}

			foreach ($rawGroups as $g => $enabled)
			{
				if ($enabled)
				{
					$groups[] = $db->q($g);
				}
			}

			if (empty($groups))
			{
				return $ret;
			}
		}
		catch (Exception $exc)
		{
			return $ret;
		}

		// Get the user IDs of users belonging to the SA groups
		try
		{
			$query = $db->getQuery(true)
						->select($db->qn('user_id'))
						->from($db->qn('#__user_usergroup_map'))
						->where($db->qn('group_id') . ' IN(' .
implode(',', $groups) . ')');
			$db->setQuery($query);
			$rawUserIDs = $db->loadColumn(0);

			if (empty($rawUserIDs))
			{
				return $ret;
			}

			$userIDs = array();

			foreach ($rawUserIDs as $id)
			{
				$userIDs[] = $db->q($id);
			}
		}
		catch (Exception $exc)
		{
			return $ret;
		}

		// Get the user information for the Super Administrator users
		try
		{
			$query = $db->getQuery(true)
						->select(
							array(
								$db->qn('id'),
								$db->qn('username'),
								$db->qn('email'),
							)
						)->from($db->qn('#__users'))
						->where($db->qn('id') . ' IN(' .
implode(',', $userIDs) . ')')
						->where($db->qn('block') . ' = 0')
						->where($db->qn('sendEmail') . ' = ' .
$db->q('1'));

			if (!empty($emails))
			{
				$query->where('LOWER(' . $db->qn('email') .
') IN(' . implode(',',
array_map('strtolower', $emails)) . ')');
			}

			$db->setQuery($query);
			$ret = $db->loadObjectList();
		}
		catch (Exception $exc)
		{
			return $ret;
		}

		return $ret;
	}

	/**
	 * Clears cache groups. We use it to clear the plugins cache after we
update the last run timestamp.
	 *
	 * @param   array  $clearGroups   The cache groups to clean
	 * @param   array  $cacheClients  The cache clients (site, admin) to clean
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	private function clearCacheGroups(array $clearGroups, array $cacheClients
= array(0, 1))
	{
		$conf = JFactory::getConfig();

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase'    => $client_id ? JPATH_ADMINISTRATOR .
'/cache' :
							$conf->get('cache_path', JPATH_SITE .
'/cache')
					);

					$cache = JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $e)
				{
					// Ignore it
				}
			}
		}
	}
}
PK�X�[�2��[[)updatenotification/updatenotification.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin"
group="system" method="upgrade">
	<name>plg_system_updatenotification</name>
	<author>Joomla! Project</author>
	<creationDate>May 2015</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.5.0</version>
	<description>PLG_SYSTEM_UPDATENOTIFICATION_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="updatenotification">updatenotification.php</filename>
	</files>
	<languages folder="language">
		<language
tag="en-GB">en-GB.plg_system_updatenotification.ini</language>
		<language
tag="en-GB">en-GB.plg_system_updatenotification.sys.ini</language>
	</languages>
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="email"
					type="text"
					label="PLG_SYSTEM_UPDATENOTIFICATION_EMAIL_LBL"
					description="PLG_SYSTEM_UPDATENOTIFICATION_EMAIL_DESC"
					default=""
					size="40"
				/>

				<field
					name="language_override"
					type="language"
					label="PLG_SYSTEM_UPDATENOTIFICATION_LANGUAGE_OVERRIDE_LBL"
					description="PLG_SYSTEM_UPDATENOTIFICATION_LANGUAGE_OVERRIDE_DESC"
					default=""
					client="administrator"
					>
					<option
value="">PLG_SYSTEM_UPDATENOTIFICATION_LANGUAGE_OVERRIDE_NONE</option>
				</field>

				<field
					name="lastrun"
					type="hidden"
					default="0"
					size="15"
				/>
			</fieldset>
		</fields>
	</config>
</extension>
PK�X�[�#o,,vm_redirect/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[o��k��vm_redirect/vm_redirect.phpnu�[���<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php

class plgSystemVm_redirect extends JPlugin {

	function __construct(&$subject, $config) {
		parent::__construct($subject, $config);
	}


	function onAfterRoute() {
		$app = JFactory::getApplication();

		if(version_compare(JVERSION,'3.0','>=')) {
			$option = $app->input->getVar('option');
			$vmProdId = $app->input->getInt('product_id');
			if (empty($vmProdId))
				$vmProdId =
$app->input->getInt('virtuemart_product_id');
			$vmCatId = $app->input->getInt('category_id');
			if (empty($vmCatId))
				$vmCatId =
$app->input->getInt('virtuemart_category_id');
			$vmOrderId = $app->input->getInt('order_id');
			if (empty($vmOrderId))
				$vmOrderId = $app->input->getInt('order_number');
		} else {
			$option = JRequest::getVar('option');
			$vmProdId = JRequest::getInt('product_id');
			if (empty($vmProdId))
				$vmProdId = JRequest::getInt('virtuemart_product_id');
			$vmCatId = JRequest::getInt('category_id');
			if (empty($vmCatId))
				$vmCatId = JRequest::getInt('virtuemart_category_id');
			$vmOrderId = JRequest::getInt('order_id');
			if (empty($vmOrderId))
				$vmOrderId = JRequest::getInt('order_number');
		}


		if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
			return true;
		if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
			return true;

		if( $option != 'com_virtuemart' )
			return true;


		$db = JFactory::getDBO();
		if(!defined('DS'))
			define('DS', DIRECTORY_SEPARATOR);
		if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
			return true;

		if(empty($vmProdId) && empty($vmCatId) &&
empty($vmOrderId)){
			$currentURL = hikashop_currentURL();
			if(preg_match_all('#/(virtuemart_product_id|product_id|category_id|virtuemart_category_id|order_id|order_number)/([0-9]+)#',$currentURL,$matches)){
				foreach($matches[1] as $k => $key){
					switch($key){
						case 'product_id':
						case 'virtuemart_product_id':
							$vmProdId = $matches[2][$k];
							break;
						case 'category_id':
						case 'virtuemart_category_id':
							$vmCatId = $matches[2][$k];
							break;
						case 'order_id':
						case 'order_number':
							$vmOrderId = $matches[2][$k];
							break;
					}
				}
			}

			if(empty($vmProdId) && empty($vmCatId) &&
empty($vmOrderId)){
				return true;
			}
		}


		$query='SHOW TABLES LIKE
'.$db->Quote($db->getPrefix().substr(hikashop_table('vm_prod'),3));
		$db->setQuery($query);
		$table = $db->loadResult();
		if(empty($table))
			return true;

		$url = null;
		if( !empty($vmProdId) && $vmProdId > 0 ) {
			$query = "SELECT a.hk_id, b.product_name as 'name' FROM
`#__hikashop_vm_prod` a INNER JOIN `#__hikashop_product` b ON a.hk_id =
b.product_id WHERE a.vm_id = " . $vmProdId . ";";
			$baseUrl = 'product&task=show';
		} else if( !empty($vmCatId)  && $vmCatId > 0 ) {
			$id = 'vm-fallback';
			$alias = 'hikashop-menu-for-module-'.$id;
			$db->setQuery('SELECT id FROM
'.hikashop_table('menu',false).' WHERE
alias=\''.$alias.'\'');
			$itemId = $db->loadResult();
			if(empty($itemId)) {
				$options = new stdClass();
				$config =& hikashop_config();
				$options->hikashop_params =
$config->get('default_params',null);
				$classMenu = hikashop_get('class.menus');
				$classMenu->loadParams($options);
				$options->hikashop_params['content_type'] =
'category';
				$options->hikashop_params['layout_type']='div';
				$options->hikashop_params['content_synchronize']='1';
				if($options->hikashop_params['columns']==1){
					$options->hikashop_params['columns']=3;
				}
				$classMenu->createMenu($options->hikashop_params, $id);
				$itemId = $options->hikashop_params['itemid'];
			}

			$query = "SELECT a.hk_id, b.category_name as 'name' FROM
`#__hikashop_vm_cat` a INNER JOIN `#__hikashop_category` b ON a.hk_id =
b.category_id WHERE a.vm_id = " . $vmCatId . ";";
			$baseUrl = 'category&task=listing&Itemid='.$itemId;
		}elseif(!empty($vmOrderId)){
			$db->setQuery('SELECT order_id FROM
'.hikashop_table('order').' WHERE
order_vm_id='.$vmOrderId);
			$hikaOrderId = $db->loadResult();
			if(!empty($hikaOrderId)){
				$url =
hikashop_completeLink('order&task=show&cid='.$hikaOrderId,
false, true);
				$app->redirect($url);
				return true;
			}
			else
			{
				$db->setQuery('SELECT order_id FROM
'.hikashop_table('order').' AS h INNER JOIN
`#__virtuemart_orders` AS v ON h.order_vm_id = v.virtuemart_order_id WHERE
v.order_number='.$vmOrderId);
				$hikaOrderId = $db->loadResult();
				if(!empty($hikaOrderId)){
					$url =
hikashop_completeLink('order&task=show&cid='.$hikaOrderId,
false, true);
					$app->redirect($url);
					return true;
				}
			}
		}

		if( !empty($query) && !empty($baseUrl) ) {
			$db->setQuery($query);
			$link = $db->loadObject();

			if( $link ) {
				if(method_exists($app,'stringURLSafe')) {
					$name = $app->stringURLSafe(strip_tags($link->name));
				} else {
					$name = JFilterOutput::stringURLSafe(strip_tags($link->name));
				}
				$url =
hikashop_completeLink($baseUrl.'&cid='.$link->hk_id.'&name='.$name,
false, true);
			}
		}

		if( $url )
			$app->redirect($url,'','message',true);
	}
}
PK�X�[�4i���vm_redirect/vm_redirect.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
	<name>Hikashop - VirtueMart Fallback Redirect Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Obsidev</author>
	<authorEmail>dev@obsidev.com</authorEmail>
	<authorUrl>http://www.obsidev.com</authorUrl>
	<copyright>Copyright (C) 2011 OBSIDEV SARL - All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to redirect imported data from
virtuemart</description>
	<files>
		<filename
plugin="vm_redirect">vm_redirect.php</filename>
	</files>
	<params/>
	<config/>
</extension>
PK�X�[{=����web357framework/autoload.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die;

// Registers Web357 framework's namespace
JLoader::registerNamespace('Web357Framework', __DIR__ .
'/Web357Framework/', false, false, 'psr4' );

JLoader::registerAlias('Functions',
'\\Web357Framework\\Functions');
JLoader::registerAlias('VersionChecker',
'\\Web357Framework\\VersionChecker');PK�X�[|
���"web357framework/elements/about.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');

class JFormFieldabout extends JFormField {
	
	protected $type = 'about';

	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	protected function getLabel_J3()
	{	
		return $this->Web357AboutHtml();
	}
	
	protected function getInput_J3()
	{
		return ' ';
	}

	protected function getLabel_J4()
	{
		return ' ';
	}

	protected function getInput_J4()
	{
		return $this->Web357AboutHtml();
	}

	protected function Web357AboutHtml()
	{
		$html  = '<div
class="web357framework-about-text">';

		$juri_base = str_replace('/administrator', '',
JURI::base());

		// About
		$web357_link =
'//www.web357.com/?utm_source=CLIENT&utm_medium=CLIENT-AboutUsLink-web357&utm_content=CLIENT-AboutUsLink&utm_campaign=aboutelement';
		
		$html .= '<a href="'.$web357_link.'"
target="_blank"><img
src="'.$juri_base.'media/plg_system_web357framework/images/web357-logo.jpg"
alt="Web357 logo" style="float: left; margin-right:
20px;" /></a>';

		$html .= "<p>We are a young team of professionals and internet
lovers who specialise in the development of professional websites and
premium extensions for Joomla! CMS. We pride ourselves on providing
expertise via our talented and skillful team. We are passionate of our work
and that is what makes us stand out in our goal to improve joomla! websites
by providing better user interface, increasing performance, efficiency and
security.</p><p>Our Web357 team carries years of experience in
web design and development especially with Joomla! and WordPress platforms.
As a result we decided to put together our expertise and eventually Web357
was born. We are proud to be able to contribute to the Joomla! world by
delivering the smartest and most cost efficient solutions for the
web.</p><p>Our products focus on extending Joomla's
functionality and making repetitive tasks easier, safer and faster. Our
source code is completely open (not encoded or encrypted), giving you the
maximum flexibility to either modify it yourself or through our
consultants.</p><p>We believe in strong long-term relationships
with our clients and our working ethic strives for delivering high standard
of products and customer support. All our extensions are being regularly
updated and improved based on our customers' feedback and new web
trends. In addition, Web357 supports personal customisations, as well as we
provide assistance and guidance to our clients' individual
requirements</p><p>Whether you are thinking of using our
expertise for the first time or you are an existing client, we are here to
help.</p><p>Web357 Team<br><a
href=\"".$web357_link."\"
target=\"_blank\">www.web357.com</a></p>";
	
		$html .= '</div>'; // .web357framework-about-text
		
		// BEGIN: Social sharing buttons
		$html .= '<div
class="web357framework-about-heading">Stay
connected!</div>';
		
		$social_icons_dir_path =
$juri_base.'media/plg_system_web357framework/images/social-icons';
		$social_sharing_buttons  = '<div
class="web357framework-about-social-icons">'; //
https://www.iconfinder.com/icons/252077/tweet_twitter_icon#size=32
				
		// facebook
		$social_sharing_buttons .= '<a
href="//www.facebook.com/web357" target="_blank"
title="Like us on Facebook"><img
src="'.$social_icons_dir_path.'/facebook.png"
alt="Facebook" /></a>';

		// twitter
		$social_sharing_buttons .= '<a
href="//twitter.com/web357" target="_blank"
title="Follow us on Twitter"><img
src="'.$social_icons_dir_path.'/twitter.png"
alt="Twitter" /></a>';

		// instagram
		$social_sharing_buttons .= '<a
href="//www.instagram.com/web357/" target="_blank"
title="Follow us on Instagram"><img
src="'.$social_icons_dir_path.'/instagram.png"
alt="Instagram" /></a>';

		// youtube
		$social_sharing_buttons .= '<a
href="//www.youtube.com/channel/UC-yYIuMfdE-NKwZVs19Fmrg"
target="_blank" title="Follow us on Youtube"><img
src="'.$social_icons_dir_path.'/youtube.png"
alt="Youtube" /></a>';
	
		// rss
		$social_sharing_buttons .= '<a
href="//feeds.feedburner.com/web357" target="_blank"
title="Subscribe to our RSS Feed"><img
src="'.$social_icons_dir_path.'/rss.png" alt="RSS
Feed" /></a>';
		
		// newsletter
		$social_sharing_buttons .= '<a
href="//www.web357.com/newsletter" target="_blank"
title="Subscribe to our Newsletter"><img
src="'.$social_icons_dir_path.'/newsletter.png"
alt="Newsletter" /></a>';

		// jed
		$social_sharing_buttons .= '<a
href="https://extensions.joomla.org/profile/profile/details/12368/"
target="_blank" title="Find us on Joomla! Extensions
Directory"><img
src="'.$social_icons_dir_path.'/jed.png"
alt="JED" /></a>';
		
		$social_sharing_buttons .= '</div>'; //
.web357framework-about-social-icons
		
		$html .= $social_sharing_buttons;
		// END: Social sharing buttons

		return $html;
	}
}PK�X�[\P�ww#web357framework/elements/apikey.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die;

jimport('joomla.form.formfield');

class JFormFieldapikey extends JFormField {
	
	protected $type = 'apikey';

	protected function getLabel()
	{
		return '<label id="jform_params_apikey-lbl"
for="jform_params_apikey" class="hasTooltip"
title="&lt;strong&gt;'.JText::_('W357FRM_APIKEY').'&lt;/strong&gt;&lt;br
/&gt;'.JText::_('W357FRM_APIKEY_DESCRIPTION').'">'.JText::_('W357FRM_APIKEY').'</label>';	
	}

	protected function getInput()
	{
		$html = '';

		// load js
		JFactory::getDocument()->addScript(JURI::root(true).'/media/plg_system_web357framework/js/admin.min.js?v=ASSETS_VERSION_DATETIME');

		// Translate placeholder text
		$hint = $this->translateHint ? JText::_($this->hint) :
$this->hint;

		// Initialize some field attributes.
		$class        = !empty($this->class) ? ' class="' .
$this->class . '"' : '';
		$disabled     = $this->disabled ? ' disabled' :
'';
		$readonly     = $this->readonly ? ' readonly' :
'';
		$columns      = $this->columns ? ' cols="' .
$this->columns . '"' : '';
		$rows         = $this->rows ? ' rows="' .
$this->rows . '"' : '';
		$required     = $this->required ? ' required
aria-required="true"' : '';
		$hint         = $hint ? ' placeholder="' . $hint .
'"' : '';
		$autocomplete = !$this->autocomplete ? '
autocomplete="off"' : ' autocomplete="' .
$this->autocomplete . '"';
		$autocomplete = $autocomplete == ' autocomplete="on"'
? '' : $autocomplete;
		$autofocus    = $this->autofocus ? ' autofocus' :
'';
		$spellcheck   = $this->spellcheck ? '' : '
spellcheck="false"';

		// Initialize JavaScript field attributes.
		$onchange = $this->onchange ? ' onchange="' .
$this->onchange . '"' : '';
		$onclick = $this->onclick ? ' onclick="' .
$this->onclick . '"' : '';
		
		// Default value
		$value = (!empty($this->value) && $this->value !=
'') ? $this->value : '';
		$value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
		
		// Including fallback code for HTML5 non supported browsers.
		JHtml::_('jquery.framework');
		JHtml::_('script', 'system/html5fallback.js', false,
true);

		$html .= '<textarea name="' . $this->name .
'" id="' . $this->id . '"' . $columns
. $rows . $class
			. $hint . $disabled . $readonly . $onchange . $onclick . $required .
$autocomplete . $autofocus . $spellcheck . '>'
			. $value . '</textarea>';

		// get domain
		$domain = $_SERVER['HTTP_HOST'];
		$html .= '<input type="hidden"
name="jform[params][domain]" id="jform_params_domain"
value="'.$domain.'" />';

		// loading icon
		$html .= '<div id="apikey-container">';
		$html .= '<div class="web357-loading-gif text-center"
style="display:none"></div>';

		if (!empty($value))
		{
			// Get
			$url =
'https://www.web357.com/wp-json/web357-api-key/v1/status/'.$value;
			$ch = curl_init(); 
			curl_setopt($ch, CURLOPT_URL, $url ); 
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
			curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
			$resp = curl_exec($ch); 

			if (curl_errno($ch)) 
			{ 
				$curl_error_message = curl_error($ch); 
			} 

			curl_close($ch);

			$show_active_key_button = true;
			if ($resp === FALSE) 
			{
				$html .= '<div style="margin: 20px 0;"
id="w357-activated-successfully-msg" class="alert
alert-danger"><span
class="icon-cancel"></span> '.JText::_('Call
with web357.com has been failed with the error message "'.
$curl_error_message .'". Please, try again later or contact us at
support@web357.com.').'</div>';
			} 
			else 
			{
				$resp = json_decode($resp);
				if (isset($resp->status) && ($resp->status == 1 ||
$resp->status == 'old_api_key'))
				{
					$html .= '<div style="margin: 20px 0;"
id="w357-activated-successfully-msg" class="alert
alert-success"><span
class="icon-save"></span> '.JText::_('Your API
Key <strong>' . $value . '</strong> is active and
validated.').'</div>';
					$show_active_key_button = false;
				}
				elseif (isset($resp->status) && $resp->status == 0)
				{
					$html .= '<div style="margin: 20px 0;"
id="w357-activated-successfully-msg" class="alert
alert-danger"><span
class="icon-cancel"></span> '.JText::_('Your
API Key <strong>' . $value . '</strong> is valid, but
is not activated yet.<br>Click the button below to activate
it.').'</div>';
				}
				
				elseif (isset($resp->code) && ($resp->code ==
'error' && !empty($resp->message)))
				{
					$show_active_key_button = false;
					$html .= '<div style="margin: 20px 0;"
id="w357-activated-successfully-msg" class="alert
alert-danger"><span
class="icon-cancel"></span>
'.JText::_($resp->message).'</div>';
				}
				else
				{
					$html .= '<div style="margin: 20px 0;"
id="w357-activated-successfully-msg" class="alert
alert-danger"><span
class="icon-cancel"></span> '.JText::_('Call
with Web357\'s License Manager has been failed. <br>Please, try
again later or contact us at
support@web357.com.').'</div>';
				}
			}

			// show the button only if is not activated
			if ($show_active_key_button)
			{
				$html .= '<p
class="web357_apikey_activation_html"></p>';
				$html .= '<p><a class="btn btn-success
web357-activate-api-key-btn"><strong>'.JText::_('Activate
Api Key').'</strong></a></p>';
			}
			
		}

		$html .= '</div>'; // #apikey-container

		return $html;		
	}
}PK�X�[�
�OŇŇ7web357framework/elements/assets/json/_web357-items.jsonnu�[���{
    "limitactivelogins": {
        "name": "limitactivelogins",
        "real_name": "11111111111111111111111111Limit Active
Logins",
        "product_type": "free_and_pro",
        "description": "22222222222222222222222222222By
default on a Joomla website, the Users can sign in using one account from
unlimited devices\/browsers at a time. This is not good for websites that
have restricted content for subscribers. With this plugin, you can easily
set a limit for the number of active logins that a user can have.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Set maximum no. of
active logins for a User.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Block new logins
when the login limit is reached.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Allow new logins
while logging out from other devices when the limit is
reached.<\/li>\r\n\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Signed-in devices.
The User is able to see the devices that he is already logged in from
different browsers and devices (desktop, laptop, mobile devices,
etc.).<\/li>\r\n\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Logout from other
device(s). The User can sign out from any other device(s) that he has
already logged in, and the session is still active.<\/li>\r\n\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
Customizable Maximum Active Logins. For example, a User from Asia can login
from 5 devices, but a User from Europe only from two
devices.<\/li>\r\n\r\n<\/ul>\r\n\r\n<h3 class=\"uk-h2
uk-text-center\">Benefits<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n\r\n<ul class=\"uk-list
uk-list-striped\">\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Useful for
membership sites.<\/li>\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Prevent Users from
sharing their account.<\/li>\r\n<\/ul>\r\n<p>Important
Notice: Even if the User is closing the browser without logging out, their
login session exists for period of time. So this will also considered as an
active login.<\/p>\r\n<!-- END: Features -->",
        "stable_version": "66.0.0",
        "beta_version": "77.0.1",
        "changelog": "ssssssssssssssss+ Added   ! Removed  
^ Changed   # Fixed\r\n\t\t\r\n26-Jan-2021 : v1.0.0\r\n+ First beta
release",
        "project_type": "web357",
        "date": "2021-01-26",
        "extension_type": "Component",
        "live_demo_url":
"1111111111111https:\/\/limitactivelogins.web357.com\/",
        "more_info_url":
"222222222222https:\/\/www.web357.com\/product\/limit-active-logins-for-joomla",
        "documentation_url":
"33333333333https:\/\/docs.web357.com\/category\/70-limit-active-logins",
        "changelog_url":
"444444444444444https:\/\/www.web357.com\/product\/limit-active-logins-for-joomla#changelog",
        "support_url":
"5555555555555555https:\/\/www.web357.com\/support",
        "jed_url":
"6666666666666666666https:\/\/extensions.joomla.org\/?the-limit-active-logins-joomla-extension-will-be-available-soon-in-JED",
        "backend_settings_url":
"7777777777777777.\/index.php?option=com_config&view=component&component=com_limitactivelogins"
    },
    "web357framework": {
        "name": "web357framework",
        "real_name": "Web357 Framework",
        "product_type": "free",
        "description": "The Web357 Framework Joomla! plugin
is a required helper tool that is used by all the Web357 extensions. Within
the plugin files, we have included code and PHP functions that allow the
plugin updates to be applied only in one place, i.e. the plugin itself, and
ensure that they are rolled out automatically to any external site that is
using the Web357 applications and plugins.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Some functions
that are used often<\/h3>\r\n<hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n\r\n<ul class=\"uk-list
uk-list-striped\">\r\n  <li>\r\n    <i
class=\"uk-icon-thumbs-o-up\"><\/i>\r\n   
<strong>getCountry() :<\/strong> Detects the Country of a User.
This function is based on geoplugin.net.\r\n    <br>\r\n 
<\/li>\r\n  <li>\r\n    <i
class=\"uk-icon-thumbs-o-up\"><\/i>\r\n   
<strong>getOS() :<\/strong> Detects the Operating System of a
User (e.g. Windows, Linux, Android, iOS\/OS, etc.).\r\n    <br>\r\n 
<\/li>\r\n  <li>\r\n    <i
class=\"uk-icon-thumbs-o-up\"><\/i>\r\n   
<strong>getBrowser() :<\/strong> Detects the Browser of a User
(e.g. Firefox, Google Chrome, Safari, Opera, Internet Explorer\r\n   
etc.).<\/li>\r\n<\/ul>\r\n<!-- END: Features -->",
        "stable_version": "1.8.2",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n19-Jan-2021 : v1.8.2\r\n+ [New Extension] Compatible with the
first beta release of the Limit Active Logins Joomla! extension.\r\n^
Improve campaign data attributes on logo URL (e.g.
\/\/www.web357.com\/?utm_source=CLIENT&utm_medium=CLIENT-ProLink-Backend-Footer-Web357-logo)\r\n#
[Improvement] Improve the description of asking about the Web357 License
key. The link to find the API key has been replaced with the correct
one.\r\n# [Improvement] Search for System - Web357 Framework, instead of
Web357 Framework after clicking on the link \"Enter the API key in
plugin settings\".\r\n# [Improvement] Show the parameter screenshot
also in the disabled parameters (Only in PRO version).\r\n# [Bug Fixed] Use
the correct product link at Joomla! backend footer, when the free version
is installed.\r\n# [Bug Fixed] PHP Fatal Error: Class
'VersionChecker' not found.\r\n# [Bug Fixed] Do not show the
apikeychecker warning to non logged in admins\r\n# [Bug Fixed] Do not show
the Web357 Api key checker warning message to non-logged-in Admins.\r\n#
[Bug Fixed] Warning: preg_match(): Compilation failed: unmatched closing
parenthesis at offset 38 in web357framework.class.php\r\n\r\n01-Dec-2020 :
v1.8.1\r\n# [Bug Fixed] Api key validation in Web357 Framework plugin
\"SSL certificate problem: unable to get local issuer
certificate\". [Thank you, Thomas Thrane]\r\n^ [Improvement] If the
beta version is installed, show a successful notification message that the
version is up-to-date.\r\n^ [Improvement] Remove JLogs - Code
Cleanup\r\n\r\n23-Nov-2020 : v1.8.0\r\n+ Compatible with the Web357
Licenses Key Manager (https:\/\/bit.ly\/web357-license-key-manager)\r\n+
Joomla! 4 compatible\r\n# [Bug Fixed] CSS file is missed at Joomla!
backend, if you navigate in menu item settings of any Web357 component
(com_monthlyarchive or com_vmsales).\r\n^ [Improvement] The notification
message about the API key link has been changed. You can find the API key
in the Downloads section, at web357.com [Thank you, Sondra Boone]\r\n# [Bug
Fixed] Blank page in VM Sales settings after upgrade to the VirtueMart
version v3.6.2. [Thank you, Rossiniy Gamberea]\r\n# Bug fixes and
improvements.\r\n\r\n10-Jun-2019 : v1.7.7\r\n# [Bug Fixed] CSS file has
been missed at the Joomla! backend, if you navigate the settings of any
Web357 component.\r\n# [Improvement] Some links have been changed
(extension page, demo, documentation, support, etc.).\r\n\r\n10-Apr-2019 :
v1.7.6\r\n# [Bug Fixed] Fix product image path in the tab \"About
Extension\", in extension parameters.\r\n^ [Improvement] Load the
jQuery library only when needed. at Joomla! backend.\r\n^ [Improvement]
Minified versions of Javascript and CSS files, at Joomla!
backend.\r\n\r\n15-Feb-2019 : v1.7.5\r\n+ [Improvement] Move all assets to
media\/ folder at Joomla! root.\r\n# [Bug Fixed] JLoader::registerNamespace
(only in Joomla! 2.5.x )\r\n\r\n16-Jan-2019 : v1.7.4\r\n# [Bug Fixed] Error
after trying to get the latest version from Web357 Api. (Error Code: 0
Operation timed out after X milliseconds with 0 out of 0 bytes received.)
[Thank you, Max Morriconi]\r\n\r\n15-Jan-2019 : v1.7.3\r\n# [Bug Fixed] A
conflict issue with the 3rd party extension \"Podcast Manager\"
has been resolved. [Many thanks to Carlos C\u00e1mara]\r\n# [Bug Fixed]
Error Code: 0. SSL: no alternative certificate subject name matches the
target hostname 'cdn.web357.com'. The file:
https:\/\/cdn.web357.com\/web357-releases.json does not exist. The method
to take the latest version has been changed. Now we use the Web357 API,
instead of downloading the JSON file with all extensions data each time.
[Thank you, Claudia Schmid]\r\n! [Removed] The modal behavior
JHtml::_('behavior.modal'); has been removed at the
backend.\r\n\r\n07-Dec-2018 : v1.7.2\r\n# [Bug Fixed] An HTTPS error
occurred after updating any extension. Update path does not exist. Error
updating COM_INSTALLER_TYPE_TYPE_.\r\n# [Bug Fixed] Fix issues with Matukio
Events Joomla! Component. The error occurs at Backend > Components >
Matukio Events> Default Booking Form. It just will not load if the
Web357 framework is active. [Thank you, Walter Fleritsch]\r\n# [Bug Fixed]
Some javascript issues at the back-end with the Gantry5 of RocketTheme, and
the T3 BS3 Blank Template of Joomlart have been resolved successfully
(Switching the \"Theme Outlines\" does not work) [Many thanks to
Thomas Thrane, Michael Kastl, and Marcin Nader]\r\n# Minor bug
fixes\r\n\r\n02-Nov-2018 : v1.7.1\r\n+ Add global elements for general use
in Virtuemart extensions (the files \"vmcategories.php\" and
\"vmmanufacturers.php\" have been added).\r\n^ Change json's
file path about extensions' information.\r\n! Some unnecessary code in
the \"profeature.php\" file has been removed.\r\n# Minor bug
fixes.\r\n\r\n09-Aug-2018 : v1.7.0\r\n+ Fully compatible with Joomla!
4.x\r\n^ CSS improvements for parameter fields with screenshots, like the
Cookies Notification Bar plugin and the Support Hours module.\r\n# [BUG
Fixed] The backend_settings_url variable has been corrected for J! 2.5\r\n#
Minor bug fixes.\r\n\r\n23-Jul-2018 : v1.6.4\r\n# [Bug Fixed] Error 500 The
file: http:\/\/cdn.web357.com\/web357-releases.json does not exist. All
HTTP URLs have been replaced with HTPS. (502 Bad Gateway nginx). [Thank
you, Ea]\r\n# [Improvement] An SQL query added to update the old update
urls (web357.eu > web357.com) from the table
#__update_sites\r\n\r\n14-Jul-2018 : v1.6.3\r\n# [Bug Fixed] Error: 500
String could not be parsed as XML. (Affects the Cookies Policy Notification
Bar - Joomla! Plugin)\r\n^ [Improvements] New parameter fields for the
Cookie Manager functionality of the Cookies Policy Notification Bar -
Joomla! Plugin.\r\n^ [Improvements] New helper CSS classes for the
screenshots in the plugin parameters of the Cookies Policy Notification Bar
- Joomla! Plugin.\r\n\r\n28-Jun-2018 : v1.6.2\r\n# [Improvement] Load the
Web357 product images from Web357's CDN to decrease the size of the
zip file.\r\n! [Deleted] Some elements have been deleted because are not
used anymore in our extensions.\r\n^ [Improvement] The date format inside
the XML has been changed. Now is displayed like this \"DD MMM
YYYY\", instead of this \"YYYY-MM-DD\".\r\n\r\n17-Jun-2018 :
v1.6.1\r\n# [Improvement] New method to get the latest version. Fixes some
errors after an extension installation on some servers with strong
firewalls.\r\n\r\n16-Mar-2018 : v1.6.0\r\n+ Web357 API Key: One single API
Key for each Web357 Subscriber who has one or more active subscriptions at
Web357.com. In order to update commercial Web357 extensions, enter your API
Key in the Web357 Framework plugin settings. The key can be found in your
Web357 account.\r\n! The Web357 Download ID parameter field has been
deleted from each extension settings and has been replaced by a unique API
key parameter field at the Web357 Framework plugin settings.\r\n^ Functions
improved: The getOS() and the getBrowser() functions have been updated to
get the most recent Operating Systems and Browsers.\r\n^ The Web357
Instagram and Youtube links have been added to the About Web357 tab info in
extension settings.\r\n+ A new button (Settings) has been added to the
description tab for each Web357 component and plugin.\r\n# Demo and JED
links have been updated.\r\n# Minor bug fixes.\r\n# Code
cleanup.\r\n\r\n28-Feb-2018 : v1.5.2\r\n# BUG FIXED: Compatibility issues
with older versions of Virtuemart have been resolved
\"\\plugins\\system\\web357framework\\elements\\vmcategoriesp.php\".
[Many thanks to Andrea Riquelme]\r\n+ NEW FIELD: A clock-style time picker
has been added as a new element parameter field. For now, is used in the
first beta version of Event Schedule Joomla! Component and
Module.\r\n\r\n03-Jan-2018 : v1.5.1\r\nBUG Fixed: The tab
\"COM_PLUGINS_TEXTS_FOR_LANGUAGES_FIELDSETS_LABEL\" has been
appeared on many previously installed plugins, because of a small issue in
web357framework system plugin. [Many thanks to Arte Ferro
srl]\r\n\r\n29-Dec-2017 : v1.5.0\r\n# BUG FIXED: There were some backward
compatibility issues with older versions of Joomla! (e.g. v3.6.5), mostly
for the Cookies Policy Notification Bar plugin. The input text fields for
the languages are missing. [Many thanks to Xenofon
Kaloudis]\r\n\r\n15-Dec-2017 : v1.4.9\r\n+ We've added some helper
functions for the Login as User Joomla! extension.\r\n\r\n13-Nov-2017 :
v1.4.8\r\n# Bug Fixed: Some language strings are
missing.\r\n\r\n07-Nov-2017 : v1.4.7\r\n# Bug Fixed: An error message has
been displayed after trying update to the latest update v1.4.6 of Web357
Framework. The error message is \"Could not open update \"Web357
Framework (FREEPRO version)\". [Thank you, Mauro]\r\n\r\n06-Nov-2017 :
v1.4.6\r\n+ We've added some helper functions, like the
\"onContentPrepareForm\", for the Cookies Policy Notification Bar
Joomla! system plugin, to allow saving language strings even if the plugin
is disabled.\r\n\r\n05-Jul-2017 : v1.4.5\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n02-Jun-2017 : v1.4.4\r\n# Bug Fixed: The modal popup to
display the screenshots inside the extension parameters (e.g. in
supporthours module), at Joomla backend does not work.\r\n\r\n12-May-2017 :
v1.4.3\r\n+ Compatibility for auto-updates via Watchful.li external
service. [Many thanks to Valentin Barbu, Rafael Gaus, and Frank].\r\n^ If
the JED link does not exist yet, do not display the 'leave a
review' text inside the plugin parameters.\r\n# Minor bug
fixes.\r\n\r\n06-May-2017 : v1.4.2\r\n# BUG Fixed: The k2categories element
has been improved to avoid errors in PHP7+\r\n\r\n21-Apr-2017 : v1.4.1\r\n#
Fatal PHP errors in Monthly Archive after the upgrade to Web357 Framework
v1.4.0 have been resolved. [Thank you, Wim]\r\n\r\n20-Apr-2017 :
v1.4.0\r\n+ A new form field element has been added to check if an
extension is installed or enabled. This is useful for Monthly Archive
component to detect whether the com_k2 extension is active or not, so to
retrieve the content from there.\r\n# Minor bug fixes\r\n\r\n04-Oct-2016 :
v1.3.9\r\n+ CSS Improvement: The \"w357_xsmall_header\" class has
been added for styling purposes of the extra small headers at the extension
parameters.\r\n\r\n02-Sep-2016 : v1.3.8\r\n# BUG FIXED: Some PHP Notices in
the file \"web357framework.class.php\", in line 128, have been
resolved. [Thank you, Guillaume]\r\n\r\n30-May-2016 : v1.3.7\r\n# BUG
Fixed: If user's operating system is not in our popular operating
systems list,  some PHP warnings have displayed in server's error log
files. [Thank you, Guillaume]\r\n\r\n25-Apr-2016 : v1.3.6\r\n# Some issues
(blank page and template crashed, mostly) in extension's
configuration\/parameters that still use Joomla! 3.3.x, have been
resolved.\r\n# Minor bug fixes.\r\n\r\n31-Mar-2016 : v1.3.5\r\n+ The header
element now supports CSS classes.\r\n+ A link has been added to the
\"version checker\" parameter field. It will redirect you to the
update manager to get the latest version of an extension.\r\n^ The URL of
changelog will redirect you at web357.com, instead of displaying a modal
popup window.\r\n^ The language file has been updated.\r\n# CSS minor
fixes.\r\n# General bug fixes.\r\n\r\n08-Dec-2015 : v1.3.4\r\n# Minor bug
fixes after the latest upgrade from v1.3.3\r\n\r\n07-Dec-2015 : v1.3.3\r\n^
Updated description.\r\n^ Updated translations.\r\n\r\n24-Nov-2015 :
v1.3.2\r\n# jQuery Issues with View Changelog modal popup, have been
resolved.\r\n^ The loading at the back-end has been improved by replacing
external social scripts (facebook, twitter, google+), with social icons.
There are no scripts anymore, just images.\r\n^ The file
\"elements_helper.php\" is required also for the about.php
element, for the CSS styling of social icons.\r\n\r\n23-Nov-2015 :
v1.3.1\r\n^ Improvement of \"K2 Categories\" element.\r\n# Minor
bug fixes.\r\n\r\n13-Nov-2015 : v1.3.0\r\n# Bug Fixed: Now you can update
more than one Web357 extensions at once.\r\n# Minor bug
fixes.\r\n\r\n29-Oct-2015 : v1.2.3\r\n# BUG Fixed: The Customizer of
Yootheme templates does not work properly if the Web357 Framework is
enabled.\r\n^ Clean up some code.\r\n\r\n14-Oct-2015 : v1.2.2\r\n+ Web357
framework works as an installer for all extensions, instead of installing
packages.\r\n\r\n11-Oct-2015 : v1.2.1\r\n+ K2categories element has been
added.\r\n\r\n24-Aug-2015 : v1.2.0\r\n# Bug Fixed: Some issues and jQuery
conflicts with JoomGallery component, have been resolved.\r\n# Minor bug
fixes.\r\n\r\n02-Jun-2015 : v1.1.0\r\n+ 2 new elements added.\r\n+ Link for
the pro version has been edited.\r\n# Problem with language files. Renamed
to filename-BKP.ini after installing the framework.\r\n# BUG Fixed: If
\"php_curl\" is not enabled in PHP, the parameters cannot be
displayed in administration panel.\r\n# BUG Fixed: If
\"allow_url_fopen\" is not enabled in PHP, the parameters cannot
be displayed in administration panel.\r\n# BUG Fixed: Some issues for
Windows servers 2008 and 500 errors have been resolved.\r\n\r\n25-Apr-2015
: v1.0.1\r\n# Bug fixed: Problem with version checker.\r\n\r\n23-Apr-2015 :
v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2021-01-19",
        "extension_type": "Plugin",
        "live_demo_url": "",
        "more_info_url":
"https:\/\/www.web357.com\/product\/web357-framework-joomla-plugin",
        "documentation_url":
"https:\/\/docs.web357.com",
        "changelog_url":
"https:\/\/www.web357.com\/product\/web357-framework-joomla-plugin#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url": "",
        "backend_settings_url":
".\/index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Web357%20Framework"
    },
    "fix404errorlinks": {
        "name": "fix404errorlinks",
        "real_name": "Fix 404 Error Links",
        "product_type": "free_and_pro",
        "description": "The Fix 404 Error Links is a SEO
Tool for Admins and consists a useful extension for any Joomla! website.
This extension has been created to deal with the log 404 (Page not Found)
errors. It allows any website administrator to manage and fix the
problematic links, as well as redirect them to the desired page.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Error
404 Links List<\/strong> (Group &amp; Detailed List of detected
Error 404 Links. Data stored: Error URL, Error Code, Error Message,
Username, IP Address, Country, Browser, Operating System, Referer
URL).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Fix
one by one, or butch-fix, of detected Error 404 Links.
<\/strong><strong
id=\"docs-internal-guid-b595fe4b-4f04-2c72-377d-f0f213c33f45\">This
is a unique feature not found in other similar
extensions.<\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Match
Types<\/strong> (a) full URL, b) contains string, c) starts with
string, d) end with string, e) find and replace). See the match type
examples below.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Logging<\/strong>\r\n    <ul>\r\n      <li>
Error 404 Logging from Guest &amp; Users.<\/li>\r\n     
<li> Error 404 Logging from Search Engine Bots.<\/li>\r\n     
<li> Error 404 Logging from Danger Strings List.<\/li>\r\n     
<\/ul>\r\n  <\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Notifications<\/strong> (Instant Email
Notifications).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Security<\/strong> (Danger Strings
Redirection).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Import
from &quot;com_redirects&quot; Joomla!
plugin\/component<\/strong> (Redirects can be imported from the
Default Joomla Redirects plugin\/component into Fix404ErrorLinks
redirects)<\/li>\r\n<\/ul>\r\n\r\n<h3 class=\"uk-h2
uk-text-center\">Parameters<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<ul class=\"uk-list
uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Enable
Error 404 Logging<\/strong> (Choose 'Yes' if you want to
store all 404 Error Links in the database and then fix them. If you choose
'No', the error links will not be stored in the database and
Admins will not be notified for 404 error links via Email. The default
option is 'Yes').<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Enable
Logging from Bots<\/strong> (Choose 'Yes' if you want to
store all 404 Error Links in the database from Search Engine Bots. If you
choose 'No', the error links from bots will not be stored in the
database and Admins will not be notified for 404 error links via Email. The
default option is 'No').<\/li>\r\n  <li
dir=\"ltr\"><strong>Danger Strings
Logging<\/strong> (Choose 'Yes' if you want to store in the
database all 404 Error Links that have been marked as danger, and already
exist in the 'Danger strings list' below).  <\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Email Notifications<\/strong> (Choose 'Yes'
if you want to receive instant notification messages for the 404 Error
Links. You will receive a detailed email that includes the error link data,
the User data (e.g. Country, IP address, browser, operating System etc.)
and an action button to Fix the Url immediately via Joomla! admin
panel).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Email
Recipient<\/strong> (Enter the email of Recipient. If you leave the
field blank and you have enabled the 'Email Notifications' field,
the default email from Joomla! configuration will be used).<\/li>\r\n
 <li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Danger Strings Redirection<\/strong> (Choose
'Yes' if you want to redirect all 404 Error links that contain a
danger string partially or in the entire URL).<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Danger Strings List<\/strong> (List of all danger
strings. You can insert more danger strings, add one entry per
row).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Redirect Danger URLs to<\/strong> (All 404 Error links
that contain a danger string partially or in the entire URL will be
redirected to this Url).<\/li>\r\n<\/ul>\r\n\r\n<h3
class=\"uk-h2 uk-text-center\">How to redirect an Error Link
and how Match Type works<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<p>In \"404 error logs\" page, at
Joomla! back-end, you can see all error links and a \"Fix it\"
button next to each error link. If you press that button you will be
redirected to the Fix Link page and you will see a form with 4 fields (a.
Old Full Url or Text *, b. Destination Url *, c. Comments, d.
Published).<\/p>\r\n\r\n<h3 class=\"uk-h2
uk-text-center\">Examples<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<p><strong>Example
1:<\/strong><\/p>\r\n<ul>\r\n  <li>Old Full Url or
Text:
<strong><em>&quot;this\/is\/an\/error\/link&quot;<\/em><\/strong><\/li>\r\n
 <li>Match Type: <em><strong>&quot;Full
URL&quot;<\/strong><\/em><\/li>\r\n 
<li>Destination URL:
<strong><em>&quot;\/this\/is\/a\/valid\/link\/&quot;<\/em><\/strong><\/li>\r\n<\/ul>\r\n<p>If
a User or a Guest visits the link
&quot;http:\/\/domain.com\/this\/is\/an\/error\/link\/&quot; he
will be redirected to
&quot;http:\/\/domain.com\/this\/is\/a\/valid\/link\/&quot;.<\/p>\r\n<p><strong>Example
2:<\/strong><\/p>\r\n<ul>\r\n  <li>Old Full Url or
Text:
<strong><em>&quot;is\/a&quot;<\/em><\/strong><\/li>\r\n
 <li>Match Type: <strong><em>&quot;Contains
String&quot;<\/em><\/strong><\/li>\r\n 
<li>Destination URL.:
<strong><em>&quot;\/this\/is\/a\/valid\/link\/&quot;<\/em><\/strong><\/li>\r\n<\/ul>\r\n<p>If
a User or a Guest visits the link
&quot;http:\/\/domain.com\/this\/is\/an\/error\/link\/&quot; he
will be redirected to
&quot;http:\/\/domain.com\/this\/is\/a\/valid\/link\/&quot; because
the error link contains the string
&quot;is\/a&quot;.<\/p>\r\n<p><strong>Example
3:<\/strong><\/p>\r\n<ul>\r\n  <li>Old Full Url or
Text:
<em><strong>&quot;this&quot;<\/strong><\/em><br>\r\n
   <\/li>\r\n  <li>Match Type:
<strong><em>&quot;Start with
String&quot;<\/em><\/strong><br>\r\n   
<\/li>\r\n  <li>Destination URL.:
<strong><em>&quot;\/this\/is\/a\/valid\/link\/&quot;<\/em><\/strong><\/li>\r\n<\/ul>\r\n<p>If
a User or a Guest visits the link
&quot;http:\/\/domain.com\/this\/is\/an\/error\/link\/&quot; he
will be redirected to
&quot;http:\/\/domain.com\/this\/is\/a\/valid\/link\/&quot; because
the error link starts with the string
&quot;this&quot;.<\/p>\r\n<p> <strong>Example
4:<\/strong><\/p>\r\n<ul>\r\n  <li>  Old Full Url
or Text:
<strong><em>&quot;link&quot;<\/em><\/strong><br>\r\n
   <\/li>\r\n  <li>Match Type:
<em><strong>&quot;End with
String&quot;<\/strong><\/em><br>\r\n   
<\/li>\r\n  <li>Destination URL.:
<strong><em>&quot;\/this\/is\/a\/valid\/link\/&quot;<\/em><\/strong><\/li>\r\n<\/ul>\r\n<p>If
a User or a Guest visits the link
&quot;http:\/\/domain.com\/this\/is\/an\/error\/link\/&quot; he
will be redirected to
&quot;http:\/\/domain.com\/this\/is\/a\/valid\/link\/&quot; because
the error link ends with the string
&quot;link&quot;.<\/p>\r\n<p> <strong>Example
5:<\/strong><\/p>\r\n<ul>\r\n  <li>Old Full Url
(find):
<strong><em>&quot;link&quot;<\/em><\/strong><br>\r\n
   <\/li>\r\n  <li>Match Type:
<em><strong>&quot;Find and
Replace&quot;<\/strong><\/em><br>\r\n   
<\/li>\r\n  <li>Destination URL (replace):
<strong><em>&quot;url&quot;<\/em><\/strong><\/li>\r\n<\/ul>\r\n<p>If
a User visits the link
&quot;http:\/\/domain.com\/this\/is\/an\/error\/link\/&quot; he
will be redirected to
&quot;http:\/\/domain.com\/this\/is\/a\/valid\/url\/&quot; because
the error link contains the string  &quot;link&quot; and it has
replaced it with the string
&quot;url&quot;.<br>\r\n<\/p>\r\n<!-- END: Features
-->",
        "stable_version": "2.1.1",
        "beta_version": "2.1.2",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n19-Jan-2021 : v2.1.1\r\n# [Bug Fixed] Unknown column
'source_match_http_code' in 'field list'\r\n# [Bug
Fixed] The hits of the redirects with regex is now increasing
properly.\r\n# [Bug Fixed] The Redirection Analysis is not displayed while
editing the redirection when the match type \"Do nothing\" is
selected.\r\n\r\n18-Jan-2021 : v2.1.0\r\n# [Bug Fixed] If an error URL has
been added twice in the database, there was an error with URL increase. The
error message was \"500 - Fix404ErrorLinks: Error Updating
Database.\" [Thank you, Marcelo Aguirre]\r\n# [Bug Fixed] Some issues
with IDN (Internationalized Domain Name) characters have now been resolved
successfully. [Thank you, Marcelo Aguirre]\r\n# [Bug Fixed] Warning:
preg_match(): Compilation failed: unmatched closing parenthesis at offset
38 in \/plugins\/system\/fix404errorlinks\/fix404errorlinks.php on line
1207\r\n# [Bug Fixed] Blank page after deleting all the fixed 404 error
links.\r\n# [Bug Fixed] The hits of the valid redirects are now increased
properly.\r\n# [Bug Fixed] Got error 'repetition-operator operand
invalid' from regexp [Thank you, Bent Elting]\r\n# [Bug Fixed] Fixed
issue when there is a slash in the source URL.\r\n# [Bug Fixed] Fix issue
with redirect when there is a full site url in the Target URL input
field.\r\n# [Bug Fixed] Redirect doesn't count the hits when a regex
string is used. [Thank you, Ren\u00e9]\r\n^ [UX Improvement] When the
\"find and replace\" is used as the match type of URL, leave only
the option \"Redirect to a URL or text\" for the \"When
matched\" parameter, and hide the other ones (Redirect to a menu item,
Error Page, Do nothing).\r\n^ [Improvement] Rreplace the showFooter
function with Web357framework's function.\r\n^ [UX Improvement]
Redirection Analysis. When viewing or editing a redirect redirection's
details will be displayed at the bottom of the form (screenshot:
http:\/\/bit.ly\/fix404-redirection-analysis)\r\n^ [Improvement]  PHP
Deprecated:  idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated in PHP
v7.3.x.\r\n^ [Improvement]  PHP Deprecated:  idn_to_utf8():
INTL_IDNA_VARIANT_2003 is deprecated in PHP v7.3.x.\r\n\r\n03-Jul-2019 :
v2.0.0\r\n+ Component redesigned\r\n+ Detailed control panel\r\n+ View
& Fix the Error 404 links\r\n+ Redirections\r\n+ New method to Add a
redirection\r\n+ 3 types of logging\r\n+ Instant email notifications\r\n+
Email restrictions\r\n+ Redirect all 404 Error links in one page\r\n+ Extra
security with the danger strings\r\n+ GeoIP2 Webservice\r\n..and much more:
https:\/\/www.web357.com\/blog\/news\/new-major-release-v2-0-0-for-the-fix-404-error-links-joomla-component\r\n\r\n07-Dec-2018
: v1.3.2\r\n# [Bug Fixed] Declaration of
Fix404errorlinksControllerError404logs... [Many thanks to Bianka
Craanen]\r\n# [Bug Fixed] Fix publishing issues after upgrading from
Joomla! 3.9.1\r\n^ [Improvement] Allow regular expressions for Find and
Replace method.\r\n\r\n09-Aug-2018 : v1.3.1\r\n# [Bug Fixed] There was a
fatal error after deleting the error logs. [Many thanks to Bianka Craanen
and Rob de Ruiter]\r\n\r\n09-Aug-2018 : v1.3.0\r\n+ Compatible with the
latest version of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug
fixes and many improvements.\r\n\r\n20-Mar-2018 : v1.2.0\r\n# BUG Fixed:
The fixed redirect URLs are adding a 4-digit number and the symbol
\"::\". Before v1.1.0 everything was working fine. [Many thanks
to Johann Piber]\r\n# BUG Fixed: jos-Error: Unknown column
'redirects.http_response_status_code' in 'field list'.
[Thank you, Vito]\r\n# BUG Fixed: If you uninstall the component through
Joomla! Extension Manager, the table `#__fix404_errorlogs` will not
deleted.\r\n\r\n16-Mar-2018 : v1.1.0\r\n+ NEW FEATURE: HTTP Status Code. If
the HTTP status code of the URL is 404 (error page), then the plugin
redirects the User to the destination URL you've set. If the HTTP
status code of URL is 200 (a valid page that already exists), then the
plugin redirects the User to the destination URL you've set. Also,
there is an option to use both of them at the same time.\r\n+ NEW FEATURE:
Now you can set priorities for redirected (fixed) URLs by ordering
them.\r\n^ Functions Improved: The getOS() and the getBrowser() functions
have been updated to get the most recent Operating Systems and
Browsers.\r\n^ The Demo and the JED link have been updated in the
description tab, at Joomla! backend.\r\n! The Web357 Download ID parameter
field has been deleted from each extension settings and has been replaced
by a unique API key parameter field at the Web357 Framework plugin
settings.\r\n+ A new button (Settings) has been added to the description
tab at Joomla! backend.\r\n^ Compatible with the latest version (1.6.0) of
Web357 framework plugin.\r\n# Minor improvements.\r\n# Code
cleanup.\r\n\r\n06-Jul-2017 : v1.0.9\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n13-May-2017 : v1.0.8\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin
parameters.\r\n\r\n04-Oct-2016 : v1.0.7\r\n# Some issues after an update of
a premium version, even if the customer has save correctly the download ID
of his order, have been resolved.\r\n\r\n05-Sep-2016 : v1.0.6\r\n# Bug
Fixed: mysql_real_escape_string() is a function from the legacy MySQL
extension. Replaced with $db->escape().\r\n# Bug Fixed: There are empty
redirect links after importing from com_redirect Joomla! core
component.\r\n# Bug Fixed: The Error URLs with double or single quotes are
now allowed.\r\n# Bug Fixed: If the array of Error URLs is empty there was
a PHP warning error \"PHP Warning:  Invalid argument supplied for
foreach() \".\r\n+ Some folders like \"cache\/\" should be
avoided. [Thank you, Georgios]\r\n^ The default PHP function to sending
emails \"mail()\", has been replaced with
\"JFactory::getMailer();\". [Thank you, Dan].\r\n! Unnecessary
comments have been removed.\r\n\r\n17-Mar-2016 : v1.0.5\r\n# Bug Fixed:
Strict Standards: Non-static method
plgSystemFix404ErrorLinks::W357FrameworkHelperClass() should not be called
statically in fix404errorlinks.php on line 104,105.\r\n\r\n08-Dec-2015 :
v1.0.4\r\n# Minor bug fixes after the latest upgrade from
v1.0.3\r\n\r\n07-Dec-2015 : v1.0.3\r\n^ Updated description.\r\n^ Updated
translations.\r\n\r\n13-Nov-2015 : v1.0.2\r\n+ NEW Parameter Field:
Download ID. You need to specify your Download ID before you can receive
updates for the PRO versions. For more information please follow our
instructions here: https:\/\/www.web357.com\/apikey\r\n# Minor bug
fixes.\r\n\r\n05-Oct-2015 : v1.0.1\r\n# Minor issues with jQuery and CSS
have been resolved..\r\n\r\n06-Jul-2015 : v1.0.0\r\n+ First beta
release",
        "project_type": "web357",
        "date": "2021-01-19",
        "extension_type": "Component",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/fix-404-error-links",
        "more_info_url":
"https:\/\/www.web357.com\/product\/fix-404-error-links-joomla-component",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/41-fix-404-error-links",
        "changelog_url":
"https:\/\/www.web357.com\/product\/fix-404-error-links-joomla-component#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/fix-404-error-links\/",
        "backend_settings_url":
".\/index.php?option=com_config&view=component&component=com_fix404errorlinks"
    },
    "monthlyarchive": {
        "name": "monthlyarchive",
        "real_name": "Monthly Archive",
        "product_type": "pro",
        "description": "The Monthly Archive Joomla!
component provides a list of Joomla or K2 content divided into months and
years. It is supplied with a lot of features and multiple parameters,
improves user navigation and works as a search tool too. It is great for
blogs, news portals, journalists, authors, speakers, and any other content
based website.",
        "description_features": "<!-- BEGIN: Features
-->\r\n  <h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n  <ul
class=\"uk-list uk-list-striped\">\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Fully
customizable with many parameters.<\/strong><\/li>\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Responsive Design.<\/strong><\/li>\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>SEO Friendly URLs.<\/strong><\/li>\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>MVC support.<\/strong><\/li>\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Based on Joomla! coding
standards.<\/strong><\/li>\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Multi-Language support.<\/strong><\/li>\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Integration with 3rd party extensions: K2 component and
JComments component.<\/strong><\/li>\r\n\r\n  <\/ul>\r\n 
<h3 class=\"uk-h2 uk-text-center\">Many Useful
Parameters<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n  <ul
class=\"uk-list uk-list-striped\">\r\n    \r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>CONTENT TYPE:<\/strong> You can either display directly
the list of Articles instead of  displaying only the list of Months and
Years.<\/li>\r\n    \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>STATE:<\/strong> You can choose a different type of
article state to be displayed. You can either show all articles, the
featured articles, the non-featured articles or both. The published or
unpublished articles, the trashed articles, and of course the archived
articles (from Joomla core functionality).<\/li>\r\n    \r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>CUSTOM TEXTS:<\/strong> Custom Page Titles and Welcome
Messages. Another useful feature to set your custom texts for the page
title and the welcome message for each content type (months\/years list or
list of articles) separately. Also, you can hide the page title or the
welcome message, again in each content-type separately.<\/li>\r\n   
\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>INCLUDE\/EXCLUDE CONTENT:<\/strong> Another great
feature is to display any content you want to be displayed. You can choose
which content items to include or exclude from your Archive, specific
years, months, categories, authors, and articles.<\/li>\r\n    \r\n  
 <li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>UIkit FRAMEWORK:<\/strong> It is based on the fantastic
UIkit framework of Yootheme team. The UIkit is a lightweight and modular
front-end framework for developing fast and powerful web
interfaces.<\/li>\r\n    \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>SEARCH
FORM:<\/strong> Choose the input form fields that will be displayed
in the search form. Select those that are useful for your Users. You can
show the date select field, the order select field, the author's
select form field, and the search input text. Also, you can show\/hide each
form field in each content-type separately.<\/li>\r\n    \r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>LAYOUT:<\/strong> There are multiple new useful
parameters to customize the layout for each content type separately, the
list of months\/years and the list of articles. For example, you can choose
if you want to display the years in an accordion style. You can select the
ordering of years, most recent years first, or oldest years first. To avoid
big lists, you can set your own limits (e.g. display only the three most
recent years and their months).<\/li>\r\n    \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>IMAGES:<\/strong> We add more powerful parameters for
images. You can show or hide the image. You can choose if your image will
be displayed with a link or not. You can choose the image type (the intro
image, the full, the auto-detect from the content item or the blank image).
Finally, you can set your preferred image dimensions (width and
height).<\/li>\r\n    \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>COMMENTS:<\/strong> You can show an icon with the count
of comments (from jcomments or k2) beside the content title, like
hits.<\/li>\r\n    \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>MODULE:<\/strong> The module has also been re-written
from scratch with bug fixes, speed optimizations, and new features just as
the component has.<\/li>\r\n\r\n  <\/ul>\r\n  <!-- END:
Features -->",
        "stable_version": "4.5.1",
        "beta_version": "4.5.1",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n22-Jan-2021 : v4.5.1\r\n# [Bug Fixed] Filtering error. When
you select multiple filters for example month and author, you get a 404
error if the URL Rewriting is disabled from backend and the site run under
a subdomain. [Thank you, Gerald Gimpl]\r\n# [Bug Fixed] In the category
filter form field, if a category level is 4 it should be displayed directly
beneath the category with level 3, and a little bit
right.\r\n\r\n04-Jan-2021 : v4.5.0\r\n# [Bug Fixed] The select form field
with the years should not stopped at 2020.\r\n# [Bug Fixed] Fix redirect
after change the select month\/year in the search form.\r\n# [Bug Fixed]
Empty results with the parameter Include\/Exclude categories for K2 contet
type. [Thank you, Coninet Spa]\r\n# [Bug Fixed] An issue with the
\"Allow only these HTML Tags\" parameter has been fixed. [Thank
you, Giorgio Guzzi]\r\n^ [Language] The German (de-DE) language has been
updated [Many thanks to Giorgio Guzzi]\r\n^ [Improvement] Added missing
months\/years (2018, 2019, 2020, 2021) in the \"Include\/Exclude
(months\/years)\" parameter field in component and menu item
settings.\r\n^ [Improvement] Prepare content to show
PHP\/Html\/CSS\/Javascript code at the monthly archive items, when using
plugins such as the \"Sourcener\" of regularlabs which allows you
to write code in the articles by using tags like
{source}{\/source}.\r\n\r\n14-Mar-2019 : v4.4.6\r\n# [BUG Fixed] There was
a 404 error after selecting a category. This issue affects only subdomains
with subdirectories and sub (over 2 levels) menu items. [Thank you, Radin
Nurhafiz]\r\n\r\n03-Mar-2019 : v4.4.5\r\n# [BUG Fixed] When the date of an
article is, for example, 31\/Dec\/2018, 23:59:59, the article isn't
displaying in December's (2018) list, but in January's (2019)
results. This was a bug with the timezone in Daylight Saving Time (United
States) or Summertime period (Europe). [Thank you, Olaf Bieler]\r\n+
[Update] The UIkit framework has been updated to the latest version (UIkit
3.0.3).\r\n^ [Improvement] After each JS and CSS file, the \"v\"
variable has been added, with the value
\"{version}_{datetime_of_release}\". Example:
\"\/components\/com_monthlyarchive\/views\/archive\/tmpl\/default.css?v=4.4.5_20190303011554\"\r\n\r\n07-Dec-2018
: v4.4.4\r\n^ [Improvement] Search also in the author alias.\r\n^
[Language] The Danish (da-DK) language has been updated [Many thanks to
Hans Uwe Petersen]\r\n^ [Improvement] The form input fields are WCAG
compliant [Thank you, Richard Elwood]\r\n\r\n12-Oct-2018 : v4.4.3\r\n! The
\"load UIkit\" option has been removed from the component and the
module parameters.\r\n# Minor CSS Improvements.\r\n\r\n05-Oct-2018 :
v4.4.2\r\n+ [Update] The UIkit framework has been upgraded to the latest
version (UIkit 3.0.0-rc.17).\r\n^ [Improvement] The UIkit prefix has been
changed from \".uk-\" to \".w357ui-\".\r\n# [BUG Fixed]
The issue with error 404 when searching a string from JComments has been
resolved. [Thank you, Rolf Winter]\r\n^ [Styling Improvement] Always use
the black (#000) color in the modal window body, if the template background
is dark.\r\n# [New Parameter] New feature allowing to select the position
of month in the Month-Year display format. For example in Hungary the year
is used to be displayed in front of the month (e.g. 2018 October). [Thank
you, Krisztina]\r\n# [Bug Fixes] Some issues with the UI grid have been
resolved in small devices.\r\n# [Bug Fixes] Minor CSS issues have been
resolved.\r\n\r\n10-Sep-2018 : v4.4.1\r\n+ [New Module Feature] In the
module settings, you can choose to display a select box with Months and
Years.\r\n+ [New Parameter] Show Unauthorised Links. If set to Yes, links
to registered content will be shown even if you are not logged-in. You will
need to log in to access the full item. [Thank you, Joe]\r\n+ [New
Parameter] You can choose your own blank image for the articles that not
have any image. [Thank you, Bianka Craanen]\r\n# [Bug Fixed in K2] Even if
the option \"Hide Trashed Items\" is disabled, the trashed items
are displayed in the list of K2 items. [Thank you, Alberto]\r\n^ [CSS
Improvement] In the extension parameters, the class
\"btn-group-yesno\", replaced with \"btn-group
btn-group\".\r\n\r\n09-Aug-2018 : v4.4.0\r\n+ Fully compatible with
Joomla! 4.x\r\n+ Compatible with the latest version of Web357 Framework
v1.7.x\r\n# [Improvement] Fixes issues with the jquery string on file names
to avoid the exclusion from 3rd party extensions. The file
\"jquery.no-conflict.js\" renamed to
\"jq.no-conflict.js\".\r\n# [Bug Fixed] If the content created or
publish_up datetime was \"0000-00-00 00:00:00\", the following
error is displayed. \"DateTime::__construct(): Failed to parse time
string at position. Double timezone specification.\" [Thank you,
Michael Ferguson]\r\n# [Improvement] JS code should be in HEAD.\r\n^ Code
Cleanup.\r\n# Minor bug fixes and many improvements.\r\n\r\n07-Apr-2018 :
v4.3.7\r\n+ NEW PARAMETER also for the module: Load UIkit front-end
framework. Optionally you can set this option to No if you have already are
using a YOOtheme Pro template and you have detected some
conflicts.\r\n\r\n29-Mar-2018 : v4.3.6\r\n# BUG Fixed: There was an SQL
issue with subscribers which use K2. In where clause we use the
(c.state=1), but in the K2 item, the column named 'state' is not
present. The correct is (c.published=1). [Many thanks to Alberto for his
contribution on this issue]\r\n\r\n16-Mar-2018 : v4.3.5\r\n+ NEW PARAMETER:
Set an exception to the previous parameter \"Show only own
articles\". You can now allow some user groups to see all articles
instead of their own only.\r\n^ The Demo and the JED link have been updated
in the description tab, at Joomla! backend.\r\n! The Web357 Download ID
parameter field has been deleted from each extension settings and has been
replaced by a unique API key parameter field at the Web357 Framework plugin
settings.\r\n+ A new button (Settings) has been added to the description
tab at Joomla! backend.\r\n^ Compatible with the latest version (1.6.0) of
Web357 framework plugin.\r\n\r\n14-Mar-2018 : v4.3.4\r\n+ NEW PARAMETER:
Load UIkit front-end framework. Optionally you can set this option to No if
you have already are using a YOOtheme Pro template and you have detected
some conflicts. [Many thanks to Michael Maass]\r\n+ NEW OPTION: In the
\"Display Author\" parameter field, you can now use the
\"Created by Alias\" option for the Author name. [Many thanks to
Suat Ural]\r\n# Some lines of code have been improved.\r\n\r\n10-Feb-2018 :
v4.3.3\r\n# BUF FIXED: Notice: Undefined variable: get_author in
l\/components\/com_monthlyarchive\/models\/archive.php on line 462. [Many
thanks to Francesco]\r\n\r\n09-Feb-2018 : v4.3.2\r\n+ NEW PARAMETER: Show
only my own articles. The logged in user will be able to see only his own
articles. [Thank you, Denise]\r\n# BUG FIXED: If the option \"Search
Engine Friendly URLs\" from SEO Settings of the Joomla global
configuration is disabled, there were error links (404) at the component
and the module. [Many thanks to Ubovic Dragan]\r\n# Fix container issues
with UIkit scope mode (jQuery conflicts).\r\n# Cleanup some unnecessary
lines of code.\r\n\r\n08-Feb-2018 : v4.3.1\r\n^ The UIkit framework (scope
mode) has been updated to UIkit 3.0.0-beta39.\r\n# Fixed compatibility
issues with older versions of UIkit of users which still use the wrap
framework in Yootheme templates.\r\n\r\n17-Jan-2018 : v4.3.0\r\n+ New
improved SQL query for the model. Fully optimized and speedy results.
Highly recommended for huge databases, over than 50,000 articles.\r\n+ SEO
improvement: The word 'archive' has been removed from the URL for
SEO purposes. You can set your own word from the menu item alias. (e.g.
mysite.com\/yourwordhere\/2017\/03)\r\n+ The Metadata options are now
supported in Menu Item and you can set the meta description, the meta
keywords, and the robots for each menu item you create.\r\n^ The search
engine has been improved.\r\n^ CSS improvements: The UIkit CSS framework is
now lighter and it does not override anymore your base CSS (paragraphs,
headings, links, etc.).\r\n^ The search engine has been improved and a new
CSS class \".ma-highlight-search-word\" has been added into the
CSS file, to highlighting your search words.\r\n^ The UIkit framework
(scope mode) has been updated to UIkit 3.0.0-beta.37\r\n# BUG Fixed:
Warning: DOMDocument::loadHTML(): ID s3gt_translate_tooltip_mini already
defined \r\n# BUG Fixed: If you don't choose any filter, and write
something in the search, it redirects the user to the homepage of the
component.\r\n# Minor bug fixes.\r\n\r\n04-Jan-2018 : v4.2.8\r\n# BUG
Fixed: When creating a new menu item, there is no possibility to filter
with categories. [Thank you, Reinhard Bollmann]\r\n\r\n15-Dec-2017 :
v4.2.7\r\n+ NEW PARAMETER: Option to show or hide the image in modal's
dialog. [Many thanks to Rainer for his suggestion]\r\n^ In menu item
settings now we use the useglobal=\"true\" instead of the
JGLOBAL_USE_GLOBAL. This method allows you to know which are exactly the
global values of global configuration.\r\n# Minor
improvements\r\n\r\n07-Dec-2017 : v4.2.6\r\n# BUG Fixed: The modal dialog,
of \"Link Type\" parameter, is not working after upgrade to UIkit
3.0.0-beta.35. [Thank you, Rainer]\r\n\r\n29-Nov-2017 : v4.2.5\r\n# BUG
FIXED: Modal and Tooltip are not working with UIKit SCOPE mode. \r\n# BUG
Fixed: The filters are not working if the user is logged
in.\r\n\r\n28-Nov-2017 : v4.2.4\r\n# UIkit framework (scope mode) has been
updated from UIkit 3.0.0-beta.24 to UIkit 3.0.0-beta.35\r\n# Missing
parameters in menu item options (image_priority_1, image_priority_2,
image_priority_3, image_priority_4)\r\n# If you choose a category, only the
months which have at least one article will be displayed in the select form
field.\r\n# BUG fixed: The count of articles for each
author\/category\/month\/year is now correct.\r\n# Minor bug fixes and
several improvements.\r\n\r\n15-Nov-2017 : v4.2.3\r\n# BUG Fixed: If an
admin chooses the 'List of Articles' value, of 'Display
Type' parameter, the count of articles in the welcome message was
wrong. It shows always the count of articles for each page based on
pagination, instead of the total number of the chosen month\/year or search
filters.\r\n# BUG Fixed: If the intro or the full text is empty, and only
the title exists, the following error is displayed. \"Warning:
DOMDocument::loadHTML(): Empty string supplied as input in line
X\".\r\n# MODULE: Bug fixed with useless blank lines. [Thank you,
Csap\u00f3 Krisztina]\r\n# CSS Bug Fixed: Do not show the content element
in front of other template elements, like the sticky menu for example.
(.ma-content-item{z-index:1}) [Thank you, Csap\u00f3 Krisztina]\r\n# BUG
Fixed with the UTC\/GMT\/MET timezones. The count of articles on each month
was not correct and most of the times the string \"No Items\" is
displayed. [Many thanks to Paul, Csap\u00f3 Krisztina, and Harald
Kr\u00fcger]\r\n# Minor bug fixes and several
improvements.\r\n\r\n14-Nov-2017 : v4.2.2\r\n+ New Feature added: Now you
can see the \"Edit Article\" link in Monthly Archive list. [Many
thanks to Michael Maass]\r\n\r\n25-Oct-2017 : v4.2.1\r\n# BUG Fixed:
Warning: DOMDocument::loadHTML(): Empty string supplied as input in line X.
[Many thanks to Kjartan Haugen and Mark Timmerman]\r\n# BUG Fixed: Some
third-party content plugins for galleries, videos, etc didn't work
properly. The triggering content plugins are now supported. [Many thanks to
Kjartan Haugen]\r\n\r\n04-Sep-2017 : v4.2.0\r\n# BUG Fixed: Fatal error:
Call to undefined method MonthlyarchiveHelper::getActions(). [Thank you,
Daniel Smith]\r\n\r\n31-Aug-2017 : v4.1.9\r\n# BUG Fixed: The issue with
the parameter field custom date format for tooltip has been resolved.
Support request:
https:\/\/www.web357.com\/forum\/2895-date-format-for-tooltip-problem
[Thank you, Dimosthenis Messinis]\r\n\r\n17-Jul-2017 : v4.1.8\r\n^ The
\"de-DE\" German language has been updated. [Thank you, Albert
Spanninger]\r\n\r\n09-Jul-2017 : v4.1.7\r\n+ Import Content Prepare Plugin
functionality. Allows 3rd party plugins (e.g. galleries) be displayed in
the modal popup window [Thank you, Eddie].\r\n# CSS Bug Fixed: the z-index
decreased to help galleries be displayed in front of the modal popup
window.\r\n\r\n05-Jul-2017 : v4.1.6\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n22-Jun-2017 : v4.1.5\r\n# BUG Fixed: 500 SQL Error: Unknown
column 'categories.parent_id' in 'field list'. [Thank
you, Jennifer Gress]\r\n\r\n19-Jun-2017 : v4.1.4\r\n^ The
\"ca-ES\" Catalan language has been updated. [Thank you, Jose
(JOSERVEIS)]\r\n\r\n16-Jun-2017 : v4.1.3\r\n+ NEW FEATURE: This is an old
feature which has been re-published. You can select which type of
include\/exclude of categories you want to display. There are two options:
1. 'Parent Categories Only' means that you can include, the
parent category, and its subcategories, without select all subcategories.
2. 'Parent Categories and its Subcategories' means that you can
include, the parent category and you have also select its subcategories
separately. [Thank you, Bj\u00f6rn Wichern]\r\n# Some issues with the
publish date of articles have been resolved. [Thank you, Jose M.]\r\n#
Define image variables to avoid PHP warning messages. [Thank you, Jose
M.]\r\n# Minor bug fixes.\r\n\r\n15-Jun-2017 : v4.1.2\r\n+ NEW FEATURE:
Include\/Exclude Type (1. only months, 2. only years, 3. specific
month-year).\r\n+ NEW FEATURE: Image priorities (intro image, full image,
auto detect from the article, blank image). Choose which image to detect
first. For example, if you set the intro image as priority-1, and the intro
image does not exist, then the system will check for the priority-2 image,
and then the next one.\r\n# Memory load improvements.\r\n# Speed
optimization.\r\n# Minor bug fixes.\r\n\r\n29-May-2017 : v4.1.1\r\n# Some
compatibility issues with older versions of UIkit, and Yootheme templates,
like \"yoo_finch\", that have an old version of UIkit, have been
resolved. [Thank you, Richard]\r\n^ UIkit has been updated to the latest
version 3.0.0-beta.24.\r\n^ The \"nl-NL\" language has been
updated. [Thank you, Wim Hanssen]\r\n\r\n13-May-2017 : v4.1.0\r\n+
Compatibility for auto-updates via Watchful.li external service. [Many
thanks to Valentin Barbu, Rafael Gaus, and Frank].\r\n+ Compatible with the
latest version of Web357 Framework v1.4.3.\r\n^ If the JED link does not
exist yet, do not display the 'leave a review' text inside the
plugin parameters.\r\n\r\n08-May-2017 : v4.0.9\r\n# BUG Fixed: jQuery
conflicts have been resolved (e.g. the back button is not worked). [Thank
you, Wim Hanssen].\r\n\r\n07-May-2017 : v4.0.8\r\n# The \"de-DE\"
language file has been updated. [Many thanks to Albert
Spanninger]\r\n\r\n06-May-2017 : v4.0.7\r\n# BUG Fixed: First check if K2
exists to avoid errors in the component configuration. [Thank you, Robert
Gilbey].\r\n\r\n05-May-2017 : v4.0.6\r\n^ The 'Include\/Exclude
Authors' and the 'Include\/Exclude Categories' parameter
fields for K2 have been changed, and you are able to choose from the list
instead of entering the IDs of each item separated by a comma. [Thank you,
Alan Smith]\r\n^ The language files ca-ES, da-DK, de-DE, el-GR, en-GB,
es-ES, fr-FR, it-IT, nl-NL, have been updated for the component and
module.\r\n# Bug Fixed: Some issues with pagination have been
resolved.\r\n# Bug Fixed: Some CSS bugs in the menu navigation, in some
templates which using and older version of UIkit, like the
'Bento' theme of Yootheme, have been resolved. [Thank you, Wim
Hanssen].\r\n# Minor bug fixes.\r\n\r\n01-May-2017 : v4.0.5\r\n# Bug Fixed:
Some parameter fields at backend are not displayed correctly in version
Joomla! 3.7.\r\n+ New Feature: A new parameter field has been added. The
\"Link Type\" parameter allow you to choose if you want to have
links or modal dialogs. [Thank you, Eddie]\r\n\r\n27-Apr-2017 : v4.0.4\r\n^
\u03a4he tooltip style of UIkit has been replaced with another custom one
and simple, after a feedback of many Subscribers that had many problems
with their templates. [Thank you, George Ntatsis]\r\n\r\n26-Apr-2017 :
v4.0.3\r\n# Bug Fixed: The tooltip is displayed in a wrong position.\r\n#
Minor CSS issues and fixes have been resolved.\r\n\r\n24-Apr-2017 :
v4.0.2\r\n+ New feature: If you enable the parameter of the auto-detected
image, you will be able to select which image you want to get, the first or
a random one of your content item. [Thank you, Mike Pringle]\r\n# Bug
Fixed: Some CSS issues e.g. link color, gray color of small meta texts like
count of articles, etc., have been removed and will take automatically the
colors of your current template. [Thank you, Uwe Gr\u00fcnberg]\r\n# Bug
Fixed: The modal window is now displayed in front of other HTML elements
using the z-index CSS method.\r\n# Bug Fixed: You don't need to set
the parameters also in the menu item. [Thank you, Wim]\r\n# Bug Fixed: If a
menu item hasn't created, there is an error (404) after clicking on
months\/years links via the module.\r\n# Bug Fixed: The pagination
($this->pagination->getListFooter()) is not working properly (link is
empty) in some Joomla! templates of popular template providers like
joomlababoo, joomlaxtc, rockettheme, joomlart, gavick, yootheme, etc.
[Thank you, Wim]\r\n# Bug Fixed: The tooltip does not work properly in
Joomla! templates from JoomlaBamboo.\r\n# Minor Bug
Fixes.\r\n\r\n21-Apr-2017 : v4.0.1\r\n# Some issues with older versions of
PHP (5.3.x) have been resolved.\r\n# The bug with the ordering in the Date
(years\/months) select form field has been resolved.\r\n# Compatibility
with the Web357 Framework plugin v1.4.1.\r\n# Fatal PHP errors in Monthly
Archive after upgrade to Web357 Framework v1.4.0 have been resolved. [Thank
you, Wim]\r\n# Minor CSS issues. [Thank you, Uwe]\r\n\r\n20-Apr-2017 :
v4.0.0\r\n+ 29 new useful parameters have been added.\r\n+ More than 40
parameters have been improved.\r\n+ *\"Content-Type\" parameter.
You can now display directly the list of Articles instead of displaying the
list of Months and Years like the previous version did.\r\n+ Check first if
a third party extension is active (installed or enabled), and then retrieve
content from there, without displaying any errors.\r\n+ *STATE: You can
choose a different type of article state to be displayed. You can either
show all articles, the featured articles, the non-featured articles or
both. The published or unpublished articles, the trashed articles, and of
course the archived articles (from Joomla core functionality).\r\n+ *Custom
Page Title and Welcome Message are now welcome. Another useful feature to
set your custom texts for the page title and the welcome message for each
content type (months\/years list or list of articles) separately. Also, you
can hide the page title or the welcome message, again in each content-type
separately.\r\n+ *Include\/Exclude content. Another great feature is to
display any content you want to be displayed. You can choose which content
items to include or exclude from your Archive, specific years, months,
categories, authors, and articles. In the new version, the parameters are
now displayed as a new separate tab in the component parameters.\r\n+
*UIkit Front-end framework: The layout has been improved spectacularly. It
is based on the fantastic UIkit framework of Yootheme team. The UIkit is a
lightweight and modular front-end framework for developing fast and
powerful web interfaces.\r\n+ *SEARCH FORM: Choose the input form fields
that will be displayed in the search form. Select those that are useful for
your Users. You can show the date select field, the order select field, the
author's select form field, and the search input text. Also, you can
show\/hide each form field in each content-type separately.\r\n+ LAYOUT
& NEW PARAMETERS: There are multiple new useful parameters to customize
the layout for each content type separately, the list of months\/years and
the list of articles. For example, you can choose if you want to display
the years in an accordion style. You can select the ordering of years, most
recent years first, or oldest years first. To avoid big lists, you can set
your own limits (e.g. display only the three most recent years and their
months).\r\n+ *IMAGES: We add more powerful parameters for images. You can
show or hide the image. You can choose if your image will be displayed with
a link or not. You can choose the image type (the intro image, the full,
the auto-detect from the content item or the blank image). Finally, you can
set your preferred image dimensions (width and height).\r\n+ *COMMENTS:
This is a feature of a previous version but the functionality has been
improved and optimized.\r\n+ *MODULE: The module has also been re-written
from scratch with bug fixes, speed optimizations, and new features just as
the component has.\r\n^ The language files have been changed. Some strings
have been deleted and some others have been added.\r\n# Minor issues with
previous parameter fields have been resolved.\r\n# Most of the bug fixes
and security issues have been resolved.\r\n# CSS and Javascript issues have
been resolved.\r\n\r\n21-Dec-2016 : v3.6.5\r\n^ The paths of JS files have
been changed both for the component and module.\r\n# jQuery conflicts with
other extensions using same versions have been resolved. [Many thanks to
Karlschule Rastatt]\r\n# We use external JS\/CSS files instead of inline
JS\/CSS code.\r\n# Minor bug fixes have been resolved.\r\n\r\n25-Apr-2016 :
v3.6.4\r\n+ The Catalan language has been added (Many thanks to Jos\u00e9
M. for his contribution).\r\n# Some issues (blank page and template
crashed, mostly) in extension's configuration\/parameters that still
use Joomla! 3.3.x, have been resolved.\r\n# The error messages about the
download ID, during the update of other Web357 extensions, have been
resolved and have been removed. \r\n# Bug Fixed: Some conflicts with menu
item's page heading and page title, have been resolved.\r\n# Minor bug
fixes.\r\n\r\n12-Jan-2016 : v3.6.3\r\n# Bug Fixed: The sum of articles at
the right of each year is not calculated correctly for the Joomla! and K2
articles.\r\n\r\n08-Dec-2015 : v3.6.2\r\n# Minor bug fixes after the latest
upgrade from v3.6.1\r\n\r\n07-Dec-2015 : v3.6.1\r\n^ Updated
description.\r\n^ Updated translations.\r\n\r\n23-Nov-2015 : v3.6.0\r\n+
NEW PARAMETER: SEO: Robots. You can block Monthly Archive component from
Search Engines.\r\n+ NEW PARAMETER: SEO: Follow Links. You can tell search
engines to follow or not follow the links
(https:\/\/support.google.com\/webmasters\/answer\/96569?hl=en).\r\n# BUG
FIXED: 1146 Table '#__k2_categories' doesn't exist.\r\n# BUG
FIXED: Error loading component: com_k2, Component not found.\r\n# BUG
FIXED: The \"Use Global\" option has not set for the menu item
parameter fields: \"Include Category Type\" and \"Exclude
Category Type\".\r\n# Bug Fixed: Element: k2categories.php. Check if
K2 is installed and then if is enabled. Error Message:
\"ComponentError loading component: com_k2, Component not found.\r\n^
The plugin is enabled automatically, instead of displaying the message:
\"Error - The 'Monthly Archive' plugin is required for this
extension and must be active.\"\r\n^ Default settings have been set.
No errors anymore from the first installation, about MySql Error 1146, K2
is missing, JComments is not installed etc.\r\n^ The (copyright) footer is
shorter now. Changed from \"Powered by Monthly Archive PRO (by
Web357)\" to \"Powered by Monthly Archive\".\r\n^ The module
has the same parameters as the component.\r\n+ The parameters
\"Include Categories Type\" and \"Exclude Categories
Type\" are also available for the Module. With this parameter you can
include the parent category and its subcategories, without select all
subcategories.\r\n\r\n13-Nov-2015 : v3.5.3\r\n+ NEW Parameter Field:
Download ID. You need to specify your Download ID before you can receive
updates for the PRO versions. For more information please follow our
instructions here: https:\/\/www.web357.com\/apikey\r\n# BUG Fixes: the
exclusion and inclusion of months and years working properly now.\r\n#
LANGUAGE: Spanish language file has been saved again because there were
some issues with \u00f1 and \u00e1 characters.\r\n\r\n11-Oct-2015 :
v3.5.2\r\n# BUG Fixed: It's not possible to enter the settings after
updating from 3.5.1, if the K2 component is not enabled or active.\r\n#
MODULE: You can select K2 Categories for include\/exclude, without entering
the IDs of Categories.\r\n\r\n08-Oct-2015 : v3.5.1\r\n^ You can select K2
Categories for include\/exclude, without entering the IDs of
Categories.\r\n+ New Parameter Added: You can select which type of
include\/exclude of categories you want to display. There are two options:
1. 'Parent Categories Only' means that you can include, the
parent category, and its subcategories, without select all subcategories.
2. 'Parent Categories and its Subcategories' means that you can
include, the parent category and you have also select its subcategories
separately.\r\n# BUG FIXED: \"Pi\u00f9\" word did not display
correctly in the Italian language.\r\n# BUG FIXED: Include - Exclude
categories, did not work rightly.\r\n# BUG FIXED: The count of the
Categories and the Authors in the  form field, now calculated
correctly.\r\n\r\n15-May-2015 : v3.5.0\r\n+ 7 New Useful Parameters have
been added (show_year, show_month, count_of_articles_beside_year,
include_years, include_months, exclude_years, exclude_months).\r\n+ New
Parameter added: Show or Hide Months or Years from the list.\r\n+ New
Parameter added: Show or Hide the count of articles, beside each Month or
Year, from the list.\r\n+ New Parameter added: Include\/Exclude specific
Years and Months.\r\n+ New Feature added in Component: Nice jQuery
Accordion effect for the Years (expand\/collapse).\r\n^ Languge files have
been edited.\r\n! File removed:
\"\/modules\/mod_monthlyarchive\/tmpl\/accordion.php\"\r\n! File
removed:
\"\/modules\/mod_monthlyarchive\/assets\/ma_output.php\"\r\n^
File renamed: from \"\/mod_monthlyarchive\/assets\/style.css\" to
\"\/mod_monthlyarchive\/assets\/mod_monthlyarchive.css\"\r\n^
Italian Language file: \"Month\" in italian is \"Mese\"
not \"Messe\"\r\n+ If you choose the menu item type
\"Specific Month-Year\", you can display articles from all year
instead of one month of the year.\r\n# MODULE - Bug fixed: Copyright text
must be outside of .\r\n\r\n25-Apr-2015 : v3.4.2\r\n# Bug Fixed: Issues
with the required field of menu item id in the module parameters.\r\n^ CSS
improvements in component and module about big padding in list items.\r\n#
Bug Fixed with version checker from web357 framework, has been
resolved.\r\n# Warning messages in component's page, at joomla
backend, have been resolved.\r\n\r\n23-Apr-2015 : v3.4.1\r\n+ Compatible
with \"Web357Framework\" (joomla! system plugin).\r\n^
Improvement design for parameter fields (better radio buttons and color
pickers).\r\n+ ADMIN: New Element: Description of extension (buttons: view
demo, more details, changelog, support).\r\n+ ADMIN: New Element: Version
Check.\r\n+ ADMIN: New Element: About Web357 (logo, description, find us on
social media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n06-Apr-2015 : v3.3.2\r\n# Issues fixed with menu item
ids in module, after upgrade to 3.3.1\r\n\r\n31-Mar-2015 : v3.3.1\r\n^ CSS
Files moved. Each \"view\" has their own css file. It helps when
we need to override component in our current template\r\n^ The language
files are now inside the component and module folder. All languages files
have been added in Transifex.\r\n+ Component has been improved in joomla
admin panel with 3 new sections, a) Overview (information about Monthly
Archive), b) Settings, c) Changelog.\r\n# COMPONENT: BUG Fixed: Error
message in admin panel: \"500 Html Behavior:: tab state not
found\"\r\n^ COMPONENT: The first letter of Month, in select box, is
now uppercase.\r\n^ COMPONENT: BUG Fixed: Pagination was everytime enabled,
even if the field \"display pagination\" from parameters, had
been set as \"Hide\".\r\n# MODULE: BUG Fixed: jQuery's
conflict issues with \"accordion\" module style have been
resolved.\r\n# MODULE: Content Type field has now a default value after the
first installation.\r\n# MODULE: In parameter field \"Menu Item
ID\", we inserted the language prefix to help you assign the correct
menu item of component, if your website is multilangual.\r\n^ MODULE:
\"style.css\" renamed to
\"mod_monthlyarchive.css\".\r\n+ MODULE: override module
supported.\r\n! MODULE: \"ma_output.php\" helper file has been
removed.\r\n^ MODULE: fopen php function avoided for check module's
latest version. Replaced with \"simplexml_load_file\".\r\n+ PHP,
CSS code improvement.\r\n# Some unneeded lines and comments in code, have
been removed.\r\n# Minor bug fixes.\r\n\r\n13-Mar-2015 : v3.3.0\r\n+
LANGUAGE: French (fr-FR) language added for the component and module.\r\n+
LANGUAGE: Danish (da-DK) language added for the component and module.\r\n+
MODULE: You can select the menu item ID that is assigned with Monthly
Archive.\r\n! MODULE: List style parameter removed.\r\n# MODULE: Bug Fixed:
Active color in the correct month link.\r\n# MODULE: Bug Fixed: Module
doesn't display all months.\r\n^ COMPONENT: Improved MVC
functionality.\r\n^ COMPONENT: In \"Specific Month-Year\" menu
item, month and year fields are required.\r\n# COMPONENT: BUG Fixed: Error
links with preffered alias and pagination links.\r\n^ COMPONENT: Remove
\"limit,5\" from url, if pagination is disabled.\r\n+ COMPONENT:
Nice CSS radio buttons for show\/hide fields, in backend parameters .\r\n+
COMPONENT: \"Page Display\" functionality for menu items. From
menu item's tab. You can set custom browser title and page heading
title in the front page of component.\r\n# COMPONENT: BUG Fixed:
\"Date Format\" and \"Custom Date Format\" are now
compatible with menu item parameters.\r\n+ COMPONENT: You can allow all or
one or two or more, HTML Tags for the introtext.\r\n# COMPONENT: BUG Fixed:
K2 Notice: Undefined index: catalias (only in joomla 2.5.x).\r\n#
COMPONENT: BUG Fixed: \"Show page title\" parameter, has been
resolved.\r\n# COMPONENT: BUG Fixed: Notice messages displayed, if an item
id hasn't images, the intro or the full image (only in joomla
2.5.x).\r\n+ COMPONENT and MODULE: New Parameter added: You can sort the
months by newest or oldest first.\r\n# BUG Fixed at backend: 500 - An error
has occurred. JHtmlBehavior: :tabstate not supported.\r\n+ ACL
supported\r\n# Menu parameter has been renamed from
\"page_title\" to \"ma_page_title\" for avoid conflicts
with menu item title which has the same parameter name.\r\n# GENERAL CSS
BUG FIXES.\r\n\r\n09-Jan-2015 : v3.2.7\r\n+ New Parameter added: Option for
display or hide the article image from intro text of article.\r\n+ New
Parameter added: You can display the intro or the full text image of
article.\r\n+ New Parameter added: You can enter your custom dimensions
(width, height) of article image.\r\n+ New Parameter added: You can use the
3rd party extension (content plugin), the
\"plg_content_imgresizecache.zip\" to resize your article images
and cache.
http:\/\/www.s2software.it\/en\/download\/joomla-image-resize-cache\r\n\r\n17-Dec-2014
: v3.2.6\r\n+ Intro image with the intro text will be displayed in Monthly
Archive.\r\n\r\n27-Nov-2014 : v3.2.5\r\n+ Parameter Added: You can select
the default date format from list.\r\n+ Parameter Added: You can enter a
custom date format.\r\n\r\n14-Nov-2014 : v3.2.4\r\n+ Parameter Added: You
can select the type of date, of article, you want to display. There are two
options, the date of created or the date of published up.\r\n# General Bug
fixes\r\n\r\n01-Oct-2014 : v3.2.3\r\n# Bug fixed in Module: module
conflicts with t3 template framework.\r\n# Bug fixed in Module: copyright
message doesn't displayed in module.\r\n# General Bug
fixes\r\n\r\n24-Sep-2014 : v3.2.2\r\n# Bug fixed: $params variable missed
in router.php\r\n# Bug fixed: better sef urls for k2\r\n\r\n11-Aug-2014 :
v3.2.1\r\n# Bug fixed: Notice: Undefined variable: article_link_sef\r\n#
Bug fixed: wrong Item Id for multilingual menu items\r\n^ added parameter
for change viewer name (Prefered Alias)\r\n# General Bug
fixes\r\n\r\n24-Jun-2014 : v3.2.0\r\n+ Spanish (es-ES) language added for
component & module\r\n+ Dutch (nl-NL) language added for component
& module\r\n+ Italian (it-IT) language added for component &
module\r\n# General Bug fixes\r\n\r\n30-May-2014 : v3.1.7\r\n^ MODULE:
Accordion type: displaying the months below, if the year is active.\r\n^
COMPONENT: Mistakes fixed in german translation. Thank you guys (Mats and
Philipp)!\r\n+ COMPONENT: \"ARCHIVES_ALL\" has added in
translations, English, Greek, German.\r\n+ COMPONENT: Support multilingual
content\r\n# Bug fixed: Accordion module not working if there is more than
one module on the same page\r\n\r\n31-Jan-2014 : v3.1.6\r\n# Bug Fixed:
Pagination not displayed if the limit is smaller than the count of articles
(Thank Meireles for the report:
http:\/\/www.joomla357.com\/forum.html?view=topic&catid=13&id=757)\r\n\r\n21-Jan-2014
: v3.1.5\r\n# Bug Fixed: Itemid issues with assigned menu item ids\r\n# Bug
Fixed: Pagination for Rockettheme templates\r\n^ Greek and German language
files have been edited\r\n\r\n30-Oct-2013 : v3.1.4\r\n# Bug Fixed: Error
404 after click on the module links\r\n! advanced.php has been removed from
module templates\r\n\r\n22-Oct-2013 : v3.1.3\r\n+ router.php\r\n^ more
friendly urls\r\n# Notice and Warning messages now have been cleared if you
select Error reporting: Development or Maximum\r\n# General Bug
fixes\r\n\r\n02-Sep-2013 : v3.1.2\r\n# Missing Closing Div in Accordion
version\r\n# bug fixed: pagination is now working correctly\r\n# General
Bug fixes\r\n\r\n19-Jul-2013 : v3.1.1\r\n+ Parameters added in component
& module (INCLUDE\/EXCLUDE: k2 categories) \r\n^ Cleaned up code syntax
in monthlyarchive.class.php and xml files\r\n\r\n18-Jul-2013 : v3.1.0\r\n+
Parameters added in module (INCLUDE\/EXCLUDE: articles, authors,
categories) \r\n^ Many changes in monthlyarchive.class.php\r\n^ Cleaned up
code syntax in module's files\r\n# General Bug
fixes\r\n\r\n31-May-2013 : v3.0.5\r\n+ MODULE: style.css added in the
folder \/assets\r\n+ MODULE: active class added for display the selected
month\/year (default color: green, you can change it from style.css)\r\n+
MODULE: nice accordion navigation layout with jQuery\r\n# MODULE: sef urls
fixed with JRoute and the correct itemID of the component\r\n^ Cleaned up
code syntax in module's files\r\n# General Bug
fixes\r\n\r\n26-May-2013 : v3.0.4\r\n# Bug fixed: hierarchy for
categories\r\n# Bug fixed: pagination is not working correctly, default
list limit always was 5 
http:\/\/www.joomla357.com\/forum.html?view=topic&catid=13&id=646#919\r\n\r\n24-Mar-2013
: v3.0.3\r\n+ German language added (many thanks to Matthias Brucke -
mb[@]embeteco.com)\r\n+ Added the parameter to display the empty categories
in select form\r\n+ Added the parameter to display the Default List Limits,
for example 5,10,20,25,50\r\n# Bug fixed: in menu item parameters\r\n# Bug
fixed: legacy controllers in joomla 3.0.x version\r\n\r\n06-Mar-2013 :
v3.0.1\r\n+ Display article's author alias instead of name of the
author\r\n+ Display introtext in the results list\r\n+ Module: You can
select if you want to open the links in a new window\r\n^ Updated
translations in joomla! backend\r\n# Bug fixed: with archived and
unarchived count of articles in the select boxes\r\n# Bug fixed: with page
and header title\r\n# Bug fixed: double alias in sef urls\r\n+ Now you can
set the page and header title from each menu item that you create\r\n^
Language files changed\r\n+ Bux fixed: Unpublished items always displayed,
even if the \"finish publishing\" is smaller than today\r\n+ Now
you can insert the \"Include\" or \"Exclude\"
categories, from the \"select box\" instead of text input
separated by comma\r\n\r\n30-Oct-2012 : v3.0.0\r\n# Bug fixed: with
pagination\r\n# CSS bug fixes\r\n+ Tree format for categories and
subcategories in select box of search form\r\n+ Now you can search articles
for a spesific year\r\n+ Added a parameter in module, for enable or hide
the count of articles beside the months\r\n+ Added the parameter
\"Pagination\". If \"Yes\" there is a pagination in
monthly archive, if \"No\",\r\n all article link displaying in
one page without pagination.\r\n+ Now you can see the unpublished articles
if you've inserted a \"publish_down\" date in content\r\n
item's field.\r\n^ Language files changed\r\n! End of life Joomla!
1.5\r\n\r\n28-Mar-2012 : v2.0.8\r\n# Bug fixed for Joomla! 2.5: Only shows
articles when both is
selected\r\n(http:\/\/www.joomla357.com\/forum?func=view&catid=13&id=340)\r\n\r\n17-Jan-2012
: v2.0.6\r\n+ Compatible with Joomla! 2.5\r\n# Bug fixed: Time Zone
(http:\/\/www.joomla357.com\/forum?func=view&catid=13&id=212)\r\n\r\n28-Dec-2011
: v2.0.5\r\n+ Compatible with the Database Type \"MySQLi\".\r\n#
Bug fixed: Problem to displaying \"Archived articles\" or
\"Both types (unarchived & archived)\"\r\n (The problem
appeared only on joomla 1.7)\r\n# Bug Fixes\r\n\r\n22-Sep-2011 :
v2.0.4\r\n+ K2: Full compatibility with JComments\r\n# K2: Fixed: Problem
at results in search input text\r\n+ Added a new nice button for search
input form.\r\n+ 8 new features in parameters for including or exluding
Content\r\n+ Include Content\r\n+ Include Authors\r\n+ Include
Articles\r\n+ Include Categories\r\n+ Include Sections\r\n+ Exlude
Content\r\n+ Exclude Authors\r\n+ Exclude Articles\r\n+ Exclude
Categories\r\n+ Exclude Sections\r\n+ You can display or disable anything
you want in search form in frontend\r\n+ Select Months\r\n+ Select
Order\r\n+ Select Author\r\n+ Select Category\r\n+ Select Comments\r\n+
Search Input\r\n# Bug Fixes\r\n\r\n16-Sep-2011 : v2.0.3\r\n+ Supports K2
for Joomla! 1.7\r\n\r\n03-Aug-2011 : v2.0.2\r\n! Joomla! 1.6
Compatible\r\n^ Changes in language files\r\n# Bug Fixes\r\n\r\n30-Jul-2011
: v2.0.1\r\n+ Display option: \"Primary order\", in the
component's parameters for better order of the Archives\r\n# Bug
Fixes\r\n\r\n26-Jul-2011 : v2.0.0\r\n^ Change the name of component from
\"archives\" to \"monthly archive\"\r\n+ Joomla! 1.6
Compatible\r\n+ Joomla! 1.7 Compatible\r\n! Remove the Greek Language from
the backend\r\n+ Search option: \"Select Author\"\r\n+ Search
option: \"Select Category\"\r\n# Bug Fixes\r\n\r\n29-Mar-2011 :
v1.2.0\r\n+ Intergration with K2\r\n! Remove 2 not useful classes from
archives.class.php\r\n+ Copyright (link to author)\r\n^ Cleaned up more
code\r\n# Bug Fixes\r\n\r\n28-Mar-2011 : v1.1.0\r\n+ Added translations:
el-GR, en-GB\r\n\r\n27-Feb-2011 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2021-01-22",
        "extension_type": "Component_and_Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/monthly-archive",
        "more_info_url":
"https:\/\/www.web357.com\/product\/monthly-archive-joomla-component-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/39-monthly-archive",
        "changelog_url":
"https:\/\/www.web357.com\/product\/monthly-archive-joomla-component-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/news-display\/articles-display\/monthly-archive\/",
        "backend_settings_url":
".\/index.php?option=com_config&view=component&component=com_monthlyarchive"
    },
    "cookiespolicynotificationbar": {
        "name": "cookiespolicynotificationbar",
        "real_name": "Cookies Policy Notification
Bar",
        "product_type": "pro",
        "description": "A beautiful and functional EU Cookie
Law Compliance Joomla! Plugin that provides a mechanism for informing your
visitors about how you use cookies on your website in an elegant manner. It
includes a variety of features and parameters (responsive, multilingual,
block cookies, change style, etc.). This Joomla! plugin is ready for the
GDPR Compliance which has been already implemented on \u200e25 May
2018.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n\r\n<ul
class=\"uk-list uk-list-striped\">\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Cookies Manager (Functionality)<\/strong> (This
parameter allows the users to accept or decline specific categories of
cookies. They have the full control of cookies now, and they can change
their cookies preferences anytime.) [NEW FEATURE in
v3.5.0]<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Block
Cookies Functionality<\/strong> (The cookies are disabled, till the
User clicks on the \"Accept Cookies Policy\"
button)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>GDPR
Ready!<\/strong> Let the user to decide if accept or decline the
cookies on the browser. [NEW FEATURE in v3.3.0]<\/li>\r\n    \r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>GDPR Compliance!<\/strong> Allow the user to reconsider
(after acceptance), and give him the choice to delete the cookies from his
browser. [NEW FEATURE in v3.3.0]<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Store
User's consent into the Database<\/strong> (Functionality to
record and store visitor's consent (this record is not considered a
personal data). We storing only the user IP Address and the date\/time of
acceptance. GDPR Rules!) [NEW FEATURE in v3.3.0]<\/li>\r\n\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Shortcode Functionality.<\/strong> (You will be able to
display a table with the accepted website cookies and give the opportunity
to the user reconsider or delete the cookies from his browser. Example of
shortcode: {cookiesinfo}.) [NEW FEATURE in v3.3.0]<\/li>\r\n\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>3 Options for the 'More Info'
button<\/strong> (You will be able to choose the action of the
'More Info' button. Options are, 1) Custom link, 2) Link to a
menu item, 3) Modal window with your Custom Text.) [NEW FEATURE in
v3.2.0]<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Multilingual Support<\/strong> (You can manage the
message on the notification bar, the text buttons, the confirmation alerts,
and other text-strings for each of your active languages.)<\/li>\r\n 
\r\n      <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>GeoIP2
Web Service<\/strong> (Show the notification bar only in specific
Continents and Countries.)<\/li>\r\n\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Cookie
Expiration Time<\/strong> (Set the time that the cookie expires. If
you enter 365 will set the cookie to expire in 365 days. If set to 0, the
cookie will expire at the end of the session (when the browser
closes)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>7
Styling Positions<\/strong> (Top, Bottom Center, Top Left, Top Right,
Bottom Left and Bottom Right)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Duration<\/strong> (The duration of the message (in
seconds). After this time, the notification bar will
disappear)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Animate Duration<\/strong> (The duration of the
animation will run (in milliseconds). Default is 2000.)<\/li>\r\n\r\n
   <li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Limit<\/strong> (The limit of how many times, the
notification bar, will display if the visitor does not click on the
button)<\/li>\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Message<\/strong> (The Message in notification bar.
HTML allowed)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Font
Color<\/strong> (The Font Color. Example: #fff or #ff0000 or green
etc.)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Link
Color<\/strong> (The Font Color. Example: #ccc or #f2f2f9 or red,
blue, black etc.)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Font
Size<\/strong> (The Font Size. Default is 13px.)<\/li>\r\n\r\n 
  <li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Background Opacity<\/strong> (The Background Opacity of
notification bar)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Background Color<\/strong> (The Background Color.
Example: #000)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Styling for all buttons<\/strong> (Set the font and the
background color of each button, for the default or for the on-mouse-hover
action)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Custom
CSS <\/strong>(Enter your custom css code)<\/li>\r\n\r\n   
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Custom Javascript <\/strong>(Enter your custom
javascript code)<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Body
Cover<\/strong> (Choose if you want to allow the notification bar
cover the body of the page)<\/li>\r\n     \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Locked
Overlay<\/strong> (The body of the page is locked until the user
Accepts or Decline)<\/li>\r\n     \r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Include or Exclude the plugin from selected
pages<\/strong> (Display the cookies notification bar only in
specific pages<\/li>\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Always
Display (for Debugging)<\/strong> (The cookies notification bar will
be displayed even if the user accepts or decline. This feature mostly used
by admins in the first steps of setup and
customizations.)<\/li>\r\n<\/ul>\r\n\r\n<h3
class=\"uk-h2 uk-text-center\">Why we have to install this
joomla! plugin?<\/h3>\r\n<hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<p>On 26 May
2011 the European Commission made the controversial 'Cookies
Directive' law. It applies to the UK and all european countries. It
mandates that the use of cookies on european business websites must be
disclosed and explicit consent for their use be obtained from your users,
however in the UK the Information Commissioners Office (ICO) has suggested
that it is sufficient to work on the basis of implied rather than explicit
consent. You can find more useful information about cookies <a
href=\"http:\/\/ec.europa.eu\/ipg\/basics\/legal\/cookies\/index_en.htm\"
target=\"_blank\">here<\/a>.<\/p>\r\n\r\n<h3
class=\"uk-h2 uk-text-center\">This is the easiest way to
manage and block cookies on Joomla! websites<\/h3>\r\n<hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<div class=\"uk-text-center
uk-margin-top\">\r\n    <iframe width=\"1280\"
height=\"720\"
src=\"https:\/\/www.youtube.com\/embed\/h1B7ihpkfZg\"
frameborder=\"0\"
allowfullscreen><\/iframe>\r\n<\/div>\r\n\r\n<h3
class=\"uk-h2 uk-text-center\">How to Block Cookies and use
the Cookies Manager? (TUTORIAL)<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<p>Before using the <strong>Block Cookies
Functionality<\/strong> and the <strong>Cookie Manager (modal
window)<\/strong> feature, please read carefully the instructions you
will find in this useful guide about how to block the cookies at your
Joomla! website. <a
href=\"https:\/\/www.web357.com\/blog\/news\/how-to-block-cookies-in-joomla\"
target=\"_blank\"><strong>Take me to the guide
\u00bb<\/strong><\/a><\/p>\r\n<!-- END: Features
-->",
        "stable_version": "4.0.2",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n19-Jan-2021 : v4.0.2\r\n+ [New Parameter] Disable ReCaptcha
cookies. By default the Invisible reCAPTCHA loads some required cookies. By
setting this option to Yes you can disable the cookies of Invisible
reCAPTCHA (screenshot: http:\/\/bit.ly\/disableReCAPTCHACookies).\r\n# [Bug
Fixed] If you place HTML\/JS code inside cpnb tags with a custom category
(e.g. <cpnb
data-cpnb-cookie-category-id=\"analytical-cookies\">google
analytics code goes here..<\/cpnb>) the content inside cpnb tags
should be hidden when a User rejects the cookies.\r\n# [Bug Fixed] The CPNB
tags and the Cookies Info shortcode is not working properly when the
Joomla! cache is enabled.\r\n\r\n02-Dec-2020 : v4.0.1\r\n# [Bug Fixed]
Error: 0 Class 'LanguageHelper' not found.\r\n# [Bug Fixed]
Can't export\/import parameters since the last update (v4.0.0) [Thank
you, Alex Giral]\r\n\r\n26-Nov-2020 : v4.0.0\r\n+ [J4 ready] Fully
compatible with Joomla! 4.x. Almost, all the parameters in the backend
works properly.\r\n+ [New Feature] Compatible with the Web357 Licenses Key
Manager (https:\/\/bit.ly\/web357-license-key-manager)\r\n+ [Improvement]
Compatible with the latest version 1.8.0 of Web357 Framework.\r\n^
[Improvement] By running Google Lighthouse test, we found a problem: the
cpnb_outter, cpnb_inner and cpnb-modal-close ids are used twice in the
rendered page while id attributes should be unique on a page. [Many thanks
to Giussepe Covino]\r\n^ [Improvement] When a user entering the site on DE
language, declines all cookies, change to UK. The next time the user
entered the site they get send back to the DE site. The required-session
cookies from core Language Filter system plugin are now ignored. [Many
thanks to Esben Laursen]\r\n^ [Improvement] The
\"cpnb-cookies-manager-icon-1-64x64.png\" icon is in the plugins
folder, but since typically that this folder is forbidden by robots.txt,
crawlers cannot download that icon, so the icon has been moved into the
media folder. [Thank you, Giuse Covino]\r\n^ [Improvement] Add validation
patterns for expiration time of cookies in the plugin parameters at Joomla!
backend. (e.g. ^([1-9])[\\d]{0,3}$) You can enter only digits from 1 day up
to 999 days.\r\n^ [Improvement] In the language files all the
\"_QQ_\" strings, have been replaced with a single quote.\r\n^
[Improvement] The JFactory::getLanguage()->getKnownLanguages(); has been
replaced with LanguageHelper::getKnownLanguages(JPATH_SITE);\r\n^ [Style
Improvement] Fix \"lock overlay\" z-index to avoid clicking on
menu items. [Thank you, Matthias Rost]\r\n# [Bug Fixed] Some issues with
templates that has a sticky menu and place the notification bar at the top,
are now resolved. [Thank you, Sch\u00f6ffel Tobias]\r\n# [Bug Fixed]
Installation issues after installing the plugin on a clean Joomla!
4.0.0-alpha-12 installation.\r\n# Minor fixes, code cleanup and
improvements.\r\n\r\n12-May-2020 : v3.9.1\r\n# [Bug Fixed] When you click
the \"Accept\" button on Internet Explorer 11, nothing happens.
[Thank you, Joachim Kroener]\r\n# [Bug fixed] PHP Notice: Undefined index:
cpnb_cookiesSettings in \/cookiespolicynotificationbar.php on line
1009.\r\n^ [Improvement] If the user has not accepted the cookies policy,
block the NID google's cookie which is loaded by the Joomla! core
plugin \"plg_captcha_recaptcha_invisible\" [Thank you,
Alexander]\r\n# [Bug Fixed] An issue in the templates section on the
Yootheme PRO builder has been resolved. [Thank you, Gauliard
Cathy]\r\n\r\n06-Mar-2020 : v3.9.0\r\n+ [New Feature] Admins are able to
see which categories are accepted by the users via the acceptance logs in
the plugin settings.\r\n+ [New Feature] Confirmation alerts for each button
separately. In \"Base Settings\" you can see a new section of
parameters \"Confirmation Alerts\", for the \"Accept\",
for the \"Decline\", and for the \"Delete\"
button.\r\n+ [New Feature] Restore the plugin settings to the defaults. All
the settings will be replaced by the default plugin settings.\r\n+ [New
Feature] The cookie expiration has been splitted in two variables, the
datetime and the text. Now, if you are using the shortcode functionality to
display the cookies info table, you can choose the Cookie expiration
(count), and the cookie Expiration (text) (for example, 30 days, or 1 year,
or 2 years, etc.)\r\n+ [New Parameter fields] You can now translate the
expiration text values in the shortcode info table. You can do this from
the \"Texts for Languages\" tab, for each language separately.
There is a new field for each of these strings (minute, minutes, hour,
hours, day, days, month, months, year, years).\r\n+ [New Feature] Add a
class attribute for each button separately (accept, decline, cancel, more
info, settings, save, reload), where these are displayed on the cookies
notification bar, on the cookies manager (modal window) and in the cookies
info table (shortcode). There are 11 buttons in total.\r\n# [New Feature]
Because of some European countries, for example, Italy, a new parameter
field has been created to set the days of the expiration date of the cookie
\"cpnb_cookiesSettings\".\r\n# [New Feature] Trigger events are
now available for each function separately. You can do something after
clicking on the accept, on the decline, or on the cancel button.
https:\/\/docs.web357.com\/article\/52-trigger-events\r\n+ [New Feature]
The \"Include or Exclude from Pages\" functionality, in Advanced
Settings, has been separated in two parameter sections. The \"Show
Notification Bar\" and the \"Plugin's Functionality\".
With the first parameter you can show\/hide the notification bar from
specific pages, and with the second you can enable\/disable the whole
plugin's functionality (notification bar, cookies manager modal window
and cookies info table - shortcode functionality), from specific pages.
[Thank you, Giuseppe Covino]\r\n^ [SEO Improvement] Some links are indexed
automatically by search engine robots (e.g. Google, Bing, Baidu, Yandex,
etc.). To avoid this situation we have add the attribute
rel=\"nofollow\" to all the button links. [Thank you, Piero
Pavan]\r\n^ [Style improvement] The checkbox style has been replaced by the
classic checkbox style.\r\n^ [Language updated] The French language files
have been updated. Many thanks to Sandra Decoux (sandra@idimweb.com) for
her contribution.\r\n# [Bug Fixed] Detect the total of enabled cookie
categories and if there are more than one, then create the
\"cpnb_cookiesSettings\" cookie. If there is only one category
(e.g. the \"required-cookies\"), do not create the
\"cpnb_cookiesSettings\" cookie, to help you passing the
Cookiebot validation service.\r\n# [Bug Fixed] after accept check all
checkboxes asynchronously. Not reload needed as before.\r\n# [Bug Fixed] In
the \"Block Cookies by blocking their Javascript Code\"
parameters section it is not possible to have no one item.\r\n# Minor
improvements and code cleanup.\r\n\r\n13-Jan-2020 : v3.8.3\r\n+ [New
parameter] Show or Hide the Cookies Manager (Modal Window) to the Logged in
Users.\r\n# [Improvement] Do not load the cookie name
\"cpnb_cookiesSettings\" by default, but set enable only the
required cookie category if the setting cookie is not initially loaded.
This improvement has been added to pass the cookiebot service. Learn more
here: http:\/\/bit.ly\/pass-cookiebot-validation-in-joomla\r\n# [Bug Fixed]
Do not delete the allowed forced cookies if you click on the
\"Decline\" button, inside the Cookies Manager (modal window)
[Many thanks to Alexis Kourkoulos]\r\n# Minor fixes and
improvements.\r\n\r\n06-Sep-2019 : v3.8.2\r\n+ [New feature] Force allow
cookies. Sometimes we need to ensure that all the required cookies will be
loaded successfully even if the user has declined the cookies policy. For
this reason and only we are now able to force allow some cookies by adding
the cookie names in the new parameter field. More info:
http:\/\/bit.ly\/cpnb-force-alow-cookies\r\n# [Bug Fixed] Do not display
the cookie manager icon in iframes.\r\n# [Bug Fixed] Display the cookie
expiration in the cookies info table if a cookie name is a regex.\r\n^ [SEO
Improvement] Missing ALT attribute to the image of the Cookies Manager (the
one displayed on bottom-left corner).\r\n# Minor bug fixes and code
improvements.\r\n\r\n13-May-2019 : v3.8.1\r\n# [Bug Fixed] Errors after
upgrading to Yootheme PRO builder v1.19.x. Session cookies should not be
blocked during editing Yootheme PRO Builder articles\/pages. [Thank you,
Herv\u00e9 Palmier]\r\n\r\n10-Apr-2019 : v3.8.0\r\n# [Bug Fixed] If the
cookie category has been selected by admin as \"checked by
default\" for loading the cookies in the first time visit, the
javascript code should not be blocked if the user does not accept. This
issue only affects when you are using the <cpnb> tags in your
template files.\r\n# [Bug Fixed] If you are using the <cpnb> tags for
specific categories, (for example: <cpnb
data-cpnb-cookie-category-id=\"analytical-cookies\">...<\/cpnb>),
in your template (.php) files, there is an error with the closing tag
<\/cpnb>. [Many thanks to Alvaro]\r\n# [Bug Fixed] Sessions should
not be blocked during editing an article\/page through the Yootheme PRO
page Builder. [Thank you, Stefanie Krause]\r\n^ [Language Files] All the
language files have been updated with all the new strings of latest
parameters. (da-DK, de-DE, el-GR, en-GB, fr-FR, it-IT, nl-NL,
ru-RU).\r\n\r\n14-Mar-2019 : v3.7.9\r\n# [Bug Fixed] If the parameter
\"Include\/Exclude from Pages\" is enabled, kill the plugin from
any excluded page.\r\n\r\n28-Feb-2019 : v3.7.8\r\n+ [New Parameter]
Show\/Hide the Cookies Manager (Modal Window) only in specific pages. [Many
thanks to Alvaro]\r\n^ [Improvement] The parameter \"Categories of
Cookies\" is now available for modifications even if the Cookies
Manager (Modal Window) is disabled.\r\n# [Bug Fixed] An issue with
com_mijoshop cart has been resolved.\r\n^ [Improvement] The cache of
mojishop will now be deleted after deleting\/disabling cookies. [Thank you,
Toni, from Idilicstudio S.L]\r\n! [Deleted files] A few unnecessary files
from GeoIP2 Web Service directory have been removed.\r\n\r\n14-Feb-2019 :
v3.7.7\r\n# [Bug Fixed] The \"Import Parameters\" button is
working again.\r\n# [Bug Fixed] PHP Notice: Undefined property:
plgSystemCookiesPolicyNotificationBar::$current_url in
cookiespolicynotificationbar.php on line 1883 [Thank you, Alexander
Schuch]\r\n\r\n07-Feb-2019 : v3.7.6\r\n# [Bug Fixed] Parse error: syntax
error, unexpected in script.helper.php on line 59. [Joomla! 2.5.x].\r\n^
[Styling Improvement] Fix checkbox label height in the Cookies Manager
(modal window).\r\n\r\n15-Jan-2019 : v3.7.5\r\n# [Bug Fixed] The
\"Accept\" button is not working if the \"Cookies Manager
(Modal Window) functionality\" is disabled. [Thank you, Laurent
GARIN]\r\n\r\n15-Jan-2019 : v3.7.4\r\n+ [New Parameter] Hide the
notification bar after X seconds. The notification bar will disappear after
X seconds. If you choose the 'Always Display' option, the
notification bar will be displayed until the visitor clicks on an action
button (Accept, Decline or Cancel). [Thank you, Vivi]\r\n# [Bug Fixed] Do
not renew the user session on each page load, after clicking on the
\"Cancel\" button. This fix is for admins who use the Google
Analytics service. [Thank you, Jean-Pierre DP]\r\n# [Bug Fixed] The
\"lib\" folder was missing. The GeoIP2 Webservice works properly
now. [Thank you, Douglas Gordon]\r\n# [Improvement] The cookie
\"cpnb_cookiessettings\", will not be loaded anymore in the
first-page load. It will be loaded only after a user action (after clicks
on the action button, accept\/decline\/cancel). After this improvement,
your website will be marked as compliant with the Cookiebot
service.\r\n\r\n24-Dec-2018 : v3.7.3\r\n# [Bug Fixed] If you are in a
subpage and reload the page after accept (base settings) it redirects to
the homepage.\r\n\r\n17-Dec-2018 : v3.7.2\r\n+ [New Feature] After Y pixels
(e.g. 300)  of the scrolling from the top of the window, the plugin
automatically accepts the cookies policy without any click needed. The
notification bar is hidden automatically after reach the maximum height of
scrolled pixels.\r\n^ [Improvement] To avoid conflicts with 3rd party
plugins, load the modal behavior {JHtml::_('behavior.modal');} as
a hidden field, instead globally in the web357 framework.\r\n# [Bug Fixed]
When the notification bar is on the center of the page, and the parameters
\"Locked Overlay\" and \"Reload the page after
accepting\" are enabled, the body of the page stay locked after accept
[Thank you, Marcin Nader]\r\n\r\n10-Dec-2018 : v3.7.1\r\n# [Bug Fixed]
Acceptance logs not stored if the user clicks on the accept button, while
is on an inner page.\r\n^ [Style Improvements] CSS fixes with
\"Center\" position in small screens
(smartphones).\r\n\r\n06-Dec-2018 : v3.7.0\r\n+ [New Feature] The click
method on the \"Accept\" button, is now working asynchronously,
with the AJAX method. There a new parameter in Base Settings (tab):
\"Reload the page after accept\". Choose if you want to reload
the page after the User clicks on the accept button. This parameter is
useful if you would like to load the blocked javascript code (e.g. Google
Analytics) after the user accepts the cookies policy. This feature affects
only the 'Accept' button, at the notification bar. It does not
affect any other buttons in the notification bar (e.g. Declined or Cancel
button), or other areas like the cookies info table (shortcode), or the
cookies settings modal window. [Thank you, Dennis Lai]\r\n+ [New Feature]
The cookie \"cpnb_cookiessettings\" is now included in the
cookies info table. This cookie is stored to check which categories of
cookies are accepted or declined (e.g. Analytical Cookies, Targeted
Advertising Cookies, etc.). Of course, you can change the description of
this text in the plugin settings under the parameter (Cookies Settings
description) in the \"Texts for Languages\" tab. [Many thanks to
Fabrizio Magnoni]\r\n+ [New Feature] The Google Tag Manager scripts are now
supported by specifying the cookies category ID to the <cpnb \/>
attributes.  Example: &lt;cpnb
data-cpnb-cookie-category-id=\"analytical-cookies\"&gt;\/\/
script code goes here&lt;\/cpnb&gt;\r\n+ [New Parameter] Show the
notification bar only in the selected Continents\/countries. The
notification bar will not be displayed in other continents\/countries.
Supported by the GeoIP2 Webservice.\r\n+ [New Parameter] Hide the
notification bar from the selected Continents\/Countries. The notification
bar and its javascript files will not be loaded at the front-end. Supported
by the GeoIP2 Webservice.\r\n^ [Improvement] The \"Enable confirmation
alerts\" parameter in Base Settings is now disabled by default.\r\n#
Several improvements and minor bug fixes.\r\n\r\n11-Oct-2018 : v3.6.2\r\n#
[Bug Fixed] The double quotes should be escaped in confirmation alert
messages [Many thanks to Nikolay Armianov]\r\n\r\n28-Sep-2018 : v3.6.1\r\n^
[Improvement] The Regular Expressions are now allowed in \"Cookie
Names\" of the section \"Cookie Descriptions\". Example:
_ga[a-zA-Z0-9]*  Screenshot: https:\/\/goo.gl\/M8wnhT [Many thanks to
Kenneth C. Koppervik]\r\n# [Bug Fixed] Issues with special characters in
confirmation alerts in the shortcode functionality have been resolved.
[Many thanks to Cathy Gauliard]\r\n# [Bug Fixed] Do not display the Cookies
Manager Icon if the Block Cookies functionality is disabled. [Thank you,
Nico Dorfer]\r\n# [Bug Fixed] For those who use language overrides for the
texts in the Cookies Manager (modal window), are not translated on each
language, but only in the main language. [Many thanks to Idilicstudio
S.L]\r\n# [Bug Fixed] The word \"Categories\" in the toggle menu
of the Cookies Manager (modal window), for small devices, is now able to be
translated in the language (.ini) files. [Thank you, Rob Bekke]\r\n^
[Improvement] The GDPR icon
\"cpnb-cookies-manager-icon-1-64x64.png\" has been optimized via
ImageRecycle. From 1.94 kilobytes to 777 bytes. [Thank you, Guillaume]\r\n^
[Improvement] The helpful screenshots in the plugin parameters have been
optimized via ImageRecycle service.\r\n# [Bug Fixed] The
\"cpnb_method\" variable will not be displayed anymore in the URL
[Thank you, Yair Velasco]\r\n\r\n09-Aug-2018 : v3.6.0\r\n+ Fully compatible
with Joomla! 4.x\r\n^ [Improvement] Better display in responsive design for
the Cookies Manager (modal window).\r\n+ Compatible with the latest version
of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n23-Jul-2018 : v3.5.5\r\n# [Bug Fixed] The break-lines
are now stripped in confirmation alert messages because there were some JS
errors in the console after clicking on buttons. [Thank you,
Guillaume]\r\n# [Bug Fixed] Cannot read property
'addEventListener' of null.\r\n# [Bug Fixed] Error 500 The file:
http:\/\/cdn.web357.com\/web357-releases.json does not exist. All HTTP:\/\/
URLs have been replaced with HTPS:\/\/. {502 Bad Gateway nginx}. [Thank
you, Ea]\r\n\r\n21-Jul-2018 : v3.5.4\r\n+ [New Feature] A new parameter has
been added to show or hide the \"Ok, I've understood\"
button from the cookies notification bar. [Many thanks to Antonio Guerrero]
\r\n+ [New Feature] If you would like to open the Cookies Manager (modal
window) by another area now you can do it by clicking on a custom link, on
a button or an image, using the ID attribute \"cookies\", or your
custom hash link text from the plugin parameters.\r\n# [Bug Fixed] If the
confirmation alert messages have single quotes, the action buttons (Ok,
Decline, Cancel) are not working. [Thank you, Sebastien]\r\n# [Bug Fixed]
Regardless the cookies declined after the initial consent or the user has
not given his\/her initial consent, the message remains the same \"You
have allowed website's cookies to be placed on your browser\".
[Many thanks to Websun Ltd]\r\n^ [Language Updated] The language files for
the Dutch (Netherlands) (nl-NL) language has been updated. [Thank you,
Jeroen van der Horst]\r\n^ [Improvement] The \"Cookie Categories
Group\" should not be displayed in the plugin settings if the
\"the Cookies Manager (Modal Window) functionality\" is disabled.
[Many thanks to Idilicstudio S.L.]\r\n\r\n14-Jul-2018 : v3.5.3\r\n+
[Improvement] Multilingual support for the Cookie Category Names and
Descriptions in the Cookies Manager (modal window). [Thank you, Dorine
Post] (Read this useful guide for more information and screenshots:
https:\/\/www.web357.com\/faq\/cookies-policy-notification-bar\/how-to-translate-the-cookie-categories-in-the-cookies-manager)\r\n#
[Bug Fixed] If there is at least one unpublished Cookie Category there were
some javascript errors in the console after clicking on the save settings
button in the cookies manager modal window.\r\n\r\n14-Jul-2018 :
v3.5.2\r\n# [Bug Fixed] Could not save the plugin settings. Error: 500
String could not be parsed as XML (in French language). [Thank you, Anne
Cloutier]\r\n^ [Language Updated] The language files for the Dutch
(Netherlands) (nl-NL) language has been updated. [Thank you, Jeroen van der
Horst]\r\n# [Bug Fixed] If the shortcode {cookiesinfo} was in a K2 content
item, there were some caching issues.\r\n# [Improvement] Four default
cookie categories have been added by default, even if the Admin did not
save yet the plugin parameters.\r\n# [CSS Styling] Take care of dark
backgrounds. The text color in the modal window should be dark because of
the light (white) background.\r\n# [CSS Bug Fixed] Fix the text-wrapping in
cookies info table [Thank you, Andreas Farr]\r\n# [CSS Improvements] Fix
some CSS issues to support a few \"old-school\" templates.\r\n^
[Improvement] After a lot of requests from our subscribers, the
\"Cookies Manager\" functionality will be disabled until the
Admin enables it from the plugin settings at the backend.\r\n# [Bug Fixed]
If the User clicks on the Save button, at the Cookies Manager (modal
window), should delete all cookies first and then reload them again.\r\n^
[Styling Improvements] The buttons of the Shortcode functionality, under
the {cookiesinfo} table, have now the same styling as the buttons in the
notification bar and the buttons in the modal windows.\r\n^ [Improvement]
If the user has logged in, the user ID is now stored in the
Acceptance\/Declined Logs.\r\n! [Styling Improvements] The UIkit classes
have been removed from the action buttons.\r\n\r\n13-Jul-2018 : v3.5.1\r\n#
[Bug Fixed] Could not save the plugin settings. Error: 500 String could not
be parsed as XML (Italian and German language). [Thank you, Alberto
Paracchini]\r\n\r\n13-Jul-2018 : v3.5.0\r\n+ [New Feature] The Cookies
Manager functionality allow users to accept or decline specific categories
of cookies. They have the full control of cookies now, and they can change
their cookies preferences anytime.\r\n+ [New Feature] Custom Cookies
Categories (e.g. Strictly necessary, Analytical Cookies, Social Media,
Targeted Advertising Cookies e.t.c.) for each Javascript Code you've
added.\r\n+ [New Feature] New button \"Settings\" in the
notification bar. This button opens the Cookie Manager (Modal Window). From
the plugin parameters, you will be able to change also the name and the
colors of this button.\r\n+ [New Feature] There is a new parameter field to
upload your own custom cookies manager icon at the bottom left or bottom
right of your website.\r\n+ [New Feature] New styling position. The
notification bar can now be displayed also in the center of your page.\r\n+
[New Feature] There are two new parameters. 1) the \"Locked
Overlay\" and the \"Overlay Color\". The body of the page is
locked until the user Accepts or Declines.\r\n^ [Improvement] window.onload
has been replaced with window.addEventListener('load'). [Thank
you, Monique Clevis]\r\n^ [Improvement] There are new screenshots in the
plugin parameters to help admins understood what each parameter does.\r\n#
[Bug Fixed] Fix CSS padding issue with top-left position.\r\n# [Bug Fixed]
Blank page with Fatal error: Call to undefined method
JSite::isSSLConnection(). (only in Joomla! 2.5.x websites) [Thank you,
Martin Freeman]\r\n^ [Language Files] The language files (da-DK, de-DE,
el-GR, en-GB, fr-FR, it-IT, nl-NL, ru-RU) have been updated.\r\n! [Removed]
The Ajax\/jQuery functionality has been removed
permanently.\r\n\r\n28-Jun-2018 : v3.4.5\r\n+ [Backward Compatibility] The
Cookies Notification Bar it works perfectly on Joomla! 2.5. A few lines of
code have been added to continue supporting the Joomla! 2.5 because many of
our Subscribers asked for.\r\n# [Bug Fixed] The parameter \"enable
Confirmation Alerts\" is only displayed when Block Cookies is set to
It should also be available when Block Cookies is set to No. The parameter
should not be at the Block Cookies section. It has been moved to the Base
Settings. [Thank you, Paul Hayward]\r\n^ [Improvement] The date format
inside the XML has been changed. Now is displayed like this \"DD MMM
YYYY\", instead of this \"YYYY-MM-DD\".\r\n\r\n27-Jun-2018 :
v3.4.4\r\n+ [New Styling Feature] A new parameter has been added (The
notification bar covers the body of the page, in the Styling options).
Choose if you want to allow the notification bar cover or not the body of
the page.\r\n+ [Improvement] Display the cookies info table (by the
shortcode) even if there is only one cookie.\r\n# [Bug Fixed] Some caching
issues have been resolved.\r\n# [Bug Fixed] The submenu items of some
templates are not displayed properly.\r\n# [Bug Fixed] Could not save the
plugin settings. Error: 500 String could not be parsed as
XML.\r\n\r\n25-Jun-2018 : v3.4.3\r\n+ [New Feature] A new parameter has
been added to disable the jQuery\/Ajax functionality. (You can disable this
functionality if you've detected any conflicts with other jQuery
libraries, or issues with Joomla! cache or any issues with speed optimized
plugins like the JCH Optimize.)\r\n+ [New Feature] Set Cookies expiration
time for each cookie (Accept, Decline, Cancel).\r\n+ [New Feature] A new
parameter has been added to help admins easily Import\/Export the plugin
parameters.\r\n+ [New Feature] New styling positions have been added (Top
Left, Top Right, Bottom Left, Bottom Right).\r\n^ [Improvement] In the
group of parameter \"Cookie Descriptions\", you can now set also
the Expiration Time for each cookie separately.\r\n+ [Improvement] The JS
and CSS files are loaded as minified now.\r\n# [Bug Fixed] Some issues at
the backend while editing a template via a template builder (like the
Yootheme PRO builder) have been resolved now.\r\n# [Bug Fixed] If the User
clicks on the Decline button inside the modal, the window should be closed.
 \r\n# [Bug Fixed] Several issues with JCH Optimize plugin have been
resolved successfully.\r\n^ [Updated] The language files have been
updated.\r\n! [Removed] The line-height option has been removed from the
plugin settings.\r\n! [Removed] The \"Google fonts\" parameter
has been removed from the plugin settings.\r\n! [Removed] The
\"Language Migration Tool\" is not needed anymore and has been
removed.\r\n! [Removed] The \"Clean cookies from Browser!\"
parameter has been removed because is not necessary anymore. We have to
keep things more simple. You can use your browser to delete the cookies.
\r\n\r\n28-May-2018 : v3.4.2\r\n# [Bug Fixed] Could not save the plugin
settings. Error: 500 String could not be parsed as XML. (Only with Italian
Translation)\r\n\r\n28-May-2018 : v3.4.1\r\n# [Bug Fixed] 500 - Unknown
column 'Array' in 'where clause'. [Thank you, Chuck
Smith]\r\n^ [Improvement] Block all Joomla sessions by choosing
\"No\" to the Allow Sessions parameter.\r\n+ [Bug Fixed] Display
the cookies info table asynchronously after the cookies deleted.\r\n^
[Improvement] Block all Joomla sessions by choosing \"No\" to the
Allow Sessions parameter.\r\n# [Improvement] Get latest fonts from Google
with all weights\/variants [Many thanks to Gilles Migliori]\r\n+
[Improvement] A JS helper for read\/delete cookies has been added
(jquery.cookie.js)\r\n! [Removed] The version jquery-1.8.3.min.js has been
removed and replaced with Joomla's jQuery version
JHtml::_('jquery.framework', false);\r\n^ [Updated] The Italian
(it-IT) translation has been updated. New strings have been added [Thank
you, Alberto Paracchini]\r\n\r\n21-May-2018 : v3.4.0\r\n+ [New Feature] You
can now control shortcode's content in any language without editing
the .ini files. You have three text areas which you can change 1) The text
BEFORE Accept\/Decline, 2) The text AFTER Accept, 3) The text AFTER
Decline.\r\n+ [New Feature] You can use two new shortcodes in your custom
texts. 1) The {cpnb_cookies_info_table} (Display a table of website's
served cookies), and 2) {cpnb_buttons} (Display the Allow\/Delete\/Reload
buttons)\r\n+ [New Feature] More input texts in the plugin settings to take
control of some strings in any language without editing the .ini
files.\r\n+ [New Feature] Block Cookies by blocking their Javascript Code
(Advanced Settings tab). You can block the javascript code that uses
cookies. Add the full javascript code in each textarea form field. The
javascript code (with its cookies) will not be displayed in the page source
if the user does not click on the accept button.\r\n+ [New Feature] You can
give descriptions for specific cookies. (For example, for the cookie
\"_ga\" you can write this: \"Used to collect Google
Analytics data.\").\r\n+ [New Feature] Cancel Button has been added to
the cookies notification bar. The 'Cancel' button just hides the
notification bar and display the bar again on the next page after refresh.
[Thank you, Michael Maass]\r\n+ [New Feature] Instead of the \"OK,
I've understood\" button in the modal popup window, now also
displayed the \"Decline\" and the \"Cancel\" button.
[Thanks, Michael Maass]\r\n+ [New Feature] The \"Always Display\"
functionality is back. The cookies notification bar will be displayed even
if the user accepts or decline. This feature mostly used by admins in the
first steps of setup and customizations.\r\n^ [Improvement] Always store
acceptance\/declined logs (in the database), not only if the \"Block
Cookies\" parameter is enabled.\r\n^ [Improvement] If special
characters are used in the text of notification bar and the
\"mbstring\" and \"iconv\" PHP functions are missing,
do not return any PHP errors. [Thank you, Antti Saarikoski]\r\n^
[Improvement] Do not load anything in the dom (HTML code, CSS inline code,
JS code or files, etc.), if the plugin has selected to be hidden on the
chosen page(s) from the plugin settings.\r\n^ [Improvement] The
\"cookiesDeclined\" cookie is now displayed in the cookies info
table. [Thank you, Sena Emilio]\r\n^ [Improvement] The \"Delete
Cookies\" functionality in the schortcode, can now delete also the
\"cookiesDeclined\" cookie. [Thank you, Sena Emilio]\r\n^
[Improvement] Display the notification bar again asynchronously, after the
user clicks on the \"Delete Cookies\" button at the shortcode
area.\r\n^ [Improvement] The shortcode parameters have been moved outside
of the advanced settings (tab), and now have their own tab in the plugin
settings.\r\n! [Removed] The \"Display Accepted Cookies Table\"
parameter has been removed. Instead you can use the shortcode
{cpnb_cookies_info_table}.\r\n# [Typo Error] Should be \"Texts for
Languages\", not \"Texts for Lanugages\", in the blue box
header at the plugin settings. [Thank you, Laurent Marcelin] \r\n# [Bug
Fixed] Warning: count(): Parameter must be an array or an object that
implements Countable (only in PHP v7.2.x).\r\n# [Bug Fixed] The scrolling
in modal is not displayed properly if we have a big list of logs
(acceptance\/declined) in the plugin settings.\r\n# [Bug Fixed] Some small
issues that detected in the Joomla Debug Console have been resolved.\r\n^
[Updated] The German (de-DE) translation has been updated. [Many thanks to
Michael Maass]\r\n^ [Updated] The Danish (da-DK) translation has been
updated. New strings have been added [Thank you, Thomas Thrane]\r\n^
[Updated] The Italian (it-IT) translation has been updated. New strings
have been added [Thank you, Alberto Paracchini]\r\n\r\n18-May-2018 :
v3.3.8\r\n+ NEW BUTTON: The \"Decline\" button has been added to
the notification bar. And of course is multilingual like other
buttons.\r\n+ NEW PARAMETER: Hide cookies from the cookies table (comma
separated). With this new parameter, you can hide some preferred cookies
from the table. This option will not block the cookies from the browser, it
just hiding them.\"\r\n+ The German (de-DE) translation has been added
[Many thanks to Michael Maass]\r\n# CSS BUG FIXED: The modal window should
be displayed in front of other elements, even the notification bar.\r\n#
BUG FIXED: Do not return a blank 500 error page, but instead display a
warning message if the required extensions 'mbstring' and
'iconv' are disabled from the server.\r\n# BUG FIXED: Javascript
TypeError: Cannot read property 'w357_show_in_iframes' of
undefined.\r\n# JS Issue: Check if the cpnb_config variable is defined
without any JS errors, and then use it.\r\n# BUG Fixed: Add the base URL in
front of Ajax URLs to avoid 404 error pages in subpages. [Many thanks to
Claudia and Tim Austin]\r\n# BUG FIXED: Some caching issues, after the user
accepts the cookies policy, have been resolved.\r\n# BUG FIXED: You can
change the input texts for languages even if the plugin is not published
yet, without lose any translations you've entered before.\r\n# Bug
Fixes for Joomla! 2.5 and backward compatibility. Some lines of code have
been added to continue to support Joomla! 2.5. and to avoid blank pages in
the plugin settings. [Thank you, Andreas Ebert]\r\n# Minor bug fixes and
code improvements.\r\n\r\n12-May-2018 : v3.3.7\r\n# CSS BUG FIXED: Opacity
setting affects the \"Bar\" as a whole. We now use RGBA instead
of HEX colors. The background color of the notification bar, and the
background color of the buttons, are now based on RGBA functionality.
[Thank you, Michael Maass]\r\n# BUG FIXED: The 'cpnb_confi'g
javascript variable was empty because there are issues with uf8 characters
in the language files. [Thank you, Guido Pier]\r\n# BUG FIXED: There was a
conflict with the plugin \"System - TM Wrapper\", and causes
errors with notification bar (has not be displayed). We've added some
options for the 'json_encode' function and the problem has been
resolved. [Thank you, Kees de Goeijer]\r\n! The background opacity
parameter field has been deleted. Instead, you can use the Background color
and choose the opacity with the RGBA function. [Thank you, Michael
Maass]\r\n# The utf8 encoding with some special characters, mostly in
German language, has been resolved.\r\n# BUG FIXED: Some issues with the
Joomla cache have been resolved.\r\n# Minor fixes.\r\n\r\n09-May-2018 :
v3.3.6\r\n+ NEW PARAMETER: Allow Session Cookies. Delete only the
Persistent cookies and avoid Session Cookies (This option avoid admins to
logged out of Joomla Administrator).\r\n+ The View\/Delete Acceptance Logs
has been improved and you can now see the logs asynchronously without
refreshing the entire browser tab.\r\n# BUG Fixed: There were some
javascript issues (auto redirection every second) with Android devices and
older versions of iPhone [Thank you, Gianluca Pantaleo]\r\n# BUG Fixed:
Logs are not stored in websites with older versions of PHP.\r\n# Minor bug
fixes and code improvements.\r\n! A method has been added to delete some
unneeded old files which are not needed anymore. 1)
\\plugins\\system\\cookiespolicynotificationbar\\assets\\js\\custom-xx-XX.js
and 2)
\\plugins\\system\\cookiespolicynotificationbar\\assets\\css\\custom.css\r\n^
The Danish (da-DK) translation has been updated. New strings have been
added [Thank you, Thomas]\r\n^ The Italian (it-IT) translation has been
updated. New strings have been added [Thank you,
Alberto]\r\n\r\n08-May-2018 : v3.3.5\r\n# BUG FIXED: When an admin tried to
change the settings of the plugin, he got a \"500 String could not be
parsed as XML\" error message. The issue has been detected by admins
who have as the default language for the backend the Danish and
Italian.\r\n+ The Danish (da-DK) translation has been updated. [Thank you,
Thomas]\r\n+ The Italian (it-IT) translation has been updated. [Thank you,
Alberto]\r\n\r\n07-May-2018 : v3.3.4\r\n+ NEW PARAMETER: There is a new
parameter to control if you want to enable the confirmation messages after
clicking on the buttons. The Block Cookies functionality has to be enabled
to enable the new parameter \u00abEnable Confirmation Alerts\u00bb.\r\n+
NEW PARAMETER: There is a new parameter to set the border-width and the
border-color of the notification bar.\r\n+ The Danish (da-DK) translation
has been added. Translated by: Thomas Thrane (Thrane.nu) [Many thanks to
Thomas for his contribution]\r\n+ The Italian (it-IT) translation has been
added. Translated by: Alberto Paracchini [Many thanks to Alberto for his
contribution]\r\n+ The \u00abShortcode functionality {cookiesinfo}\u00bb is
working also without the need to enable the \u00abBlock Cookies\u00bb
functionality. [Thank you, Chris Elliott]\r\n^ HTML\/CSS FIXES: The entire
CSS code has been rewritten. Many of the selectors in HTML\/CSS have been
changed because of CSS validation rules.\r\n# BUG FIXED: Even there are
some javascript errors by your template, the jquery ajax functionality will
still work without any problems.\r\n^ HTML\/CSS FIXED: The HTML table which
displays the served cookies by the website is now responsive. [Thank you,
Peter Mochna\u013e]\r\n^ The \u00abClean cookies!\u00bb functionality at
the back-end (for Debuggers), has been improved. (File:
\\elements\\rmvcookies.php)\r\n# BUG FIXED: When an admin tried to change
the settings of the plugin, he got a \"500 String could not be parsed
as XML\" error message. There was a small issue in all other language
files, except English file.\r\n^ The \u00ablimit\u00bb parameter, in the
Base Settings, is displayed only if the \u00abBlock Cookies\u00bb parameter
is disabled.\r\n^ Do not load the \/jquery.cookiesdirective.js and
style.css if the user already accepted the cookies policy, except if needed
for the shortcode functionality.\r\n# BUG Fixed: Load the custom CSS
styling only at the front-end.\r\n# CSS Issue: We don't use anymore
the @import method to load the google fonts. We include the google fonts as
external URLs now.\r\n^ The CSS styling has been now validated by the W3C
CSS Validation Service.\r\n# JS Issue: The animated effect is working
again. There was an error with the wrong type of
\"w357_animate_duration\" variable.\r\n# Caching issues have been
resolved [Thank you, Arte Ferro srl]\r\n# Minor bug fixes and code
improvements.\r\n\r\n03-May-2018 : v3.3.3\r\n# BUG FIXED: The -ms-filter
properly has been removed because of XML errors after saving the plugin
parameters \"500 String could not be parsed as
XML\".\r\n\r\n03-May-2018 : v3.3.2\r\n# BUG FIXED: The shortcode
functionality {cookiesinfo} works properly now inside the modal window with
your custom text. [Many thanks to Peter Mochna\u013e]\r\n# BUG FIXED: After
saving the plugin settings, the message will be displayed in white color
(#FFF), even though the configuration is set to another color (e.g. #000)
[Many thanks to Martin Kr\u00fcber]\r\n# BUG FIXED: There are 2 options to
close the modal window. Click on the X icon at top right, and click outside
of the modal window. When the window is closed by clicking on the icon then
work correctly. If I close the window by clicking outside of the window,
the window disappears but scrolling of page is not working anymore. [Many
thanks to Peter Mochna\u013e]\r\n# BUG FIXED: The custom link for the More
Info is not working (it worked in the version without GDPR) [Many thanks to
Peter Mochna\u013e]\r\n# BUG FIXED: Have set 'Store acceptance logs
into the Database' to yes, to test I've cleared cookies and
accepted a couple of times - but nothing get's stored in the DB table
#_plg_system_cookiespolicynotificationbar_logs [Many thanks to
Quintin]\r\n^ The language files (en-GB, fr-FR, nl-NL, ru-RU) have been
updated.\r\n\r\n30-Apr-2018 : v3.3.1\r\n# BUG Fixed: Confirmation dialog
appears twice if you are using the shortcode functionality and after
clicking on the \"Ok, I've understood\" button of the
notification bar.\r\n# Use the confirmation javascript dialog only if the
\"Block Cookies\" functionality is enabled from the plugin
parameters. Otherwise, use the Ajax asynchronous technology.\r\n# CSS BUG
FIXED: Wrong encoding for the left quote of -ms-filter CSS property.\r\n!
The blockCookies & Shortcode functionality is not working on the
offline websites because of user (admin) state cookie.\r\n# Minor bug
fixes.\r\n\r\n28-Apr-2018 : v3.3.0\r\n+ NEW FEATURE: GDPR Ready! Let the
user to decide if accept or decline the cookies on the browser.\r\n+ NEW
FEATURE: GDPR Compliance (25 May 2018) - Allow the user to reconsider
(after acceptance), and give him the choice to delete the website cookies
from his browser.\r\n+ NEW FEATURE: GDPR Rule - Functionality to record and
store visitor consent (this record is not considered a personal data). We
storing only the user IP Address and date\/time of acceptance.\r\n+ NEW
FEATURE: \u00abShortcode Functionality\u00bb. You will be able to display a
table with the accepted website cookies and give the opportunity to the
user reconsider or delete the cookies from his browser. Example of
shortcode: {cookiesinfo}.\r\n+ NEW PLUGIN: Ajax Technology. The user
accepts and declines the cookie policy asynchronously using the Ajax
technique.\r\n# BUG Fixed: After accepting cookies policy there is an HTML
error in the debug console. Extra \"body>\" tag found. Only
one \"body>\" tag should exist per document.\r\n# HTML code
improvement: The tags \" and \" have be removed from the source
code, after user accepting the cookies policy.\r\n# The
JRequest::getVar('example') has been replaced with
JFactory::getApplication()->input->get('example'), because
it has been deprecated in the earlier release of Joomla 3.x.\r\n# Code
improvements because of coding standards.\r\n# Minor bug fixes.\r\n^ The
jQuery will not be loaded by default anymore, because of conflicts, mostly
with other jQuery versions of the active Joomla template.\r\n^ New header
for the heading \"Custom Javascript code\", in the plugin
settings.\r\n! The \u00abDebug Mode\u00bb parameter has been removed. You
can use the \u00abShortcode\u00bb functionality instead.\r\n! The
\u00abAlways Display\u00bb parameter has been removed. You can use the
\u00abBlock Cookies\u00bb parameter instead.\r\n! The \u00abDisplay a
message to the user if there are blocked cookies\u00bb parameter has been
removed. You can use the \u00abShortcode\u00bb functionality
instead.\r\n\r\n29-Mar-2018 : v3.2.8\r\n+ NEW Parameter field: Custom
Javascript code. You can now add your custom Javascript code, included or
not, by tags to block the Javascript code before the visitor accepting the
cookies policy.\r\n# BUG Fixed: Enable jQuery on all pages except those
selected. If the admin chooses one or more pages to exclude jQuery library,
all the other pages should load the jQuery.\r\n# BUG Fixed: We don't
support anymore the PHP 5.3.x, but there was a small issue with some
subscribers who still use this old version of PHP.\r\n\r\n28-Mar-2018 :
v3.2.7\r\n+ NEW FEATURE: There are new options for the load jQuery
parameter field. A) load jQuery on all pages, B) Do not load jQuery on any
page, C) load jQuery on specific pages. Sometimes you will need to enable
the jQuery library only on some pages because of some conflicts, from other
components, with different versions of jQuery. This option will help you to
do that. [Many thanks to Marek Sobczak]\r\n# Minor fixes.\r\n# Cleanup some
lines of code.\r\n\r\n16-Mar-2018 : v3.2.6\r\n^ The Demo and the JED link
have been updated in the description tab, at Joomla! backend.\r\n! The
Web357 Download ID parameter field has been deleted from each extension
settings and has been replaced by a unique API key parameter field at the
Web357 Framework plugin settings.\r\n+ A new button (Settings) has been
added to the description tab at Joomla! backend.\r\n^ Compatible with the
latest version (1.6.0) of Web357 framework plugin.\r\n\r\n26-Feb-2018 :
v3.2.5\r\nBug Fixed: The element \"textsforlanguages\" should be
hidden in the plugin parameters. [Thank you, Ronald]\r\n\r\n10-Jan-2018 :
v3.2.4\r\n# BUG FIXED: The modal window doesn't have a scrollbar if
there is much content. [Many thanks to Carlos Santos]\r\n# Fix responsive
issues with the modal window in the most popular devices like Galaxy S5,
Nexus 5X, Nexus 6P, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus,
iPhone X, iPad, iPad Pro.\r\n# Minor bug fixes.\r\n\r\n07-Nov-2017 :
v3.2.3\r\n# Bug Fixed: Call to undefined method
plgSystemCookiesPolicyNotificationBar::getLanguageNameByTag(). [Thank you,
Mauro]\r\n\r\n06-Nov-2017 : v3.2.2\r\n# Bug Fixed: Missing parameters
(Input texts fields for languages) if the plugin is unpublished. [Many
thanks to Nina and Abbey]\r\n# Cleanup the code.\r\n# Minor bug fixes.\r\n#
Not compatible anymore with older versions of Joomla! (e.g. J! 2.5.x).\r\n#
Typo errors in the elements.\r\n^ Upgraded to the latest version v1.4.6 of
Web357 Framework Joomla! System Plugin.\r\n\r\n27-Oct-2017 : v3.2.1\r\n+
New Feature in Advanced Settings. Language Migration Tool. In case you
missed the old strings after an upgrade.\r\n# Minor bug fixes.\r\n# Code
cleanup.\r\n\r\n26-Oct-2017 : v3.2.0\r\n+ NEW FEATURE: You will be able to
choose the action of the 'More Info' button. Options are, 1)
Custom link, 2) Link to a menu item, 3) Modal with your Custom Text. \r\n^
Now you can choose the same or different action button for each language
separately. Example: The 'modal' method for the German language,
and the 'assign to a menu item' method for the English
language.\r\n^ The link target parameter has been moved in Texts for
Languages fieldset.\r\n^ Database migrations. Some parameter fields have
been renamed but you will not lose any values for your cookies message, or
button texts, that you've already entered in previous versions. \r\n!
Unnecessary comments have been removed from the code.\r\n# General Bug
Fixes.\r\n# Styling improvements on the responsive
design.\r\n\r\n05-Jul-2017 : v3.1.7\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n23-Jun-2017 : v3.1.6\r\n# BUG FIXED: Some issues with
language text strings (e.g. J357_PLG_SYSTEM_COOKIES....) have been detected
after the first installation before the admin save the plugin parameters.
[Thank you, Yannick Wendling]\r\n^ The language files (en-GB, fr-FR, nl-NL,
ru-RU) have been updated.\r\n\r\n13-May-2017 : v3.1.5\r\n+ Compatibility
for auto-updates via Watchful.li external service. [Many thanks to Valentin
Barbu, Rafael Gaus, and Frank].\r\n+ Compatible with the latest version of
Web357 Framework v1.4.3.\r\n^ If the JED link does not exist yet, do not
display the 'leave a review' text inside the plugin
parameters.\r\n\r\n12-May-2017 : v3.1.4\r\n# Bug Fixed in J! 2.5: Many of
our subscribers still uses (badly) the version 2.5.x of Joomla!. We all
know how dangerous it is. But, for now, we've added a small fix to
still support the cookies policy notification bar also in not-up-to-date
Joomla! websites [Thank you, Rafael]\r\n\r\n07-May-2017 : v3.1.3\r\n# Bug
Fixed: In PHP Version 7.0.14 there are some errors in plugin parameters at
Joomla! backend, on detecting correctly the active languages of the
website. [Many thanks to Arkin Oksuzoglu]\r\n# Minor bug
fixes.\r\n\r\n05-May-2017 : v3.1.2\r\n# BUG Fixed: After upgrading to the
version 3.1.1 the text strings and other parameters data are not displayed
properly, unless if the admin save again the plugin parameters. [Thank you,
Thanos]\r\n\r\n04-May-2017 : v3.1.1\r\n# BUG Fixed: If the block cookies
parameter was enabled, there were some issues with login authentication at
the Joomla! backend.\r\n# BUG Fixed: The text strings for single language
websites, do not change.\r\n# Bug Fixed: If the 'Block Cookies'
parameter enabled, after clicking on the confirm button to accept the
cookies policy the page is reloaded but the javascript code (e.g. google
ads) is not displayed. [Thank you, Frank]\r\n# The 'remove
cookies' parameter for debuggers, has been improved to allow clearing
browser cookies for the specific cookie names.\r\n# Minor bug
fixes.\r\n\r\n03-May-2017 : v3.1.0\r\n^ The Block Cookies functionality has
been improved and many issues have been resolved.\r\n+ A very useful helper
guide to help you understand how to block cookies, has been added inside
the plugin parameters, under the Block Cookies parameter.\r\n+ A new
parameter has been added to display a message to the user if there are
blocked cookies. By enabling this option a notification message will be
displayed at the frontend, on each position of the blocked script. * You
can change the text of the notification message from the language overrides
in Joomla! backend.\r\n! Some parameter fields about blocking cookies have
been removed because this functionality has been changed.\r\n# General Bug
fixes.\r\n# Minor CSS issues have been resolved.\r\n\r\n22-Mar-2017 :
v3.0.8\r\n# CSS Bug Fixed: On smartphones and tablets, if you choose to
display on the top, an extra gap appears at the bottom of the screen. [Many
thanks to David Smith]\r\n\r\n12-Jan-2017 : v3.0.7\r\n# After the upgrade
to the latest update 3.0.6, a fatal error has been displayed for a function
that does not exist in Joomla! 2.5. The function is the
\"addScriptVersion\", that has been replaced with
\"addScript\". [Many thanks to Konzepttreu
GmbH]\r\n\r\n23-Dec-2016 : v3.0.6\r\n^ JS code in the head has been
replaced with a custom_xx_XX.js file in the assets folder. Each JS language
file will be created automatically after each save in the plugin
parameters. Many thanks to Laurent Garin.\r\n^ French language files have
been updated. Many thanks to Sandra Thevenet and Marc Antoine
Thevenet.\r\n+ Dutch (nl-NL) language has been added. Many thanks to Henk
Gordebeke.\r\n# Minor bug fixes and speed improvements.\r\n\r\n22-Nov-2016
: v3.0.5\r\n^ Absolute URLs have been replaced with relative URLs.\r\n^ CSS
in the head has been replaced with a custom.css file in the assets folder.
The file will be created automatically after the first save of your
parameters. [Thank you, Laurent]\r\n# Minor bug fixes.\r\n\r\n05-Jun-2016 :
v3.0.4\r\n+ New Parameter: \"Show in iFrames\" has been added.
You can choose if you want to show the plugin in iFrames (e.g. modal
popups) [Thank you, Dan Tucker].\r\n^ Variable name for popup windows has
been simplified from \"cpnb_popup_window\" to
\"cpnb\".\r\n# Minor bug fixes.\r\n\r\n27-May-2016 : v3.0.3\r\n+
New Parameter added: Disable the google fonts from messages, buttons, or
both of them. [Thank you, Frank Delventhal]\r\n! The $datetime variable has
been removed from comments.\r\n\r\n02-May-2016 : v3.0.2\r\n# Bug Fixed: If
the opacity has been set to 100, the opacity value was 0.1 instead of 1.
[Thank you, Alexander Ioannidis]\r\n+ New Parameter: Choose if you want to
open the 'More Info' link in a new or in a popup window with
custom width and height. [Thank you, Tim Austin]\r\n# Minor bug
fixes.\r\n\r\n20-Apr-2016 : v3.0.1\r\n# Bug Fixed: Some jQuery conflicts
with JoomGallery component have been resolved, and both extensions are
working properly on the same page now. [Thanks, Josef
Brandner]\r\n\r\n13-Apr-2016 : v3.0.0\r\n+ New Parameter: You can select a
Google Font Family for the message and buttons.\r\n+ New Parameter: You can
choose if you want to show or hide the \"More Info\" button.\r\n+
New Parameter: You can select a Google Font Family for the message and
buttons.\r\n+ New Parameter: Now you can enter a custom name for
Cookie.\r\n+ New Parameter: By default, the message is displayed on the
left side and the button on the right side. But, if you would like, you can
choose the center alignment for the message and button(s).\r\n+ New
Parameters have been added to improve the styling of buttons. You can set
the border radius of button, the default background color, and the
background color when the mouse is hover the button.\r\n+ A smaller header
has been added to improve the plugin settings at the back-end.\r\n+ The
Parameters in the backend is not on one page anymore. We improved the UX
and the parameters are in different tabs for a quick edit.\r\n+ French
language has been added. A big thanks to Marc-Antoine Thevenet
(MATsxm).\r\n+ Russian language has been added.\r\n^ The way that we'd
get the plugin parameters has been changed, because we couldn't get
the params if the plugin was unpublished.\r\n^ The default text value for
the button has been corrected, from \"Ok, I understand\" to
\"Ok, I've understood!\" [Thanks, Alex Walker]\r\n! The
error messages about the download ID, during the update of other Web357
extensions, have been resolved and have been removed.\r\n! For security
reasons, the word Joomla! has been removed from the HTML comments. Example:
\/* Cookies Policy Notification Bar - J! system plugin (Powered by:
Web357.com) *\/ [Thanks, Robin K\u00f6hler]\r\n! Unnecessary comments have
been removed.\r\n# CSS Bug fixed: After W3C CSS Validator results, the
max-width: 1024x has been corrected and replaced with max-width:
1024px.\r\n# The plugin has been passed from the W3C Markup Validation
Service. \r\n# Many CSS Improvements to be compatible with most popular
devices.\r\n# Minor bug fixes in the code for a speed
optimization.\r\n\r\n27-Jan-2016 : v2.2.8\r\n# Bug Fixed: In some browsers,
there was a border one-pixel, at the bottom of the page, after the message
disappears.\r\n^ CSS Improvements.\r\n\r\n27-Dec-2015 : v2.2.7\r\n# Bug
Fixed: Some CSS and Javascript issues with scrolling on tablets (Lenovo,
Samsung, etc.), have been resolved.\r\n\r\n08-Dec-2015 : v2.2.6\r\n# Some
issues (missing language tabs, missing language files etc.) after the
upgrade from v2.2.5, have been resolved.\r\n\r\n07-Dec-2015 : v2.2.5\r\n^
Updated description.\r\n^ Updated translations.\r\n\r\n23-Nov-2015 :
v2.2.4\r\n+ Added compatibility to support extensions with jQuery Control,
like \"System - jQuery Easy\" plugin and \"System -
DJ-jQueryMonster\" plugin.\r\n# Bug Fixed: Some flags are not
displayed correctly if the default language is not English.\r\n# Bug Fixed:
Scrolling on tablets with android os has been resolved.\r\n# Minor bug
fixes.\r\n\r\n13-Nov-2015 : v2.2.3\r\n+ NEW Parameter Field: Download ID.
You need to specify your Download ID before you can receive updates for the
PRO versions. For more information please follow our instructions here:
https:\/\/www.web357.com\/apikey\r\n# Minor bug fixes.\r\n\r\n28-Aug-2015 :
v2.2.2\r\n# Bug Fixed: Error 404 page does not operate with a Gantry
template if the plugin is enabled.\r\n# Bug Fixed: Fatal error: Class
'JLanguageHelper' not found in. This bug has been fixed for the
websites that still use Joomla! 1.7.\r\n# Bug Fixed: Flag image path has
set to absolute URL, instead of relative.\r\n\r\n24-Aug-2015 : v2.2.1\r\n#
Bug Fixed: Some issues and jQuery conflicts with JoomGallery component,
have been resolved.\r\n\r\n10-Aug-2015 : v2.2.0\r\n+ BACKEND: Language
flags are displayed left of each language label.\r\n+ NEW FEATURE: Debug
mode has been added. You can see the list of all cookies and delete all
cookies from the frontend.\r\n+ NEW PARAMETER ADDED: Block Cookies (If User
does not accept the cookies policy by press the \"Ok I've
understood\" button, all cookie(s) will be blocked.)\r\n+ NEW
PARAMETER ADDED: Javascript Code (Some scripts like 'Google
Analytics', 'Olark live chat', 'Zopim live chat'
and many other javascript applications, use cookies in their javascript
code. So, if we want to block the cookies of these apps before the User
accepts our Cookies Policy, you have to enter the javascript code of those
scripts in this field and not in the index.php of your current
template.)\r\n# Minor bug fixes.\r\n\r\n25-May-2015 : v2.1.1\r\n# Bug
Fixes: Lot of bug fixes have been resolved if a joomla website has the
cache enabled.\r\n# jQuery conflict with Revolution Slider has been
resolved.\r\n# Minor CSS fixes for responsive design.\r\n\r\n29-Apr-2015 :
v2.1.0\r\n^ Improved CSS Style.\r\n+ New multi-language parameter fields:
a) 'More info button text' and b) Link for the 'More
info' button.\r\n+ New Feature: Clean cookies for Debug mode (If you
can't see the 'Cookies Policy notification bar', click the
button from parameters and then refresh your Homepage).\r\n+ New Feature:
\"Always Display\" the notification bar. The notification bar
will be displayed even if the User accept the Cookies Policy. This feature
must be enabled only for debugging.\r\n+ New Feature: The bar is not
appeared if the website is Offline.\r\n+ New Feature: Set the height and
the line height of the notification bar.\r\n+ New Feature: INCULDE PAGES:
Display the cookies policy notification bar only in the selected
pages.\r\n+ New Feature: EXCLUDE PAGES: Do not display the cookies policy
notification bar in these pages.\r\n+ New Feature: You can add your custom
css.\r\n+ New Feature: Duration (ms) for animation.\r\n# General minor bug
fixes in the code.\r\n\r\n23-Apr-2015 : v2.0.0\r\n+ Compatible with
\"Web357Framework\" (joomla! system plugin).\r\n^ Improvement
design for parameter fields (better radio buttons and color pickers).\r\n+
ADMIN: New Element: Description of extension (buttons: view demo, more
details, changelog, support).\r\n+ ADMIN: New Element: Version Check.\r\n+
ADMIN: New Element: About Web357 (logo, description, find us on social
media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n29-Mar-2014 : v1.1.0\r\n# CSS Fixed: Adding !important;
css rule for the link color in dark backgrounds.\r\n# Multilangual
support.\r\n^ Parameter fields have been redesigned and be more
useful.\r\n+ PHP functions have been added: getLangForm() and
getLanguageNameByTag().\r\n^ Language folders are now inside plugin
folder.\r\n# BUG Fixed: Line breaks in message don't display correctly
the notification bar.\r\n+ Parameter Added: Option to load or not, the
jQuery.\r\n+ BUG Fixed: jQuery conflict issues with 3rd party extensions
(e.g. Virtuemart, JS Jobs etc.).\r\n\r\n13-Dec-2014 : v1.0.1\r\n# Fixed the
css styling about z-index. Now the bar appears in front of any other
element, e.g. logo, header banners etc.\r\n\r\n07-Oct-2014 : v1.0.0\r\n+
First beta release",
        "project_type": "web357",
        "date": "2021-01-19",
        "extension_type": "Plugin",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/browse\/cookies-policy-notification-bar",
        "more_info_url":
"https:\/\/www.web357.com\/product\/cookies-policy-notification-bar-joomla-plugin",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/12-cookies-policy-notification-bar",
        "changelog_url":
"https:\/\/www.web357.com\/product\/cookies-policy-notification-bar-joomla-plugin#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/cookies-policy-notification-bar\/",
        "backend_settings_url":
".\/index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Web357%20Cookies%20Policy%20Notification%20Bar"
    },
    "datetime": {
        "name": "datetime",
        "real_name": "Display Date and Time",
        "product_type": "free",
        "description": "A simple, easy and nice display of
the current date and time using AJAX scripting. It includes various display
formats to choose from based on your preference. It supports all countries
date and time formats.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Before
&amp; After text <\/strong>(You can insert html text in front or
at the end of date and time).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Time
Zone<\/strong> (You can use multiple copies of datetime module, from
different time zones, to display the time from more than one Countries in
one single page.).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Date
Format<\/strong> (You have a plethora of options to display the date
format that match for your Country).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Date
Format Separator<\/strong> (Some dates are written with dot
13.04.2015, or slash 13\/04\/2015, or dash 13-05-2015
etc.).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Text
between date and time<\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Time
Format<\/strong> (Static or ajax\/flashing format, e.g. 08:44:12
PM).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Display PM\/AM<\/strong> (You have the option to
display or hide the PM\/AM right of the time).<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Custom CSS<\/strong> (Enter your custom CSS
code).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Compatible with the Igbo calendar<\/strong> (The Igbo
calendar is the traditional calendar system of the Igbo people from
present-day Nigeria. The calendar has 13 months in a year (afo), 7 weeks in
a month (onwa), and 4 days of Igbo market days (afor, nkwo, eke, and orie)
in a week (izu) plus an extra day at the end of the year, in the last
month. Example: Monday, Nkw\u1ecd 08 October 2018.).<\/li>\r\n  \r\n 
<\/ul>\r\n<h3 class=\"uk-h2 uk-text-center\">Specific
date formats for the basic components<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<ul class=\"uk-list
uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> yy \u2013 Two-digit
year, e.g. 96<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> yyyy \u2013
Four-digit year, e.g. 1996<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> m \u2013 One-digit
month for months below 10, e.g. 4<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> mm \u2013 Two-digit
month, e.g. 04    <\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> mmm \u2013
Three-letter abbreviation for month, e.g. Apr<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i> mmmm
\u2013 Month spelled out in full, e.g. April<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i> d
\u2013 One-digit day for days below 10, e.g. 2<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i> dd
\u2013 Two-digit day, e.g. 02<\/li>\r\n<\/ul>\r\n<!-- END:
Features -->",
        "stable_version": "2.3.3",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n09-Jan-2021 : v2.3.3\r\n+ [New Feature] You are now able to
show or hide the leading zero from the time (For example the 09:47:59,
could be 9:47:59). [Thank you, Phil Leifer]\r\n\r\n28-Jan-2019 :
v2.3.2\r\n^ [Styling Improvement] Do not display the DateTime in a new line
if the {loadposition web357} is used inside a text. The div tags have been
replaced with the span tags. [Thank you, Alistair
Malcott]\r\n\r\n08-Oct-2018 : v2.3.1\r\n+ [New Feature] Added compatibility
with the Igbo calendar. The Igbo calendar is the traditional calendar
system of the Igbo people from present-day Nigeria. The calendar has 13
months in a year (afo), 7 weeks in a month (onwa), and 4 days of Igbo
market days (afor, nkwo, eke, and orie) in a week (izu) plus an extra day
at the end of the year, in the last month. Example: Monday, Nkw\u1ecd 08
October 2018. [Thank you, Emeka Agbaka]\r\n^ The translation (.ini) files
have been updated.\r\n\r\n09-Aug-2018 : v2.3.0\r\n+ Fully compatible with
Joomla! 4.x\r\n^ [Improvement] the online_text + offline_text variables
have been removed.\r\n# [Bug Fixed] The custom date format from module
parameters is not working in multilingual sites [Thank you, Hans van
Haaren]\r\n+ Compatible with the latest version of Web357 Framework
v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n29-Jan-2018 : v2.2.9\r\n+ New Feature\/Parameter:
Display the Date and Time in two different rows. [Thank you,
Llu\u00eds]\r\n# Some language strings have been improved at the
backend.\r\n# Minor improvements.\r\n\r\n17-Oct-2017 : v2.2.8\r\n# BUG
Fixed: If you choose to not display the date from the module parameters, it
is displayed by default. [Many thanks to \u0418\u0432\u0430\u043d
\u0421\u0443\u0441\u0442\u0440\u0435\u0442\u043e\u0432]\r\n! The
'Color' module parameter has been removed.\r\n+ The 'Custom
CSS' module parameter has been added. Now you can add easily your own
CSS inside the module params, without editing any of your CSS
files.\r\n\r\n06-Jul-2017 : v2.2.7\r\n^ Option to display the $week
variable (e.g. Week: 26) into your code. You just have to enter the into
the file \"default.php\" [Thank you, Gerald
Berger].\r\n\r\n05-Jul-2017 : v2.2.6\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n12-May-2017 : v2.2.5\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin
parameters.\r\n\r\n28-Feb-2017 : v2.2.4\r\n# Bug Fixed: PHP Fatal error:
Redefinition of parameter $offset in \\modules\\mod_datetime\\helper.php on
line 118.\r\n\r\n27-Feb-2017 : v2.2.3\r\n# Bug Fixed: Some issues with
pacific ocean time zone have been resolved. [Thank you, Virtuo
x.]\r\n\r\n21-Feb-2017 : v2.2.2\r\n# BUG fixed: There were some HTML
Validation errors like \"Bad value for attribute datetime on element
time.\" Solution: The datetime value of  tag, has been replaced with
ISO 8601 date (added in PHP 5). [Thank you, Bob
Pitatzidis]\r\n\r\n23-Dec-2016 : v2.2.1\r\n+ Dutch (nl-NL) language has
been added. Many thanks to Henk Gordebeke.\r\n^ French language files have
been updated. Many thanks to Sandra Thevenet and Marc Antoine
Thevenet.\r\n^ Italian language files have been updated with corrections.
Many thanks to Lorenzo de Mauro.\r\n\r\n15-Dec-2016 : v2.2.0\r\n+ The date
format parameter list has been updated. The below joomla! date format
options have been added, based on your language file (DATE_FORMAT_LC,
DATE_FORMAT_LC1, DATE_FORMAT_LC2, DATE_FORMAT_LC3, DATE_FORMAT_LC4,
DATE_FORMAT_LC5, DATE_FORMAT_JS1). [Many thanks to Radovan for his
suggestion].\r\n+ A new input parameter has been added to adjust the date
format if none of the options in the list does fit your needs.\r\n^
Language files have been updated.\r\n# Minor bug fixes.\r\n\r\n09-Jun-2016
: v2.1.0\r\n# Bug Fixed: When using the ajax\/flashing option, the time is
faster than user's machine. When using the static option it works
well. [Thank you, Stewart McMaster]\r\n\r\n22-Feb-2016 : v2.0.9\r\n# Bug
Fixed: The front and the end text, are not displayed.\r\n\r\n15-Jan-2016 :
v2.0.8\r\n# Bug Fixed: Issues with UTC time from towns like Kolkata,
Adelaide, Bengaluru, Mumbai, Tehran, Darwin, Caracas, Kabul, and others,
have been resolved.\r\n^ Better MVC Format.\r\n^ Compatible with HTML5
datetime Attribute.\r\n+ CSS file added
mod_datetime\/tmpl\/default.css.\r\n\r\n08-Dec-2015 : v2.0.7\r\n# Minor bug
fixes after the latest upgrade from v2.0.6\r\n\r\n07-Dec-2015 : v2.0.6\r\n^
Updated description.\r\n^ Updated translations.\r\n\r\n12-Nov-2015 :
v2.0.5\r\n+ Russian (ru-RU) language has been added. Thanks bizt,
https:\/\/www.web357.com\/forum\/question\/2144-solved-translite-russian.\r\n\r\n15-Oct-2015
: v2.0.4\r\n# Minor bug fixes.\r\n\r\n05-Sep-2015 : v2.0.3\r\n+ Language
Added: Portuguese (Brazil) [pt-BR]. Thank you so much, Edimar
Pereira.\r\n\r\n30-Jul-2015 : v2.0.2\r\n# BUG Fixed: If the option
\"19:32 (ajax\/flashing)\" has been selected, the am\/pm did not
display properly.\r\n+ Language Added: The French language has been added,
by Henba.\r\n\r\n04-Jun-2015 : v2.0.1\r\n+ NEW PARAMETER: Select a timezone
(With this new parameter, you can use multiple copies of datetime module,
from different time zones, to display the time from more than one Countries
in one single page.)\r\n\r\n23-Apr-2015 : v2.0.0\r\n+ Compatible with
\"Web357Framework\" (joomla! system plugin).\r\n^ Improvement
design for parameter fields (better radio buttons and color pickers).\r\n+
ADMIN: New Element: Description of extension (buttons: view demo, more
details, changelog, support).\r\n+ ADMIN: New Element: Version Check.\r\n+
ADMIN: New Element: About Web357 (logo, description, find us on social
media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n27-Mar-2015 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2021-01-09",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/date-time",
        "more_info_url":
"https:\/\/www.web357.com\/product\/display-date-and-time-joomla-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/46-display-date-and-time",
        "changelog_url":
"https:\/\/www.web357.com\/product\/display-date-and-time-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extensions\/extension\/calendars-a-events\/time\/display-date-time",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Display%20Date%20and%20Time"
    },
    "supporthours": {
        "name": "supporthours",
        "real_name": "Support Hours",
        "product_type": "free_and_pro",
        "description": "This Joomla! Module displays the
Support Hours from your website. It shows the date-time of your online
store based on your timezone, and the current date-time of the
visitor.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Multilingual Support<\/strong>.<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Four great Layouts<\/strong> (Select a design layout
that fit your template's needs).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Date
and Time Params<\/strong> (Set your preferred Date and Time settings
based on your Country's standards).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Based
on ajax\/flashing <\/strong> (You shouldn't refresh your page to
refresh the times).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Texts<\/strong> (Enter your custom Texts (state, status
text, main text, etc.).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Links<\/strong> (Set your links for each status
(online\/offline) separately).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Holidays<\/strong> (Set Holidays. In a holiday the
support is offline and a holiday message will be
displayed).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Styling<\/strong> (Choose a design, enter the box
width, and upload your store's image).<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Custom CSS Styling<\/strong> (Enter your Custom CSS
code, to avoid opening css files).<\/li>\r\n<\/ul>\r\n<!--
END: Features -->",
        "stable_version": "1.5.2",
        "beta_version": "1.6.0",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n04-Feb-2020 : v1.5.2\r\n+ The [ca-ES] Catalan language has
been added. Many thanks to Web Gestio (webgestio.com) for his
contribution.\r\n\r\n18-Jan-2019 : v1.5.1\r\n+ [Improvement] Increase
holidays from 3 to 10 [Thank you, Eric vanbok]\r\n# [Bug Fixed] PHP Notice:
A non-well formed numeric value encountered in
\"\\mod_supporthours\\helper.php on line 96\"\r\n- modal
behavior\r\n# [Styling Improvement] The style of the \"Opening
hour\" and the \"Closing hour\" parameter fields has been
fixed in the module parameters.\r\n^ [Improvement] To avoid conflicts with
3rd party plugins, load the modal behavior
{JHtml::_('behavior.modal');} as a hidden field, instead globally
in the web357 framework.\r\n# [Bug Fixed] The screenshots are now displayed
in a modal window, instead of a new tab in your browser.\r\n\r\n09-Aug-2018
: v1.5.0\r\n+ Fully compatible with Joomla! 4.x\r\n+ Compatible with the
latest version of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug
fixes and many improvements.\r\n\r\n16-Mar-2018 : v1.4.2\r\n^ The Demo and
the JED link have been updated in the description tab, at Joomla!
backend.\r\n! The Web357 Download ID parameter field has been deleted from
each extension settings and has been replaced by a unique API key parameter
field at the Web357 Framework plugin settings.\r\n+ A new button (Settings)
has been added to the description tab at Joomla! backend.\r\n^ Compatible
with the latest version (1.6.0) of Web357 framework
plugin.\r\n\r\n05-Jul-2017 : v1.4.1\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n02-Jun-2017 : v1.4.0\r\n+ New Feature: Support break for
lunch. Example: Monday - Friday, 09:00 - 13:00 & 15:00 - 19:00. [Thank
you, Norbert]\r\n# Minor improvements in the module
parameters.\r\n\r\n13-May-2017 : v1.3.3\r\n+ Compatibility for auto-updates
via Watchful.li external service. [Many thanks to Valentin Barbu, Rafael
Gaus, and Frank].\r\n+ Compatible with the latest version of Web357
Framework v1.4.3.\r\n^ If the JED link does not exist yet, do not display
the 'leave a review' text inside the plugin
parameters.\r\n\r\n08-Dec-2016 : v1.3.2\r\n+ The [nl-NL] Dutch (Belgium)
language has been added (Many thanks to Henk Gordebeke for his
contribution).\r\n\r\n05-Oct-2016 : v1.3.1\r\n# Bug Fixed: The
online\/offline status text is not displayed after upgrade to version
1.3.0. [Thank you, Vladimir Melton].\r\n\r\n04-Oct-2016 : v1.3.0\r\n+ NEW
Feature: Now you can enter different texts (online\/offline status) for
each day separately. [Thanks, Peter Kuko].\r\n\r\n12-May-2016 : v1.2.0\r\n#
CSS Improvements in all layouts.\r\n\r\n05-May-2016 : v1.1.0\r\n+ Four new
great layouts from our awesome Graphic Designer. The first layout is
available in the free version, and the other three are available to the
premium version.\r\n+ New parameter: Box Width. You can now set the box
width. The 320px is recommended, but for responsive websites you should use
the 100%.\r\n+ New parameter: Links (tab). Set the links (contact us, live
chat, send email) to be displayed. You can set different links if the
support department is online or offline, respectively.\r\n+ New parameter:
Choose if you want to show the opening hours beside the open days.\r\n+
Many new parameters have been added to improve the layout styling (image
for layout-1, change the text of the state, the texts Online-Offline,
etc.).\r\n! The non-useful date formats have been removed from the list and
have been replaced by the most popular. But also alternatively you can set
your custom date format.\r\n! The layout that released on the first two
versions, 1.0.1 and 1.0.2, has been removed.\r\n! The parameter \"text
between date and time\" has been deleted.\r\n^ Better back-end. The
parameters are separated into tabs, instead of one page.\r\n^ The
screenshots in back-end have been updated, for a better explanation of
parameters.\r\n# Bug fixed: If the holiday #1 and #2 have been enabled, the
module detects the holiday #3 as enabled too.\r\n# General bug
fixes.\r\n\r\n30-Mar-2016 : v1.0.2\r\n+ A new helper plugin
\"plg_system_supporthours\" has been added to the package, to
help premium subscribers enable the live updates by entering the download
ID of their purchase.\r\n+ The \"Download ID\" parameter field
has been added to enable the live updates. This field is only for the Pro
versions.\r\n^ The free, and the pro version have different update
files.\r\n! The error messages about the download ID, during the update of
other extensions, have been resolved and have deleted.\r\n\r\n29-Mar-2016 :
v1.0.1\r\n! The unnecessary comments have been removed.\r\n! The file
\"timezone.php\" has been removed, because is not needed anymore.
All the necessary stuff has been moved to the file
\"mod_supporthours.php\".\r\n^ JED link has been updated.\r\n#
Bug Fixed: jQuery loaded every second to detect the time of visitor.\r\n#
404 error image not found for the image \"dateformat.png\". The
URL of the screenshot for the \"dateformat\" parameter field, has
been corrected.\r\n# Minor code fixes.\r\n\r\n09-Mar-2016 : v1.0.0\r\n+
First beta release.",
        "project_type": "web357",
        "date": "2020-02-04",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/browse\/support-hours",
        "more_info_url":
"https:\/\/www.web357.com\/product\/support-hours-joomla-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/44-support-hours",
        "changelog_url":
"https:\/\/www.web357.com\/product\/support-hours-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/support-hours\/",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Support%20Hours"
    },
    "vmsales": {
        "name": "vmsales",
        "real_name": "Virtuemart Sales",
        "product_type": "free_and_pro",
        "description": "The Virtuemart Sales Joomla!
component is a search tool that provides a list of Virtuemart products with
discounts. It is supplied with a lot of features and multiple parameters
and it would be ideal for e-commerce websites that were built with
VirtueMart.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>MVC
&amp; Multi-language support.<\/strong><\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Data Type<\/strong> (You can choose if you want to
display all Virtuemart products with discount or not, or
both).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Image
Interactivity<\/strong> (On click navigate to product's page or
2. display a lightbox gallery).<\/li>\r\n\r\n\r\n\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Include Categories<\/strong> (Choose the Categories
that should not be ignored).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Include Manufacturers<\/strong> (Choose the
Manufacturers that should not be ignored).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Exclude Categories<\/strong> (Choose the Categories
that should be ignored).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Exclude Manufacturers<\/strong> (Choose the
Manufacturers that should be ignored).<\/li>\r\n\r\n\r\n\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Advanced Search Form <\/strong>(See below the Search
form details list).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Product Layout <\/strong> (You have the option to
choose if share buttons, question link, view more button, or description
will be displaying).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Other
Options<\/strong> (You have the option to set limit for
product's title or description)<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Display prices with tax or
not.<\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Display only featured producs <\/strong>(Select if you
want to display only featured products or all)<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Social sharing buttons<\/strong> (Facebook, Twitter
etc.)<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Copyright Message<\/strong> (Of course you can hide the
copyright message if you want).<\/li>\r\n 
<\/ul>\r\n<p><small>Full configuration in parameters, at
joomla! back-end. You can change everything! (See the screenshots
below).<\/small><\/p>\r\n\r\n<h3 class=\"uk-h2
uk-text-center\">Search form options<\/h3><hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<ul class=\"uk-list
uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Select the Search
Type. All virtuemart products or products with discount or  products
without discount.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Select products from
a Category.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Select products from
a Manufacturer.<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Sort results by most
recent first, oldest first, price high to low, low to high, discount high
to low or low to high. <\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Search via input
text. Enter some characters or the entire word, from product's title,
the short or the full description.<\/li>\r\n<\/ul>\r\n<!--
END: Features -->",
        "stable_version": "7.1.5",
        "beta_version": "7.1.6",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n15-Oct-2020 : v7.1.5\r\n+ Compatible with the latest version
of VirtueMart v3.8.4x.\r\n# [Bug Fixed] Internal Server Errors after
upgrading to v3.8.4x have been resolved. [Thank you, Daniela Ferraro]\r\n#
[Bug Fixed] Share buttons FB and Twitter, the urls are relative and not
absolute with the domain, so there's an error when we click to
share.\r\n# [Bug Fixed] Notice: Undefined variable: childId in
\/components\/com_vmsales\/models\/vmsales.php\r\n+ [New feature] A new
parameter in component settings, \"Primary order\", to set the
default product sorting.\r\n+ [New option] Added a new option in the
\"Sort by\" filter. a) \"Weight hight to low\" and b)
\"Weight low to high\".\r\n^ Updated translations:
fr-FR\r\n\r\n26-Nov-2019 : v7.1.4\r\n+ Compatible with the latest version
of VirtueMart v3.6.10x.\r\n^ [Improvement] Show only included or excluded
categories in the category filter. [Thank you, Christopher]\r\n^
[Improvement] Show only included or excluded manufacturers in the
manufacturer filter. [Thank you, Christopher]\r\n\r\n21-Oct-2019 :
v7.1.3\r\n+ Compatibility with v3.6.2 of VirtueMart.\r\n# [Bug Fixed]
jQuery conflict issues have been resolved.\r\n# [Bug Fixed] Blank page in
VM Sales settings after upgrade to the VirtueMart version v3.6.2. [Thank
you, Rossiniy Gamberea]\r\n\r\n13-May-2019 : v7.1.2\r\n# [Bug Fixed] If the
website is multilingual and the texts for the products are stored in
multiple languages, there was an issue with the search form results. [Many
thanks to Giovanni]\r\n\r\n02-Nov-2018 : v7.1.1\r\n# [Bug Fixed] Do not
show the products if their category is unpublished [Thank you, Georg]\r\n#
[Bug Fixed] Warnings with VM Manufacturers and VM Categories
(Include\/Exclude) parameter fields at the backend have been resolved
successfully.\r\n# Minor bug fixes and many improvements, mostly in the
FREE version.\r\n# Minor styling improvements in the
settings.\r\n\r\n09-Aug-2018 : v7.1.0\r\n+ Compatible with the latest
version of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes
and many improvements.\r\n\r\n16-Mar-2018 : v7.0.2\r\n^ The Demo and the
JED link have been updated in the description tab, at Joomla! backend.\r\n!
The Web357 Download ID parameter field has been deleted from each extension
settings and has been replaced by a unique API key parameter field at the
Web357 Framework plugin settings.\r\n+ A new button (Settings) has been
added to the description tab at Joomla! backend.\r\n^ Compatible with the
latest version (1.6.0) of Web357 framework plugin.\r\n\r\n28-Feb-2018 :
v7.0.1\r\n# BUG FIXED: Compatibility issues with older versions of
Virtuemart have been resolved
\"\\plugins\\system\\web357framework\\elements\\vmcategoriesp.php\".
[Many thanks to Andrea Riquelme]\r\n\r\n20-Dec-2017 : v7.0.0\r\n+ NEW
FEATURE: Multi currency is now supported. [Thank you, Peter London]\r\n+
NEW FEATURE: Include the parameters also in the menu items to have
different settings in multiple menu items.\r\n+ NEW FEATURE: The Metadata
options are now supported in Menu Item and you can set the meta
description, the meta keywords, and the robots for each menu item you
create. [Thank you, Jacobo]\r\n^ The product categories are now
linkable.\r\n^ UIkit CSS framework has been updated to UIkit
3.0.0-beta.35\r\n^ The 'scope' mode of UIkit has been added to
avoid conflicts with other versions of UIkit or other websites which using
Yootheme templates.\r\n^ You can select multiple categories and
manufacturers in the parameters, instead of entering IDs.\r\n^ Display the
first image of the product instead of a random image. [Thank you,
Jacobo]\r\n^ In menu item settings now we use the
useglobal=\"true\" instead of the JGLOBAL_USE_GLOBAL. This method
allows you to know which are exactly the global values of global
configuration.\r\n^ The free version has more unlocked parameter
fields.\r\n! Some parameter fields have been removed because are not needed
anymore. (Currency, custom symbol, currency position, default ordering for
categories and manufacturers).\r\n! Unnecessary comments have been
removed.\r\n# The link \"Questions about this product?\" is
working now as expected.\r\n# Better search results.\r\n# General bug fixes
in product discount calculations.\r\n# Many CSS styling improvements and
minor fixes in responsive design.\r\n\r\n05-Jul-2017 : v6.0.8\r\n# Bug
fixed after upgrade to J! 3.7.3. The admins can't enter text in the
form fields from the plugin parameters.\r\n# Web357 framework has been
updated to the version 1.4.5.\r\n\r\n13-May-2017 : v6.0.7\r\n+
Compatibility for auto-updates via Watchful.li external service. [Many
thanks to Valentin Barbu, Rafael Gaus, and Frank].\r\n+ Compatible with the
latest version of Web357 Framework v1.4.3.\r\n^ If the JED link does not
exist yet, do not display the 'leave a review' text inside the
plugin parameters.\r\n\r\n12-Mar-2017 : v6.0.6\r\n+ The SKU product's
field is searchable now. [Thank you, Jacobo]\r\n# Bug Fixed: If a product
had an override price same as the final price, should not be displayed in
the discounted products list.\r\n# Bug Fixed: If a product has multiple
prices for each shopper group separately, are displayed correctly now.\r\n!
Some unnecessary comments have been removed.\r\n# Minor bug
fixes.\r\n\r\n27-May-2016 : v6.0.5\r\n+ Two new parameters have been added:
Choose if you want to display the Parent and the Child products that are
out of stock.\r\n# Minor bug fixes.\r\n\r\n16-May-2016 : v6.0.4\r\n+ New
Parameter has been added: Choose the type of products will be displayed
(Only Parent products or Parent & Child products).\r\n\r\n12-May-2016 :
v6.0.3\r\n+ New Parameter has been added: Choose if you want to display the
products that are out of stock. [Thank you, Vladimir N. Solopov]\r\n! The
unnecessary comments have been removed from the 'default.php'
file.\r\n# The error messages about the download ID, during the update of
other Web357 extensions, have been resolved and have been removed.\r\n#
Minor bug fixes.\r\n# CSS minor fixes.\r\n\r\n09-Mar-2016 : v6.0.2\r\n+ NEW
FEATURE: Set the number of displayed products per row.\r\n# BUG FIXED: The
style of pagination has been fixed to supporting templates from
templatemela.com.\r\n\r\n04-Feb-2016 : v6.0.1\r\n# Some issues with Joomla!
2.5, after upgrade from version 6.0.0, have been resolved.\r\n# BUG Fixed:
Fatal error: Call to undefined method JComponentHelper::isInstalled().\r\n!
PNG images have been removed and replaced with CSS design.\r\n# CSS minor
fixes.\r\n\r\n04-Feb-2016 : v6.0.0\r\n# Bug Fixed: If a product is not
assigned at least to one category, is not displayed in the list.\r\n# Bug
Fixed: Discount in an entire Category, is now applied.\r\n# Bug Fixed:
Multiple shopper groups are supported now.\r\n# Bug Fixed: If a discount
hasn't an expiration day, the product has not discount.\r\n# Bug
Fixed: Page title and Page heading are now editable from the menu item
params.\r\n# Bug Fixed: If pagination is disabled, notices and warning
messages are displayed.\r\n# Bug Fixed: If a discounted product is not
marked as featured, but you want to show only the featured products, it
still appears on the list.\r\n# General bug fixes (PHP, MySql).\r\n+
Responsive design, based on UIkit (getuikit.com).\r\n+ The component stops
working if the VirtueMart component is not installed or not enabled at your
Joomla! website.\r\n+ Social links have been improved for better social
sharing.\r\n+ Social images have been replaced by the font awesome
icons.\r\n+ You can use the page class from menu item params to give a
custom style per menu item.\r\n! Unnecessary comments have been
cleared.\r\n! Unnecessary parameters have been removed (the header
background, and the header text color).\r\n! Colorbox js library has been
deleted.\r\n^ The assets folder is moved to the \"tmpl\"
directory, of default layout.\r\n^ The inline CSS code, has been moved to
the style.css file.\r\n^ Cleaner, lighter code, and better MVC format based
on Joomla! coding standards.\r\n\r\n19-Jan-2016 : v5.1.6\r\n#
Product's small description (product_s_desc) is now searchable.\r\n+
New Parameter Field: Default Language (Select your default language. If
your website is multilingual, you should choose the 'All'
option.)\r\n# Some conflicts with other jQuery versions, have been
resolved.\r\n\r\n14-Jan-2016 : v5.1.5\r\n^ Colorbox (the jQuery lightbox
for product images), updated to the latest version 1.6.3.\r\n^ jQuery is
updated to the latest version 1.12.0.\r\n# Bug Fixed: \"Notice: Use of
undefined constant nul - assumed 'nul' in
\/libraries\/legacy\/model\/legacy.php on line
207\".\r\n\r\n08-Dec-2015 : v5.1.4\r\n# Minor bug fixes after the
latest upgrade from v5.1.3\r\n\r\n07-Dec-2015 : v5.1.3\r\n^ Updated
description.\r\n^ Updated translations.\r\n\r\n13-Nov-2015 : v5.1.2\r\n+
NEW Parameter Field: Download ID. You need to specify your Download ID
before you can receive updates for the PRO versions. For more information
please follow our instructions here:
https:\/\/www.web357.com\/apikey\r\n\r\n25-Sep-2015 : v5.1.1\r\n+ NEW
PARAMETER: You can choose which type of description for display, the short
or the full product description.\r\n+ NEW PARAMETER: You can choose which
HTML tags are allowed for the description.\r\n# BUG Fixed: If a Tax &
Calculation Rule has an expiration date, the product displayed to the
discounted products list, it shouldn't be displayed.\r\n# BUG Fixed:
If a Tax & Calculation Rule is not published, the product displayed to
the discounted products list, it shouldn't be displayed.\r\n# BUG
Fixed: # BUG Fixed: The count of Categories and Manufacturers in the form
fields, is calculated properly now.\r\n# BUG Fixed: Image ordering
doesn't work properly.\r\n# Minor bug fixes\r\n\r\n14-May-2015 :
v5.1.0\r\n+ ACL supported.\r\n+ FREE version available.\r\n# Bug fixed: If
you choose the option \"Display products WITHOUT discount\",
displays all products, also those with discount.\r\n# Bug fixed in Joomla!
2.5: \"500 - An error has occurred. JHtml: :jquery not supported. File
not found.\"\r\n\r\n23-Apr-2015 : v5.0.0\r\n+ Compatible with
\"Web357Framework\" (joomla! system plugin).\r\n^ Improvement
design for parameter fields (better radio buttons and color pickers).\r\n+
ADMIN: New Element: Description of extension (buttons: view demo, more
details, changelog, support).\r\n+ ADMIN: New Element: Version Check.\r\n+
ADMIN: New Element: About Web357 (logo, description, find us on social
media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n28-Mar-2015 : v4.2.5\r\n# Bug Fixed: If the core
Virtuemart component is not installed correctly, an error message is
displayed.\r\n# Bug Fixed: If the default rules have not been set
correctly, the default price will display.\r\n# CSS issues: Price
displaying at left, instead of right.\r\n# General Bug
Fixes\r\n\r\n04-Dec-2014 : v4.2.4\r\n# Bug Fixed: Warning: mb_substr()
expects parameter 3 to be long\r\n# General Bug Fixes\r\n\r\n24-Nov-2014 :
v4.2.3\r\n# Bug Fixed: Warning: utf8_to_unicode: Incomplete multi-octet
sequence in UTF-8 (for Greek characters)\r\n^ Strip html tags from
product's description\r\n\r\n14-Oct-2014 : v4.2.2\r\n# Bug Fixed: The
product's url has the category name in.\r\n^ Avoid conflict issues and
don't load jQuery if lightbox is not selected for image's
interactivity.\r\n! Unnecessary javascript files and code have been
removed.\r\n\r\n09-Oct-2014 : v4.2.2\r\n# Bug Fixed: There was a problem
with links (view more button, product title and product image), if the
component installed on a subfolder of subdomain.\r\n\r\n07-Oct-2014 :
v4.2.0\r\n+ Compatible with Joomla! v3.3.x\r\n^ Compatible with the latest
version of Virtuemart (v2.6.10), for Joomla! 2.5.x\r\n^ Compatible with the
latest version of Virtuemart (v2.9.9), for Joomla! 3.3.x\r\n# Bug Fixed:
jQuery conflict issues have been resolved\r\n# Bug Fixed: Free products now
has 100% discount percentage\r\n# General Bug Fixes\r\n\r\n03-Sep-2014 :
v4.1.5\r\n# Bug fixed: ssl products links did not working properly for the
social sharing links.\r\n\r\n30-May-2014 : v4.1.4\r\n# Bug fixed: when you
go to categories and select a category you see all products not just the
ones with discount (thanks, Balazs Hende)\r\n+ New option in config! Is not
longer necessary to mark a product as featured in virtuemart back-end.
There is an option to display only featured products or all
products.\r\n\r\n23-Nov-2013 : v4.1.3\r\n+ New Parameter has been added:
Custom Currency\r\n+ New Parameter has been added: Currency
Position\r\n\r\n22-Oct-2013 : v4.1.2\r\n# Bug fixed with selected variables
after submit form\r\n# Other bug fixes\r\n\r\n11-Oct-2013 : v4.1.1\r\n+
\u00a3 symbol added for british pounds\r\n\r\n24-Jul-2013 : v4.1.0\r\n+ New
Parameter has been added: You can display the product types you
want:\r\n::: ALL virtuemart products WITH discount\r\n::: ALL virtuemart
products WITHOUT discount\r\n::: ALL virtuemart products\r\n+ New Parameter
has been added: Show or not the Search type field from the search
options\r\n# Bug fixed: Display the products with no
Manufacturers\r\n\r\n18-Jul-2013 : v4.0.0\r\n^ Compatible with the latest
version of Virtuemart (v2.0.22a)\r\n+ Manufacturers parameter added and now
you can select products from one or more manufacturers\r\n+ Parameter
added: You can sort the categories by name alphabetically (asc, desc) or by
id (asc, desc)\r\n+ Parameter added: EXCLUDE\/INCLUDE (categories,
manufacturers)\r\n^ Cleaned up code syntax\r\n# General bug
fixes\r\n\r\n03-Jul-2013 : v3.0.2\r\n# Bug fixed: wrong percentage
discount\r\n\r\n26-May-2013 : v3.0.1\r\n^ Compatible with the latest
version of Joomla! (v2.5.11)\r\n^ Compatible with the latest version of
Virtuemart (v2.0.20b)\r\n^ Cleaned up code syntax\r\n# General small bug
fixes\r\n\r\n01-Feb-2013 : v3.0.0\r\n+ Joomla! 2.5 compatible!\r\n# Bug
fixed: Prices with tax\r\n^ Updated translations: en-GB\r\n^ Cleaned a lot
of code\r\n^ Changed some language strings\r\n! Removed ability to install
on Joomla 1.6 and 1.7\r\n! End of life Joomla! 1.5\r\n\r\n05-Dec-2012 :
v2.0.0\r\n# Fixed security issue in search form\r\n^ Changed language files
to be J1.6 ready\r\n^ Cleaned up some code\r\n^ Updated translations:
en-GB\r\n\r\n22-Apr-2012 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2020-10-15",
        "extension_type": "Component",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/virtuemart-sales",
        "more_info_url":
"https:\/\/www.web357.com\/product\/virtuemart-sales-joomla-component",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/43-virtuemart-sales",
        "changelog_url":
"https:\/\/www.web357.com\/product\/virtuemart-sales-joomla-component#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/virtuemart-sales\/",
        "backend_settings_url":
".\/index.php?option=com_config&view=component&component=com_vmsales"
    },
    "k2multiplecategories": {
        "name": "k2multiplecategories",
        "real_name": "Multiple Categories for K2",
        "product_type": "pro",
        "description": "With this Joomla! plugin, you can
assign multiple categories for K2 items. This plugin leaves the K2 core and
the template files untouched. The categories are also displayed at the
backend and are countable.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n\r\n<ul
class=\"uk-list uk-list-striped\">\r\n\r\n    <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> Migrate from the 3rd
party plugin \"Additional Categories for
K2\".<\/li>\r\n\r\n<\/ul>\r\n<!-- END: Features
-->\r\n\r\n<h3 class=\"uk-h2 uk-text-center\">How to
migrate from other plugins<\/h3>\r\n<hr
class=\"uk-grid-divider\" style=\"width:90px;margin:0
auto;\">\r\n<div class=\"uk-text-center
uk-margin-top\">\r\n    <iframe width=\"1280\"
height=\"720\"
src=\"https:\/\/www.youtube.com\/embed\/-xzH3xIHVCA\"
frameborder=\"0\"
allowfullscreen><\/iframe>\r\n<\/div>",
        "stable_version": "1.3.1",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n20-Oct-2020 : v1.3.1\r\n+ [New Feature] You can now set which
user groups are able to manage the multiple categories of K2
items.\r\n\r\n28-Sep-2020 : v1.3.0\r\n+ Added compatibility with the
\"RAXO All-mode K2 extension\". Read the instructions here
http:\/\/bit.ly\/raxo-allmode-compatibility\r\n^ [MySQL Improvements] For
the websites that have more than 50k K2 items, the performance has been
improved.\r\n\r\n18-Jun-2020 : v1.2.10\r\n# [Bug Fixed] The K2 pagination
is not displayed if the Falang extension is enabled. [Thank you, Virgili
Paez]\r\n\r\n12-May-2020 : v1.2.9\r\n+ [Improvement] The functionality is
also available in the latest k2 items and in User's page view.\r\n+
Compatible with the latest version of K2 v2.10.3\r\n# [Bug Fixed] Fatal
error: Cannot declare class K2ModelItemlist.\r\n# Minor fixes and
improvements.\r\n\r\n06-Mar-2020 : v1.2.8\r\n# [Bug Fixed] K2 missing some
items in the backend.\r\n# [Bug Fixed] Do not list K2 items, that are
assigned to multiple categories, several times.\r\n# [Bug Fixed] Cannot
declare class modK2ContentHelper, because the name is already in use.\r\n#
[Bug Fixed] If the catalog mode has been set from menu item settings, some
items are missing in the frontend.\r\n\r\n19-Feb-2020 : v1.2.7\r\n+ [New
feature] Added compatibility with Widgetkit extension by Yootheme. If you
are using the Widgetkit extension by Yootheme, with the new update release
you can override the default K2 content type and display K2 items that
assigned in multiple categories. [Many thanks to Tom Hollai for the feature
request]\r\n\r\n13-Jan-2020 : v1.2.6\r\n# [Buf Fixed] Warning: Declaration
of K2ModelItems::addIncludePath() should be compatible with
K2Model::addIncludePath($path = '', $prefix =
'K2Model') in
\/plugins\/system\/k2multiplecategories\/overrides\/admin\/components\/com_k2\/models\/items.php\r\n#
[Buf Fixed] Notice: Undefined variable: total in
\/plugins\/system\/k2multiplecategories\/overrides\/admin\/components\/com_k2\/views\/items\/view.html.php\r\n\r\n16-Dec-2019
: v1.2.5\r\n# [Buf Fixed] Many bug fixes have been resolved after upgrade
to the latest versions of K2 (v2.10.x).\r\n# [Buf Fixed] The pagination at
the backend, in the Items page, is working properly now.\r\n# [Bug Fixed]
The pagination (next-prev link buttons) is missing in the sub-categories
pages, both at the backend and frontend. [Thank you, Alex
Asimakopoulos]\r\n# [Bug Fixed] Database error code 1052. Column
'language' in where clause is ambiguous.\r\n# [Improvements]
Compatible with the latest version of K2 v2.10.2\r\n\r\n19-Jun-2019 :
v1.2.4\r\n+ [Improvement] Now you are able to assign multiple categories in
items from the frontend. [Thank you, Christos Chronopoulos]\r\n+
[Improvement] Now you are able to order\/sort the items in the backend also
by the subcategories , instead the main categories as before. [Thank you,
Frank Lauridsen]\r\n\r\n10-Apr-2019 : v1.2.3\r\n# [Bug Fixed] When the
\"Multiple Extra Field Groups for K2\" is used at the K2 backend,
some tabs are not displayed properly.\r\n\r\n03-Jan-2018 : v1.2.2\r\n# [Bug
Fixed] The Items are not displayed in the admin panel of the K2 component
if an additional category is selected from the \"-Select
Category-\" field. [Thank you, Anton]\r\n\r\n10-Dec-2018 : v1.2.1\r\n#
[Bug Fixed] Error with pagination results, in K2 category pages, if the
plugin is enabled.\r\n\r\n07-Dec-2018 : v1.2.0\r\n^ [Improvement] The
\"mod_k2_content\" module is now supported.\r\n# [Bug Fixed]
Illegal offset type of variables in the \"mod_k2_tools\"
module.\r\n# [Bug Fixed] Fixed issues with jQuery loading spinner after
migrating from the plugin \"Additional Categories for K2\".\r\n^
[Imrovements] The text string \"in\" has been removed (by jQuery)
from the k2 core modules, if our plugin is enabled.\r\n# Minor bug fixes
and many improvements.\r\n\r\n08-Nov-2018 : v1.1.0\r\n+ [New Feature]
Migrate from the plugin \"Additional Categories for K2\".
Navigate to the (system) plugin settings to find this feature.\r\n# [Bug
Fixed] Not allowing unset multiple categories after save.\r\n# [Bug Fixed]
Add SQL indexing [Thank you, Dave Marshall]\r\n# [Bug Fixed] Do not display
the list with categories if the parameter has been set to \"Do not
display categories\" in component and module settings.\r\n# Minor bug
fixes\r\n\r\n05-Nov-2018 : v1.0.1\r\n# [Bug Fixed] Wrong closing
\"div\" tag. [Many thanks to Daniel Burri]\r\n\r\n19-Oct-2018 :
v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2020-10-20",
        "extension_type": "Plugin",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/multiple-categories-for-k2",
        "more_info_url":
"https:\/\/www.web357.com\/product\/multiple-categories-for-k2-joomla-plugin",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/36-multiple-categories-for-k2",
        "changelog_url":
"https:\/\/www.web357.com\/product\/multiple-categories-for-k2-joomla-plugin#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/multiple-categories-for-k2\/",
        "backend_settings_url": ""
    },
    "vmcountproducts": {
        "name": "vmcountproducts",
        "real_name": "Virtuemart Count Products",
        "product_type": "free",
        "description": "A Joomla! module that displays the
count of active, inactive, or featured products of Virtuemart. Text can be
added before and after the counted number.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Before
&amp; After text <\/strong>(You can insert HTML text in front or
at the end of count).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Virtuemart's Link<\/strong> (Enter the link to the
Virtuemart).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Type
of Products<\/strong> (Count the Active, Inactive or Featured
products).<\/li>\r\n<\/ul>\r\n<!-- END: Features
-->",
        "stable_version": "4.1.0",
        "beta_version": "4.1.1",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n09-Aug-2018 : v4.1.0\r\n+ Compatible with the latest version
of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n05-Jul-2017 : v4.0.5\r\n# Bug fixed after upgrade to
J! 3.7.3. The admins can't enter text in the form fields from the
plugin parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n13-May-2017 : v4.0.4\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin
parameters.\r\n\r\n16-Mar-2016 : v4.0.3\r\n+ An error message is displayed
if the VirtueMart component is not installed or not enabled.xxx\r\n+
Compatible with the latest version of VirtueMart 3.0.14.\r\n# Bug Fixed:
error Deprecated: Non-static method
mod_vmcountproductsHelper::getActiveProducts() should not be called
statically.\r\n# Bug Fixed: error Deprecated: Non-static method
mod_vmcountproductsHelper::getInactiveProducts() should not be called
statically.\r\n# Bug Fixed: error Deprecated: Non-static method
mod_vmcountproductsHelper::getSpecialProducts() should not be called
statically.\r\n\r\n08-Dec-2015 : v4.0.2\r\n# Minor bug fixes after the
latest upgrade from v4.0.1\r\n\r\n07-Dec-2015 : v4.0.1\r\n^ Updated
description.\r\n^ Updated translations.\r\n\r\n23-Apr-2015 : v4.0.0\r\n+
Compatible with \"Web357Framework\" (joomla! system plugin).\r\n^
Improvement design for parameter fields (better radio buttons and color
pickers).\r\n+ ADMIN: New Element: Description of extension (buttons: view
demo, more details, changelog, support).\r\n+ ADMIN: New Element: Version
Check.\r\n+ ADMIN: New Element: About Web357 (logo, description, find us on
social media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n26-May-2013 : v3.0.1\r\n^ Compatible with the latest
version of Joomla! (v2.5.11)\r\n^ Compatible with the latest version of
Virtuemart (v2.0.20b)\r\n^ Cleaned up code syntax\r\n! language files has
been removed, we do not need these any more\r\n! Removed ability to install
on Joomla! 1.5, 1.6 and 1.7\r\n! Joomla! 1.5 is not supported any
more\r\n\r\n25-Feb-2013 : v3.0.0\r\n+ You can link the for count of
products in the module parameters.\r\n+ You can add html in text fields in
the module parameters.\r\n+ Language files added\r\n\r\n29-Jan-2013 :
v2.0.0\r\n^ Compatible with the latest version of Joomla! (v2.5.6)\r\n^
Compatible with the latest version of Virtuemart (v2.0.0)\r\n^ Joomla! 1.5
version is not supported any more\r\n# Other Bug Fixes\r\n\r\n23-Jun-2010 :
v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2018-08-09",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/virtuemart-count-products",
        "more_info_url":
"https:\/\/www.web357.com\/product\/virtuemart-count-products-joomla-module",
        "documentation_url": "",
        "changelog_url":
"https:\/\/www.web357.com\/product\/virtuemart-count-products-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/count-products-for-virtuemart\/",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Virtuemart%20Count%20Products"
    },
    "contactinfo": {
        "name": "contactinfo",
        "real_name": "Contact Info",
        "product_type": "pro",
        "description": "\u03a4he easiest way to display your
website's contact information. This module allows you to specify
various company information details such as a logo, social media links, and
other contact info.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Fully
customizable with many parameters.<\/strong><\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Responsive Web Design.<\/strong><\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Multilingual Support.<\/strong><\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>MVC support.<\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Based
on Joomla! coding
standards.<\/strong><\/li>\r\n<\/ul>\r\n    \r\n<h3
class=\"uk-h2 uk-text-center\">Many Useful
Parameters<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Style<\/strong> (Vertical or Horizontal
layout).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Label
Type<\/strong> (Text Label or Icon).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Icons<\/strong> (Fontawesome icons or upload your
custom icons for social media links).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Text
Before<\/strong> (You can enter a text that will be displayed before
the information).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Text
After<\/strong> (You can enter a text that will be displayed after
the information).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Contact Information<\/strong> (You can specify various
contact information details such as a logo, company name, slogan, phone
number, fax number, mobile phone number, email address and
website).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Address Information<\/strong> (You can specify various
address information details such as address, city, state, zip code and
country).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Social
Media Links<\/strong> (You can enter the links of your social media
such as the Facebook, Twitter, Google+, Instagram, Linkedin, Vimeo,
Pinterest, and Behance).<\/li>\r\n<\/ul>\r\n<!-- END:
Features -->",
        "stable_version": "1.1.0",
        "beta_version": "1.2.0",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n09-Aug-2018 : v1.1.0\r\n+ Fully compatible with Joomla!
4.x\r\n+ Compatible with the latest version of Web357 Framework v1.7.x\r\n^
Code Cleanup\r\n# Minor bug fixes and many improvements\r\n\r\n16-Mar-2018
: v1.0.3\r\n^ The Demo and the JED link have been updated in the
description tab, at Joomla! backend.\r\n! The Web357 Download ID parameter
field has been deleted from each extension settings and has been replaced
by a unique API key parameter field at the Web357 Framework plugin
settings.\r\n+ A new button (Settings) has been added to the description
tab at Joomla! backend.\r\n^ Compatible with the latest version (1.6.0) of
Web357 framework plugin.\r\n\r\n02-Nov-2017 : v1.0.2\r\n+ Youtube
icon\/link has been added in the module parameters. [Thank you,
Patrick]\r\n# Minor bug fixes.\r\n\r\n05-Jul-2017 : v1.0.1\r\n# Bug fixed
after upgrade to J! 3.7.3. The admins can't enter text in the form
fields from the plugin parameters.\r\n# Web357 framework has been updated
to the version 1.4.5.\r\n\r\n16-May-2017 : v1.0.0\r\n+ First beta
release",
        "project_type": "web357",
        "date": "2018-08-09",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/contact-info",
        "more_info_url":
"https:\/\/www.web357.com\/product\/contact-info-joomla-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/45-contact-info",
        "changelog_url":
"https:\/\/www.web357.com\/product\/contact-info-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/contact-info\/",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Contact%20Info"
    },
    "countdown": {
        "name": "countdown",
        "real_name": "Countdown",
        "product_type": "free",
        "description": "A simple Joomla! module that counts
down the time until one or multiple events is scheduled to commence. It can
also be used as a countdown for the release of a new website that is
currently under construction.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Date
<\/strong>(Enter the date of Event).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Time<\/strong> (Enter the time of
Event).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Front
text <\/strong>(The text before the &quot;count down&quot;
timer).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>End
text <\/strong>(The text after the &quot;count down&quot;
timer).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Finish
text<\/strong> (The text that will displayed after the end of
Event).<\/li>\r\n<\/ul>\r\n<!-- END: Features -->",
        "stable_version": "3.2.1",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n02-Sep-2018 : v3.2.1\r\n^ [Improvements] Fix issues for the
browser IE 8 and below.\r\n# [Bug Fixed] Cannot set property
'innerHTML' of null.\r\n\r\n09-Aug-2018 : v3.2.0\r\n+ Fully
compatible with Joomla! 4.x\r\n+ Compatible with the latest version of
Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n08-Oct-2017 : v3.1.0\r\n# Joomla! template overrides
are now supported in the module. You can now create your own layouts
avoiding changes after the module upgrades. Ensure that you take a backup
of your CSS file before this upgrade because the path and the name have
been changed. [Many thanks to Jay B Hall]\r\n\r\n05-Jul-2017 : v3.0.7\r\n#
Bug fixed after upgrade to J! 3.7.3. The admins can't enter text in
the form fields from the plugin parameters.\r\n# Web357 framework has been
updated to the version 1.4.5.\r\n\r\n12-May-2017 : v3.0.6\r\n+
Compatibility for auto-updates via Watchful.li external service. [Many
thanks to Valentin Barbu, Rafael Gaus, and Frank].\r\n+ Compatible with the
latest version of Web357 Framework v1.4.3.\r\n^ If the JED link does not
exist yet, do not display the 'leave a review' text inside the
plugin parameters.\r\n\r\n10-Aug-2016 : v3.0.5\r\n^ The Olympic Games 2016
have been removed from the default XML data, because have been started, and
have been replaced by Fifa World Cup 2018 in Russia.\r\n^ Some fields are
not required anymore.\r\n\r\n28-Mar-2016 : v3.0.4\r\n^ The default XML data
have been changed.\r\n\r\n08-Dec-2015 : v3.0.3\r\n# Minor bug fixes after
the latest upgrade from v3.0.2\r\n\r\n07-Dec-2015 : v3.0.2\r\n^ Updated
description.\r\n^ Updated translations.\r\n\r\n13-Nov-2015 : v3.0.1\r\n#
Bug Fixed: wrong file path for mod_countdown.css\r\n\r\n23-Apr-2015 :
v3.0.0\r\n+ Compatible with \"Web357Framework\" (joomla! system
plugin).\r\n^ Improvement design for parameter fields (better radio buttons
and color pickers).\r\n+ ADMIN: New Element: Description of extension
(buttons: view demo, more details, changelog, support).\r\n+ ADMIN: New
Element: Version Check.\r\n+ ADMIN: New Element: About Web357 (logo,
description, find us on social media).\r\n# General minor fixes.\r\n# Clean
and code improvement.\r\n\r\n14-Nov-2014 : v2.2.0\r\n+ CSS file has been
added \"assets\/css\/mod_countdown.css\", for your custom
styling.\r\n\r\n24-Jul-2013 : v2.1.0\r\n+ Support multiple countdown module
in the same page\r\n! countdown.js has been removed\r\n\r\n26-May-2013 :
v2.0.0\r\n+ align, color, and fontsize parameters has been removed because
you can get a nice result if you add the \"\r\n.countdown\" class
in your current template\r\n+ Supported for Joomla! 2.5.x, Joomla! 3.0.x
and Joomla! 3.1.x\r\n^ Cleaned up code syntax\r\n^ Changed some language
strings\r\n^ Updated translations: en-GN, el-GR\r\n! Removed ability to
install on Joomla! 1.5, 1.6 and 1.7\r\n! Joomla! 1.5 is not supported any
more\r\n\r\n08-Feb-2009 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2018-09-02",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/countdown",
        "more_info_url":
"https:\/\/www.web357.com\/product\/countdown-joomla-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/47-countdown",
        "changelog_url":
"https:\/\/www.web357.com\/product\/countdown-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extensions\/extension\/calendars-a-events\/events\/count-down",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Countdown"
    },
    "failedloginattempts": {
        "name": "failedloginattempts",
        "real_name": "Failed Login Attempts",
        "product_type": "free_and_pro",
        "description": "This Joomla! Plugin records the
failed and successful login attempts into the back-end and front-end of
your Joomla! website. It is useful for security purposes and serves as an
information pool to track malicious user access (IP, country, browser, OS,
etc.).",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Enable logs for
backend<\/span><\/strong> (Store the Failed login attempts of
joomla! backend).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Enable logs for
frontend<\/span><\/strong> (Store the Failed login attempts of
joomla! frontend).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Successful Login
Attempts<\/span><\/strong> (Store the Successful login attempts
of joomla! frontend).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Direct E-mail
Notifications<\/span><\/strong> (Receive direct notifications
via email about the Failed and Successful login attempts of joomla! backend
and frontend).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Store Logs in the
Database<\/span><\/strong> (Store all, successfull or failed,
login attempts in the database).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing: IP
Address<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing:
Username<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing:
Password<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing: Date
Time<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing:
Country<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing:
Browser<\/span><\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong><span class=\"uk-width-4-10
uk-text-right\">Data Storing: Operating
System<\/span><\/strong><\/li>\r\n<\/ul>\r\n<!--
END: Features -->",
        "stable_version": "2.2.0",
        "beta_version": "2.3.0",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n09-Aug-2018 : v2.2.0\r\n+ Compatible with the latest version
of Web357 Framework v1.7.x\r\n^ Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n16-Mar-2018 : v2.1.0\r\n^ Functions Improved: The
getOS() and the getBrowser() functions have been updated to get the most
recent Operating Systems and Browsers.\r\n# BUG Fixed: The datetime gets
now the correct offset from the joomla configuration.\r\n# BUG Fixed: The
modal behavior is missing. Now the logs are displayed properly in a modal
popup window.\r\n^ The Demo and the JED link have been updated in the
description tab, at Joomla! backend.\r\n! The Web357 Download ID parameter
field has been deleted from each extension settings and has been replaced
by a unique API key parameter field at the Web357 Framework plugin
settings.\r\n+ A new button (Settings) has been added to the description
tab at Joomla! backend.\r\n^ Compatible with the latest version (1.6.0) of
Web357 framework plugin.\r\n\r\n17-Jul-2017 : v2.0.8\r\n+ New Parameter:
The \"Fix Ordering\" button has been added. Sometimes you need to
click on that button to make sure that the plugin has been set as a
priority between other authentication plugins.\r\n# Minor bug
fixes.\r\n\r\n05-Jul-2017 : v2.0.7\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n12-May-2017 : v2.0.6\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin parameters.\r\n+ NEW
Parameter Field: Download ID. You need to specify your Download ID before
you can receive updates for the PRO versions. For more information please
follow our instructions here:
https:\/\/www.web357.com\/apikey\r\n\r\n08-Dec-2015 : v2.0.5\r\n# Minor bug
fixes after the latest upgrade from v2.0.4\r\n\r\n07-Dec-2015 : v2.0.4\r\n^
Updated description.\r\n^ Updated translations.\r\n\r\n13-Nov-2015 :
v2.0.3\r\n# Minor bug fixes.\r\n\r\n02-Oct-2015 : v2.0.2\r\n^ The mail()
php function has been replaced by Joomla's api function
JFactory::getMailer.\r\n\r\n09-May-2015 : v2.0.1\r\n^ The
\"footer\" element has been changed to reordering the plugin, for
the right storing of  \"Successful login attempts\".\r\n^ Direct
notifications are now available in the FREE version.\r\n^ Save Logs to
Database are available only in PRO version.\r\n^ Minor fixes in language
file.\r\n\r\n23-Apr-2015 : v2.0.0\r\n+ Compatible with
'Web357Framework' (joomla! system plugin).\r\n^ Improvement
design for parameter fields (better radio buttons and color pickers).\r\n+
ADMIN: New Element: Description of extension (buttons: view demo, more
details, changelog, support).\r\n+ ADMIN: New Element: Version Check.\r\n+
ADMIN: New Element: About Web357 (logo, description, find us on social
media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n12-Dec-2014 : v1.1.0\r\n+ One mysql table has inserted
and now the data will be stored in the new sql table named
#__failed_login_attempts_logs.\r\n+ FREE and PRO version are
available.\r\n# Security issue with store data in a visible html file, has
been resolved. The plugin will not store the data in the html file
anymore\r\n# General bug fixes.\r\n\r\n08-Nov-2014 : v1.0.1\r\n# Bug Fixed:
Date is always showing 11th, in log file.\r\n\r\n17-Sep-2014 : v1.0.0\r\n+
First beta release",
        "project_type": "web357",
        "date": "2018-08-09",
        "extension_type": "Plugin",
        "live_demo_url":
"https:\/\/www.web357.com\/product\/failed-login-attempts-joomla-plugin",
        "more_info_url":
"https:\/\/www.web357.com\/product\/failed-login-attempts-joomla-plugin",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/42-failed-login-attempts",
        "changelog_url":
"https:\/\/www.web357.com\/product\/failed-login-attempts-joomla-plugin#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/failed-login-attempts\/",
        "backend_settings_url":
".\/index.php?option=com_plugins&view=plugins&filter[search]=Authentication%20-%20Failed%20Login%20Attempts"
    },
    "fixedhtmltoolbar": {
        "name": "fixedhtmltoolbar",
        "real_name": "Fixed HTML Toolbar",
        "product_type": "free",
        "description": "A fixed toolbar at the bottom of
your current Joomla! template, with up to 10 linked icons or just HTML
code. This Joomla! plugin is useful for the display of social media icons
or any other static content during page scrolling.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Background color <\/strong>(Select your color from the
color picker).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Border
Color<\/strong><strong> <\/strong>(Select your color from
the color picker).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Border
thickness <\/strong>(in pixels).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Alignment <\/strong>(Left, center or
right).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>HTML
Text<\/strong> (Enter your html text for the
toolbar).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Space
between images<\/strong><\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>10
Images and their
Links<\/strong><\/li>\r\n<\/ul>\r\n<!-- END: Features
-->",
        "stable_version": "3.2.0",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n01-Jun-2020 : v3.2.0\r\n+ [New Parameters] \"Alt\"
tags for the images\/icons. This new feature resolves the SEO analysis on
Joomla sites that were always coming up with \"alt\" tag errors
for the various social media icon images. [Thank you, Michael
Bittle]\r\n\r\n09-Aug-2018 : v3.1.0\r\n+ Fully compatible with Joomla!
4.x\r\n+ Compatible with the latest version of Web357 Framework v1.7.x\r\n^
Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n10-Mar-2018 : v3.0.9\r\n# NEW FEATURE: Now you can
load any module position in HTML parameter field using this code
{loadposition position}. [Thank you, Goran
Ne\u0161i\u0107]\r\n\r\n05-Jul-2017 : v3.0.8\r\n# Bug fixed after upgrade
to J! 3.7.3. The admins can't enter text in the form fields from the
plugin parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n13-May-2017 : v3.0.7\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin
parameters.\r\n\r\n22-Apr-2017 : v3.0.6\r\n# Fix CSS issues with Internet
Explorer 11. [Thank you, Jos\u00e9 Fernandes]\r\n\r\n29-Nov-2016 :
v3.0.5\r\n+ Allowed HTML code in the textarea parameter field. [Thank you,
Ric]\r\n+ New Parameter allows you to choose the position (top or bottom)
of the fixed HTML toolbar. [Thank you, Fran Garcia]\r\n\r\n08-Dec-2015 :
v3.0.4\r\n# Minor bug fixes after the latest upgrade from
v3.0.3\r\n\r\n07-Dec-2015 : v3.0.3\r\n^ Updated description.\r\n^ Updated
translations.\r\n\r\n19-Oct-2015 : v3.0.2\r\n# Minor Bug
Fixes\r\n\r\n18-Sep-2015 : v3.0.1\r\n^ Module's name changed because
it conflicted with joomla's core admin toolbar module.\r\n# CSS issues
have been resolved.\r\n\r\n23-Apr-2015 : v3.0.0\r\n+ Compatible with
\"Web357Framework\" (joomla! system plugin).\r\n^ Improvement
design for parameter fields (better radio buttons and color pickers).\r\n+
ADMIN: New Element: Description of extension (buttons: view demo, more
details, changelog, support).\r\n+ ADMIN: New Element: Version Check.\r\n+
ADMIN: New Element: About Web357 (logo, description, find us on social
media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n19-May-2014 : v2.0.3\r\n# Fixed: Issues with firefox
have been resolved\r\n\r\n15-Jan-2014 : v2.0.2\r\n# Fixed: Allow add html
in parameters field from module manager\r\n\r\n03-Jul-2013 : v2.0.1\r\n!
default values has been removed from xml\r\n\r\n26-May-2013 : v2.0.0\r\n+
color, fontsize and bold parameters has been removed because you can get a
nice result with module suffix\r\n+ Supported for Joomla! 2.5.x, Joomla!
3.0.x and Joomla! 3.1.x\r\n^ Cleaned up code syntax\r\n! Removed ability to
install on Joomla! 1.5, 1.6 and 1.7\r\n! Joomla! 1.5 is not supported any
more\r\n\r\n11-Aug-2009 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2020-06-01",
        "extension_type": "Module",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/fixed-html-toolbar",
        "more_info_url":
"https:\/\/www.web357.com\/product\/fixed-html-toolbar-joomla-module",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/48-fixed-html-toolbar",
        "changelog_url":
"https:\/\/www.web357.com\/product\/fixed-html-toolbar-joomla-module#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/toolbar\/",
        "backend_settings_url":
".\/index.php?option=com_modules&filter[search]=Fixed%20HTML%20Toolbar"
    },
    "loginasuser": {
        "name": "loginasuser",
        "real_name": "Login as User",
        "product_type": "pro",
        "description": "This plugin helps admin users to
login to the front-end as a specific user. It is useful for websites where
the admin user needs to check if a user can see their order(s) correctly,
if a form was filled out correctly, or any issues with a user's
personal details, etc. The Admin user will be accessing all this
information as the external User in order to replicate any issues and
assist the user.",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Login
System<\/strong> (Choose the login system, Joomla! core, K2 or
ExtendedReg. If you select K2, note that the parameter 'Enable K2 User
Profile' in K2 settings must be enabled).<\/li>\r\n\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Assign multiple Admins to specific User
Groups<\/strong> (Choose the Admins who can use the LOGIN AS USER
functionality for a specific User Group. <small>This feature added in
v3.2.0<\/small>).<\/li>\r\n\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Inform
Admin<\/strong> (Send a message to Admin, to inform that a user
logged in from backend, through 'Login as User'
plugin).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Admin's Email<\/strong> (Enter Admin's Email
address. Example: info@yourdomain.com. If you leave this field blank, the
default email from global configuration will be used).<\/li>\r\n 
<li><i class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>URL Redirect after login<\/strong> (Enter the URL that
redirects the Admin in front-end, after a successfull login as a specific
User).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i>
<strong>Displayed Text<\/strong> (Enter your preferred
displayed text. E.g. Login as %s \u00bb... or Login as User \u00bb... or
Login as Client \u00bb... etc. Notice that the variable %s is equal with
the Username of User).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Custom
CSS Style<\/strong> (Enter your personal CSS style for the
'Login as User' text).<\/li>\r\n<\/ul>\r\n\r\n<h3
class=\"uk-h2 uk-text-center\">How it works?
(Video)<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<p
class=\"uk-text-center\" style=\"max-width:640px; margin:0
auto;\"><iframe width=\"640\" height=\"480\"
src=\"https:\/\/www.youtube.com\/embed\/WYrYz4aXKhA\"
frameborder=\"0\"
allowfullscreen><\/iframe><\/p>\r\n<!-- END: Features
-->",
        "stable_version": "3.4.1",
        "beta_version": "",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n04-Sep-2020 : v3.4.1\r\n# [Bug Fixed] JoomGallery photos are
not displayed properly after enabling the Login as a User plugin. [Thank
you, Yanco M. Nilyus]\r\n\r\n20-Feb-2020 : v3.4.0\r\n+ [New parameter] URL
Redirection type (after login as a User). Enter the URL, or choose a Menu
Item that the Admin will be redirected, to the front-end, after a
successful login as a specific User.\r\n+ [New parameter] Display the
\u00abUsername\u00bb or \u00abName\u00bb on the button. You can now choose
which string will be displayed on the \"Login as User\" button.
For example \"Login as \u00abjohn357\u00bb\" (Username), or
\"Login as \u00abYiannis Christodoulou\u00bb\" (Name).\r\n+ [New
parameter] Show only the first X characters of the
\u00abUsername\/Name\u00bb. Show only the first X characters of the
Username\/Name, on the \"Login as...\u00abUsername\/Name\u00bb\"
button. For example, if you choose the option 5 (the five first characters
of the string), the button will be displayed as \"Login as
\u00abjohn3...\u00bb\"  if the username is \"john357\", or
it will be displayed as \"Login as \u00abYiann...\u00bb\" if the
name is \"Yiannis Christodoulou\".\r\n# Minor fixes and code
improvements.\r\n\r\n23-Dec-2019 : v3.3.5\r\n# [Bug Fixed] When a User
Group name has special characters in the title, like the French string
\"Enregistr\u00e9\", then there is a bug with the error message:
\"An error has occurred. 500 String could not be parsed as XML.\"
[Many thanks to Jean Machuron]\r\n\r\n09-Dec-2019 : v3.3.4\r\n^
[Improvement] You are able to translate the \"Login as User\"
column, by set a value to the constant \"COM_LOGINASUSER\".
[Thank you, Milan]\r\n\r\n14-Jun-2019 : v3.3.3\r\n# [Bug Fixed] If a
usergroup's name has special characters like the (&) symbol, an
error message is displayed: (500 String could not be parsed as XML) and the
Admins cannot view and edit the plugin parameters. [Many thanks to Simon
Logan]\r\n\r\n10-Apr-2019 : v3.3.2\r\n# [Bug Fixed] There was a PHP
max_execution_time error (30sec). This only affects MySQL databases where
the #__users table exceeds the 100.000 users. [Thank you,
Mike]\r\n\r\n12-Dec-2018 : v3.3.1\r\n# [Bug Fixed] Error after upgrading to
Joomla! 3.9.x. 404 View not found [name, type, prefix]: users, html,
loginasuserView. [Thank you, Serge]\r\n^ Minor
Improvements\r\n\r\n09-Aug-2018 : v3.3.0\r\n+ Fully compatible with Joomla!
4.x\r\n+ Compatible with the latest version of Web357 Framework v1.7.x\r\n^
Code Cleanup.\r\n# Minor bug fixes and many
improvements.\r\n\r\n16-Mar-2018 : v3.2.1\r\n# BUG FIXED: Notice: Undefined
variable: is_enabled_arr in
\/administrator\/components\/com_loginasuser\/views\/users\/tmpl\/default.php
on line 102\r\n# BUG FIXED: Warning: array_sum() expects parameter 1 to be
array, null given in
\/administrator\/components\/com_loginasuser\/views\/users\/tmpl\/default.php
on line 102\r\n^ The Demo and the JED link have been updated in the
description tab, at Joomla! backend.\r\n! The Web357 Download ID parameter
field has been deleted from each extension settings and has been replaced
by a unique API key parameter field at the Web357 Framework plugin
settings.\r\n+ A new button (Settings) has been added to the description
tab at Joomla! backend.\r\n^ Compatible with the latest version (1.6.0) of
Web357 framework plugin.\r\n\r\n15-Dec-2017 : v3.2.0\r\n# NEW FEATURE:
Assign multiple Admins to specific User Groups. Choose the Admins who can
use the LOGIN AS USER functionality for a specific User Group. Leave the
field blank if you want to allow every Admin to log in as any user in this
user group. [Many thanks to Gerry, for his suggestion] \r\n# The login as
user plugin works properly in Joomla! 2.5.x but the above new feature is
not working.\r\n# The core files from com_user have been replaced with the
latest version of Joomla! 3.8.x series.\r\n# Minor bug fixes and many
improvements.\r\n\r\n08-Oct-2017 : v3.1.3\r\n# Compatible with Easy Profile
extension package by easy-profile.com. [Many thanks to Jean Marc
Niklaus]\r\n\r\n05-Jul-2017 : v3.1.2\r\n# Bug fixed after upgrade to J!
3.7.3. The admins can't enter text in the form fields from the plugin
parameters.\r\n# Web357 framework has been updated to the version
1.4.5.\r\n\r\n13-May-2017 : v3.1.1\r\n+ Compatibility for auto-updates via
Watchful.li external service. [Many thanks to Valentin Barbu, Rafael Gaus,
and Frank].\r\n+ Compatible with the latest version of Web357 Framework
v1.4.3.\r\n^ If the JED link does not exist yet, do not display the
'leave a review' text inside the plugin
parameters.\r\n\r\n26-Apr-2017 : v3.1.0\r\n+ Compatibility with Joomla!
3.7\r\n! End of support Joomla! 2.5.x. Note that the version 3.1+ of Login
as User is not available anymore for Joomla! 2.5 series. DO NOT install
this version if your Joomla! is not up to date, at least to the latest
series of Joomla!.\r\n# Minor bug fixes after upgrade to Joomla!
3.7\r\n\r\n08-Dec-2016 : v3.0.6\r\n+ The [nl-NL] Dutch (Belgium) language
has been added (Many thanks to Henk Gordebeke for his
contribution).\r\n\r\n29-Jun-2016 : v3.0.5\r\n# BUG Fixed: The
\"Download ID\" is missing from the plugin parameters, but exists
in the component parameters. You can now enter your download ID, in the
component parameters, either in the plugin parameters. Each one submission,
or both of them, are correct.\r\n\r\n12-May-2016 : v3.0.4\r\n# BUG Fixed:
The error messages about the download ID, during the update of other Web357
extensions, have been resolved and have been removed.\r\n# BUG Fixed: If
the sh404sef extension is installed on your website, the URL redirections
after login as a user redirects you to a 404 error page.\r\n\r\n14-Apr-2016
: v3.0.3\r\n# Bug Fixed: An error 404 (0 - Invalid address) is displayed
after upgrading to Joomla! 3.5.1, after clicking on the link \"Login
as _username_\". [Thank you, Lisa Keyser]\r\n\r\n08-Dec-2015 :
v3.0.2\r\n# Minor bug fixes after the latest upgrade from
v3.0.1\r\n\r\n07-Dec-2015 : v3.0.1\r\n^ Updated description.\r\n^ Updated
translations.\r\n\r\n18-Nov-2015 : v3.0.0\r\n+ ACL supported. \r\n# Bug
fixed: 500 Error. The function onAfterInitialise() is changed to
onAfterDispatch(). \r\n^ Managers and Admins are not authorized to log in
as Super User. \r\n+ NEW Parameter Field: Custom CSS style. You can add
your personal CSS style. Find the classes by right click on the text, and
then inspect element (browser option). \r\n+ NEW Parameter Field: Displayed
text. You can change the \"Login as User\" text. \r\n+ Compatible
with 'ExtendedReg' Joomla! Plugin, of jVitals Team. \r\n# Minor
bug fixes and clean up some code. \r\n\r\n13-Nov-2015 : v2.1.4\r\n+ NEW
Parameter Field: Download ID. You need to specify your Download ID before
you can receive updates for the PRO versions. For more information please
follow our instructions here: https:\/\/www.web357.com\/apikey\r\n# Minor
bug fixes.\r\n\r\n30-Oct-2015 : v2.1.3\r\n# BUG Fixed: Fatal error: Class
'JControllerAdmin' not found in
\\administrator\\components\\com_loginasuser\\controllers\\users.php on
line 30\r\n\r\n19-Aug-2015 : v2.1.2\r\n+ New Parameter: Choose the login
system, Joomla! core or K2. If you select K2, note that the parameter
'Enable K2 User Profile' in K2 settings must be enabled. The
default option is 'Joomla'.\r\n\r\n26-May-2015 : v2.1.1\r\n#
Warning and Notice messages do not display anymore.\r\n\r\n18-May-2015 :
v2.1.0\r\n+ Component has been added.\r\n\r\n23-Apr-2015 : v2.0.0\r\n+
Compatible with \"Web357Framework\" (Joomla! system plugin).\r\n^
Improvement design for parameter fields (better radio buttons and color
pickers).\r\n+ ADMIN: New Element: Description of extension (buttons: view
demo, more details, changelog, support).\r\n+ ADMIN: New Element: Version
Check.\r\n+ ADMIN: New Element: About Web357 (logo, description, find us on
social media).\r\n# General minor fixes.\r\n# Clean and code
improvement.\r\n\r\n24-Mar-2015 : v1.1.0\r\n# BUG Fixed: \"JFile:
:copy:\" in Joomla! 3.4.1.\r\n+ New parameter field:
\"Admin's Email\".\r\n+ New parameter field: \"URL
Redirect after Login\".\r\n^ After plugin installation redirects you
on Users Manager page.\r\n+ CSS added in Users Manager page to give a style
to the \"Login as User\" phrase.\r\n^ The head link \"Login
as User\" in Users Manager page, has now a sort order
link.\r\n\t\t\r\n27-Nov-2014 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2020-09-04",
        "extension_type": "Component",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/login-as-user",
        "more_info_url":
"https:\/\/www.web357.com\/product\/login-as-user-joomla-component",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/40-login-as-user",
        "changelog_url":
"https:\/\/www.web357.com\/product\/login-as-user-joomla-component#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extension\/login-as-user",
        "backend_settings_url":
".\/index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Login%20as%20User"
    },
    "wwwredirect": {
        "name": "wwwredirect",
        "real_name": "www Redirect",
        "product_type": "free",
        "description": "With this tiny Joomla! System Plugin
you can redirect all of the requests from non-www to www, or from www to
non-www. (Example: from http:\/\/yourdomain.com to
http:\/\/www.yourdomain.com, or from http:\/\/www.yourdomain.com to
http:\/\/yourdomain.com).",
        "description_features": "<!-- BEGIN: Features
-->\r\n<h3 class=\"uk-h2 uk-text-center\">Basic
Features<\/h3><hr class=\"uk-grid-divider\"
style=\"width:90px;margin:0 auto;\">\r\n<ul
class=\"uk-list uk-list-striped\">\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Fixing
non-www Redirection in Joomla!:<\/strong> (non-www \u2192 www, or www
\u2192 non-www).<\/li>\r\n  <li><i
class=\"uk-icon-thumbs-o-up\"><\/i> <strong>Force
site access with or without HTTPS.<\/strong> (HTTP \u2192 HTTP[s], or
HTTP[s] \u2192 HTTP). With this feature, you can pass the \"Avoid
landing page redirects.\" of GTMetrix
service.<\/li>\r\n<\/ul>\r\n<!-- END: Features
-->\r\n",
        "stable_version": "1.2.1",
        "beta_version": "1.2.2",
        "changelog": "+ Added   ! Removed   ^ Changed   #
Fixed\r\n\r\n23-Apr-2019 : v1.2.1\r\n^ [Improvement] Disable the redirect
functionality for local servers (e.g. 127.0.0.1, ::1,
localhost).\r\n\r\n01-Sep-2018 : v1.2.0\r\n+ [New Parameter] \"Force
site access with or without HTTPS. Options: 1) From HTTP \u2192 HTTP[s] and
2) From HTTP[s] \u2192 HTTP. With this feature, you can pass the
\"Avoid landing page redirects.\" of GTMetrix
service.\r\n\r\n08-Aug-2018 : v1.1.0\r\n+ Compatible with Joomla!
4.x\r\n\r\n19-Apr-2018 : v1.0.0\r\n+ First beta release",
        "project_type": "web357",
        "date": "2019-04-23",
        "extension_type": "Plugin",
        "live_demo_url":
"https:\/\/demo.web357.com\/joomla\/www-redirect",
        "more_info_url":
"https:\/\/www.web357.com\/product\/www-redirect-joomla-plugin",
        "documentation_url":
"https:\/\/docs.web357.com\/category\/49-virtuemart-count-products",
        "changelog_url":
"https:\/\/www.web357.com\/product\/www-redirect-joomla-plugin#changelog",
        "support_url":
"https:\/\/www.web357.com\/support",
        "jed_url":
"https:\/\/extensions.joomla.org\/extensions\/extension\/site-management\/url-redirection\/www-redirect\/",
        "backend_settings_url":
".\/index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Web357%20www%20Redirect"
    }
}PK�X�[#�����+web357framework/elements/checkextension.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');
jimport( 'joomla.form.form' );

class JFormFieldcheckextension extends JFormField {
	
	protected $type = 'checkextension';

	protected function getLabel()
	{
		$option = (string) $this->element["option"];

		if (!empty($option) && !$this->isActive($option))
		{
            return '<div
style="color:red">'.sprintf(JText::_('W357FRM_EXTENSION_IS_NOT_ACTIVE'),
$option).'</div>';
		}
		else
		{
            return '<div
style="color:darkgreen">'.sprintf(JText::_('W357FRM_EXTENSION_IS_ACTIVE'),
$option).'</div>';
		}
	}

	// Check if the component is installed and is enabled
	public function isActive($option) // e.g. $option = com_k2
	{
		if (!empty($option))
		{
			jimport('joomla.component.helper');
			if(!JComponentHelper::isEnabled($option))
			{
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			die('The extension name is not detected.');
		}
		
	}

	protected function getInput() 
	{
		return '';
	}
	
}PK�X�[	�Az�S�S(web357framework/elements/description.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');

class JFormFieldDescription extends JFormField {
	
	protected $type = 'description';

	/**
	 * Get the description after installation with useful buttons and links.
	 * 
	 * @extension_type = "plugin"
	 * @extension_name = "loginasuser"
	 * @plugin_type = "system"
	 * @real_name = "Login as User"
	 */
	function getHtmlDescription($extension_type = '',
$extension_name = '', $plugin_type = '', $real_name =
'')
	{
		// Get extension's details from XML
		$extension_type = (!empty($extension_type)) ? $extension_type :
$this->element['extension_type']; // component, module, plugin

		$extension_name = (!empty($extension_name)) ? $extension_name :
preg_replace('/(plg_|com_|mod_)/', '',
$this->element['extension_name']);
		$plugin_type = (!empty($plugin_type)) ? $plugin_type :
$this->element['plugin_type'].' '; // system,
authentication, content etc.
		$real_name = (!empty($real_name)) ? $real_name :
$this->element['real_name'];
		$real_name = JText::_($real_name);
		
		// Retrieving request data using JInput
		$jinput = JFactory::getApplication()->input;
		$juri_base = str_replace('/administrator', '',
JURI::base());

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; // 3.8
		$major_version = 'v'.$short_version[0].'x'; // v3x
		
		/**
		 *  Get extension details from the json file
		 */
		$web357_items_json_file =
'http://cdn.web357.com/extension-info/'.$extension_name.'-info.json';

		$web357_items_data = '';
		if (self::url_exists($web357_items_json_file))
		{
			if (self::_isCurl()) // check if extension=php_curl.dll is enabled from
php.ini
			{
				// cUrl method
				$ch = curl_init();

				$options = array(
					CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
					CURLOPT_RETURNTRANSFER => true, // // Will return the response, if
false it print the response
					CURLOPT_URL            => $web357_items_json_file, // Set the url
					CURLOPT_CONNECTTIMEOUT => 120,
					CURLOPT_TIMEOUT        => 120,
					CURLOPT_MAXREDIRS      => 10,
				);

				curl_setopt_array( $ch, $options ); // Add options to array
				
				$web357_items_data = curl_exec($ch); // Execute

				curl_close($ch); // Closing

				// get data in a json
				$web357_items_data = json_decode($web357_items_data);

			}
			elseif (self::_allowUrlFopen())
			{
				$web357_items_data = file_get_contents($web357_items_json_file);
				$web357_items_data = json_decode($web357_items_data);
			}
		}
	
		if (!isset($web357_items_data->$extension_name))
		{
			return 'no description for this extension';
		}

		// item vars
		$web357_item = $web357_items_data->$extension_name;
		$extension_type = str_replace('_', ' ',
$web357_item->extension_type);
		$live_demo_url = $web357_item->live_demo_url;
		$more_info_url = $web357_item->more_info_url;
		$documentation_url = $web357_item->documentation_url;
		$changelog_url = $web357_item->changelog_url;
		$support_url = $web357_item->support_url;
		$jed_url = $web357_item->jed_url;
		$backend_settings_url = $web357_item->backend_settings_url;
		$ext_desc_html = $web357_item->description;
		$ext_desc_features_html = $web357_item->description_features;

		if (version_compare( $mini_version, "2.5", "<="))
		{
			$backend_settings_url = str_replace('filter[search]',
'filter_search', $backend_settings_url);
		}

		// output
		$html = '';

		// Header
		$html .= '<h1>'.$real_name.' - Joomla!
'.$extension_type.'</h1>';

		// begin container
		$container_style = $jinput->get('option') ==
'com_installer' ? ' style="margin: 30px
!important;"' : '';

		// Header
		$html .= '<div class="web357framework-description-text
w357-container '.$major_version.' w357
'.$jinput->get('option').'"'.$container_style.'>';
		$html .= '<div class="row row-fluid">';


		// BEGIN: get product's image and buttons
		$product_image =
$juri_base.'media/plg_system_web357framework/images/joomla-extensions/'.$extension_name.'.png';
		$product_image_path =
JPATH_SITE.'/media/plg_system_web357framework/images/joomla-extensions/'.$extension_name.'.png';

		if (!JFile::exists($product_image_path))
		{
			$product_image =
$juri_base.'media/plg_system_web357framework/images/joomla-extensions/product-image-coming-soon.png';
		}

		$html .= '<div class="span3 col text-center"
style="max-width: 220px;">';

		// image
		$desc_img_style = $jinput->get('option') ==
'com_installer' ? ' style="overflow: hidden;
margin-bottom: 20px;"' : '';
		$html .= '<div
class="web357framework-desc-img"'.$desc_img_style.'>';
		$html .= (!empty($more_info_url)) ? '<a
href="'.$more_info_url.'"
target="_blank">' : '';
		$html .= '<img src="'.$product_image.'"
alt="'.$real_name.'" />';
		$html .= (!empty($more_info_url)) ? '</a>' :
'';
		$html .= '</div>';

		// buttons
		$desc_btn_style = $jinput->get('option') ==
'com_installer' ? ' style="display: inline-block;
margin: 0 0 10px 10px;"' : '';
		if (!empty($backend_settings_url))
		{
			$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'><a
href="'.$backend_settings_url.'" class="btn
btn-secondary">Settings</a></div>';
		}

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($live_demo_url)) ? '<a
href="'.$live_demo_url.'" class="btn btn-sm
btn-primary" target="_blank">View Demo</a> ' :
'';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($more_info_url)) ? '<a
href="'.$more_info_url.'" class="btn btn-sm
btn-success" target="_blank">More Details</a>
' : '';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($documentation_url)) ? '<a
href="'.$documentation_url.'" class="btn btn-sm
btn-warning" target="_blank">Documentation</a>
' : '';
		$html .= '</div>';
		
		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($changelog_url)) ? '<a
href="'.$changelog_url.'" class="btn
btn-info" target="_blank">Changelog</a> ' :
'';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($support_url)) ? '<a
href="'.$support_url.'" class="btn btn-sm
btn-danger" target="_blank">Support</a> ' :
'';
		$html .= '</div>';

		$html .= '</div>'; // .span3
		// END: get product's image and buttons
		
		// Description
		$full_desc_style = $jinput->get('option') ==
'com_installer' ? ' style="margin: 30px 0 0 10px
!important;"' : '';
		$desc = <<<HTML

		<div class="w357_item_full_desc"{$full_desc_style}>
			
			<p class="uk-text-large">{$ext_desc_html}</p>

			{$ext_desc_features_html}

		</div><!-- end .w357_item_full_desc -->
HTML;
				
		if (!empty($desc))
		{
			$html .= '<div class="span9 col">';

			// description
			$html .= $desc;

			// jed review
			$html .= (!empty($jed_url)) ? '<div
class="w357_item_full_desc"><h4>'.JText::_('W357FRM_HEADER_JED_REVIEW_AND_RATING').'</h4><p>'.sprintf(JText::_('W357FRM_LEAVE_REVIEW_ON_JED'),
$jed_url, $real_name).'</p></div>' : '';

			$html .= '</div>'; // end .span9
		}
		else
		{
			$html .= '<div class="span9" style="color:red;
font-weight: 700;">ERROR! The description of this product
couldn\'t be displayed.<br />This is a small bug. Please, report
this problem at support@web357.com.</div>';
		}
		
		$html .= '</div>'; // end .row

		$html .= '</div>'; // end .container

		return $html;
	}


	/**
	 * Get the description after installation with useful buttons and links.
	 * 
	 * @extension_type = "plugin"
	 * @extension_name = "loginasuser"
	 * @plugin_type = "system"
	 * @real_name = "Login as User"
	 */
	function getHtmlDescription_j4_label($extension_type = '',
$extension_name = '', $plugin_type = '', $real_name =
'')
	{
		// Get extension's details from XML
		$extension_type = (!empty($extension_type)) ? $extension_type :
$this->element['extension_type']; // component, module, plugin

		$extension_name = (!empty($extension_name)) ? $extension_name :
preg_replace('/(plg_|com_|mod_)/', '',
$this->element['extension_name']);
		$plugin_type = (!empty($plugin_type)) ? $plugin_type :
$this->element['plugin_type'].' '; // system,
authentication, content etc.
		$real_name = (!empty($real_name)) ? $real_name :
$this->element['real_name'];
		$real_name = JText::_($real_name);
		
		// Retrieving request data using JInput
		$jinput = JFactory::getApplication()->input;
		$juri_base = str_replace('/administrator', '',
JURI::base());

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; // 3.8
		$major_version = 'v'.$short_version[0].'x'; // v3x
		
		/**
		 *  Get extension details from the json file
		 */
		$web357_items_json_file =
'http://cdn.web357.com/extension-info/'.$extension_name.'-info.json';

		$web357_items_data = '';
		if (self::url_exists($web357_items_json_file))
		{
			if (self::_isCurl()) // check if extension=php_curl.dll is enabled from
php.ini
			{
				// cUrl method
				$ch = curl_init();

				$options = array(
					CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
					CURLOPT_RETURNTRANSFER => true, // // Will return the response, if
false it print the response
					CURLOPT_URL            => $web357_items_json_file, // Set the url
					CURLOPT_CONNECTTIMEOUT => 120,
					CURLOPT_TIMEOUT        => 120,
					CURLOPT_MAXREDIRS      => 10,
				);

				curl_setopt_array( $ch, $options ); // Add options to array
				
				$web357_items_data = curl_exec($ch); // Execute

				curl_close($ch); // Closing

				// get data in a json
				$web357_items_data = json_decode($web357_items_data);

			}
			elseif (self::_allowUrlFopen())
			{
				$web357_items_data = file_get_contents($web357_items_json_file);
				$web357_items_data = json_decode($web357_items_data);
			}
		}

		if (!isset($web357_items_data->$extension_name))
		{
			return 'no description for this extension';
		}

		// item vars
		$web357_item = $web357_items_data->$extension_name;
		$extension_type = str_replace('_', ' ',
$web357_item->extension_type);
		$live_demo_url = $web357_item->live_demo_url;
		$more_info_url = $web357_item->more_info_url;
		$documentation_url = $web357_item->documentation_url;
		$changelog_url = $web357_item->changelog_url;
		$support_url = $web357_item->support_url;
		$jed_url = $web357_item->jed_url;
		$backend_settings_url = $web357_item->backend_settings_url;
		$ext_desc_html = $web357_item->description;
		$ext_desc_features_html = $web357_item->description_features;

		if (version_compare( $mini_version, "2.5", "<="))
		{
			$backend_settings_url = str_replace('filter[search]',
'filter_search', $backend_settings_url);
		}

		// output
		$html = '';


		// begin container
		$container_style = $jinput->get('option') ==
'com_installer' ? ' style="margin: 30px
!important;"' : '';

		// is Joomla! 4.x
		$html .= '<div class="web357framework-description-text
w357-container '.$major_version.' w357
'.$jinput->get('option').'"'.$container_style.'>';
		$html .= '<div class="row">';
	
		// BEGIN: get product's image and buttons
		$product_image =
$juri_base.'media/plg_system_web357framework/images/joomla-extensions/'.$extension_name.'.png';
		$product_image_path =
JPATH_SITE.'/media/plg_system_web357framework/images/joomla-extensions/'.$extension_name.'.png';

		if (!JFile::exists($product_image_path))
		{
			$product_image =
$juri_base.'media/plg_system_web357framework/images/joomla-extensions/product-image-coming-soon.png';
		}

		$html .= '<div class="span3 col text-center"
style="max-width: 220px;">';

		// image
		$desc_img_style = $jinput->get('option') ==
'com_installer' ? ' style="overflow: hidden;
margin-bottom: 20px;"' : '';
		$html .= '<div
class="web357framework-desc-img"'.$desc_img_style.'>';
		$html .= (!empty($more_info_url)) ? '<a
href="'.$more_info_url.'"
target="_blank">' : '';
		$html .= '<img src="'.$product_image.'"
alt="'.$real_name.'" />';
		$html .= (!empty($more_info_url)) ? '</a>' :
'';
		$html .= '</div>';

		// buttons
		$desc_btn_style = $jinput->get('option') ==
'com_installer' ? ' style="display: inline-block;
margin: 0 0 10px 10px;"' : '';
		if (!empty($backend_settings_url))
		{
			$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'><a
href="'.$backend_settings_url.'" class="btn btn-sm
btn-secondary">Settings</a></div>';
		}

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($live_demo_url)) ? '<a
href="'.$live_demo_url.'" class="btn btn-sm
btn-primary" target="_blank">View Demo</a> ' :
'';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($more_info_url)) ? '<a
href="'.$more_info_url.'" class="btn btn-sm
btn-success" target="_blank">More Details</a>
' : '';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($documentation_url)) ? '<a
href="'.$documentation_url.'" class="btn btn-sm
btn-warning" target="_blank">Documentation</a>
' : '';
		$html .= '</div>';
		
		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($changelog_url)) ? '<a
href="'.$changelog_url.'" class="btn btn-sm
btn-info" target="_blank">Changelog</a> ' :
'';
		$html .= '</div>';

		$html .= '<div
class="web357framework-desc-btn"'.$desc_btn_style.'>';
		$html .= (!empty($support_url)) ? '<a
href="'.$support_url.'" class="btn btn-sm
btn-danger" target="_blank">Support</a> ' :
'';
		$html .= '</div>';

		$html .= '</div>'; // .span3
		// END: get product's image and buttons
		
		$html .= '</div>'; // end .row

		$html .= '</div>'; // end .container

		return $html;
	}

	/**
	 * Get the description after installation with useful buttons and links.
	 * 
	 * @extension_type = "plugin"
	 * @extension_name = "loginasuser"
	 * @plugin_type = "system"
	 * @real_name = "Login as User"
	 */
	function getHtmlDescription_j4_input($extension_type = '',
$extension_name = '', $plugin_type = '', $real_name =
'')
	{
		// Get extension's details from XML
		$extension_type = (!empty($extension_type)) ? $extension_type :
$this->element['extension_type']; // component, module, plugin

		$extension_name = (!empty($extension_name)) ? $extension_name :
preg_replace('/(plg_|com_|mod_)/', '',
$this->element['extension_name']);
		$plugin_type = (!empty($plugin_type)) ? $plugin_type :
$this->element['plugin_type'].' '; // system,
authentication, content etc.
		$real_name = (!empty($real_name)) ? $real_name :
$this->element['real_name'];
		$real_name = JText::_($real_name);
		
		// Retrieving request data using JInput
		$jinput = JFactory::getApplication()->input;
		$juri_base = str_replace('/administrator', '',
JURI::base());

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; // 3.8
		$major_version = 'v'.$short_version[0].'x'; // v3x
		
		/**
		 *  Get extension details from the json file
		 */
		$web357_items_json_file =
'http://cdn.web357.com/extension-info/'.$extension_name.'-info.json';

		$web357_items_data = '';
		if (self::url_exists($web357_items_json_file))
		{
			if (self::_isCurl()) // check if extension=php_curl.dll is enabled from
php.ini
			{
				// cUrl method
				$ch = curl_init();

				$options = array(
					CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
					CURLOPT_RETURNTRANSFER => true, // // Will return the response, if
false it print the response
					CURLOPT_URL            => $web357_items_json_file, // Set the url
					CURLOPT_CONNECTTIMEOUT => 120,
					CURLOPT_TIMEOUT        => 120,
					CURLOPT_MAXREDIRS      => 10,
				);

				curl_setopt_array( $ch, $options ); // Add options to array
				
				$web357_items_data = curl_exec($ch); // Execute

				curl_close($ch); // Closing

				// get data in a json
				$web357_items_data = json_decode($web357_items_data);
			}
			elseif (self::_allowUrlFopen())
			{
				$web357_items_data = file_get_contents($web357_items_json_file);
				$web357_items_data = json_decode($web357_items_data);
			}
		}

		if (!isset($web357_items_data->$extension_name))
		{
			return 'no description for this extension';
		}

		// item vars
		$web357_item = $web357_items_data->$extension_name;
		$extension_type = str_replace('_', ' ',
$web357_item->extension_type);
		$live_demo_url = $web357_item->live_demo_url;
		$more_info_url = $web357_item->more_info_url;
		$documentation_url = $web357_item->documentation_url;
		$changelog_url = $web357_item->changelog_url;
		$support_url = $web357_item->support_url;
		$jed_url = $web357_item->jed_url;
		$backend_settings_url = $web357_item->backend_settings_url;
		$ext_desc_html = $web357_item->description;
		$ext_desc_features_html = $web357_item->description_features;

		if (version_compare( $mini_version, "2.5", "<="))
		{
			$backend_settings_url = str_replace('filter[search]',
'filter_search', $backend_settings_url);
		}

		// output
		$html = '';

		// Header
		$html .= '<h1>'.$real_name.' - Joomla!
'.$extension_type.'</h1>';

		// begin container
		$container_style = $jinput->get('option') ==
'com_installer' ? ' style="margin: 30px
!important;"' : '';

		// Header
		$html .= '<div class="web357framework-description-text
w357-container '.$major_version.' w357
'.$jinput->get('option').'"'.$container_style.'>';
		$html .= '<div class="row row-fluid">';
		
		// Description
		$full_desc_style = $jinput->get('option') ==
'com_installer' ? ' style="margin: 30px 0 0 10px
!important;"' : '';
		$desc = <<<HTML

		<div class="w357_item_full_desc"{$full_desc_style}>
			
			<p class="uk-text-large">{$ext_desc_html}</p>

			{$ext_desc_features_html}

		</div><!-- end .w357_item_full_desc -->
HTML;
				
		if (!empty($desc))
		{
			$html .= '<div class="span9 col">';

			// description
			$html .= $desc;

			// jed review
			$html .= (!empty($jed_url)) ? '<div
class="w357_item_full_desc"><h4>'.JText::_('W357FRM_HEADER_JED_REVIEW_AND_RATING').'</h4><p>'.sprintf(JText::_('W357FRM_LEAVE_REVIEW_ON_JED'),
$jed_url, $real_name).'</p></div>' : '';

			$html .= '</div>'; // end .span9
		}
		else
		{
			$html .= '<div class="span9" style="color:red;
font-weight: 700;">ERROR! The description of this product
couldn\'t be displayed.<br />This is a small bug. Please, report
this problem at support@web357.com.</div>';
		}
		
		$html .= '</div>'; // end .row

		$html .= '</div>'; // end .container

		return $html;
	}

	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	protected function getLabel_J3()
	{	
		return $this->getHtmlDescription();
	}

	protected function getInput_J3()
	{
		return ' ';
	}

	protected function getLabel_J4()
	{
		return $this->getHtmlDescription_j4_label();
	}

	protected function getInput_J4()
	{
		return $this->getHtmlDescription_j4_input();
	}

	// check if url exists
	protected static function url_exists($url) 
	{
		if (self::_isCurl())
		{
			// cUrl method
			$ch = curl_init();

			$options = array(
				CURLOPT_URL            => $url,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_HEADER         => true,
				CURLOPT_FOLLOWLOCATION => true,
				CURLOPT_ENCODING       => "",
				CURLOPT_SSL_VERIFYPEER => false,
				CURLOPT_AUTOREFERER    => true,
				CURLOPT_CONNECTTIMEOUT => 120,
				CURLOPT_TIMEOUT        => 120,
				CURLOPT_MAXREDIRS      => 10,
			);
			curl_setopt_array( $ch, $options );
			$response = curl_exec($ch); 
			$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $retcode >= 400
-> not found, $retcode = 200, found.

			if ($httpCode != 200)
			{
				// The URL does not exist
				return false;

			} else {
				return true;
			}

			curl_close($ch);
		}
		else
		{			
			// default method
			$file_headers = @get_headers($url);
			if($file_headers[0] == 'HTTP/1.1 404 Not Found')
			{
				return false;
			}
			else
			{
				return true;
			}
		}
    }
    
    /**
	 * Check if the PHP function curl is enabled
	 */
	protected static function _isCurl()
	{
		return function_exists('curl_version');
	}
	
	/**
	 * Check if the PHP function allow_url_fopen is enabled
	 */
	protected static function _allowUrlFopen()
	{
		return ini_get('allow_url_fopen');
	}

}PK�X�[��LD		,web357framework/elements/elements_helper.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die;

// Autoload
require_once(__DIR__.'/../autoload.php');

// CSS
JFactory::getDocument()->addStyleSheet(JURI::root(true).'/media/plg_system_web357framework/css/style.min.css?v=ASSETS_VERSION_DATETIME');

// BEGIN: Loading plugin language file
$lang = JFactory::getLanguage();
$current_lang_tag = $lang->getTag();
$lang = JFactory::getLanguage();
$extension = 'plg_system_web357framework';
$base_dir = JPATH_ADMINISTRATOR;
$language_tag = (!empty($current_lang_tag)) ? $current_lang_tag :
'en-GB';
$reload = true;
$lang->load($extension, $base_dir, $language_tag, $reload);
// END: Loading plugin language file

 // Check if extension=php_curl.dll is enabled in PHP
function isCurl(){
	if (function_exists('curl_version')):
		return true;
	else:
		return false;
	endif;
}

// Check if allow_url_fopen is enabled in PHP
function allowUrlFopen(){
	if(ini_get('allow_url_fopen')):
		return true;
	else:
		return false;
	endif;
}PK�X�[�ԪA 
#web357framework/elements/header.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');

class JFormFieldHeader extends JFormField {
	
	function getHeaderHTML()
	{
		// Retrieving request data using JInput
		$jinput = JFactory::getApplication()->input;

		if (method_exists($this, 'fetchTooltip')):
			$label = $this->fetchTooltip($this->element['label'],
$this->description, $this->element,
$this->options['control'], $this->element['name']
= '');
		else:
			$label = parent::getLabel();
		endif;
		
		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8
		
		if (version_compare($mini_version, "2.5", "<="))
:
			// v2.5
			$jversion_class = 'vj25x';
		elseif (version_compare($mini_version, "3.0",
"<=")) :
			// v3.0.x
			$jversion_class = 'vj30x';
		elseif (version_compare($mini_version, "3.1",
"<=")) :
			// v3.1.x
			$jversion_class = 'vj31x';
		elseif (version_compare($mini_version, "3.2",
"<=")) :
			// v3.2.x
			$jversion_class = 'vj32x';
		elseif (version_compare($mini_version, "3.3",
"<=")) :
			// v3.3.x
			$jversion_class = 'vj33x';
		elseif (version_compare($mini_version, "3.4",
"<=")) :
			// v3.4.x
			$jversion_class = 'vj34x';
		else:
			// other
			$jversion_class = 'j00x';
		endif;
		
		// There are two types of class, the w357_large_header,
w357_small_header, w357_xsmall_header.
		$class = (!empty($this->element['class'])) ?
$this->element['class'] : '';

		return '<div class="w357frm_param_header
'.$class.' '.$jversion_class.'
'.$jinput->get('option').'">'.$label.'</div>';
	}

	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	protected function getLabel_J3()
	{	
		return $this->getHeaderHTML();
	}

	protected function getInput_J3()
	{
		return ' ';
	}

	protected function getLabel_J4()
	{
		return $this->getHeaderHTML();
	}

	protected function getInput_J4()
	{
		return ' ';
	}
}PK�X�[�#o,,#web357framework/elements/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�X�[v���__!web357framework/elements/info.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');

class JFormFieldinfo extends JFormField {
	
	protected $type = 'info';

	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	protected function getLabel_J3()
	{	
		return VersionChecker::outputMessage($this->element);
	}
	
	protected function getInput_J3()
	{
		return ' ';
	}

	protected function getLabel_J4()
	{
		return 'Version Checker';
	}

	protected function getInput_J4()
	{
		return VersionChecker::outputMessage($this->element);
	}
}PK�X�['�g��&web357framework/elements/jedreview.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

use Joomla\CMS\Form\FormField;

class JFormFieldjedreview extends FormField {
	
	protected $name = 'jedreview';
	
	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	function getInput_J4()
	{
		$this->description = 'Thank you very much 💗';
		$html  = '';
		$html .= sprintf(JText::_('It would be much appreciated if you can
leave a review on <a href="%s"
target="_blank">Joomla! Extensions
Directory</a>.'), $this->element['jed_url'], 
JText::_($this->element['real_name']));

		return $html;
	}

	function getLabel_J4()
	{
		return JText::_('W357FRM_HEADER_JED_REVIEW_AND_RATING');
	}

	protected function getInput_J3()
	{
		return '';
	}

	protected function getLabel_J3()
	{	
		$html  = '';		
		
		if (!empty($this->element['jed_url']))
		{
			if (version_compare( JVERSION, "2.5", "<="))
			{
				// j25
				$html .= '<div class="w357frm_leave_review_on_jed"
style="clear:both;padding-top:20px;">'.sprintf(JText::_('W357FRM_LEAVE_REVIEW_ON_JED'),
$this->element['jed_url'],
JText::_($this->element['real_name'])).'</div>';
			}
			else
			{
				// j3x
				$html .= '<div
class="w357frm_leave_review_on_jed">'.sprintf(JText::_('W357FRM_LEAVE_REVIEW_ON_JED'),
$this->element['jed_url'],
JText::_($this->element['real_name'])).'</div>';
			}
		}
		
		return $html;	
	}

}PK�X�[��`��)web357framework/elements/k2categories.phpnu�[���<?php
/* ======================================================
# Web357 Framework for Joomla! - v1.9.1 (free version)
# -------------------------------------------------------
# For Joomla! CMS (v3.x)
# Author: Web357 (Yiannis Christodoulou)
# Copyright (©) 2014-2022 Web357. All rights reserved.
# License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
# Website: https:/www.web357.com
# Demo: https://demo.web357.com/joomla/
# Support: support@web357.com
# Last modified: Wednesday 07 December 2022, 11:05:26 AM
========================================================= */

// no direct access
defined('JPATH_PLATFORM') or die;

jimport('joomla.form.formfield');

class JFormFieldk2categories extends JFormField
{

    protected $type = 'k2categories';

    public function getInput()
    {
        jimport('joomla.component.helper');

        // Get Joomla's version
        $jversion = new JVersion;
        $short_version = explode('.',
$jversion->getShortVersion()); // 3.8.10
        $mini_version = $short_version[0] . '.' .
$short_version[1]; // 3.8

        // Check if K2 Component is installed
        if (!version_compare($mini_version, "3.5",
"<=")):
            // j3x
            $is_installed =
JComponentHelper::isInstalled('com_k2');
            $is_enabled = ($is_installed == 1) ?
JComponentHelper::isEnabled('com_k2') : 0;
            $style = '';
        else:
            // j25x
            $db = JFactory::getDbo();
            $db->setQuery("SELECT enabled FROM #__extensions WHERE
name = 'com_k2'");
            $is_enabled = $db->loadResult();
            $is_installed = $is_enabled;
            $style = ' style="float: left; width: auto; margin:
5px 5px 5px 0;"';
        endif;

        if (!$is_installed):
            return '<div class="control-label"' .
$style . '>The <a href="https://getk2.org"
target="_blank"><strong>K2
component</strong></a> is not installed.</div>';
            // Check if K2 Component is active
        elseif (!$is_enabled):
            return '<div class="control-label"' .
$style . '>The <a href="https://getk2.org"
target="_blank"><strong>K2
component</strong></a> is not enabled.</div>';
            // K2 is installed and active
        else:
            return $this->fetchElement($this->name, $this->value,
$this->element, isset($this->options['control']) ?
$this->options['control'] : null);
        endif;
    }

    public function fetchElement($name, $value, &$node, $control_name)
    {
        $db = JFactory::getDBO();

        $query = 'SELECT m.* FROM #__k2_categories m WHERE trash = 0
ORDER BY parent, ordering';
        $db->setQuery($query);
        $mitems = $db->loadObjectList();
        $children = array();
        if ($mitems) {
            foreach ($mitems as $v) {
                if (K2_JVERSION != '15') {
                    $v->title = $v->name;
                    $v->parent_id = $v->parent;
                }
                $pt = $v->parent;
                $list = @$children[$pt] ? $children[$pt] : array();
                array_push($list, $v);
                $children[$pt] = $list;
            }
        }
        $list = JHTML::_('menu.treerecurse', 0, '',
array(), $children, 9999, 0, 0);
        $mitems = array();

        foreach ($list as $item) {
            $item->treename =
JString::str_ireplace('&#160;', ' -',
$item->treename);
            $mitems[] = JHTML::_('select.option', $item->id,
$item->treename);
        }

        $attributes = 'class="inputbox"';
        if (K2_JVERSION != '15') {
            $attribute = K2_JVERSION == '25' ?
$node->getAttribute('multiple') :
$node->attributes()->multiple;
            if ($attribute) {
                $attributes .= ' multiple="multiple"
size="10"';
            }
        } else {
            if ($node->attributes('multiple')) {
                $attributes .= ' multiple="multiple"
size="10"';
            }
        }

        if (K2_JVERSION != '15') {
            $fieldName = $name;
        } else {
            $fieldName = $control_name . '[' . $name .
']';
            if ($node->attributes('multiple')) {
                $fieldName .= '[]';
            }
        }

        return JHTML::_('select.genericlist', $mitems,
$fieldName, $attributes, 'value', 'text', $value);
    }
}
PK�X�[o+*«�.web357framework/elements/loadmodalbehavior.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_PLATFORM') or die;
		
class JFormFieldloadmodalbehavior extends JFormField 
{
	protected $type = 'loadmodalbehavior';

	protected function getLabel()
	{
		return '';
	}

	protected function getInput() 
	{
		if (version_compare(JVERSION, '4.0', 'lt'))
		{
			JHtml::_('behavior.modal');
		}
	}
}PK�X�[{��
�
'web357framework/elements/profeature.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

require_once(JPATH_PLUGINS . DIRECTORY_SEPARATOR . "system" .
DIRECTORY_SEPARATOR . "web357framework" . DIRECTORY_SEPARATOR .
"elements" . DIRECTORY_SEPARATOR .
"elements_helper.php");

jimport('joomla.form.formfield');
jimport( 'joomla.form.form' );

class JFormFieldProfeature extends JFormField {
	
	protected $type = 'profeature';

	protected function getLabel()
	{
		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8
		$major_version = 'v'.$short_version[0].'x'; // v3x

		// Data
		$id = $this->element["id"];
		$label = JText::_($this->element["label"]);
		if (version_compare($mini_version, "3.8", ">="))
		{
			// is Joomla! 4.x
			$title = '';
			$data_content = JText::_($this->element["description"]);
			$data_original_title = $label;
			$class = 'hasPopover';
		}
		else
		{
			// Joomla! 2.5.x and Joomla! 3.x
			$title =
'&lt;strong&gt;'.JText::_($this->element["label"]).'&lt;/strong&gt;&lt;br
/&gt;'.JText::_($this->element["description"]);
			$data_content = '';
			$data_original_title = '';
			$class = 'hasTooltip';
		}

		// an einai j4 den to deixneis, alliws to deixneis
		
		return '<label id="jform_params_'.$id.'-lbl"
for="jform_params_'.$id.'"
class="'.$class.'"
title="'.$title.'"
data-content="'.$data_content.'"
data-original-title="'.$data_original_title.'">'.$label.'</label>';	
	}

	protected function getInput() 
	{
		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8
		$major_version = 'v'.$short_version[0].'x'; // v3x

		// Data
		$id = $this->element["id"];
		$label = JText::_($this->element["label"]);
		if (version_compare($mini_version, "2.5", "<="))
		{
			// is Joomla! 2.5.x
			$style = ' style="padding-top: 5px; font-style: italic;
display: block; clear: both;"';
		}
		else
		{
			$style = ' style="padding-top: 5px; font-style: italic;
display: inline-block;"';
		}

		$class = '';
		if (isset($this->element["class"]))
		{
			$class = $this->element["class"];
			$class = str_replace('btn-group btn-group-yesno',
'', $class);
			$class = ' class="'.$class.'"';
		}

		// Get the Product ID from web357.com
		$component =
JFactory::getApplication()->input->get('component',
'', 'STRING');
		$product_id = Functions::getProductId($component);

		// Build the link to the pro version
		$link_to_pro = '<a
href="//www.web357.com/joomla-pricing?product_id='.$product_id.'&utm_source=CLIENT&utm_medium=CLIENT-ProLink-web357&utm_content=CLIENT-ProLink&utm_campaign=radiofelement"
target="_blank">PRO</a>';
		$html =
'<div'.$style.''.$class.'>'.sprintf(JText::_('W357FRM_ONLY_IN_PRO'),
$link_to_pro).'</div>';

		return $html;
	}
}PK�X�[��JJ)web357framework/elements/vmcategories.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die();

if (!class_exists( 'VmConfig' )) {
	require(JPATH_ROOT
.'/administrator/components/com_virtuemart/helpers/config.php');
}

if (!class_exists('ShopFunctions')) {
	require(JPATH_ROOT
.'/administrator/components/com_virtuemart/helpers/shopfunctions.php');
}

jimport('joomla.form.formfield');

/*
 * This element is used by the menu manager
 * Should be that way
 */
class JFormFieldVmcategories extends JFormField {

	var $type = 'vmcategories';

	protected function getInput() {

		VmConfig::loadConfig();

		if (class_exists('vmLanguage'))
		{
			vmLanguage::loadJLang('com_virtuemart');
		}

		if(!is_array($this->value))$this->value = array($this->value);
		$categorylist = ShopFunctions::categoryListTree($this->value);

		$name = $this->name;
		if($this->multiple){
			$name = $this->name;
			$this->multiple = ' multiple="multiple" ';
		}
		$id = VmHtml::ensureUniqueId('vmcategories');
		$html = '<select id="'.$id.'"
class="inputbox"   name="' . $name . '"
'.$this->multiple.' >';
		if(!$this->multiple)$html .= '<option
value="0">' .
vmText::_('COM_VIRTUEMART_CATEGORY_FORM_TOP_LEVEL') .
'</option>';
		$html .= $categorylist;
		$html .= "</select>";
		return $html;
	}

}PK�X�[�J��,web357framework/elements/vmmanufacturers.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;
jimport('joomla.form.formfield');

class JFormFieldVmmanufacturers extends JFormField
{
	var $type = 'vmmanufacturers';

    function getInput() 
    {
		if (!class_exists( 'VmConfig' )) require(JPATH_ROOT
.'/administrator/components/com_virtuemart/helpers/config.php');
		VmConfig::loadConfig();
		$model = VmModel::getModel('Manufacturer');
		$manufacturers = $model->getManufacturers(true, true, false);
		return JHtml::_('select.genericlist', $manufacturers,
$this->name, 'class="inputbox"  size="1"
multiple="multiple"',
'virtuemart_manufacturer_id', 'mf_name',
$this->value, $this->id);
	}
}PK�X�[���nn%web357framework/elements/w357note.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('JPATH_BASE') or die;

jimport('joomla.form.formfield');

class JFormFieldw357note extends JFormField {
	
	protected $type = 'w357note';

	function getInput()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getInput_J4();
		}
		else
		{
			return $this->getInput_J3();
		}
	}

	function getLabel()
	{
		if (version_compare(JVERSION, '4.0', '>='))
		{
			return $this->getLabel_J4();
		}
		else
		{
			return $this->getLabel_J3();
		}
	}

	protected function getLabel_J3()
	{	
		return \JText::_($this->element['description']);
	}
	
	protected function getInput_J3()
	{
		return ' ';
	}

	protected function getLabel_J4()
	{
		return ' ';
	}

	protected function getInput_J4()
	{
		return ' ';
	}
}PK�X�[z�5=5=)web357framework/script.install.helper.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

class PlgSystemWeb357frameworkInstallerScriptHelper
{
	public $name            = '';
	public $alias           = '';
	public $extname         = '';
	public $extension_type  = '';
	public $plugin_folder   = 'system';
	public $module_position = 'web357';
	public $client_id       = 0;
	public $install_type    = 'install';
	public $show_message    = true;
	public $db              = null;
	public $softbreak       = null;
	public $mini_version 	= null;

	public function __construct(&$params)
	{
		$this->extname = $this->extname ?: $this->alias;
		$this->db      = JFactory::getDbo();

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$this->mini_version =
$short_version[0].'.'.$short_version[1]; // 3.8
	}

	public function preflight($route, $adapter)
	{
		if (!in_array($route, array('install', 'update')))
		{
			return true;
		}

		JFactory::getLanguage()->load('plg_system_web357installer',
JPATH_PLUGINS . '/system/web357installer');

		if ($this->show_message && $this->isInstalled())
		{
			$this->install_type = 'update';
		}

		if ($this->onBeforeInstall($route) === false)
		{
			return false;
		}

		return true;
	}

	public function postflight($route, $adapter)
	{
		$this->removeGlobalLanguageFiles();

		if (version_compare($this->mini_version, "4.0",
"<"))
		{
			$this->removeUnusedLanguageFiles();
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, $this->getMainFolder());

		if (!in_array($route, array('install', 'update')))
		{
			return true;
		}

		$this->updateHttptoHttpsInUpdateSites();

		if ($this->onAfterInstall($route) === false)
		{
			return false;
		}

		if ($route == 'install')
		{
			$this->publishExtension();
		}

		if ($this->show_message)
		{
			$this->addInstalledMessage();
		}

		JFactory::getCache()->clean('com_plugins');
		JFactory::getCache()->clean('_system');

		return true;
	}

	public function isInstalled()
	{
		if ( ! is_file($this->getInstalledXMLFile()))
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($this->extension_type))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName()));
		$this->db->setQuery($query, 0, 1);
		$result = $this->db->loadResult();

		return empty($result) ? false : true;
	}

	public function getMainFolder()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				return JPATH_PLUGINS . '/' . $this->plugin_folder .
'/' . $this->extname;

			case 'component' :
				return JPATH_ADMINISTRATOR . '/components/com_' .
$this->extname;

			case 'module' :
				return JPATH_SITE . '/modules/mod_' . $this->extname;

			case 'library' :
				return JPATH_SITE . '/libraries/' . $this->extname;
		}
	}

	public function getInstalledXMLFile()
	{
		return $this->getXMLFile($this->getMainFolder());
	}

	public function getCurrentXMLFile()
	{
		return $this->getXMLFile(__DIR__);
	}

	public function getXMLFile($folder)
	{
		switch ($this->extension_type)
		{
			case 'module' :
				return $folder . '/mod_' . $this->extname .
'.xml';

			default :
				return $folder . '/' . $this->extname . '.xml';
		}
	}

	public function uninstallExtension($extname, $type = 'plugin',
$folder = 'system', $show_message = true)
	{
		if (empty($extname))
		{
			return;
		}

		$folders = array();

		switch ($type)
		{
			case 'plugin';
				$folders[] = JPATH_PLUGINS . '/' . $folder . '/' .
$extname;
				break;

			case 'component':
				$folders[] = JPATH_ADMINISTRATOR . '/components/com_' .
$extname;
				$folders[] = JPATH_SITE . '/components/com_' . $extname;
				break;

			case 'module':
				$folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' .
$extname;
				$folders[] = JPATH_SITE . '/modules/mod_' . $extname;
				break;
		}

		if ( ! $this->foldersExist($folders))
		{
			return;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName($type,
$extname)))
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($type));

		if ($type == 'plugin')
		{
			$query->where($this->db->quoteName('folder') . '
= ' . $this->db->quote($folder));
		}

		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			foreach ($folders as $folder)
			{
				JFolder::delete($folder);
			}

			return;
		}

		$ignore_ids =
JFactory::getApplication()->getUserState('rl_ignore_uninstall_ids',
array());

		if (JFactory::getApplication()->input->get('option') ==
'com_installer' &&
JFactory::getApplication()->input->get('task') ==
'remove')
		{
			// Don't attempt to uninstall extensions that are already selected
to get uninstalled by them selves
			$ignore_ids = array_merge($ignore_ids,
JFactory::getApplication()->input->get('cid', array(),
'array'));
			JFactory::getApplication()->input->set('cid',
array_merge($ignore_ids, $ids));
		}

		$ids = array_diff($ids, $ignore_ids);

		if (empty($ids))
		{
			return;
		}

		$ignore_ids = array_merge($ignore_ids, $ids);
		JFactory::getApplication()->setUserState('rl_ignore_uninstall_ids',
$ignore_ids);

		foreach ($ids as $id)
		{
			$tmpInstaller = new JInstaller;
			$tmpInstaller->uninstall($type, $id);
		}

		if ($show_message)
		{
			JFactory::getApplication()->enqueueMessage(
				JText::sprintf(
					'COM_INSTALLER_UNINSTALL_SUCCESS',
					JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type))
				)
			);
		}
	}

	public function foldersExist($folders = array())
	{
		foreach ($folders as $folder)
		{
			if (is_dir($folder))
			{
				return true;
			}
		}

		return false;
	}

	public function uninstallPlugin($extname, $folder = 'system',
$show_message = true)
	{
		$this->uninstallExtension($extname, 'plugin', $folder,
$show_message);
	}

	public function uninstallComponent($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'component', null,
$show_message);
	}

	public function uninstallModule($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'module', null,
$show_message);
	}

	public function publishExtension()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				$this->publishPlugin();

			case 'module' :
				$this->publishModule();
		}
	}

	public function publishPlugin()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('enabled') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->extname))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote($this->plugin_folder));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function publishModule()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		// check if module is already in the modules_menu table (meaning is is
already saved)
		$query->clear()
			->select($this->db->quoteName('moduleid'))
			->from('#__modules_menu')
			->where($this->db->quoteName('moduleid') . ' =
' . (int) $id);
		$this->db->setQuery($query, 0, 1);
		$exists = $this->db->loadResult();

		if ($exists)
		{
			return;
		}

		// Get highest ordering number in position
		$query->clear()
			->select($this->db->quoteName('ordering'))
			->from('#__modules')
			->where($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id)
			->order('ordering DESC');
		$this->db->setQuery($query, 0, 1);
		$ordering = $this->db->loadResult();
		$ordering++;

		// publish module and set ordering number
		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('published') . ' =
1')
			->set($this->db->quoteName('ordering') . ' =
' . (int) $ordering)
			->set($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('id') . ' = '
. (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		// add module to the modules_menu table
		$query->clear()
			->insert('#__modules_menu')
			->columns(array($this->db->quoteName('moduleid'),
$this->db->quoteName('menuid')))
			->values((int) $id . ', 0');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function addInstalledMessage()
	{
		JFactory::getApplication()->enqueueMessage(
			JText::sprintf(
				JText::_($this->install_type == 'update' ?
'W357_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' :
'W357_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY'),
				'<strong>' . JText::_($this->name) .
'</strong>',
				'<strong>' . $this->getVersion() .
'</strong>',
				$this->getFullType()
			)
		);
	}

	public function getPrefix()
	{
		switch ($this->extension_type)
		{
			case 'plugin';
				return JText::_('plg_' .
strtolower($this->plugin_folder));

			case 'component':
				return JText::_('com');

			case 'module':
				return JText::_('mod');

			case 'library':
				return JText::_('lib');

			default:
				return $this->extension_type;
		}
	}

	public function getElementName($type = null, $extname = null)
	{
		$type    = is_null($type) ? $this->extension_type : $type;
		$extname = is_null($extname) ? $this->extname : $extname;

		switch ($type)
		{
			case 'component' :
				return 'com_' . $extname;

			case 'module' :
				return 'mod_' . $extname;

			case 'plugin' :
			default:
				return $extname;
		}
	}

	public function getFullType()
	{
		return JText::_('W357_' . strtoupper($this->getPrefix()));
	}

	public function getVersion($file = '')
	{
		$file = $file ?: $this->getCurrentXMLFile();

		if ( ! is_file($file))
		{
			return '';
		}

		$xml = JInstaller::parseXMLInstallFile($file);

		if ( ! $xml || ! isset($xml['version']))
		{
			return '';
		}

		return $xml['version'];
	}

	public function isNewer()
	{
		if ( ! $installed_version =
$this->getVersion($this->getInstalledXMLFile()))
		{
			return true;
		}

		$package_version = $this->getVersion();
		return version_compare($installed_version, $package_version,
'<'); // or <=
	}

	public function canInstall()
	{
		// The extension is not installed yet
		if ( ! $installed_version =
$this->getVersion($this->getInstalledXMLFile()))
		{
			return true;
		}

		// The free version is installed. So any version is ok to install
		if (strpos($installed_version, 'PRO') === false)
		{
			return true;
		}

		// Current package is a pro version, so all good
		if (strpos($this->getVersion(), 'PRO') !== false)
		{
			return true;
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, __DIR__);

		JFactory::getApplication()->enqueueMessage(JText::_('W357_ERROR_PRO_TO_FREE'),
'error');

		JFactory::getApplication()->enqueueMessage(
			html_entity_decode(
				JText::sprintf(
					'W357_ERROR_UNINSTALL_FIRST',
					'<a href="//www.web357.com/product/' .
$this->url_alias . '" target="_blank">',
					'</a>',
					JText::_($this->name)
				)
			), 'error'
		);

		return false;
	}

	public function onBeforeInstall($route)
	{
		if ( ! $this->canInstall())
		{
			return false;
		}

		return true;
	}

	public function onAfterInstall($route)
	{
	}

	public function delete($files = array())
	{
		foreach ($files as $file)
		{
			if (is_dir($file) && JFolder::exists($file))
			{
				JFolder::delete($file);
			}

			if (is_file($file) && JFile::exists($file))
			{
				JFile::delete($file);
			}
		}
	}

	public function fixAssetsRules($rules =
'{"core.admin":[],"core.manage":[]}')
	{
		// replace default rules value {} with the correct initial value
		$query = $this->db->getQuery(true)
			->update($this->db->quoteName('#__assets'))
			->set($this->db->quoteName('rules') . ' = '
. $this->db->quote($rules))
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname))
			->where($this->db->quoteName('rules') . ' =
' . $this->db->quote('{}'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateHttptoHttpsInUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('location') . ' =
REPLACE('
				. $this->db->quoteName('location') . ', '
				. $this->db->quote('http://') . ', '
				. $this->db->quote('https://')
				. ')')
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('http://updates.web357%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeGlobalLanguageFiles()
	{
		if ($this->extension_type == 'library' || $this->alias
=== 'web357framework')
		{
			return;
		}

		$language_files = JFolder::files(JPATH_ADMINISTRATOR .
'/language', '\.' . $this->getPrefix() .
'_' . $this->extname . '\.', true, true);

		// Remove override files
		foreach ($language_files as $i => $language_file)
		{
			if (strpos($language_file, '/overrides/') === false)
			{
				continue;
			}

			unset($language_files[$i]);
		}

		if (empty($language_files))
		{
			return;
		}

		JFile::delete($language_files);
	}

	private function removeUnusedLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		$main_language_dir_path = JFolder::folders(__DIR__ .
'/language');

		$installed_languages = array_merge(
			JFolder::folders(JPATH_SITE . '/language'),
			JFolder::folders(JPATH_ADMINISTRATOR . '/language')
		);

		$languages = array();
		if (is_array($main_language_dir_path) &&
is_array($installed_languages))
		{
			$languages = array_diff(
				$main_language_dir_path,
				$installed_languages 
			);
		}

		$delete_languages = array();

		if (!empty($languages))
		{
			foreach ($languages as $language)
			{
				$delete_languages[] = $this->getMainFolder() .
'/language/' . $language;
			}
		}

		if (empty($delete_languages))
		{
			return;
		}

		// Remove folders
		$this->delete($delete_languages);
	}
}PK�X�[�
���"web357framework/script.install.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
defined('_JEXEC') or die;

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

if ( ! class_exists('PlgSystemWeb357frameworkInstallerScript'))
{
	require_once __DIR__ . '/script.install.helper.php';

	class PlgSystemWeb357frameworkInstallerScript extends
PlgSystemWeb357frameworkInstallerScriptHelper
	{
		public $name           = 'Web357 Framework';
		public $alias          = 'web357framework';
		public $extension_type = 'plugin';

		public function onBeforeInstall($route)
		{
			// Check if is new version
			if ( ! $this->isNewer())
			{
				$this->softbreak = true;
				//return false;
			}

			return true;
		}

		public function onAfterInstall($route)
		{
			$this->deleteOldFiles();
		}

		private function deleteOldFiles()
		{
			JFile::delete(array(JPATH_SITE .
'/plugins/system/web357framework/web357framework.script.php'));
		}
	}
}
PK�X�[y��_�_-web357framework/Web357Framework/Functions.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
namespace Web357Framework;

defined('_JEXEC') or die;

use Joomla\Registry\Registry;

class Functions
{
    // Load Web357Framework's language 
    public static function loadWeb357FrameworkLanguage()
    {
         $jlang = \JFactory::getLanguage();
         $jlang->load('plg_system_web357framework',
JPATH_ADMINISTRATOR, 'en-GB', true);
         $jlang->load('plg_system_web357framework',
JPATH_ADMINISTRATOR, null, true);
    }
   
    // check if url exists
	public static function url_exists($url) 
	{
		if (self::_isCurl())
		{
			// cUrl method
			$ch = curl_init();

			$options = array(
				CURLOPT_URL            => $url,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_HEADER         => true,
				CURLOPT_FOLLOWLOCATION => true,
				CURLOPT_ENCODING       => "",
				CURLOPT_SSL_VERIFYPEER => false,
				CURLOPT_AUTOREFERER    => true,
				CURLOPT_CONNECTTIMEOUT => 120,
				CURLOPT_TIMEOUT        => 120,
				CURLOPT_MAXREDIRS      => 10,
			);
			curl_setopt_array( $ch, $options );
			$response = curl_exec($ch); 
			$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $retcode >= 400
-> not found, $retcode = 200, found.

			if ($httpCode != 200)
			{
				// The URL does not exist
				return false;

			} else {
				return true;
			}

			curl_close($ch);
		}
		else
		{			
			// default method
			$file_headers = @get_headers($url);
			if($file_headers[0] == 'HTTP/1.1 404 Not Found')
			{
				return false;
			}
			else
			{
				return true;
			}
		}
    }

    /**
	 * Check if the PHP function curl is enabled
	 */
	public static function _isCurl()
	{
		return function_exists('curl_version');
	}
	
	/**
	 * Check if the PHP function allow_url_fopen is enabled
	 */
	protected static function _allowUrlFopen()
	{
		return ini_get('allow_url_fopen');
	}

    /**
     * 
     * Fetch the Web357 API Key from the plugin settings
     *
     * @return string
     */
    public static function getWeb357ApiKey()
    {
		$db = \JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName('params'));
		$query->from($db->quoteName('#__extensions'));
		$query->where($db->quoteName('element') . ' = '
. $db->quote('web357framework'));
		$query->where($db->quoteName('folder') . ' = '
. $db->quote('system'));
		$db->setQuery($query);

		try
		{
			$plugin = $db->loadObject();
			$plugin_params = new \JRegistry();
			$plugin_params->loadString($plugin->params);
			return $plugin_params->get('apikey', '');
		}
		catch (RuntimeException $e)
		{
			JError::raiseError(500, $e->getMessage());
		}
    }

	public static function web357ApiKeyCheckerHTMLbox($extension_real_name)
	{
        if (empty($extension_real_name))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Extension Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }

        if (empty(self::getWeb357ApiKey()))
        { ?>
        <div class="alert alert-danger">
            <h3><?php echo
\JText::_("W357FRM_DOWNLOAD_KEY_MISSING") ?></h3>
                <p>
                <span class="icon-key"
aria-hidden="true"></span> 
                <?php echo
sprintf(\JText::_("W357FRM_DOWNLOAD_KEY_MISSING_DESC"),
"<b>".\JText::_($extension_real_name)."</b>");
?>
                <?php echo
\JText::_("W357FRM_DOWNLOAD_KEY_MISSING_FIND_APIKEY_AT_WEB357COM")
?>
                </p>

                <p><a class="btn btn-small btn-success"
href="<?php echo \JURI::base()
?>index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Web357%20Framework">
                
                <?php echo
\JText::_("W357FRM_DOWNLOAD_KEY_UPDATE_BTN")?>
            </a>
            </p>
        </div>
        <?php 
        }
    }

    /**
     *  Get the HTML Product Information Table for Control Panel at the
Backend
     *
     *  @param  string  $extension (e.g. plg_system_web357framework,
com_test)
     *  @param  string  $extension_real_name  (e.g. Fix 404 Error Links)
     *
     *  @return  string
     */
    public static function controlPanelProductInfoHTMLTable($extension,
$extension_real_name)
    {
        if (empty($extension) || empty($extension_real_name))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Product Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }

        // Clean extension name
        $extension_name =
preg_replace('/(plg_system_|plg_user_|plg_authentication_|plg_ajax_|plg_k2_|com_|mod_)/',
'', $extension); // e.g. fix404errorlinks, or monthlyarchive

        /**
         *  Get extension details from the json file
         */
        $json_file =
'http://cdn.web357.com/extension-info/'.$extension_name.'-info.json';
        $json_data = file_get_contents($json_file);
        $data = json_decode($json_data);

        if (!isset($data->$extension_name))
        {
            \JFactory::getApplication()->enqueueMessage("Error
getting Product Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }

        // get extension details from json file
        $item = $data->$extension_name;
        $extension_type = str_replace('_', ' ',
$item->extension_type);
        $product_image = (str_replace('/administrator',
'',
\JURI::base())).'media/plg_system_web357framework/images/joomla-extensions/'.$extension_name.'.png';

        ?>
        <div class="container-fluid">
            <div class="row row-fluid">
                <span class="w357-col-span span3 col-3">
                    <div>
                        <?php if (!empty($item->more_info_url)):
?>
                            <a href="<?php echo
$item->more_info_url; ?>" target="_blank"
alt="<?php echo $extension_real_name; ?>">
                        <?php endif; ?>

                            <img src="<?php echo $product_image;
?>">

                        <?php if (!empty($item->more_info_url)):
?>
                            </a>
                        <?php endif; ?>

                    </div>
                </span>
                <span class="w357-col-span span9 col-9">
                    <p style="margin: 30px 0 20px
0;"><?php echo $item->description; ?></p>
                    <div class="w357-product-info-buttons
w357">

                        <?php if (!empty($item->live_demo_url)):
?>
                            <a href="<?php echo
$item->live_demo_url; ?>" class="btn btn-primary"
target="_blank">View Demo</a>
                        <?php endif; ?>

                        <?php if (!empty($item->more_info_url)):
?>
                            <a href="<?php echo
$item->more_info_url; ?>" class="btn btn-success"
target="_blank">More Details</a>
                        <?php endif; ?>

                        <?php if (!empty($item->documentation_url)):
?>
                            <a href="<?php echo
$item->documentation_url; ?>" class="btn btn-warning"
target="_blank">Documentation</a>
                        <?php endif; ?>

                        <?php if (!empty($item->changelog_url)):
?>
                            <a href="<?php echo
$item->changelog_url; ?>" class="btn btn-info"
target="_blank">Changelog</a>
                        <?php endif; ?>

                        <?php if (!empty($item->support_url)): ?>
                            <a href="<?php echo
$item->support_url; ?>" class="btn btn-danger"
target="_blank">Support</a>
                        <?php endif; ?>

                    </div>
                </span>
            </div>
        </div>
        <?php
    }
    
    /**
     *  Get the extension details (version)
     *
     *  @param  string  $extension (e.g. plg_system_web357framework,
com_test)
     *
     *  @return  object (current_version, current_creationDate,
latest_version, latest_creationDate)
     */
    public static function getExtensionDetails($extension)
    {
        $extension_clean_name =
preg_replace('/(plg_system_|plg_user_|plg_authentication_|plg_ajax_|plg_k2_|com_|mod_)/',
'', $extension);

        if (strpos($extension, 'plg_system_') !== false) 
        {
            $extension_type = 'plugin';
            $plugin_type = 'system';
        }
        elseif (strpos($extension, 'plg_authentication_') !==
false) 
        {
            $extension_type = 'plugin';
            $plugin_type = 'authentication';
        }
        elseif (strpos($extension, 'plg_user_') !== false) 
        {
            $extension_type = 'plugin';
            $plugin_type = 'user';
        }
        elseif (strpos($extension, 'plg_content_') !== false) 
        {
            $extension_type = 'plugin';
            $plugin_type = 'content';
        }
        elseif (strpos($extension, 'mod_') !== false) 
        {
            $extension_type = 'module';
            $plugin_type = '';
        }
        elseif (strpos($extension, 'com_') !== false) 
        {
            $extension_type = 'component';
            $plugin_type = '';
        }

        if (empty($extension) || empty($extension_type))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Extension Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }
   
        // Retrieving request data using JInput
		$jinput = \JFactory::getApplication()->input;

		// get current extension's version & creationDate from database
		$db = \JFactory::getDBO();
		$query = "SELECT manifest_cache "
		."FROM #__extensions "
		."WHERE element = '".$extension."' and type =
'".$extension_type."' "
		;
		$db->setQuery($query);
		$db->execute();
		$manifest = json_decode( $db->loadResult(), true );
		$current_version = (!empty($manifest['version'])) ?
$manifest['version'] : '1.0.0';
        $current_creationDate =
(!empty($manifest['creationDate'])) ?
$manifest['creationDate'] : '10 Oct 1985';
        
        if (empty($current_version) || empty($current_creationDate))
        {
			\JFactory::getApplication()->enqueueMessage("Error retrieving
extension details from database. Please, contact us at
support@web357.com!", "error");
			return false;
        }

        // Get web357 releases json content
        $web357_releases_json_url =
'http://cdn.web357.com/extension-info/'.urlencode($extension_clean_name).'-info.json';
		
		$web357_releases_json = '';
		if (self::url_exists($web357_releases_json_url))
		{
			if (self::_isCurl()) // check if extension=php_curl.dll is enabled from
php.ini
			{
				// cUrl method
				$ch = curl_init();

				$options = array(
					CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
					CURLOPT_RETURNTRANSFER => true, // // Will return the response, if
false it print the response
					CURLOPT_URL            => $web357_releases_json_url, // Set the
url
					CURLOPT_CONNECTTIMEOUT => 120,
					CURLOPT_TIMEOUT        => 120,
					CURLOPT_MAXREDIRS      => 10,
				);

				curl_setopt_array( $ch, $options ); // Add options to array
				
				$web357_releases_json = curl_exec($ch); // Execute

				curl_close($ch); // Closing

				// get data in a json
				$web357_releases_json = json_decode($web357_releases_json);

			}
			elseif (self::_allowUrlFopen())
			{
				$web357_releases_json = file_get_contents($web357_releases_json_url);
				$web357_releases_json = json_decode($web357_releases_json);
			}
		}

		// Get the latest version of extension, from Web357.com
		$latest_version = $current_version;
		$latest_creationDate = $current_creationDate;

		if (!empty($web357_releases_json))
		{
			if ($web357_releases_json->$extension_clean_name->extension ==
$extension_clean_name)
			{
				$latest_version =
$web357_releases_json->$extension_clean_name->version;
				$latest_creationDate = date("d-M-Y",
strtotime($web357_releases_json->$extension_clean_name->date));
			}
        }

        $extension_details = new \stdClass();
        $extension_details->current_version = $current_version;
        $extension_details->current_creationDate =
$current_creationDate;
        $extension_details->latest_version = $latest_version;
        $extension_details->latest_creationDate = $latest_creationDate;
        $extension_details->extension_type = $extension_type;
        $extension_details->plugin_type = $plugin_type;
        
        return $extension_details;
    }

    /**
     *  Show Footer
     *
     *  @param  string  $extension (e.g. plg_system_web357framework,
com_test)
     *  @param  string  $extension_real_name  (e.g. Fix 404 Error Links)
     *
     *  @return  array
     */
    public static function showFooter($extension, $extension_real_name)
    {
        if (empty($extension) || empty($extension_real_name))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Extension Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }

        $extension_details = self::getExtensionDetails($extension);
        $extension_clean_name =
preg_replace('/(plg_system_|plg_user_|plg_authentication_|plg_ajax_|plg_k2_|com_|mod_)/',
'', $extension);
        
        // Show Footer
        $show_copyright = true;
        if ($extension_details->extension_type ==
'component')
        {
            $comParams = \JComponentHelper::getParams($extension);
            if ($comParams)
            {
                $show_copyright =
$comParams->get('show_copyright', 1);
            }
        }

        $juri_base = str_replace('/administrator', '',
\JURI::base());

        // Get the product id
		$product_id = self::getProductId($extension);
        $product_id_url_var = (is_numeric($product_id) &&
$product_id > 0 && !empty($product_id)) ?
'product_id='.$product_id.'&' : '';

        $product_id_url_var = (is_numeric($product_id) &&
$product_id > 0 && !empty($product_id)) ?
'product_id='.$product_id.'&' : '';
        
        $pro_link =
'//www.web357.com/joomla-pricing?'.$product_id_url_var.'utm_source=CLIENT&utm_medium=CLIENT-ProLink-Backend-Footer-'.$extension_clean_name.'-Web357&utm_content=CLIENT-ProLink-Backend-Footer-'.$extension_clean_name.'&utm_campaign=prolinkbackendfooter-'.strtoupper($extension_clean_name);
        ?>
        <div class="center" style="margin-top: 50px;
text-align:center;">
            
            <div class="w357-footer">

                <div class="w357-footer-extension">
                    <?php
                    $product_link =
'//www.web357.com/?extension='.$extension_clean_name.'&utm_source=CLIENT&utm_medium=CLIENT-ProLink-Backend-Footer-Product-link-'.$extension_clean_name.'-Web357&utm_content=CLIENT-ProLink-Backend-Footer-Product-link-'.$extension_clean_name.'&utm_campaign=prolinkbackendfooterproductlink-'.strtoupper($extension_clean_name);
                    ?>
                    <img src="<?php echo $juri_base;
?>media/plg_system_web357framework/images/<?php echo
$extension_clean_name; ?>.png" width="24"
height="24" alt="<?php echo $extension_real_name;
?>">
                    <a href="<?php echo $product_link;
?>" target="_blank"><?php echo
$extension_real_name; ?></a> (Pro version) v<?php echo
$extension_details->current_version; ?> (<?php echo
$extension_details->current_creationDate; ?>)
                </div>
            
                <?php if ($show_copyright): 
                    $logo_link =
'//www.web357.com/?utm_source=CLIENT&utm_medium=CLIENT-ProLink-Backend-Footer-Web357-logo-'.$extension_clean_name.'-Web357&utm_content=CLIENT-ProLink-Backend-Footer-Web357-logo-'.$extension_clean_name.'&utm_campaign=prolinkbackendfooterweb357logo-'.strtoupper($extension_clean_name);
                    ?>
                    <div class="w357-footer-logo">
                        Developed by <a href="<?php echo
$logo_link; ?>" target="_blank">
                        <img src="<?php echo $juri_base;
?>media/plg_system_web357framework/images/web357-logo.png"
width="97" height="25" alt="Web357">
                        </a>
                    </div>
                    
                    <div
class="w357-footer-copyright">Copyright &copy; <?php
echo date('Y'); ?> Web357 - All Rights Reserved.</div>
                <?php endif; ?>

            </div>
        </div>
        <?php
    }

    /**
     *  Update Checker
     *
     *  @param  string  $extension (e.g. plg_system_web357framework,
com_test)
     *  @param  string  $extension_real_name  (e.g. Fix 404 Error Links)
     *
     *  @return  array
     */
    public static function updateChecker($extension, $extension_real_name)
    {
        if (empty($extension) || empty($extension_real_name))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Extension Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }
        
        $extension_details = self::getExtensionDetails($extension);
        $current_version = preg_replace('/[A-Za-z-]/',
'', $extension_details->current_version);
        $latest_version = preg_replace('/[A-Za-z-]/',
'', $extension_details->latest_version);

		if (version_compare($current_version, $latest_version, 'lt')
&& strpos($extension_details->latest_version, 'beta')
== false) // show the notification only for stable versions
        {
            // latest's release URL
		    $real_ext_name_with_dashes = \JText::_($extension_real_name);
            $real_ext_name_with_dashes = str_replace(" (Pro
version)", "", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace(" (Pro
version)", "", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace(" (Free
version)", "", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace(" PRO",
"", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace(" FREE",
"", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace("System - ",
"", $real_ext_name_with_dashes);
            $real_ext_name_with_dashes = str_replace("Authentication -
", "", $real_ext_name_with_dashes);
            if ($real_ext_name_with_dashes != 'Web357
Framework')
            {
                $real_ext_name_with_dashes = str_replace("Web357
", "", $real_ext_name_with_dashes);
            }
            $real_ext_name_with_dashes = strtolower(str_replace("
", "-", $real_ext_name_with_dashes));
            $latest_version_with_dashes =
strtolower(str_replace(".", "-",
$extension_details->latest_version));
            $latest_release_url =
'//www.web357.com/blog/releases/'.$real_ext_name_with_dashes.'-v'.$latest_version_with_dashes.'-released';
            ?>

            <div class="alert alert-danger">
                <h3><?php echo \JText::_("New version
available!") ?></h3>
                <p>
                    <span
class="icon-notification"></span> An updated version of
<strong><?php echo $extension_real_name; ?> (v<?php echo
$extension_details->latest_version; ?>)</strong> is available
for installation.
                <br><br>
                <a
href="index.php?option=com_installer&view=update"
class="btn btn-default btn-success"> <span
class="icon-thumbs-up"></span> Update to v<?php echo
$extension_details->latest_version; ?></a> 
                <a href="<?php echo $latest_release_url;
?>" target="_blank" class="btn btn-default
btn-default"> <span class="icon-info"></span>
More Info</a>
                </p>
            </div>
            <?php
        }
    }

    /**
     *  Get Changelog's URL
     *
     *  @param  string  $extension (e.g. plg_system_web357framework,
com_test)
     *  @param  string  $extension_real_name  (e.g. Fix 404 Error Links)
     *
     *  @return  string
     */
    public static function getChangelogURL($extension_real_name)
    {
        if (empty($extension_real_name))
        {
			\JFactory::getApplication()->enqueueMessage("Error getting
Extension Details. Please, contact us at support@web357.com!",
"error");
			return false;
        }
        
        $real_ext_name_with_dashes = \JText::_($extension_real_name);
        $real_ext_name_with_dashes = str_replace(" (Pro
version)", "", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace(" (Pro
version)", "", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace(" (Free
version)", "", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace(" PRO",
"", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace(" FREE",
"", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace("System - ",
"", $real_ext_name_with_dashes);
        $real_ext_name_with_dashes = str_replace("Authentication -
", "", $real_ext_name_with_dashes);
        if ($real_ext_name_with_dashes != 'Web357 Framework')
        {
            $real_ext_name_with_dashes = str_replace("Web357 ",
"", $real_ext_name_with_dashes);
        }
        $real_ext_name_with_dashes = strtolower(str_replace(" ",
"-", $real_ext_name_with_dashes));
		$changelog_url =
'//www.web357.com/product/'.$real_ext_name_with_dashes.'#changelog';
 // e.g. support-hours
        
        return $changelog_url;
    }

    /**
     *  Shortener URL
     *  It gets only the first 10 characters and the last 10 characters of
URL that has over 20 characters
     *
     *  @param  string  $url
     *  @param  int  $max_char
     *
     *  @return  string
     */
    public static function shortenURL($url, $max_char = 60)
    {
        if (strlen($url) > $max_char)
        {
            $short_url = substr($url, 0, ($max_char/2)) . '...'
.substr($url, strlen($url)-($max_char/2));
            return $short_url;
        }

        return $url;
    }

     /**
     * Get the product_id from web357.com
     *
     * @param string $extension
     * @return void
     */
    public static function getProductId($extension = '')
    {
        if (empty($extension))
        {
			return 0;
        }

        $extension_clean_name =
preg_replace('/(plg_system_|plg_user_|plg_authentication_|plg_ajax_|plg_k2_|com_|mod_)/',
'', $extension);

        // Get product id
        switch ($extension_clean_name) {
            case 'monthlyarchive':
                $product_id = 3581;
                break;
            case 'loginasuser':
                $product_id = 1934;
                break;
            case 'cookiespolicynotificationbar':
                $product_id = 3489;
                break;
            case 'fix404errorlinks':
                $product_id = 3546;
                break;
            case 'failedloginattempts':
                $product_id = 3533;
                break;
            case 'vmsales':
                $product_id = 3621;
                break;
            case 'supporthours':
                $product_id = 3601;
                break;
            case 'contactinfo':
                $product_id = 3469;
                break;    
            case 'k2multiplecategories':
                $product_id = 3566;
                break; 
            case 'multiplecategoriesfork2':
                $product_id = 3566;
                break; 
            case 'limitactivelogins':
                $product_id = 197435;
                break; 
            case 'manageunusedimages':
                $product_id = 197435;
                break; 
            default:
                $product_id = 0;
                break;
        }

        return $product_id;
    }
}PK�X�[���%%%%2web357framework/Web357Framework/VersionChecker.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */

 
namespace Web357Framework;

defined('_JEXEC') or die;

class VersionChecker
{
    public static function outputMessage($element)
    {
        // Retrieving request data using JInput
		$jinput = \JFactory::getApplication()->input;
		
		// get extension's details
		$position = $element['position']; // version's position
(top + bottom)
		$extension_type_single = $element['extension_type']; //
component, module, plugin 
		$extension_type = $element['extension_type'].'s'; //
components, modules, plugins 
		$extension_name = $element['extension_name']; // mod_name,
com_name, plg_system_name
		$plugin_type = $element['plugin_type']; // system,
authentication, content etc.
		$plugin_folder = (!empty($plugin_type) && $plugin_type !=
'') ? $plugin_type.'/' : '';
		$real_name = $element['real_name'];
		$url_slug = $element['url_slug'];

		if (empty($extension_type) || empty($extension_name)):
			\JFactory::getApplication()->enqueueMessage("Error in XML.
Please, contact us at support@web357.com!", "error");
			return false;
		endif;
		
		// Get Joomla's version
		$jversion = new \JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8
		
		$j25 = false;
		$j3x = false;
		if (version_compare( $mini_version, "2.5",
"<=")):
			// j25
			$w357_ext_uptodate_class = 'w357_ext_uptodate_j25';
			$j25 = true;
		else:
			// j3x
			$w357_ext_uptodate_class = 'w357_ext_uptodate_j3x';
			$j3x = true;
		endif;

		// get current extension's version & creationDate from database
		$db = \JFactory::getDBO();
		$query = "SELECT manifest_cache "
		."FROM #__extensions "
		."WHERE element = '".$extension_name."' and type
= '".$extension_type_single."' "
		;
		$db->setQuery($query);
		$db->execute();
		$manifest = json_decode( $db->loadResult(), true );
		$current_version = (!empty($manifest['version'])) ?
$manifest['version'] : '1.0.0';
		$current_creationDate = (!empty($manifest['creationDate'])) ?
$manifest['creationDate'] : '10 Oct 1985';

		// Get extension name
		if (strpos($extension_name, '_') !== false) 
		{
			$extension_name_clean = explode('_', $extension_name);
			$extension_name = $extension_name_clean[1]; // e.g. get only
supporthours, instead of mod_supporhours
		}

		// Get web357 releases json content
		$web357_releases_json_url =
'http://cdn.web357.com/extension-info/'.urlencode($extension_name).'-info.json';

		$web357_releases_json = '';
		if (self::url_exists($web357_releases_json_url))
		{
			if (self::_isCurl()) // check if extension=php_curl.dll is enabled from
php.ini
			{
				// cUrl method
				$ch = curl_init();

				$options = array(
					CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
					CURLOPT_RETURNTRANSFER => true, // // Will return the response, if
false it print the response
					CURLOPT_URL            => $web357_releases_json_url, // Set the
url
					CURLOPT_CONNECTTIMEOUT => 120,
					CURLOPT_TIMEOUT        => 120,
					CURLOPT_MAXREDIRS      => 10,
				);

				curl_setopt_array( $ch, $options ); // Add options to array
				
				$web357_releases_json = curl_exec($ch); // Execute

				curl_close($ch); // Closing

				// get data in a json
				$web357_releases_json = json_decode($web357_releases_json);

			}
			elseif (self::_allowUrlFopen())
			{
				$web357_releases_json = file_get_contents($web357_releases_json_url);
				$web357_releases_json = json_decode($web357_releases_json);
			}
		}

		// Get the latest version of extension, from Web357.com
		$latest_version = $current_version;
		$latest_creationDate = $current_creationDate;

		if (!empty($web357_releases_json))
		{
			if ($web357_releases_json->$extension_name->extension ==
$extension_name)
			{
				$latest_version =
$web357_releases_json->$extension_name->version;
				$latest_creationDate = date("d-M-Y",
strtotime($web357_releases_json->$extension_name->date));
			}
		}

		// get changelog's url
		$real_ext_name_with_dashes = \JText::_($real_name);
		$real_ext_name_with_dashes = str_replace(" (Pro version)",
"", $real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace(" (Pro version)",
"", $real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace(" (Free version)",
"", $real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace(" PRO", "",
$real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace(" FREE", "",
$real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace("System - ",
"", $real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace("Authentication - ",
"", $real_ext_name_with_dashes);
		$real_ext_name_with_dashes = str_replace("User - ",
"", $real_ext_name_with_dashes);
		if ($real_ext_name_with_dashes != 'Web357 Framework')
		{
			$real_ext_name_with_dashes = str_replace("Web357 ",
"", $real_ext_name_with_dashes);
		}
		$real_ext_name_with_dashes = strtolower(str_replace(" ",
"-", $real_ext_name_with_dashes));
		$url_slug = (!empty($url_slug)) ? $url_slug :
$real_ext_name_with_dashes;
		$changelog_url =
'//www.web357.com/product/'.$url_slug.'#changelog';  //
e.g. support-hours

		// output
		$html  = '';
		$html .= '<div>';
		if (!empty($latest_version) && !empty($latest_creationDate))
		{
			if ($current_version == $latest_version/* || strpos($current_version,
'beta' ) !== false*/)
			{
				$html .= '<div class="w357_ext_uptodate
'.$jinput->get('option').'
'.$w357_ext_uptodate_class.'">';
				$html .=
'<div>'.\JText::_('W357FRM_YOUR_CURRENT_VERSION_IS').':
<a
title="'.\JText::_('W357FRM_VIEW_THE_CHANGELOG').'"
href="'.$changelog_url.'"
class="btn_view_changelog"
target="_blank">'.$current_version.'
('.$current_creationDate.')</a><br
/>'.\JText::_('W357FRM_UP_TO_DATE').'</div>';
				$html .= '</div>';
			}
			else
			{
				$html .= '<div class="w357_ext_notuptodate
'.$jinput->get('option').'">'.\JText::_('W357FRM_YOUR_CURRENT_VERSION_IS').':
'.$current_version.' ('.$current_creationDate.').<br
/><span>'.\JText::_('W357FRM_UPDATE_TO_THE_LATEST_VERSION').'
'.$latest_version.'
('.$latest_creationDate.')'.' {<a
href="'.$changelog_url.'"
target="_blank">'.\JText::_('W357FRM_VIEW_THE_CHANGELOG').'</a>}.</span>
				<br />
				<a
href="index.php?option=com_installer&view=update">'.\JText::_('W357FRM_UPDATE_VIA_THE_JOOMLA_UPDATE_MANAGER').'</a>
				&nbsp;&nbsp;&nbsp;'.\JText::_('W357FRM_OR').'&nbsp;&nbsp;&nbsp;
				<a href="//www.web357.com/my-account/downloads/"
target="_blank">'.\JText::_('W357FRM_GO_TO_DOWNLOAD_AREA').'</a>
				</div>';
			}
		}
		else
		{
			$html .= '<div class="w357_ext_uptodate
'.$jinput->get('option').'">'.\JText::_('W357FRM_UP_TO_DATE').'</div>';
		}

		$html .= '</div>';

		// get joomla version for javascript file
		if (version_compare( $mini_version, "4.0",
">=")):
			// j4
			$js_jversion = 'j4x';
		elseif (version_compare( $mini_version, "3.0",
">=")):
			// j3
			$js_jversion = 'j3x';
		elseif (version_compare( $mini_version, "2.5",
">=")):
			// j25
			$js_jversion = 'j25x';
		else:
			// j
			$js_jversion = 'jx';
		endif;

		// get base url (for jquery)
		$base_url = str_replace('/administrator', '',
\JURI::base());
		$html .= '<div id="baseurl"
data-baseurl="'.$base_url.'"></div>';
		$html .= '<div id="jversion"
data-jversion="'.$js_jversion.'"></div>';

		return $html;
    }

    // check if url exists
	protected static function url_exists($url) 
	{
		if (self::_isCurl())
		{
			// cUrl method
			$ch = curl_init();

			$options = array(
				CURLOPT_URL            => $url,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_HEADER         => true,
				CURLOPT_FOLLOWLOCATION => true,
				CURLOPT_ENCODING       => "",
				CURLOPT_SSL_VERIFYPEER => false,
				CURLOPT_AUTOREFERER    => true,
				CURLOPT_CONNECTTIMEOUT => 120,
				CURLOPT_TIMEOUT        => 120,
				CURLOPT_MAXREDIRS      => 10,
			);
			curl_setopt_array( $ch, $options );
			$response = curl_exec($ch); 
			$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $retcode >= 400
-> not found, $retcode = 200, found.

			if ($httpCode != 200)
			{
				// The URL does not exist
				return false;

			} else {
				return true;
			}

			curl_close($ch);
		}
		else
		{			
			// default method
			$file_headers = @get_headers($url);
			if($file_headers[0] == 'HTTP/1.1 404 Not Found')
			{
				return false;
			}
			else
			{
				return true;
			}
		}
    }
    
    /**
	 * Check if the PHP function curl is enabled
	 */
	protected static function _isCurl()
	{
		return function_exists('curl_version');
	}
	
	/**
	 * Check if the PHP function allow_url_fopen is enabled
	 */
	protected static function _allowUrlFopen()
	{
		return ini_get('allow_url_fopen');
	}
}PK�X�[D"'h�4�4)web357framework/web357framework.class.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
 
defined('_JEXEC') or die('Restricted access');
use Joomla\Utilities\IpHelper;

if (!class_exists('Web357FrameworkHelperClass')):
class Web357FrameworkHelperClass
{
	var $is_j25x = '';
	var $is_j3x = '';
	var $apikey = '';
	
	function __construct()
	{
		// Define the DS (DIRECTORY SEPARATOR)
		$this->defineDS();

		// Get Joomla's version
		$jversion = new JVersion;
		$short_version = explode('.', $jversion->getShortVersion());
// 3.8.10
		$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8

		// get the Joomla! version
		if (!version_compare($mini_version, "2.5", "<="))
:
			// is Joomla! 3.x
			$this->is_j3x = true;
			$this->is_j25 = false;
		else:
			// is Joomla! 2.5.x
			$this->is_j3x = false;
			$this->is_j25 = true;
		endif;

		// get API Key from the plugin settings
		$this->apikey = $this->getAPIKey();
	}
	
	// Define the DS (DIRECTORY SEPARATOR)
	public static function defineDS()
	{
		if (!defined("DS")):
			define("DS", DIRECTORY_SEPARATOR);
		endif;
	}
	
	/**
	 * Get User's Browser (e.g. Google Chrome (64.0.3282.186))
	 * @param $user_agent null
	 * @return string
	 */
	public static function getBrowser()
	{ 
		$u_agent = $_SERVER['HTTP_USER_AGENT']; 
		$bname = 'Unknown';
		$ub = 'Unknown';
		$platform = 'Unknown';
		$version= "";
	
		//First get the platform?
		if (preg_match('/linux/i', $u_agent)) {
			$platform = 'linux';
		}
		elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
			$platform = 'mac';
		}
		elseif (preg_match('/windows|win32/i', $u_agent)) {
			$platform = 'windows';
		}
	
		// Next get the name of the useragent yes seperately and for good reason
		if(preg_match('/MSIE/i',$u_agent) &&
!preg_match('/Opera/i',$u_agent)) 
		{ 
			$bname = 'Internet Explorer'; 
			$ub = "MSIE"; 
		} 
		elseif(preg_match('/Trident/i',$u_agent)) 
		{ // this condition is for IE11
			$bname = 'Internet Explorer'; 
			$ub = "rv"; 
		} 
		elseif(preg_match('/OPR/i',$u_agent)) 
		{ 
			$bname = 'Opera'; 
			$ub = "OPR"; 
		} 
		elseif(preg_match('/Edg/i',$u_agent)) 
		{ 
			$bname = 'Edge'; 
			$ub = "Edg"; 
		} 
		elseif(preg_match('/Firefox/i',$u_agent)) 
		{ 
			$bname = 'Mozilla Firefox'; 
			$ub = "Firefox"; 
		} 
		elseif(preg_match('/Chrome/i',$u_agent)) 
		{ 
			$bname = 'Google Chrome'; 
			$ub = "Chrome"; 
		} 
		elseif(preg_match('/Safari/i',$u_agent)) 
		{ 
			$bname = 'Apple Safari'; 
			$ub = "Safari"; 
		} 
		elseif(preg_match('/Opera/i',$u_agent)) 
		{ 
			$bname = 'Opera'; 
			$ub = "Opera"; 
		} 
		elseif(preg_match('/Netscape/i',$u_agent)) 
		{ 
			$bname = 'Netscape'; 
			$ub = "Netscape"; 
		} 
		
		// finally get the correct version number
		// Added "|:"
		$known = array('Version', $ub, 'other');
		$pattern = '#(?<browser>' . join('|', $known)
.
		 ')[/|: ]+(?<version>[0-9.|a-zA-Z.]*)#';
		if (!preg_match_all($pattern, $u_agent, $matches)) {
			// we have no matching number just continue
		}
	
		// see how many we have
		$i = count($matches['browser']);
		if ($i != 1):
			//we will have two since we are not using 'other' argument
yet
			//see if version is before or after the name
			if (strripos($u_agent,"Version") <
strripos($u_agent,$ub)):
				$version= $matches['version'][0];
			else:
				if (isset($matches['version'][1])):
					$version = $matches['version'][1];
				elseif (isset($matches['version'][0])):
					$version= $matches['version'][0];
				else:
					$version = '';
				endif;
			endif;
		else:
			if (isset($matches['version'][0])):
				$version= $matches['version'][0];
			else:
				$version = '';
			endif;
		endif;

		// check if we have a number
		if ($version==null || $version=="") {$version="?";}
	
		$browser_details_arr = array(
			'userAgent' => $u_agent,
			'name'      => $bname,
			'version'   => $version,
			'platform'  => $platform,
			'pattern'    => $pattern
		);

		return $bname . ' (' . $version . ')';
	} 
	
	/**
	 * Get User's operating system (e.g. Windows 10 x64)
	 * @param $user_agent null
	 * @return string
	 */
	public static function getOS($user_agent = null)
	{
		if(!isset($user_agent) &&
isset($_SERVER['HTTP_USER_AGENT'])) {
			$user_agent = $_SERVER['HTTP_USER_AGENT'];
		}

		//
https://stackoverflow.com/questions/18070154/get-operating-system-info-with-php
		$os_array = array(
			'windows nt 10'                              => 
'Windows 10',
			'windows nt 6.3'                             => 
'Windows 8.1',
			'windows nt 6.2'                             => 
'Windows 8',
			'windows nt 6.1|windows nt 7.0'              => 
'Windows 7',
			'windows nt 6.0'                             => 
'Windows Vista',
			'windows nt 5.2'                             => 
'Windows Server 2003/XP x64',
			'windows nt 5.1'                             => 
'Windows XP',
			'windows xp'                                 => 
'Windows XP',
			'windows nt 5.0|windows nt5.1|windows 2000'  => 
'Windows 2000',
			'windows me'                                 => 
'Windows ME',
			'windows nt 4.0|winnt4.0'                    => 
'Windows NT',
			'windows ce'                                 => 
'Windows CE',
			'windows 98|win98'                           => 
'Windows 98',
			'windows 95|win95'                           => 
'Windows 95',
			'win16'                                      => 
'Windows 3.11',
			'mac os x 10.1[^0-9]'                        =>  'Mac
OS X Puma',
			'macintosh|mac os x'                         =>  'Mac
OS X',
			'mac_powerpc'                                =>  'Mac
OS 9',
			'linux'                                      => 
'Linux',
			'ubuntu'                                     => 
'Linux - Ubuntu',
			'iphone'                                     => 
'iPhone',
			'ipod'                                       => 
'iPod',
			'ipad'                                       => 
'iPad',
			'android'                                    => 
'Android',
			'blackberry'                                 => 
'BlackBerry',
			'webos'                                      => 
'Mobile',

			'(media center pc).([0-9]{1,2}\.[0-9]{1,2})'=>'Windows
Media Center',
			'(win)([0-9]{1,2}\.[0-9x]{1,2})'=>'Windows',
			'(win)([0-9]{2})'=>'Windows',
			'(windows)([0-9x]{2})'=>'Windows',

			// Doesn't seem like these are necessary...not totally sure
though..
			//'(winnt)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'Windows
NT',
			//'(windows
nt)(([0-9]{1,2}\.[0-9]{1,2}){0,1})'=>'Windows NT', // fix
by bg

			'Win 9x 4.90'=>'Windows ME',
			'(windows)([0-9]{1,2}\.[0-9]{1,2})'=>'Windows',
			'win32'=>'Windows',
			'(java)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})'=>'Java',
			'(Solaris)([0-9]{1,2}\.[0-9x]{1,2}){0,1}'=>'Solaris',
			'dos x86'=>'DOS',
			'Mac OS X'=>'Mac OS X',
			'Mac_PowerPC'=>'Macintosh PowerPC',
			'(mac|Macintosh)'=>'Mac OS',
			'(sunos)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'SunOS',
			'(beos)([0-9]{1,2}\.[0-9]{1,2}){0,1}'=>'BeOS',
			'(risc os)([0-9]{1,2}\.[0-9]{1,2})'=>'RISC OS',
			'unix'=>'Unix',
			'os/2'=>'OS/2',
			'freebsd'=>'FreeBSD',
			'openbsd'=>'OpenBSD',
			'netbsd'=>'NetBSD',
			'irix'=>'IRIX',
			'plan9'=>'Plan9',
			'osf'=>'OSF',
			'aix'=>'AIX',
			'GNU Hurd'=>'GNU Hurd',
			'(fedora)'=>'Linux - Fedora',
			'(kubuntu)'=>'Linux - Kubuntu',
			'(ubuntu)'=>'Linux - Ubuntu',
			'(debian)'=>'Linux - Debian',
			'(CentOS)'=>'Linux - CentOS',
			'(Mandriva).([0-9]{1,3}(\.[0-9]{1,3})?(\.[0-9]{1,3})?)'=>'Linux
- Mandriva',
			'(SUSE).([0-9]{1,3}(\.[0-9]{1,3})?(\.[0-9]{1,3})?)'=>'Linux
- SUSE',
			'(Dropline)'=>'Linux - Slackware (Dropline
GNOME)',
			'(ASPLinux)'=>'Linux - ASPLinux',
			'(Red Hat)'=>'Linux - Red Hat',
			// Loads of Linux machines will be detected as unix.
			// Actually, all of the linux machines I've checked have the
'X11' in the User Agent.
			//'X11'=>'Unix',
			'(linux)'=>'Linux',
			'(amigaos)([0-9]{1,2}\.[0-9]{1,2})'=>'AmigaOS',
			'amiga-aweb'=>'AmigaOS',
			'amiga'=>'Amiga',
			'AvantGo'=>'PalmOS',
			//'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1}-([0-9]{1,2})
i([0-9]{1})86){1}'=>'Linux',
			//'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1}
i([0-9]{1}86)){1}'=>'Linux',
			//'(Linux)([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}(rel\.[0-9]{1,2}){0,1})'=>'Linux',
			'[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3}'=>'Linux',
			'(webtv)/([0-9]{1,2}\.[0-9]{1,2})'=>'WebTV',
			'Dreamcast'=>'Dreamcast OS',
			'GetRight'=>'Windows',
			'go!zilla'=>'Windows',
			'gozilla'=>'Windows',
			'gulliver'=>'Windows',
			'ia archiver'=>'Windows',
			'NetPositive'=>'Windows',
			'mass downloader'=>'Windows',
			'microsoft'=>'Windows',
			'offline explorer'=>'Windows',
			'teleport'=>'Windows',
			'web downloader'=>'Windows',
			'webcapture'=>'Windows',
			'webcollage'=>'Windows',
			'webcopier'=>'Windows',
			'webstripper'=>'Windows',
			'webzip'=>'Windows',
			'wget'=>'Windows',
			'Java'=>'Unknown',
			'flashget'=>'Windows',

			// delete next line if the script show not the right OS
			//'(PHP)/([0-9]{1,2}.[0-9]{1,2})'=>'PHP',
			'MS FrontPage'=>'Windows',
			'(msproxy)/([0-9]{1,2}.[0-9]{1,2})'=>'Windows',
			'(msie)([0-9]{1,2}.[0-9]{1,2})'=>'Windows',
			'libwww-perl'=>'Unix',
			'UP.Browser'=>'Windows CE',
			'NetAnts'=>'Windows'
		);

		//
https://github.com/ahmad-sa3d/php-useragent/blob/master/core/user_agent.php
		$arch_regex =
'/\b(x86_64|x86-64|Win64|WOW64|x64|ia64|amd64|ppc64|sparc64|IRIX64)\b/ix';
		$arch = preg_match($arch_regex, $user_agent) ? '64' :
'32';

		foreach ($os_array as $regex => $value) {
			if (preg_match('{\b('.$regex.')\b}i', $user_agent))
{
				return $value.' (x'.$arch.')';
			}
		}

		return 'Unknown';
	}

	/**
	 * 
	 * Get User's Country with geoplugin.net
	 *
	 * @return string
	 */
	public static function getCountry()
	{
		// Get the correct IP address of the client
		$ip = IpHelper::getIp();

		if (!filter_var($ip, FILTER_VALIDATE_IP))
		{
			$ip = isset($_SERVER['REMOTE_ADDR']) ?
$_SERVER['REMOTE_ADDR'] : '0.0.0.0';
		}

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,
"http://www.geoplugin.net/json.gp?ip=".$ip);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$output = curl_exec($ch);
		curl_close($ch);
		$ip_data = json_decode($output);

		if($ip_data && $ip_data->geoplugin_countryName != null)
		{
			return $ip_data->geoplugin_countryName;
		}

		return 'Unknown';
	}

	/**
       * 
       * Fetch the API Key from the plugin settings
       *
       * @return string
       */
	public static function getAPIKey()
	{
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName('params'));
		$query->from($db->quoteName('#__extensions'));
		$query->where($db->quoteName('element') . ' = '
. $db->quote('web357framework'));
		$query->where($db->quoteName('folder') . ' = '
. $db->quote('system'));
		$db->setQuery($query);

		try
		{
			$plugin = $db->loadObject();
			$plugin_params = new JRegistry();
			$plugin_params->loadString($plugin->params);
			return $plugin_params->get('apikey', '');
		}
		catch (RuntimeException $e)
		{
			JError::raiseError(500, $e->getMessage());
		}
	}

	/**
       * 
       * Displays a warning message if the Web357 API key has not been set
in the plugin settings.
       *
	   * USAGE: 
	   * // API Key Checker
	   * $w357frmwrk->apikeyChecker();
	   * 
       * @return string
       */
	public function apikeyChecker()
	{
		if (empty($this->apikey) || $this->apikey == '')
		{
			// warn about missing api key
			$api_key_missed_msg = JText::_('In order to update commercial
Web357 extensions you have to add your Web357 API Key in the <a
href="index.php?option=com_plugins&view=plugins&filter[search]=System%20-%20Web357%20Framework"
title="Web357 Framework plugin settings"><strong>Web357
Framework plugin</strong></a>. You can find the API Key in your
account settings at Web357.com, in <a
href="//www.web357.com/my-account/web357-license-manager"
target="_blank"><strong>Web357 License Key
Manager</strong></a> section.');

			// display the message
			JFactory::getApplication()->enqueueMessage($api_key_missed_msg,
'warning');

			// remove the warning heading from alert message
			JFactory::getDocument()->addStyleDeclaration('.alert
.alert-heading { display: none; }');
		}
	}
	
}
endif;

// HOW TO USE
/*
function W357FrameworkHelperClass()
{
	// Call the Web357 Framework Helper Class
	require_once(JPATH_PLUGINS.DIRECTORY_SEPARATOR.'system'.DIRECTORY_SEPARATOR.'web357framework'.DIRECTORY_SEPARATOR.'web357framework.class.php');
	$w357frmwrk = new Web357FrameworkHelperClass;
	return $w357frmwrk;
}

$this->W357FrameworkHelperClass();
echo $this->W357FrameworkHelperClass()->test;
*/PK�X�[6�5��#web357framework/web357framework.phpnu�[���<?php
/* ======================================================
 # Web357 Framework for Joomla! - v1.9.1 (free version)
 # -------------------------------------------------------
 # For Joomla! CMS (v3.x)
 # Author: Web357 (Yiannis Christodoulou)
 # Copyright (©) 2014-2022 Web357. All rights reserved.
 # License: GNU/GPLv3, http://www.gnu.org/licenses/gpl-3.0.html
 # Website: https:/www.web357.com
 # Demo: https://demo.web357.com/joomla/
 # Support: support@web357.com
 # Last modified: Wednesday 07 December 2022, 11:05:26 AM
 ========================================================= */
defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\LanguageHelper;

if (version_compare(JVERSION, '3.0', 'ge'))
{
	// Initialize Web357 Framework
	require_once(__DIR__.'/autoload.php');
}

jimport('joomla.event.plugin');
jimport('joomla.plugin.plugin');
jimport('joomla.html.parameter');

if (!class_exists('plgSystemWeb357framework')):
	class plgSystemWeb357framework extends JPlugin
	{
		public function __construct(&$subject, $config)
		{
			parent::__construct($subject, $config);
		}
		
		public function onAfterInitialise()
		{
			$app 		= JFactory::getApplication();
			$option 	= $app->input->get('option');
			$view 		= $app->input->get('view');
			$component 	= $app->input->get('component');
			
			// Backend rules
			if ($app->isClient('administrator'))
			{
				// API Key Checker
				if ($option == 'com_config' && $view ==
'component' && 
					(
						$component == 'com_vmsales' || 
						$component == 'com_allcomments' || 
						$component == 'com_monthlyarchive' || 
						$component == 'com_cookiespolicynotificationbar' || 
						$component == 'com_limitactivelogins' || 
						$component == 'com_manageunusedimages' || 
						$component == 'com_loginasuser' || 
						$component == 'com_fix404errorlinks' || 
						$component == 'com_failedloginattempts' || 
						$component == 'com_jlogs'
					)
				)
				{
					// Call the Web357 Framework Helper Class
					require_once(JPATH_PLUGINS.DIRECTORY_SEPARATOR.'system'.DIRECTORY_SEPARATOR.'web357framework'.DIRECTORY_SEPARATOR.'web357framework.class.php');
					$w357frmwrk = new Web357FrameworkHelperClass;

					// API Key Checker
					if (Factory::getUser()->id)
					{
						$w357frmwrk->apikeyChecker();
					}
				}

				// Get Joomla's version
				$jversion = new JVersion;
				$short_version = explode('.',
$jversion->getShortVersion()); // 3.8.10
				$mini_version = $short_version[0].'.'.$short_version[1]; //
3.8

				// load jQuery only when needed
				if (
					($view == 'plugin' && $option ==
'com_plugins') || 
					($view == 'module' && ($option ==
'com_modules' || $option == 'com_advancedmodules')) ||

					($option == 'com_config' && $view ==
'component' && 
					(
						$component == 'com_vmsales' || 
						$component == 'com_allcomments' || 
						$component == 'com_monthlyarchive' || 
						$component == 'com_cookiespolicynotificationbar' || 
						$component == 'com_limitactivelogins' || 
						$component == 'com_manageunusedimages' || 
						$component == 'com_loginasuser' || 
						$component == 'com_fix404errorlinks' || 
						$component == 'com_failedloginattempts' || 
						$component == 'com_jlogs' ||
						$component == 'com_users'
					) || 
					(
						$option == 'com_vmsales' || 
						$option == 'com_allcomments' || 
						$option == 'com_monthlyarchive' || 
						$option == 'com_cookiespolicynotificationbar' || 
						$option == 'com_loginasuser' || 
						$option == 'com_limitactivelogins' || 
						$option == 'com_manageunusedimages' || 
						$option == 'com_fix404errorlinks' || 
						$option == 'com_failedloginattempts' || 
						$option == 'com_jlogs' || 
						$option == 'com_users'
					)
				))
				{
					if (version_compare(JVERSION, '3.0', 'lt'))
					{
						JFactory::getDocument()->addScript(JURI::root(true).'/media/plg_system_web357framework/js/jquery-1.10.2.min.js');
					}
					elseif (version_compare(JVERSION, '4.0', 'lt'))
					{
						JHtml::_('jquery.framework');
					}
					elseif (version_compare(JVERSION, '4.0', 'ge')
&& $option == 'com_config' && $component ==
'com_limitactivelogins')
					{
						JFactory::getDocument()->addScript('https://code.jquery.com/jquery-3.6.0.min.js');
					}

					// js
					JFactory::getDocument()->addScript(JURI::root(true).'/media/plg_system_web357framework/js/script.min.js?v=ASSETS_VERSION_DATETIME');

					// css
					JFactory::getDocument()->addStyleSheet(JURI::root(true).'/media/plg_system_web357framework/css/style.min.css?v=ASSETS_VERSION_DATETIME');
				}
			}
		}

		function onContentPrepareForm($form, $data)
		{
			$app    = JFactory::getApplication();
			$option = $app->input->get('option');
			$view 	= $app->input->get('view');
			$layout = $app->input->get('layout');

			if ($app->isClient('administrator') && $option ==
'com_plugins' && $view = 'plugin' &&
$layout == 'edit')
			{
				if (!($form instanceof JForm))
				{
					$this->_subject->setError('JERROR_NOT_A_FORM');
					return false;
				}
				
				// Get plugin's element
				$db = JFactory::getDbo();
				$query = $db->getQuery(true);
				$query->select($db->quoteName('element'));
				$query->from($db->quoteName('#__extensions'));
				$query->where($db->quoteName('type'). ' = '.
$db->quote('plugin'));
				$query->where($db->quoteName('folder'). ' =
'. $db->quote('system'));
				$query->where($db->quoteName('extension_id'). ' =
'. $app->input->get('extension_id'));
				$db->setQuery($query);
				$element = $db->loadResult();

				// get the frontend language tag
				$frontend_language_tag =
JComponentHelper::getParams('com_languages')->get('site');
				$frontend_language_default_tag = $frontend_language_tag;
				$frontend_language_tag = str_replace("-", "_",
$frontend_language_tag);
				$frontend_language_tag = !empty($frontend_language_tag) ?
$frontend_language_tag : "en_GB";
				
				// Load the Web357Framework plugin language file to get the
translations of each language
				$extension = 'plg_system_web357framework';
				$base_dir = JPATH_SITE.'/plugins/system/web357framework/';
				$language_tag = str_replace('_', '-',
$frontend_language_tag);
				$reload = true;
				JFactory::getLanguage()->load($extension, $base_dir, $language_tag,
$reload);
				
				// BEGIN: Cookies Policy Notification Bar - Joomla! Plugin
				if ($element == 'cookiespolicynotificationbar')
				{
					// Get language tag
					$language = JFactory::getLanguage();
					$language_tag = str_replace("-", "_",
$language->get('tag'));
					$language_tag = !empty($language_tag) ? $language_tag :
"en_GB";

					// Get languages and load form
					$lang_codes_arr = array();
					jimport( 'joomla.language.helper' );
					$languages = JLanguageHelper::getLanguages();
					
					if (!empty($languages) && count($languages) > 1):
						// Get language details
						foreach ($languages as $tag => $language):
							
							// get language name
							$language_name = $language->title_native;
							$language->lang_code = str_replace('-', '_',
$language->lang_code);
							$lang_codes_arr[] = $language->lang_code;

							// Load the plugin language file to get the translations of each
language
							$extension = 'plg_system_cookiespolicynotificationbar';
							$base_dir =
JPATH_SITE.'/plugins/system/cookiespolicynotificationbar/';
							$language_tag = str_replace('_', '-',
$language->lang_code);
							$reload = true;
							JFactory::getLanguage()->load($extension, $base_dir,
$language_tag, $reload);
							
							$this->getLangForm($form, $language_name,
$language->lang_code);
							
						endforeach;
					else:
						// Get language details
						$language = JFactory::getLanguage();
						$lang = new stdClass();
						$lang->known_languages =
LanguageHelper::getKnownLanguages(JPATH_SITE);
						$known_lang_name =
$lang->known_languages[$frontend_language_default_tag]['name'];
						$known_lang_tag =
$lang->known_languages[$frontend_language_default_tag]['tag'];
						$known_lang_name = !empty($known_lang_name) ? $known_lang_name :
'English';
						$known_lang_tag = !empty($known_lang_tag) ? $known_lang_tag :
'en-GB';
						$frontend_language_tag = !empty($frontend_language_tag) ?
$frontend_language_tag : $known_lang_tag;
						$language_name =
$this->getLanguageNameByTag($frontend_language_default_tag); 
						$language_name = !empty($language_name) ? str_replace('
('.str_replace('_',
'-',$language_tag).')', '', $language_name) :
$known_lang_name;
						$lang_codes_arr[] = $frontend_language_tag;

						// Load the plugin language file to get the translations of each
language
						$extension = 'plg_system_cookiespolicynotificationbar';
						$base_dir =
JPATH_SITE.'/plugins/system/cookiespolicynotificationbar/';
						$language_tag = str_replace('_', '-',
$frontend_language_tag);
						$reload = true;
						JFactory::getLanguage()->load($extension, $base_dir,
$language_tag, $reload);

						// load form
						$this->getLangForm($form, $language_name,
$frontend_language_tag);
						
					endif; 

					// Load the plugin language file to get the translations of the base
language
					$lang = JFactory::getLanguage();
					$current_lang_tag = $lang->getTag();
					$extension = 'plg_system_cookiespolicynotificationbar';
					$base_dir =
JPATH_SITE.'/plugins/system/cookiespolicynotificationbar/';
					$reload = true;
					$lang->load($extension, $base_dir, $current_lang_tag, $reload);
				}
				// END: Cookies Policy Notification Bar - Joomla! Plugin

				// BEGIN: custom404errorpage - Joomla! Plugin
				if ($element == 'custom404errorpage')
				{
					// Get language tag
					$language = JFactory::getLanguage();
					$language_tag = str_replace("-", "_",
$language->get('tag'));
					$language_tag = !empty($language_tag) ? $language_tag :
"en_GB";

					// Get languages and load form
					$lang_codes_arr = array();
					jimport( 'joomla.language.helper' );
					$languages = JLanguageHelper::getLanguages();
					
					if (!empty($languages) && count($languages) > 1):
						// Get language details
						foreach ($languages as $tag => $language):
							
							// get language name
							$language_name = $language->title_native;
							$language->lang_code = str_replace('-', '_',
$language->lang_code);
							$lang_codes_arr[] = $language->lang_code;

							// Load the plugin language file to get the translations of each
language
							$extension = 'plg_system_custom404errorpage';
							$base_dir =
JPATH_SITE.'/plugins/system/custom404errorpage/';
							$language_tag = str_replace('_', '-',
$language->lang_code);
							$reload = true;
							JFactory::getLanguage()->load($extension, $base_dir,
$language_tag, $reload);
							
							$this->getLangFormCustom404ErrorPage($form, $language_name,
$language->lang_code);
							
						endforeach;
					else:
						// Get language details
						$language = JFactory::getLanguage();
						$lang = new stdClass();
						$lang->known_languages =
LanguageHelper::getKnownLanguages(JPATH_SITE);
						$known_lang_name =
$lang->known_languages[$frontend_language_default_tag]['name'];
						$known_lang_tag =
$lang->known_languages[$frontend_language_default_tag]['tag'];
						$known_lang_name = !empty($known_lang_name) ? $known_lang_name :
'English';
						$known_lang_tag = !empty($known_lang_tag) ? $known_lang_tag :
'en-GB';
						$frontend_language_tag = !empty($frontend_language_tag) ?
$frontend_language_tag : $known_lang_tag;
						$language_name =
$this->getLanguageNameByTag($frontend_language_default_tag); 
						$language_name = !empty($language_name) ? str_replace('
('.str_replace('_',
'-',$language_tag).')', '', $language_name) :
$known_lang_name;
						$lang_codes_arr[] = $frontend_language_tag;

						// Load the plugin language file to get the translations of each
language
						$extension = 'plg_system_custom404errorpage';
						$base_dir =
JPATH_SITE.'/plugins/system/custom404errorpage/';
						$language_tag = str_replace('_', '-',
$frontend_language_tag);
						$reload = true;
						JFactory::getLanguage()->load($extension, $base_dir,
$language_tag, $reload);

						// load form
						$this->getLangFormCustom404ErrorPage($form, $language_name,
$frontend_language_tag);
						
					endif; 

					// Load the plugin language file to get the translations of the base
language
					$lang = JFactory::getLanguage();
					$current_lang_tag = $lang->getTag();
					$extension = 'plg_system_custom404errorpage';
					$base_dir =
JPATH_SITE.'/plugins/system/custom404errorpage/';
					$reload = true;
					$lang->load($extension, $base_dir, $current_lang_tag, $reload);
				}
				// END: custom404errorpage - Joomla! Plugin

				// BEGIN: Login as User - Joomla! Plugin (add extra fields for user
groups and admins)
				if ($element == 'loginasuser')
				{
					// Get User Groups
					$db = JFactory::getDbo();
					$query = $db->getQuery(true);
					$query->select('id, title');
					$query->from('#__usergroups');
					$query->where('parent_id > 0');
					$query->order('lft ASC');
					$db->setQuery($query);
					$usergroups = $db->loadObjectList();

					if (!empty($usergroups))
					{
						foreach ($usergroups as $usergroup)
						{
							$this->getUsersFormFieldLoginAsUser($form, $usergroup->id,
htmlspecialchars($usergroup->title));
						}
					}
				}
				// END: Login as User - Joomla! Plugin (add extra fields for user
groups and admins)
			}

			return true;
		}

		public function getLangForm($form, $language_name = "English",
$lang_code = "en_GB")
		{
			if (isset($form))
			{
				// start building xml file
				$xmlText = '<?xml version="1.0"
encoding="utf-8"?>
				<form>
					<fields>
						<fieldset name="texts_for_languages"
addfieldprefix="Joomla\Component\Menus\Administrator\Field">';

				// HEADER
				$xmlText .= '<field type="langheader"
name="header_'.$lang_code.'"
class="w357_large_header"
addfieldpath="/plugins/system/cookiespolicynotificationbar/elements"
lang_code="'.$lang_code.'"
language_name="'.$language_name.'" />';
				
				// SMALL HEADER: Texts for the Cookies Policy Notification Bar
				$xmlText .= '<field 
				type="header"
				class="w357_small_header" 
				label="PLG_SYSTEM_CPNB_TEXTS_FOR_THE_BAR_HEADER" 
				/>';

				// MESSAGE
				$xmlText .= '<field 
				name="header_message_'.$lang_code.'" 
				type="textarea" 
				default="'.JText::_('J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_HEADER_MESSAGE_DEFAULT').'"
label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_HEADER_MESSAGE_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_HEADER_MESSAGE_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				class="cpnb-notification-bar-message
w357-display-inline-block"
				/>';

				// OK BUTTON
				$xmlText .= '<field 
				name="ok_btn_'.$lang_code.'" 
				type="radio" 
				class="btn-group btn-group-yesno" 
				default="1" 
				label="PLG_SYSTEM_CPNB_OK_BTN_LBL" 
				description="PLG_SYSTEM_CPNB_OK_BTN_DESC">
				<option value="1">JSHOW</option>
				<option value="0">JHIDE</option>
				</field>';
				
				// OK BUTTON TEXT
				$xmlText .= '<field 
				name="button_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_DEFAULT_TEXT_VALUE').'"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_TEXT_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_TEXT_DESC"

				filter="STRING" 
				showon="ok_btn_'.$lang_code.':1" 
				/>';

				// DECLINE BUTTON
				$xmlText .= '<field 
				name="decline_btn_'.$lang_code.'" 
				type="radio" 
				class="btn-group btn-group-yesno" 
				default="1" 
				label="PLG_SYSTEM_CPNB_DECLINE_BTN_LBL" 
				description="PLG_SYSTEM_CPNB_DECLINE_BTN_DESC">
				<option value="1">JSHOW</option>
				<option value="0">JHIDE</option>
				</field>';
				
				// DECLINE BUTTON TEXT
				$xmlText .= '<field 
				name="decline_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DECLINE_BTN_DEFAULT_TEXT_VALUE').'"

				label="PLG_SYSTEM_CPNB_DECLINE_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_DECLINE_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="decline_btn_'.$lang_code.':1" 
				/>';

				// CANCEL BUTTON
				$xmlText .= '<field 
				name="cancel_btn_'.$lang_code.'" 
				type="radio" 
				class="btn-group btn-group-yesno" 
				default="0" 
				label="PLG_SYSTEM_CPNB_CANCEL_BTN_LBL" 
				description="PLG_SYSTEM_CPNB_CANCEL_BTN_DESC">
				<option value="1">JSHOW</option>
				<option value="0">JHIDE</option>
				</field>';
				
				// CANCEL BUTTON TEXT
				$xmlText .= '<field 
				name="cancel_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_CANCEL_BTN_DEFAULT_TEXT_VALUE').'"

				label="PLG_SYSTEM_CPNB_CANCEL_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_CANCEL_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="cancel_btn_'.$lang_code.':1" 
				/>';

				// SETTINGS BUTTON
				$xmlText .= '<field 
				name="settings_btn_'.$lang_code.'" 
				type="radio" 
				class="btn-group btn-group-yesno" 
				default="1" 
				showon="modalState:1" 
				label="PLG_SYSTEM_CPNB_SETTINGS_BTN_LBL" 
				description="PLG_SYSTEM_CPNB_SETTINGS_BTN_DESC">
				<option value="1">JSHOW</option>
				<option value="0">JHIDE</option>
				</field>';
				
				// SETTINGS BUTTON TEXT
				$xmlText .= '<field 
				name="settings_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_SETTINGS_BTN_DEFAULT_TEXT_VALUE').'"

				label="PLG_SYSTEM_CPNB_SETTINGS_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_SETTINGS_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="settings_btn_'.$lang_code.':1" 
				/>';
				
				// MORE INFO BUTTON
				$xmlText .= '<field 
				name="more_info_btn_'.$lang_code.'" 
				type="radio" 
				class="btn-group btn-group-yesno cpnb-modal-info-window" 
				default="1" 
				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MOR_INFO_BTN_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MOR_INFO_BTN_DESC">
				<option value="1">JSHOW</option>
				<option value="0">JHIDE</option>
				</field>';

				// BUTTON MORE TEXT
				$xmlText .= '<field 
				name="button_more_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_MORETEXT_DEFAULT_VALUE').'"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_MORETEXT_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_MORETEXT_DESC"

				filter="STRING" 
				showon="more_info_btn_'.$lang_code.':1" 
				/>';

				// LINK OR Menu Item
				$xmlText .= '<field 
				name="more_info_btn_type_'.$lang_code.'" 
				type="list" 
				default="custom_text" 
				showon="more_info_btn_'.$lang_code.':1" 
				class="cpnb-modal-info-window" 
				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MORE_INFO_BTN_TYPE_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MORE_INFO_BTN_TYPE_DESC">
				<option
value="link">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MORE_INFO_BTN_TYPE_OPTION_LINK</option>
				<option
value="menu_item">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MORE_INFO_BTN_TYPE_OPTION_MENU_ITEM</option>
				<option
value="custom_text">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_MORE_INFO_BTN_TYPE_OPTION_CUSTOM_TEXT</option>
				</field>';

				// CUSTOM TEXT
				$xmlText .= '<field 
				name="custom_text_'.$lang_code.'" 
				type="editor" 
				default="'.JText::_('J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_CUSTOM_TEXT_DEFAULT').'"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_CUSTOM_TEXT_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_CUSTOM_TEXT_DESC"

				width="300" 
				filter="safehtml"
				showon="more_info_btn_'.$lang_code.':1[AND]more_info_btn_type_'.$lang_code.':custom_text"

				class="cpnb-modal-info-window"
				/>';

				// CUSTOM LINK FOR THE MORE INFO BUTTON
				$xmlText .= '<field 
				name="button_more_link_'.$lang_code.'" 
				type="url" 
				default="cookies-policy" 
				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_MORELINK_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_BUTTON_MORELINK_DESC"

				showon="more_info_btn_'.$lang_code.':1[AND]more_info_btn_type_'.$lang_code.':link"

				/>';
				
				// MODAL MENU ITEM
				$xmlText .= '<field 
				name="cpnb_modal_menu_item_'.$lang_code.'" 
				type="modal_menu"
				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_SELECT_MENU_ITEM_LBL"
				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_SELECT_MENU_ITEM_DESC"
				required="false"
				select="true"
				new="true"
				edit="true"
				clear="true"
				addfieldpath="/administrator/components/com_menus/models/fields"

				showon="more_info_btn_'.$lang_code.':1[AND]more_info_btn_type_'.$lang_code.':menu_item"

				/>';

				// LINK TARGET
				$xmlText .= '<field 
				name="link_target_'.$lang_code.'" 
				type="list" 
				default="_self" 
				showon="more_info_btn_'.$lang_code.':1[AND]more_info_btn_type_'.$lang_code.'!:custom_text"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_LINK_TARGET_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_LINK_TARGET_DESC">
				<option
value="_self">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_LINK_TARGET_SAME_LBL</option>
				<option
value="_blank">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_LINK_TARGET_NEW_LBL</option>
				<option
value="popup">J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_LINK_TARGET_POPUP_WINDOW_LBL</option>
				</field>';

				// POPUP WINDOW WIDTH
				$xmlText .= '<field 
				name="popup_width_'.$lang_code.'" 
				type="text" 
				default="800" 
				showon="more_info_btn_'.$lang_code.':1[AND]link_target_'.$lang_code.':popup[AND]more_info_btn_type_'.$lang_code.'!:custom_text"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_POPUP_WINDOW_WIDTH_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_POPUP_WINDOW_WIDTH_DESC"

				/>';

				// POPUP WINDOW HEIGHT
				$xmlText .= '<field 
				name="popup_height_'.$lang_code.'" 
				type="text" 
				default="600" 
				showon="more_info_btn_'.$lang_code.':1[AND]link_target_'.$lang_code.':popup[AND]more_info_btn_type_'.$lang_code.'!:custom_text"

				label="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_POPUP_WINDOW_HEIGHT_LBL"

				description="J357_PLG_SYSTEM_COOKIESPOLICYNOTIFICATIONBAR_POPUP_WINDOW_HEIGHT_DESC"

				/>';

				// SMALL HEADER: Texts for the Shortcode Functionality
				$xmlText .= '<field  type="header" 
class="w357_small_header"
label="PLG_SYSTEM_CPNB_TEXTS_FOR_THE_SHORTCODE_HEADER"
showon="enable_shortcode_functionality:1" />';
				$xmlText .= '<field
name="note_texts_for_the_shortcode_'.$lang_code.'"
type="note" label=""
description="'.JText::_('PLG_SYSTEM_CPNB_TEXTS_FOR_THE_SHORTCODE_NOTE').'"
showon="enable_shortcode_functionality:1" />';

				// TEXT BEFORE ACCEPT/DECLINE
				$xmlText .= '<field  type="header" 
class="w357_small_header" 
label="PLG_SYSTEM_CPNB_TEXT_BEFORE_ACCEPT_DECLINE_LBL"
showon="enable_shortcode_functionality:1" />';

				$text_before_accept_decline_default = '&lt;p&gt;The
cookies on this website are disabled.&lt;br&gt;This decision can be
reversed anytime by clicking the below button &quot;Allow
Cookies&quot;.&lt;/p&gt;&lt;div
class=&quot;cpnb-margin&quot;&gt;{cpnb_buttons}&lt;/div&gt;';

				$xmlText .= '<field 
				name="shortcode_text_before_accept_or_decline_'.$lang_code.'"

				type="editor" 
				default="'.$text_before_accept_decline_default.'" 
				label="" 
				description="PLG_SYSTEM_CPNB_TEXT_BEFORE_ACCEPT_DECLINE_DESC"

				width="300" 
				filter="safehtml"
				showon="enable_shortcode_functionality:1" 
				/>';

				// TEXT AFTER ACCEPT
				$xmlText .= '<field  type="header" 
class="w357_small_header" 
label="PLG_SYSTEM_CPNB_TEXT_AFTER_ACCEPT_LBL"
showon="enable_shortcode_functionality:1" />';

				$text_after_accept_default = '&lt;h3&gt;Cookies served
through our website&lt;/h3&gt;&lt;div
class=&quot;cpnb-margin&quot;&gt;{cpnb_cookies_info_table}&lt;/div&gt;&lt;p&gt;You
have allowed website&apos;s cookies to be placed on your
browser.&lt;/p&gt;&lt;p&gt;This decision can be reversed
anytime by clicking the below button &quot;Delete
Cookies&quot;.&lt;/p&gt;&lt;div
class=&quot;cpnb-margin&quot;&gt;{cpnb_buttons}&lt;/div&gt;';
				
				$xmlText .= '<field 
				name="shortcode_text_after_accept_'.$lang_code.'" 
				type="editor" 
				default="'.$text_after_accept_default.'" 
				label="" 
				description="PLG_SYSTEM_CPNB_TEXT_AFTER_ACCEPT_DESC" 
				width="300" 
				filter="safehtml"
				showon="enable_shortcode_functionality:1" 
				/>';

				// TEXT AFTER DECLINE
				$xmlText .= '<field  type="header" 
class="w357_small_header" 
label="PLG_SYSTEM_CPNB_TEXT_AFTER_DECLINE_LBL"
showon="enable_shortcode_functionality:1" />';

				$text_after_decline_default = '&lt;p&gt;The cookies on
this website are declined by you
earlier.&lt;/p&gt;&lt;p&gt;This decision can be reversed
anytime by clicking the below button &quot;Allow
Cookies&quot;.&lt;/p&gt;&lt;h3&gt;Cookies served
through our website&lt;/h3&gt;&lt;div
class=&quot;cpnb-margin&quot;&gt;{cpnb_cookies_info_table}&lt;/div&gt;&lt;div
class=&quot;cpnb-margin&quot;&gt;{cpnb_buttons}&lt;/div&gt;';

				$xmlText .= '<field 
				name="shortcode_text_after_decline_'.$lang_code.'"

				type="editor" 
				default="'.$text_after_decline_default.'" 
				label="" 
				description="PLG_SYSTEM_CPNB_TEXT_AFTER_DECLINE_DESC" 
				width="300" 
				filter="safehtml" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// SMALL HEADER: Other texts for translations
				$xmlText .= '<field  type="header" 
class="w357_small_header" 
label="PLG_SYSTEM_CPNB_OTHER_TEXTS_FOR_TRANSLATIONS_HEADER"
showon="enable_shortcode_functionality:1[OR]modalState:1"
/>';

				// BUTTONS (Note)
				$xmlText .= '<field
name="note_buttons_'.$lang_code.'"
type="note" label="PLG_SYSTEM_CPNB_BUTTONS_NOTE_LBL"
description=""
showon="enable_shortcode_functionality:1[OR]modalState:1"
/>';

				// ALLOW COOKIES BUTTON TEXT
				$xmlText .= '<field 
				name="allow_cookies_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_ALLOW_COOKIES').'"

				label="PLG_SYSTEM_CPNB_ALLOW_COOKIES_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_ALLOW_COOKIES_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="enable_shortcode_functionality:1[OR]modalState:1"
				/>';

				// DECLINE COOKIES BUTTON TEXT
				$xmlText .= '<field 
				name="decline_cookies_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DECLINE_COOKIES').'"

				label="PLG_SYSTEM_CPNB_DECLINE_COOKIES_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_DECLINE_COOKIES_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="enable_shortcode_functionality:1[OR]modalState:1"
				/>';

				// DELETE COOKIES BUTTON TEXT
				$xmlText .= '<field 
				name="delete_cookies_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DELETE_COOKIES').'"

				label="PLG_SYSTEM_CPNB_DELETE_COOKIES_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_DELETE_COOKIES_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// RELOAD COOKIES BUTTON TEXT
				$xmlText .= '<field 
				name="reload_cookies_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_RELOAD').'"

				label="PLG_SYSTEM_CPNB_RELOAD_COOKIES_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_RELOAD_COOKIES_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// SAVE SETTINGS BUTTON TEXT
				$xmlText .= '<field 
				name="save_settings_btn_text_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_SAVE_SETTINGS').'"

				label="PLG_SYSTEM_CPNB_SAVE_SETTINGS_BTN_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_SAVE_SETTINGS_BTN_TEXT_DESC" 
				filter="STRING" 
				showon="modalState:1"
				/>';

				// ALERT MESSAGES (Note)
				$xmlText .= '<field
name="note_alert_messages_'.$lang_code.'"
type="note" label="PLG_SYSTEM_ALERT_MESSAGES_NOTE_LBL"
description="" />';

				// ALLOW COOKIES CONFIRMATION ALERT
				$xmlText .= '<field 
				name="allow_cookies_confirmation_alert_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_ALLOW_COOKIES_CONFIRMATION').'"

				label="PLG_SYSTEM_CPNB_ALLOW_COOKIES_CONFIRMATION_LBL" 
				description="PLG_SYSTEM_CPNB_ALLOW_COOKIES_CONFIRMATION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				/>';

				// DELETE COOKIES CONFIRMATION ALERT
				$xmlText .= '<field 
				name="delete_cookies_confirmation_alert_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DELETE_COOKIES_CONFIRMATION').'"

				label="PLG_SYSTEM_CPNB_DELETE_COOKIES_CONFIRMATION_LBL" 
				description="PLG_SYSTEM_CPNB_DELETE_COOKIES_CONFIRMATION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				/>';

				// LOCKED COOKIES CATEGORY CONFIRMATION ALERT
				$xmlText .= '<field 
				name="locked_cookies_category_confirmation_alert_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_LOCKED_COOKIES_CATEGORY_CONFIRMATION').'"

				label="PLG_SYSTEM_CPNB_LOCKED_COOKIES_CATEGORY_CONFIRMATION_LBL"

				description="PLG_SYSTEM_CPNB_LOCKED_COOKIES_CATEGORY_CONFIRMATION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				showon="modalState:1"
				/>';

				// OTHER TEXTS (Note)
				$xmlText .= '<field
name="note_other_texts_'.$lang_code.'"
type="note" label="PLG_SYSTEM_OTHER_TEXTS_LBL"
description=""
showon="enable_shortcode_functionality:1" />';

				// ACCEPT COOKIE DESCRIPTION
				$xmlText .= '<field 
				name="accept_cookies_descrpiption_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_ACCEPT_COOKIES_DESCRIPTION_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_ACCEPT_COOKIES_DESCRIPTION_LBL" 
				description="PLG_SYSTEM_CPNB_ACCEPT_COOKIES_DESCRIPTION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// DECLINE COOKIE DESCRIPTION
				$xmlText .= '<field 
				name="decline_cookies_descrpiption_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DECLINE_COOKIES_DESCRIPTION_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_DECLINE_COOKIES_DESCRIPTION_LBL" 
				description="PLG_SYSTEM_CPNB_DECLINE_COOKIES_DESCRIPTION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// SETTINGS COOKIE DESCRIPTION
				$xmlText .= '<field 
				name="settings_cookies_descrpiption_txt_'.$lang_code.'"

				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_SETTINGS_COOKIES_DESCRIPTION_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_SETTINGS_COOKIES_DESCRIPTION_LBL" 
				description="PLG_SYSTEM_CPNB_SETTINGS_COOKIES_DESCRIPTION_DESC"

				rows="6" 
				cols="50" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// PLEASE WAIT
				$xmlText .= '<field 
				name="please_wait_txt_'.$lang_code.'" 
				type="textarea" 
				default="'.JText::_('PLG_SYSTEM_CPNB_PLEASE_WAIT').'"

				label="PLG_SYSTEM_CPNB_PLEASE_WAIT_LBL" 
				description="PLG_SYSTEM_CPNB_PLEASE_WAIT_DESC" 
				rows="6" 
				cols="50" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// MINUTE
				$xmlText .= '<field 
				name="minute_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_MINUTE_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_MINUTE_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// MINUTES
				$xmlText .= '<field 
				name="minutes_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_MINUTES_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_MINUTES_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// HOUR
				$xmlText .= '<field 
				name="hour_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_HOUR_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_HOUR_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// HOURS
				$xmlText .= '<field 
				name="hours_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_HOURS_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_HOURS_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// DAY
				$xmlText .= '<field 
				name="day_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DAY_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_DAY_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// DAYS
				$xmlText .= '<field 
				name="days_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_DAYS_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_DAYS_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// MONTH
				$xmlText .= '<field 
				name="month_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_MONTH_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_MONTH_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// MONTHS
				$xmlText .= '<field 
				name="months_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_MONTHS_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_MONTHS_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// YEAR
				$xmlText .= '<field 
				name="year_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_YEAR_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_YEAR_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// YEARS
				$xmlText .= '<field 
				name="years_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_YEARS_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_YEARS_LBL" 
				description="PLG_SYSTEM_CPNB_TIME_DESC" 
				filter="raw" 
				showon="enable_shortcode_functionality:1" 
				/>';

				// FLOAT ICON BUTTON TEXT
				$xmlText .= '<field 
				name="float_icon_button_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_FLOAT_ICON_BUTTON_TEXT_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_FLOAT_ICON_BUTTON_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_FLOAT_ICON_BUTTON_TEXT_DESC" 
				filter="raw" 
				showon="modalState:1[AND]modalFloatButtonState:1" 
				/>';

				// COOKIES MANAGER HEADING TEXT
				$xmlText .= '<field 
				name="cookies_manager_heading_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_COOKIES_MANAGER_HEADING_TEXT_DEFAULT_TEXT').'"

				label="PLG_SYSTEM_CPNB_COOKIES_MANAGER_HEADING_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_COOKIES_MANAGER_HEADING_TEXT_DESC"

				filter="raw" 
				showon="modalState:1" 
				/>';

				// COOKIES CATEGORY CHECKBOX LABEL TEXT
				$xmlText .= '<field 
				name="cookies_category_checkbox_label_txt_'.$lang_code.'"

				type="text" 
				default="'.JText::_('JENABLED').'" 
				label="PLG_SYSTEM_CPNB_COOKIES_CATEGORY_CHECKBOX_LABEL_TEXT_LBL"

				description="PLG_SYSTEM_CPNB_COOKIES_CATEGORY_CHECKBOX_LABEL_TEXT_DESC"

				filter="raw" 
				showon="modalState:1" 
				/>';

				// COOKIES CATEGORY LOCKED TEXT
				$xmlText .= '<field 
				name="cookies_category_locked_txt_'.$lang_code.'" 
				type="text" 
				default="'.JText::_('PLG_SYSTEM_CPNB_COOKIES_CATEGORY_LOCKED_TEXT_DEFAULT').'"

				label="PLG_SYSTEM_CPNB_COOKIES_CATEGORY_LOCKED_TEXT_LBL" 
				description="PLG_SYSTEM_CPNB_COOKIES_CATEGORY_LOCKED_TEXT_DESC"

				filter="raw" 
				showon="modalState:1" 
				/>';

				// OLD TEXTS FOR LANGUAGES
				if (version_compare(JVERSION, '4.0', '<'))
				{
					$xmlText .= '<field 
					name="textsforlanguagesold" 
					id="textsforlanguagesold"
					type="textsforlanguagesold" 
					default="600" 
					addfieldpath="/plugins/system/cookiespolicynotificationbar/elements"
					/>';
				}

				$xmlText .= '<field type="spacer"
name="myspacer" hr="true" />';

				// closing xml file
				$xmlText .= '
						</fieldset>
					</fields>
				</form>';
				$xmlObj = new SimpleXMLElement($xmlText);
				$form->setField($xmlObj, 'params', true,
'texts_for_languages');
			}
		}

		public function getLangFormCustom404ErrorPage($form, $language_name =
"English", $lang_code = "en_GB")
		{
			if (isset($form))
			{
				// start building xml file
				$xmlText = '<?xml version="1.0"
encoding="utf-8"?>
				<form>
					<fields>
						<fieldset name="texts_for_languages_custom404errorpage"
addfieldprefix="Joomla\Component\Menus\Administrator\Field">';

				// HEADER
				$xmlText .= '<field type="langheader"
name="header_'.$lang_code.'"
class="w357_large_header"
addfieldpath="/plugins/system/custom404errorpage/elements"
lang_code="'.$lang_code.'"
language_name="'.$language_name.'" />';
				
				// LINK OR Menu Item
				$xmlText .= '<field 
				name="custom404erropage_link_type_'.$lang_code.'" 
				type="list" 
				default="core" 
				label="Error 404 page type of link" 
				description="The error 404 pages will be redirected to">
				<option value="core">Default (Joomla!
core)</option>
				<option value="menu_item">Link to a menu
item</option>
				</field>';
				// <option value="custom_link">Custom
link</option>

				// CUSTOM LINK
				$xmlText .= '<field 
				name="custom404erropage_custom_link_'.$lang_code.'"

				type="url" 
				default="404" 
				label="Custom link" 
				description="" 
				showon="custom404erropage_link_type_'.$lang_code.':custom_link"

				/>';
				
				// MENU ITEM
				$xmlText .= '<field 
				name="custom404erropage_menu_item_'.$lang_code.'" 
				type="modal_menu"
				label="Link to a menu item"
				description=""
				required="false"
				select="true"
				new="true"
				edit="true"
				clear="true"
				addfieldpath="/administrator/components/com_menus/models/fields"

				showon="custom404erropage_link_type_'.$lang_code.':menu_item"

				/>';

				// closing xml file
				$xmlText .= '
						</fieldset>
					</fields>
				</form>';
				$xmlObj = new SimpleXMLElement($xmlText);
				$form->setField($xmlObj, 'params', true,
'texts_for_languages');
			}
		}

		public function getUsersFormFieldLoginAsUser($form, $usergroup_id,
$usergroup_name)
		{
			if (isset($form))
			{
				// start building xml file
				$xmlText = '<?xml version="1.0"
encoding="utf-8"?>
				<form>
					<fields>
						<fieldset name="loginasuser"
addfieldprefix="Joomla\Component\Menus\Administrator\Field">';

				// HEADER
				$xmlText .= '<field type="header"
name="header_'.$usergroup_id.'"
class="w357_small_header"
label="'.$usergroup_name.'
('.JText::_('PLG_LOGINASUSER_USER_GROUP').')"
/>';
				
				// ENABLE/DISABLED FOR THIS USER GROUP
				$xmlText .= '<field 
				name="enable_'.$usergroup_id.'" 
				type="radio" 
				class="btn-group btn-group-yesno" 
				default="1" 
				label="PLG_LOGINASUSER_ENABLE_FOR_THIS_USERGROUP_LBL" 
				description="PLG_LOGINASUSER_ENABLE_FOR_THIS_USERGROUP_DESC">
				<option value="1">JENABLED</option>
				<option value="0">JDISABLED</option>
				</field>';

				// NOTE
				$xmlText .= '<field
name="note_'.$usergroup_id.'" type="note"
label=""
description="'.JText::_('PLG_LOGINASUSER_USER_GROUP_NOTE').'"
showon="enable_'.$usergroup_id.':1" />';

				// USERS
				$xmlText .= '<field 
				name="users_'.$usergroup_id.'" 
				type="sql" 
				label="PLG_LOGINASUSER_SELECT_ADMINS_LBL" 
				description="PLG_LOGINASUSER_SELECT_ADMINS_DESC" 
				query="SELECT u.id AS value, CONCAT(u.name, \' (\',
GROUP_CONCAT(ug.title), \')\') AS
users_'.$usergroup_id.' FROM #__users AS u LEFT JOIN
#__user_usergroup_map AS ugm ON u.id = ugm.user_id LEFT JOIN #__usergroups
AS ug ON ugm.group_id = ug.id WHERE (ug.title LIKE \'%Super
User%\' OR ug.title LIKE \'%Manager%\' OR ug.title LIKE
\'%Admin%\') GROUP BY u.id ORDER BY u.name ASC" 
				multiple="true" 
				showon="enable_'.$usergroup_id.':1"
				/>';

				$xmlText .= '<field type="spacer"
name="myspacer_'.$usergroup_id.'" hr="true"
/>';

				// closing xml file
				$xmlText .= '
						</fieldset>
					</fields>
				</form>';
				$xmlObj = new SimpleXMLElement($xmlText);
				$form->setField($xmlObj, '', true,
'permissions_for_loginasuser');
			}
		}

		public function getDefaultLanguageName()
		{
			$db = JFactory::getDBO();
			$query = "SELECT title_native "
			."FROM #__languages "
			."WHERE published = 1"
			;
			$db->setQuery($query);
			$db->execute();
	
			return $db->loadResult();
		}
		
		public function getLanguageNameByTag($tag)
		{
			$db = JFactory::getDBO();
			$query = "SELECT title_native "
			."FROM #__languages "
			."WHERE lang_code = '".$tag."' AND published =
1"
			;
			$db->setQuery($query);
			$db->execute();
			$result = $db->loadResult();
			
			// If there are more than one language
			if ($result !== null):
				return $result;
			// If there is only one language
			else:
				return $this->getDefaultLanguageName();
			endif;
	
		}
	
		public function getLanguageImage($lang_code)
		{
			$db = JFactory::getDBO();
			$query = "SELECT image "
			."FROM #__languages "
			."WHERE lang_code = '".$lang_code."' AND
published = 1"
			;
			$db->setQuery($query);
			$db->execute();
			$result = $db->loadResult();
			
			// If there are more than one language
			if ($result !== null):
				return $result;
			// If there is only one language
			else:
				return '';
			endif;
	
		}

	}
endif;PK�X�[̼��

#web357framework/web357framework.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.4" type="plugin"
group="system" method="upgrade">
	<name>PLG_SYSTEM_WEB357FRAMEWORK</name>
	<author>Web357 (Yiannis Christodoulou)</author>
	<creationDate>14-Oct-2021</creationDate>
	<copyright>Copyright (©) 2014-2022 Web357. All rights
reserved.</copyright>
	<license>GNU/GPLv3,
http://www.gnu.org/licenses/gpl-3.0.html</license>
	<authorEmail>support@web357.com</authorEmail>
	<authorUrl>https:/www.web357.com</authorUrl>
	<version>1.9.1</version>
	<variant>pro</variant>
	<description></description>

	<files>
		<folder>elements</folder>
		<folder>Web357Framework</folder>
		<filename>autoload.php</filename>
		<filename>script.install.helper.php</filename>
		<filename>web357framework.class.php</filename>
		<filename
plugin="web357framework">web357framework.php</filename>
	</files>

	<media folder="media"
destination="plg_system_web357framework">
		<folder>css</folder>
		<folder>images</folder>
		<folder>js</folder>
	</media>

	<languages folder="language">
		<language
tag="en-GB">en-GB/en-GB.plg_system_web357framework.ini</language>
		<language
tag="en-GB">en-GB/en-GB.plg_system_web357framework.sys.ini</language>
		<language
tag="de-DE">de-DE/de-DE.plg_system_web357framework.ini</language>
		<language
tag="de-DE">de-DE/de-DE.plg_system_web357framework.sys.ini</language>
		<language
tag="fr-FR">fr-FR/fr-FR.plg_system_web357framework.ini</language>
		<language
tag="fr-FR">fr-FR/fr-FR.plg_system_web357framework.sys.ini</language>
	</languages>

	<scriptfile>script.install.php</scriptfile>

	<config>
		<fields name="params">
			
			<fieldset name="basic" label="Web357 Framework -
Parameters"
addfieldpath="/plugins/system/web357framework/elements">

				<!-- API Key -->
				<field type="header"
label="W357FRM_APIKEY_HEADER" />
				<field name="apikeyinfo" type="w357note"
description="W357FRM_APIKEY_DESCRIPTION" />
				<field name="apikey" id="apikey"
type="apikey" label="" description="" />

				<!-- Version Checker -->
				<field type="header"
label="W357FRM_HEADER_VERSION_CHECK" />
				<field name="info" id="info"
type="info" extension_type="plugin"
extension_name="web357framework"
real_name="PLG_SYSTEM_WEB357FRAMEWORK"
plugin_type="system" label=""
addfieldpath="/plugins/system/web357framework/elements" />
		
			</fieldset>

			<fieldset name="about"
label="W357FRM_HEADER_ABOUT_WEB357">
				
				<!-- About Web357 -->
				<field type="header"
label="W357FRM_HEADER_ABOUT_WEB357" />
				<field name="about" id="about"
type="about" label=""
addfieldpath="/plugins/system/web357framework/elements" />
				
			</fieldset>

			<fieldset name="description"
label="W357FRM_HEADER_DESCRIPTION">

				<!-- Description -->
				<field type="header"
label="W357FRM_HEADER_DESCRIPTION" />
				<field name="description" id="description"
type="description" extension_type="plugin"
extension_name="web357framework"
real_name="PLG_SYSTEM_WEB357FRAMEWORK"
plugin_type="system" label=""
addfieldpath="/plugins/system/web357framework/elements" />
			
			</fieldset>

		</fields>
	</config>

	<updateservers><server type="extension"
priority="1" name="Web357
Framework"><![CDATA[https://updates.web357.com/web357framework/web357framework.xml]]></server></updateservers>

</extension>PK�X�[}�3�3sppagebuilder/sppagebuilder.phpnu�[���<?php

/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */
//no direct access
defined('_JEXEC') or die('restricted access');

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Language\Multilanguage;

JLoader::register('SppagebuilderHelper', JPATH_ADMINISTRATOR .
'/components/com_sppagebuilder/helpers/sppagebuilder.php');
// JLoader::register('SppagebuilderHelperIntegrations',
JPATH_ADMINISTRATOR .
'/components/com_sppagebuilder/helpers/integrations.php');

require_once JPATH_ROOT .
'/components/com_sppagebuilder/helpers/integration-helper.php';
require_once JPATH_ROOT .
'/components/com_sppagebuilder/helpers/autoload.php';
require_once JPATH_ROOT .
'/components/com_sppagebuilder/helpers/route.php';
require_once JPATH_ROOT .
'/components/com_sppagebuilder/helpers/constants.php';

BuilderAutoload::loadClasses();
BuilderAutoload::loadHelperClasses();

class  plgSystemSppagebuilder extends CMSPlugin
{

	protected $autoloadLanguage = true;

	function onBeforeRender()
	{
		$app = Factory::getApplication();

		if ($app->isClient('administrator'))
		{
			$integration = self::getIntegration();

			if (!$integration)
			{
				return;
			}

			$input = $app->input;
			$option = $input->get('option', '',
'STRING');
			$view = $input->get('view', '',
'STRING');
			$id = $input->get($integration['id_alias'], 0,
'INT');
			$layout = $input->get('layout', '',
'STRING');

			if (!($option == 'com_' . $integration['group']
&& $view == $integration['view']))
			{
				return;
			}

			SppagebuilderHelper::loadAssets('css');
			$doc = Factory::getDocument();
			$doc->addScript(Uri::root(true) .
'/plugins/system/sppagebuilder/assets/js/init.js?' .
SppagebuilderHelper::getVersion(true));

			$pagebuilder_enabled = 0;

			if ($page_content = self::getPageContent($option, $view, $id))
			{
				$page_content = ApplicationHelper::preparePageData($page_content);
				$pagebuilder_enabled = (int) $page_content->active;
			}

			$integration_element = '.adminform';

			if ($option == 'com_content')
			{
				$integration_element = '.adminform';
			}
			else if ($option == 'com_k2')
			{
				$integration_element = '.k2ItemFormEditor';
			}

			$doc->addScriptdeclaration('var
spIntergationElement="' . $integration_element .
'";');
			$doc->addScriptdeclaration('var spPagebuilderEnabled=' .
$pagebuilder_enabled . ';');
		}
		else
		{
			$input  = $app->input;
			$option = $input->get('option', '',
'STRING');
			$view   = $input->get('view', '',
'STRING');
			$task   = $input->get('task', '',
'STRING');
			$id     = $input->get('id', 0, 'INT');
			$pageName = '';

			if ($option == 'com_content' && $view ==
'article')
			{
				$pageName = "{$view}-{$id}.css";
			}
			elseif ($option == 'com_j2store' && $view ==
'products' && $task == 'view')
			{
				$pageName = "article-{$id}.css";
			}
			elseif ($option == 'com_k2' && $view ==
'item')
			{
				$pageName = "item-{$id}.css";
			}
			elseif ($option == 'com_sppagebuilder' && $view ==
'page')
			{
				$pageName = "{$view}-{$id}.css";
			}

			$file_path  = JPATH_ROOT . '/media/sppagebuilder/css/' .
$pageName;
			$file_url   = Uri::base(true) . '/media/sppagebuilder/css/' .
$pageName;

			if (file_exists($file_path))
			{
				$doc = Factory::getDocument();
				$doc->addStyleSheet($file_url);
			}
		}
	}


	function onAfterRender()
	{
		$app = Factory::getApplication();

		if ($app->isClient('administrator'))
		{
			$integration = self::getIntegration();

			if (!$integration)
			{
				return;
			}

			$input = $app->input;
			$option = $input->get('option', '',
'STRING');
			$view = $input->get('view', '',
'STRING');
			$layout = $input->get('layout', '',
'STRING');
			$id = $input->get($integration['id_alias'], 0,
'INT');

			if (!($option === 'com_' . $integration['group']
&& $view === $integration['view']))
			{
				return;
			}

			if (isset($integration['frontend_only']) &&
$integration['frontend_only'])
			{
				return;
			}

			// Page Builder state
			$pagebuilder_enabled = 0;
			$viewId = 0;
			$language = "*";

			if ($page_content = self::getPageContent($option, $view, $id))
			{
				$page_content = ApplicationHelper::preparePageData($page_content);
				$viewId = $page_content->id;
				$pagebuilder_enabled = $page_content->active;
				$language = $page_content->language;
			}

			// Add script
			$body = $app->getBody();

			$frontendEditorLink =
'index.php?option=com_sppagebuilder&view=form&tmpl=component&layout=edit&extension=com_content&extension_view=article&id='
. $viewId;
			$backendEditorLink =
'index.php?option=com_sppagebuilder&view=editor&extension=com_content&extension_view=article&article_id='
. $id . '&tmpl=component#/editor/' . $viewId;

			if ($language && $language !== '*' &&
Multilanguage::isEnabled())
			{

				$frontendEditorLink .= '&lang=' . $language;
				$backendEditorLink .= '&lang=' . $language;
			}

			$frontendEditorLink = str_replace('/administrator',
'', SppagebuilderHelperRoute::buildRoute($frontendEditorLink));

			if (!$viewId || !$pagebuilder_enabled)
			{
				$dashboardHTML = '<div class="sp-pagebuilder-alert
sp-pagebuilder-alert-info">' . Text::_('Save the article
first for getting the editor!') . '</div>';
			}
			else
			{
				$dashboardHTML = '<a href="' . $backendEditorLink .
'" target="_blank"
class="sp-pagebuilder-button-outline">Edit with Backend
Editor</a><a href="' . $frontendEditorLink .
'" target="_blank"
class="sp-pagebuilder-button">Edit with Frontend
Editor</a>';
			}

			if ($option === 'com_k2')
			{
				$body = str_replace('<div
class="k2ItemFormEditor">', '<div
class="builder-integrations"><div
class="builder-integration-toggler"><span
class="builder-integration-button
builder-integration-button-joomla" action-switch-builder
data-action="editor" role="button">Joomla
Editor</span><span class="builder-integration-button
builder-integration-button-editor" action-switch-builder
data-action="sppagebuilder" role="button">Edit with
SP Page Builder</span></div></div><div
class="builder-integration-component pagebuilder-' .
str_replace('_', '-', $option) . '"
style="display: none;"></div><div
class="k2ItemFormEditor">', $body);
			}
			else
			{
				$body = str_replace('<fieldset
class="adminform">', '<div
class="builder-integrations"><div
class="builder-integration-toggler"><span
class="builder-integration-button
builder-integration-button-joomla" action-switch-builder
data-action="editor" role="button">Joomla
Editor</span><span class="builder-integration-button
builder-integration-button-editor" action-switch-builder
data-action="sppagebuilder" role="button"><span
class="builder-svg-icon"><svg fill="none"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21
24"><path d="M17.718 13.306c.658-.668 1.814-.642 2.476 0
.677.66.655 1.747 0 2.414a43.761 43.761 0 0 1-2.11 2.04C13.586 21.77 7.932
24.178 1.77 23.977.82 23.95.019 23.223.019 22.271c0-.901.804-1.736
1.75-1.707 1.943.062 3.406-.062 5.206-.507a20.241 20.241 0 0 0
2.072-.635c.171-.062.341-.128.51-.197l.224-.098c.292-.131.584-.267.872-.408a22.872
22.872 0 0 0
3.225-1.96c.075-.054.146-.109.221-.16l-.086.066c.105-.08.21-.16.314-.244a32.013
32.013 0 0 0 1.703-1.463c.58-.533 1.137-1.09
1.688-1.652Zm-9.886-.843c.562-.292 1.1-.628 1.609-1.002a.32.32 0 0 0
.128-.258.312.312 0 0 0-.136-.253L5.411 8.123a.331.331 0 0
0-.47.092.312.312 0 0 0-.047.167l.015 4.716a.311.311 0 0 0 .127.25.33.33 0
0 0 .281.056 11.07 11.07 0 0 0 2.515-.941ZM15.356 9.699 4.213 1.39
2.806.343.27.843c-.527.879-.134 1.772.622 2.334 3.712 2.767 7.427 5.54
11.143 8.308.52.387 1.04.773 1.557 1.16.751.561 1.96.113
2.394-.612.528-.88.127-1.773-.629-2.334Z"
fill="currentColor"/><path d="M7.098 17.74c1.093-.243
2.17-.7 3.17-1.177 2.08-.988 4.007-2.41
5.444-4.184.299-.368.513-.714.513-1.207
0-.42-.192-.92-.513-1.207-.632-.565-1.871-.748-2.477 0-.55.683-1.17
1.31-1.852 1.87-.116.096-.236.191-.352.286.273-.194-.288.23 0
0-.8.564-1.635 1.072-2.526
1.495-.19.091-.381.175-.572.259-.124.054-.412.138.13-.051-.093.033-.183.073-.272.11-.277.105-.558.207-.843.298-.253.08-.512.16-.774.219-.894.197-1.504
1.251-1.224 2.101.3.908 1.19 1.4 2.148 1.189ZM2.86.38A1.753 1.753 0 0 0
1.774 0C.824 0 .023.78.023 1.707V22.22c0 .923.804 1.707 1.75 1.707.952 0
1.752-.78 1.752-1.707V.875L2.859.38Z"
fill="currentColor"/></svg></span> SP Page
Builder</span></div></div><div
class="builder-integration-component pagebuilder-' .
str_replace('_', '-', $option) . '"
style="display: none;">' . $dashboardHTML .
'</div><fieldset class="adminform">',
$body);
			}

			// Page Builder fields
			$body = str_replace('</form>', '<input
type="hidden" id="jform_attribs_sppagebuilder_content"
name="jform[attribs][sppagebuilder_content]"></form>'
. "\n", $body);
			$body = str_replace('</form>', '<input
type="hidden" id="jform_attribs_sppagebuilder_active"
name="jform[attribs][sppagebuilder_active]" value="' .
$pagebuilder_enabled . '"></form>' .
"\n", $body);

			$app->setBody($body);
		}
	}

	/**
	 * Remove the Joomla! default template styles for the editor view.
	 *
	 * @return 	void
	 * @since 	4.1.0
	 */
	public function onBeforeCompileHead()
	{
		$app = Factory::getApplication();
		$input = $app->input;
		$option = $input->get('option');
		$view = $input->get('view', 'editor');


		if ($app->isClient('administrator') && $option ===
'com_sppagebuilder' && $view === 'editor')
		{
			if (JVERSION < 4)
			{
				$headData = Factory::getDocument()->getHeadData();
				$stylesheets = $headData['styleSheets'];

				foreach ($stylesheets as $url => $value)
				{
					if (stripos($url, 'template.css') !== false)
					{
						unset($stylesheets[$url]);
					}
				}

				$headData['styleSheets'] = $stylesheets;

				Factory::getDocument()->setHeadData($headData);
			}
			else
			{
				$wa =
Factory::getApplication()->getDocument()->getWebAssetManager();
				$wa->disablePreset('template.atum.ltr');
				$wa->disablePreset('template.atum.rtl');
				$wa->disableStyle('template.atum.ltr');
				$wa->disableStyle('template.atum.rtl');
				$wa->disableStyle('template.active.language');
				$wa->disableStyle('template.user');
			}
		}
	}

	/**
	 * Enforce the application to use tmpl=component if there is not.
	 *
	 * @return	void
	 * @since 	4.1.0
	 */
	public function onAfterDispatch()
	{
		$app = Factory::getApplication();
		$input = $app->input;

		$option = $input->get('option');
		$view = $input->get('view', 'editor');
		$tmpl = $input->get('tmpl');

		if ($app->isClient('administrator') && $option ===
'com_sppagebuilder' && $view === 'editor')
		{
			if ($tmpl !== 'component')
			{
				$input->set('tmpl', 'component');
			}
		}
	}

	private static function loadPageBuilderLanguage()
	{
		$lang = Factory::getLanguage();
		$lang->load('com_sppagebuilder', JPATH_ADMINISTRATOR,
$lang->getName(), true);
		$lang->load('tpl_' . self::getTemplate(), JPATH_SITE,
$lang->getName(), true);
		require_once JPATH_ROOT .
'/administrator/components/com_sppagebuilder/helpers/language.php';
	}

	private static function getPageContent($extension =
'com_content', $extension_view = 'article', $view_id =
0)
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('id',
'text', 'content', 'active',
'language', 'version')));
		$query->from($db->quoteName('#__sppagebuilder'));
		$query->where($db->quoteName('extension') . ' =
' . $db->quote($extension));
		$query->where($db->quoteName('extension_view') . ' =
' . $db->quote($extension_view));
		$query->where($db->quoteName('view_id') . ' = '
. $view_id);
		$db->setQuery($query);
		$result = $db->loadObject();

		if ($result)
		{
			return $result;
		}

		return false;
	}

	private static function getIntegration()
	{
		$app = Factory::getApplication();
		$option = $app->input->get('option', '',
'STRING');
		$group = str_replace('com_', '', $option);
		$integrations = BuilderIntegrationHelper::getIntegrations();

		if (!isset($integrations[$group]))
		{
			return false;
		}

		$integration = $integrations[$group];
		$name = $integration['name'];
		$enabled = PluginHelper::isEnabled($group, $name);

		if ($enabled)
		{
			return $integration;
		}

		return false;
	}

	private static function getTemplate()
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('template')));
		$query->from($db->quoteName('#__template_styles'));
		$query->where($db->quoteName('client_id') . ' =
' . $db->quote(0));
		$query->where($db->quoteName('home') . ' = ' .
$db->quote(1));
		$db->setQuery($query);
		return $db->loadResult();
	}

	public function onExtensionAfterSave($option, $data)
	{
		if (($option === 'com_config.component') &&
($data->element === 'com_sppagebuilder'))
		{
			$admin_cache = JPATH_ROOT .
'/administrator/cache/sppagebuilder';

			if (\file_exists($admin_cache))
			{
				Folder::delete($admin_cache);
			}

			$site_cache = JPATH_ROOT . '/cache/sppagebuilder';

			if (\file_exists($site_cache))
			{
				Folder::delete($site_cache);
			}
		}
	}
}
PK�X�[���:sppagebuilder/assets/js/init.jsnu�[���jQuery(document).ready(function
($) {
	if (spPagebuilderEnabled) {
		$(spIntergationElement).hide();
		$(".builder-integration-component").show();
		$(".builder-integration-button-editor").addClass("is-active");
	} else {
		$(".builder-integration-component").hide();
		$(spIntergationElement).show();
		$(".builder-integration-button-joomla").addClass("is-active");
	}

	$("[action-switch-builder]").on("click", function
(event) {
		event.preventDefault();

		$("[action-switch-builder]").removeClass("is-active");
		$(this).addClass("is-active");

		var action = $(this).data("action");

		// get shared parent container
		var $container =
$(this).parent(".sp-pagebuilder-btn-group").parent();

		if (action === "editor") {
			$(".builder-integration-component").hide();
			$(spIntergationElement).show();
			$("#jform_attribs_sppagebuilder_active").val("0");

			if (typeof WFEditor !== "undefined") {
				$(".wf-editor", $container).each(function () {
					var value = this.nodeName === "TEXTAREA" ? this.value :
this.innerHTML;

					// pass content from textarea to editor
					Joomla.editors.instances[this.id].setValue(value);

					// show editor and tabs
					$(this).parent(".wf-editor-container").show();
				});
			}
		} else {
			if (typeof WFEditor !== "undefined") {
				$(".wf-editor", $container).each(function () {
					// pass content to textarea
					Joomla.editors.instances[this.id].getValue();

					// hide editor and tabs
					$(this).parent(".wf-editor-container").hide();
				});
			}

			$(spIntergationElement).hide();
			$(".builder-integration-component").show();
			$("#jform_attribs_sppagebuilder_active").val("1");
		}
	});
});
PK�X�[��asppagebuilder/sppagebuilder.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin"
group="system" method="upgrade">
    <name>System - SP PageBuilder</name>
    <author>JoomShaper.com</author>
    <creationDate>Sep 2016</creationDate>
    <copyright>Copyright (C) 2010 - 2023 JoomShaper. All rights
reserved.</copyright>
    <license>http://www.gnu.org/licenses/gpl-2.0.html GPLv2 or
later</license>
    <authorEmail>support@joomshaper.com</authorEmail>
    <authorUrl>www.joomshaper.com</authorUrl>
    <version>5.0.9</version>
    <description>SP Page Builder System plugin to add support for 3rd
party components</description>

    <files>
		<filename
plugin="sppagebuilder">sppagebuilder.php</filename>
        <folder
plugin="sppagebuilder">assets</folder>
    </files>
</extension>
PK�X�[���3sppagebuilderproupdater/sppagebuilderproupdater.phpnu�[���<?php
/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/

use Joomla\CMS\Factory;
use Joomla\Registry\Registry;
use Joomla\CMS\Plugin\CMSPlugin;

//no direct access
defined ('_JEXEC') or die ('restricted access');
class  plgSystemSppagebuilderproupdater extends CMSPlugin
{

    public function onExtensionAfterSave($option, $data)
    {

        if ( ($option == 'com_config.component') && (
$data->element == 'com_sppagebuilder' ) )
        {
            $params = new Registry;
            $params->loadString($data->params);
            
            $email       = $params->get('joomshaper_email');
            $license_key =
$params->get('joomshaper_license_key');
            $url         = $params->get('updater',
'');

            $fields      = array();
            
            $db          = Factory::getDbo();

            if (!empty($email) and !empty($license_key))
            {
                $extra_query = 'joomshaper_email=' .
urlencode($email);
                $extra_query .='&amp;joomshaper_license_key='
. urlencode($license_key);
                
                $fields = array(
                    $db->quoteName('extra_query') .
'=' . $db->quote($extra_query),
                    $db->quoteName('last_check_timestamp') .
'=0'
                );              
            }

            if (!empty($url))
            {
                array_push($fields, $db->quoteName('location')
. '=' . $db->quote($url));
            }

            //Update column values of #__update_sites table after extension
is saved.
            $db    = Factory::getDbo();
            $query = $db->getQuery(true)
                       
->update($db->quoteName('#__update_sites'))
                        ->set($fields)
                        ->where($db->quoteName('name') .
'=' . $db->quote('SP Page Builder'));
            $db->setQuery($query);
            $db->execute();   
        }
    }
}PK�X�[
LN��3sppagebuilderproupdater/sppagebuilderproupdater.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin"
group="system" method="upgrade">
    <name>System - SP Page Builder Pro Updater</name>
    <author>JoomShaper.com</author>
    <creationDate>Jul 2015</creationDate>
    <copyright>Copyright (c) 2010 - 2023 JoomShaper. All rights
reserved.</copyright>
    <license>http://www.gnu.org/licenses/gpl-2.0.html GPLv2 or
later</license>
    <authorEmail>support@joomshaper.com</authorEmail>
    <authorUrl>www.joomshaper.com</authorUrl>
    <version>5.0.9</version>
    <description>SP Page Builder Pro Updater
Plugin</description>

    <files>
        <filename
plugin="sppagebuilderproupdater">sppagebuilderproupdater.php</filename>
    </files>
</extension>
PK�X�[L�^��/�/actionlogs/actionlogs.phpnu�[���PK�X�[���
0actionlogs/actionlogs.xmlnu�[���PK�X�[��<__]5actionlogs/forms/actionlogs.xmlnu�[���PK�X�[�����
9actionlogs/forms/information.xmlnu�[���PK�X�[�i8�;;'�:advancedtemplates/advancedtemplates.phpnu�[���PK�X�[Л?}}'|Fadvancedtemplates/advancedtemplates.xmlnu�[���PK�X�[���ZBBGPOadvancedtemplates/language/ar-AA/ar-AA.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K	Uadvancedtemplates/language/ar-AA/ar-AA.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���ZBBGXadvancedtemplates/language/ar-SA/ar-SA.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�]advancedtemplates/language/ar-SA/ar-SA.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��tddG�`advancedtemplates/language/az-AZ/az-AZ.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�fadvancedtemplates/language/az-AZ/az-AZ.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���G�iadvancedtemplates/language/bg-BG/bg-BG.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��Kpadvancedtemplates/language/bg-BG/bg-BG.plg_system_advancedtemplates.sys.ininu�[���PK�X�[ˬfhhGsadvancedtemplates/language/bn-BD/bn-BD.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�xadvancedtemplates/language/bn-BD/bn-BD.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���8##G|advancedtemplates/language/bs-BA/bs-BA.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/bs-BA/bs-BA.plg_system_advancedtemplates.sys.ininu�[���PK�X�[#1?Z88G��advancedtemplates/language/ca-ES/ca-ES.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��Kk�advancedtemplates/language/ca-ES/ca-ES.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��3�TTG�advancedtemplates/language/cs-CZ/cs-CZ.plg_system_advancedtemplates.ininu�[���PK�X�[zb1@��KJ�advancedtemplates/language/cs-CZ/cs-CZ.plg_system_advancedtemplates.sys.ininu�[���PK�X�[vi�llGg�advancedtemplates/language/da-DK/da-DK.plg_system_advancedtemplates.ininu�[���PK�X�[��
=��KJ�advancedtemplates/language/da-DK/da-DK.plg_system_advancedtemplates.sys.ininu�[���PK�X�[����Gj�advancedtemplates/language/de-DE/de-DE.plg_system_advancedtemplates.ininu�[���PK�X�[�_i]��Kf�advancedtemplates/language/de-DE/de-DE.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�]\$��G{�advancedtemplates/language/el-GR/el-GR.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/el-GR/el-GR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�LM0G��advancedtemplates/language/en-GB/en-GB.plg_system_advancedtemplates.ininu�[���PK�X�[}~ؼ��K=�advancedtemplates/language/en-GB/en-GB.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��ԓDDGK�advancedtemplates/language/es-CL/es-CL.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�advancedtemplates/language/es-CL/es-CL.plg_system_advancedtemplates.sys.ininu�[���PK�X�["^�$eeG�advancedtemplates/language/es-ES/es-ES.plg_system_advancedtemplates.ininu�[���PK�X�[�@���K��advancedtemplates/language/es-ES/es-ES.plg_system_advancedtemplates.sys.ininu�[���PK�X�[C$�[[G#�advancedtemplates/language/et-EE/et-EE.plg_system_advancedtemplates.ininu�[���PK�X�[���%��K��advancedtemplates/language/et-EE/et-EE.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���WWG�advancedtemplates/language/fa-IR/fa-IR.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/fa-IR/fa-IR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[ї�7>>G�advancedtemplates/language/fi-FI/fi-FI.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/fi-FI/fi-FI.plg_system_advancedtemplates.sys.ininu�[���PK�X�[Z,d���G��advancedtemplates/language/fr-FR/fr-FR.plg_system_advancedtemplates.ininu�[���PK�X�[؀K���K��advancedtemplates/language/fr-FR/fr-FR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�����G��advancedtemplates/language/hi-IN/hi-IN.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K&�advancedtemplates/language/hi-IN/hi-IN.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�4N�))G:�advancedtemplates/language/hr-HR/hr-HR.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�advancedtemplates/language/hr-HR/hr-HR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[j,SBBG�advancedtemplates/language/hu-HU/hu-HU.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�advancedtemplates/language/hu-HU/hu-HU.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��5$$G�
advancedtemplates/language/id-ID/id-ID.plg_system_advancedtemplates.ininu�[���PK�X�[[]����KVadvancedtemplates/language/id-ID/id-ID.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�22G[advancedtemplates/language/it-IT/it-IT.plg_system_advancedtemplates.ininu�[���PK�X�[R�z#��Kadvancedtemplates/language/it-IT/it-IT.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�@�Gadvancedtemplates/language/ja-JP/ja-JP.plg_system_advancedtemplates.ininu�[���PK�X�[Ձh_��K�"advancedtemplates/language/ja-JP/ja-JP.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���VVG�%advancedtemplates/language/lt-LT/lt-LT.plg_system_advancedtemplates.ininu�[���PK�X�[�꿴�K�+advancedtemplates/language/lt-LT/lt-LT.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�i�=??G�.advancedtemplates/language/nb-NO/nb-NO.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��Ke4advancedtemplates/language/nb-NO/nb-NO.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�T�YYGy7advancedtemplates/language/nl-BE/nl-BE.plg_system_advancedtemplates.ininu�[���PK�X�[?bg��KI=advancedtemplates/language/nl-BE/nl-BE.plg_system_advancedtemplates.sys.ininu�[���PK�X�[x��eLLG\@advancedtemplates/language/nl-NL/nl-NL.plg_system_advancedtemplates.ininu�[���PK�X�[���KFadvancedtemplates/language/nl-NL/nl-NL.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��CSMMG9Iadvancedtemplates/language/pl-PL/pl-PL.plg_system_advancedtemplates.ininu�[���PK�X�[r_�4��K�Nadvancedtemplates/language/pl-PL/pl-PL.plg_system_advancedtemplates.sys.ininu�[���PK�X�[I
�zzGRadvancedtemplates/language/pt-BR/pt-BR.plg_system_advancedtemplates.ininu�[���PK�X�[C�����K�Wadvancedtemplates/language/pt-BR/pt-BR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�SXD??G[advancedtemplates/language/pt-PT/pt-PT.plg_system_advancedtemplates.ininu�[���PK�X�[+�+@��K�`advancedtemplates/language/pt-PT/pt-PT.plg_system_advancedtemplates.sys.ininu�[���PK�X�[n�x##G�cadvancedtemplates/language/ro-RO/ro-RO.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�iadvancedtemplates/language/ro-RO/ro-RO.plg_system_advancedtemplates.sys.ininu�[���PK�X�[!���RRG�ladvancedtemplates/language/ru-RU/ru-RU.plg_system_advancedtemplates.ininu�[���PK�X�[���S��K]sadvancedtemplates/language/ru-RU/ru-RU.plg_system_advancedtemplates.sys.ininu�[���PK�X�[����TTG�vadvancedtemplates/language/sk-SK/sk-SK.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��Kb|advancedtemplates/language/sk-SK/sk-SK.plg_system_advancedtemplates.sys.ininu�[���PK�X�[u�++Gvadvancedtemplates/language/sl-SI/sl-SI.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K�advancedtemplates/language/sl-SI/sl-SI.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�]V�55G,�advancedtemplates/language/sr-RS/sr-RS.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K؍advancedtemplates/language/sr-RS/sr-RS.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��`55G�advancedtemplates/language/sr-YU/sr-YU.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/sr-YU/sr-YU.plg_system_advancedtemplates.sys.ininu�[���PK�X�[��--G��advancedtemplates/language/sv-SE/sv-SE.plg_system_advancedtemplates.ininu�[���PK�X�[D0�a��KP�advancedtemplates/language/sv-SE/sv-SE.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�EЧ�Gf�advancedtemplates/language/th-TH/th-TH.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K��advancedtemplates/language/th-TH/th-TH.plg_system_advancedtemplates.sys.ininu�[���PK�X�[Q�qc~~G��advancedtemplates/language/tr-TR/tr-TR.plg_system_advancedtemplates.ininu�[���PK�X�[A�Ӥ��K��advancedtemplates/language/tr-TR/tr-TR.plg_system_advancedtemplates.sys.ininu�[���PK�X�[�kC�77G��advancedtemplates/language/uk-UA/uk-UA.plg_system_advancedtemplates.ininu�[���PK�X�[�9z���KU�advancedtemplates/language/uk-UA/uk-UA.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���OOG�advancedtemplates/language/vi-VN/vi-VN.plg_system_advancedtemplates.ininu�[���PK�X�[}~ؼ��KE�advancedtemplates/language/vi-VN/vi-VN.plg_system_advancedtemplates.sys.ininu�[���PK�X�[4�SR��GS�advancedtemplates/language/zh-CN/zh-CN.plg_system_advancedtemplates.ininu�[���PK�X�[�!0�zzK��advancedtemplates/language/zh-CN/zh-CN.plg_system_advancedtemplates.sys.ininu�[���PK�X�[���

G��advancedtemplates/language/zh-TW/zh-TW.plg_system_advancedtemplates.ininu�[���PK�X�[�Ս$��K1�advancedtemplates/language/zh-TW/zh-TW.plg_system_advancedtemplates.sys.ininu�[���PK�X�[	��JzYzY+E�advancedtemplates/script.install.helper.phpnu�[���PK�X�[�
x���$2advancedtemplates/script.install.phpnu�[���PK�X�[�$��"f8advancedtemplates/src/Document.phpnu�[���PK�X�[������
�Uadvancedtemplates/src/Params.phpnu�[���PK�X�[��Ͳ�%�Xadvancedtemplates/vendor/autoload.phpnu�[���PK�X�[?�6H��7�Yadvancedtemplates/vendor/composer/autoload_classmap.phpnu�[���PK�X�[�-�z��9�Zadvancedtemplates/vendor/composer/autoload_namespaces.phpnu�[���PK�X�[������3�[advancedtemplates/vendor/composer/autoload_psr4.phpnu�[���PK�X�[��yW��3]advancedtemplates/vendor/composer/autoload_real.phpnu�[���PK�X�[Zj��5ocadvancedtemplates/vendor/composer/autoload_static.phpnu�[���PK�X�[f�p�,�,1�fadvancedtemplates/vendor/composer/ClassLoader.phpnu�[���PK�X�[D�hp0�advancedtemplates/vendor/composer/installed.jsonnu�[���PK�X�[
�..)h�advancedtemplates/vendor/composer/LICENSEnu�[���PK�X�[�k��--#�autocloseticket/autocloseticket.phpnu�[���PK�X�[���??#o�autocloseticket/autocloseticket.xmlnu�[���PK�X�[Y�wppp�cache/cache.phpnu�[���PK�X�[
�耮���cache/cache.xmlnu�[���PK�X�[����	�	��custom_price/custom_price.phpnu�[���PK�X�[�����custom_price/custom_price.xmlnu�[���PK�X�[�#o,,��custom_price/index.htmlnu�[���PK�X�[�_�u��;�debug/debug.phpnu�[���PK�X�[�ۢ__��debug/debug.xmlnu�[���PK�X�[
�H''&*�dojoloader/dojo/1.6.1/dijit/index.htmlnu�[���PK�X�[��[��	�	4��dojoloader/dojo/1.6.1/dijit/tree/ForestStoreModel.jsnu�[���PK�X�[
�H''+��dojoloader/dojo/1.6.1/dijit/tree/index.htmlnu�[���PK�X�[jp���2f�dojoloader/dojo/1.6.1/dijit/tree/TreeStoreModel.jsnu�[���PK�X�[1�		1Z�dojoloader/dojo/1.6.1/dijit/tree/_dndContainer.jsnu�[���PK�X�[g6�""""0��dojoloader/dojo/1.6.1/dijit/tree/_dndSelector.jsnu�[���PK�X�[�r�z����#Ndojoloader/dojo/1.6.1/dijit/Tree.jsnu�[���PK�X�[���PNN**�dojoloader/dojo/1.6.1/dijit/_base/focus.jsnu�[���PK�X�[
�H'',��dojoloader/dojo/1.6.1/dijit/_base/index.htmlnu�[���PK�X�[n��U��,U�dojoloader/dojo/1.6.1/dijit/_base/manager.jsnu�[���PK�X�[/:��
�
*x�dojoloader/dojo/1.6.1/dijit/_base/place.jsnu�[���PK�X�[�����*�dojoloader/dojo/1.6.1/dijit/_base/popup.jsnu�[���PK�X�[E���+�dojoloader/dojo/1.6.1/dijit/_base/scroll.jsnu�[���PK�X�[���``*�dojoloader/dojo/1.6.1/dijit/_base/sniff.jsnu�[���PK�X�[��{��.tdojoloader/dojo/1.6.1/dijit/_base/typematic.jsnu�[���PK�X�[�z��(�+dojoloader/dojo/1.6.1/dijit/_base/wai.jsnu�[���PK�X�[�rn��+3dojoloader/dojo/1.6.1/dijit/_base/window.jsnu�[���PK�X�[���ss$5dojoloader/dojo/1.6.1/dijit/_base.jsnu�[���PK�X�[��ĕff)�7dojoloader/dojo/1.6.1/dijit/_Contained.jsnu�[���PK�X�[�0��)�;dojoloader/dojo/1.6.1/dijit/_Container.jsnu�[���PK�X�[�eqQQ-�Adojoloader/dojo/1.6.1/dijit/_CssStateMixin.jsnu�[���PK�X�[m>����)oMdojoloader/dojo/1.6.1/dijit/_Templated.jsnu�[���PK�X�[|ͫpkk&d^dojoloader/dojo/1.6.1/dijit/_Widget.jsnu�[���PK�X�[���499*%ndojoloader/dojo/1.6.1/dijit/_WidgetBase.jsnu�[���PK�X�[�z��-��dojoloader/dojo/1.6.1/dojo/AdapterRegistry.jsnu�[���PK�X�[�P�

#ȋdojoloader/dojo/1.6.1/dojo/cache.jsnu�[���PK�X�[�)���$(�dojoloader/dojo/1.6.1/dojo/cookie.jsnu�[���PK�X�[
�H''*�dojoloader/dojo/1.6.1/dojo/data/index.htmlnu�[���PK�X�[�N�)!5!54��dojoloader/dojo/1.6.1/dojo/data/ItemFileReadStore.jsnu�[���PK�X�[�`F�UU.�dojoloader/dojo/1.6.1/dojo/data/util/filter.jsnu�[���PK�X�[
�H''/��dojoloader/dojo/1.6.1/dojo/data/util/index.htmlnu�[���PK�X�[k�s!!3U�dojoloader/dojo/1.6.1/dojo/data/util/simpleFetch.jsnu�[���PK�X�[�i���.��dojoloader/dojo/1.6.1/dojo/data/util/sorter.jsnu�[���PK�X�[
�H''*��dojoloader/dojo/1.6.1/dojo/date/index.htmlnu�[���PK�X�[]A���(_�dojoloader/dojo/1.6.1/dojo/date/stamp.jsnu�[���PK�X�[�@18*c�dojoloader/dojo/1.6.1/dojo/DeferredList.jsnu�[���PK�X�[�����(��dojoloader/dojo/1.6.1/dojo/dnd/common.jsnu�[���PK�X�[�8��66+�dojoloader/dojo/1.6.1/dojo/dnd/Container.jsnu�[���PK�X�[
�H'')��dojoloader/dojo/1.6.1/dojo/dnd/index.htmlnu�[���PK�X�[R΁�f�f"-dojoloader/dojo/1.6.1/dojo/dojo.jsnu�[���PK�X�[PA����'gdojoloader/dojo/1.6.1/dojo/fx/easing.jsnu�[���PK�X�[
�H''(�sdojoloader/dojo/1.6.1/dojo/fx/index.htmlnu�[���PK�X�[�}!�$$(htdojoloader/dojo/1.6.1/dojo/fx/Toggler.jsnu�[���PK�X�[�$


�xdojoloader/dojo/1.6.1/dojo/fx.jsnu�[���PK�X�[
�H''%A�dojoloader/dojo/1.6.1/dojo/index.htmlnu�[���PK�X�[��m��$��dojoloader/dojo/1.6.1/dojo/parser.jsnu�[���PK�X�[�E@�		$
�dojoloader/dojo/1.6.1/dojo/regexp.jsnu�[���PK�X�[��И�&g�dojoloader/dojo/1.6.1/dojo/Stateful.jsnu�[���PK�X�[b4�ϴ�$U�dojoloader/dojo/1.6.1/dojo/string.jsnu�[���PK�X�[�&�
��#]�dojoloader/dojo/1.6.1/dojo/uacss.jsnu�[���PK�X�[����
�
$�dojoloader/dojo/1.6.1/dojo/window.jsnu�[���PK�X�[
�H''+��dojoloader/dojo/1.6.1/dojo/_base/index.htmlnu�[���PK�X�[
�H''3�dojoloader/dojo/1.6.1/dojo/_base/_loader/index.htmlnu�[���PK�X�[Iݮ���8��dojoloader/dojo/1.6.1/dojo/_base/_loader/loader_debug.jsnu�[���PK�X�[�qa,oJoJ.��dojoloader/dojo/1.6.1/dojo/_firebug/firebug.jsnu�[���PK�X�[
�H''.�dojoloader/dojo/1.6.1/dojo/_firebug/index.htmlnu�[���PK�X�[
�H''
<dojoloader/dojo/1.6.1/index.htmlnu�[���PK�X�[
�H''�dojoloader/dojo/index.htmlnu�[���PK�X�[A�@��$dojoloader/dojoloader.phpnu�[���PK�X�[��l���!dojoloader/dojoloader.xmlnu�[���PK�X�[/6�

F$dojoloader/loader.phpnu�[���PK�X�[��5��
�=dump/dump.phpnu�[���PK�X�[�j���
�Ldump/dump.xmlnu�[���PK�X�[��c
3
3�Ofields/fields.phpnu�[���PK�X�[���K''$�fields/fields.xmlnu�[���PK�X�[�dq�����gantry5/fields/warning.phpnu�[���PK�X�[��x��U�U��gantry5/gantry5.phpnu�[���PK�X�[�T������gantry5/gantry5.xmlnu�[���PK�X�[�H��7�gantry5/language/en-GB/en-GB.plg_system_gantry5.sys.ininu�[���PK�X�[|����	gantry5/MD5SUMSnu�[���PK�X�[rwxI''%*	hdpreplyviaemail/hdpreplyviaemail.phpnu�[���PK�X�[
a�1U
U
%�*	hdpreplyviaemail/hdpreplyviaemail.xmlnu�[���PK�X�[����}}"45	hdpreplyviaemail/lib/composer.jsonnu�[���PK�X�[�����"6	hdpreplyviaemail/lib/composer.locknu�[���PK�X�[Ά�f��(I	hdpreplyviaemail/lib/vendor/autoload.phpnu�[���PK�X�[�����:)J	hdpreplyviaemail/lib/vendor/composer/autoload_classmap.phpnu�[���PK�X�[ܛ'?��</K	hdpreplyviaemail/lib/vendor/composer/autoload_namespaces.phpnu�[���PK�X�[����CC69L	hdpreplyviaemail/lib/vendor/composer/autoload_psr4.phpnu�[���PK�X�[���WW6�M	hdpreplyviaemail/lib/vendor/composer/autoload_real.phpnu�[���PK�X�[5�LUU8�U	hdpreplyviaemail/lib/vendor/composer/autoload_static.phpnu�[���PK�X�[Q�YP6P64\Z	hdpreplyviaemail/lib/vendor/composer/ClassLoader.phpnu�[���PK�X�[.�q##3�	hdpreplyviaemail/lib/vendor/composer/installed.jsonnu�[���PK�X�[�P�[CC,��	hdpreplyviaemail/lib/vendor/composer/LICENSEnu�[���PK�X�[%$(�,�,�55�	hdpreplyviaemail/lib/vendor/ddeboer/imap/CHANGELOG.mdnu�[���PK�X�[~�6L6�B
hdpreplyviaemail/lib/vendor/ddeboer/imap/composer.jsonnu�[���PK�X�[�s��EE0CH
hdpreplyviaemail/lib/vendor/ddeboer/imap/LICENSEnu�[���PK�X�[�@�H*H*2�L
hdpreplyviaemail/lib/vendor/ddeboer/imap/README.mdnu�[���PK�X�[8B!��;�w
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Connection.phpnu�[���PK�X�[�	�M��D�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/ConnectionInterface.phpnu�[���PK�X�[�`�J44L�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/AbstractException.phpnu�[���PK�X�[�>��Xǟ
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/AuthenticationFailedException.phpnu�[���PK�X�[2�Ŏ�Q�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/CreateMailboxException.phpnu�[���PK�X�[�+��Q�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/DeleteMailboxException.phpnu�[���PK�X�[��@���Q�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapFetchbodyException.phpnu�[���PK�X�[�=����S�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapFetchheaderException.phpnu�[���PK�X�[;=�U��T$�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapGetmailboxesException.phpnu�[���PK�X�[e
�W��M9�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapMsgnoException.phpnu�[���PK�X�[�����N@�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapNumMsgException.phpnu�[���PK�X�[�/uъ�MI�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapQuotaException.phpnu�[���PK�X�[x����NP�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ImapStatusException.phpnu�[���PK�X�[�å%��UY�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidDateHeaderException.phpnu�[���PK�X�[�7��Rp�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidHeadersException.phpnu�[���PK�X�[ӸHh��S��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidResourceException.phpnu�[���PK�X�[��]��Y��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/InvalidSearchCriteriaException.phpnu�[���PK�X�[����W��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MailboxDoesNotExistException.phpnu�[���PK�X�[�4Cq��Oί
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageCopyException.phpnu�[���PK�X�[ݓ#���Qٰ
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageDeleteException.phpnu�[���PK�X�[H�s��W�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageDoesNotExistException.phpnu�[���PK�X�[Q���O�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageMoveException.phpnu�[���PK�X�[��U>��T�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageStructureException.phpnu�[���PK�X�[#����S#�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/MessageUndeleteException.phpnu�[���PK�X�[����V6�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/NotEmbeddedMessageException.phpnu�[���PK�X�[��OO�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/OutOfBoundsException.phpnu�[���PK�X�[_�٨��QZ�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ReopenMailboxException.phpnu�[���PK�X�[I�ܕ�Xi�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/ResourceCheckFailureException.phpnu�[���PK�X�[x����V��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/UnexpectedEncodingException.phpnu�[���PK�X�[	e=h��V��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Exception/UnsupportedCharsetException.phpnu�[���PK�X�[�N�
�
=��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/ImapResource.phpnu�[���PK�X�[�!��QQF��
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/ImapResourceInterface.phpnu�[���PK�X�[�7Y�*%*%8y�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Mailbox.phpnu�[���PK�X�[�&T��A�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/MailboxInterface.phpnu�[���PK�X�[�w�\\HG�
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.phpnu�[���PK�X�[VW��5�5Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AbstractPart.phpnu�[���PK�X�[�%�8##C[Phdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Attachment.phpnu�[���PK�X�[Y�a���L�Vhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.phpnu�[���PK�X�[�
+��N�Yhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.phpnu�[���PK�X�[u
ڧE�ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmailAddress.phpnu�[���PK�X�[���Hwlhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.phpnu�[���PK�X�[��w��Q~shdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessageInterface.phpnu�[���PK�X�[�U&t��@�thdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Headers.phpnu�[���PK�X�[W����C�{hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Parameters.phpnu�[���PK�X�[M�^�

F�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/PartInterface.phpnu�[���PK�X�[̇�g��C��hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/SimplePart.phpnu�[���PK�X�[4���<�<C��hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message/Transcoder.phpnu�[���PK�X�[h"��E'E'8��hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Message.phpnu�[���PK�X�[���F

A��hdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageInterface.phpnu�[���PK�X�[��ĵFF@<�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageIterator.phpnu�[���PK�X�[��٪��I�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.phpnu�[���PK�X�[۶1�DHhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/AbstractDate.phpnu�[���PK�X�[)g��D;	hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/AbstractText.phpnu�[���PK�X�[6tDDJ@
hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/ConditionInterface.phpnu�[���PK�X�[&��\��C�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/Before.phpnu�[���PK�X�[U��W��?Bhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/On.phpnu�[���PK�X�[�䷅��Bxhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Date/Since.phpnu�[���PK�X�[��i
��A�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/Bcc.phpnu�[���PK�X�[�G���@!hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/Cc.phpnu�[���PK�X�[��|���B�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/From.phpnu�[���PK�X�[oV���@�hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Email/To.phpnu�[���PK�X�[�Ԍ��E@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Answered.phpnu�[���PK�X�[�h���D�!hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Flagged.phpnu�[���PK�X�[IC���C�#hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Recent.phpnu�[���PK�X�[��KJ��A5&hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Seen.phpnu�[���PK�X�[�dq���Go(hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unanswered.phpnu�[���PK�X�[������F�*hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unflagged.phpnu�[���PK�X�[�ȕS��C7-hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Flag/Unseen.phpnu�[���PK�X�[/J���K}/hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/All.phpnu�[���PK�X�[��T�1hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.phpnu�[���PK�X�[���99Ec7hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/RawExpression.phpnu�[���PK�X�[!����E:hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Deleted.phpnu�[���PK�X�[,�嵩�Hm<hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/NewMessage.phpnu�[���PK�X�[����A�>hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Old.phpnu�[���PK�X�[�^
��G�@hdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/State/Undeleted.phpnu�[���PK�X�[��^��A�Bhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Body.phpnu�[���PK�X�[�9���D>Ehdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Keyword.phpnu�[���PK�X�[iY5���D�Ghdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Subject.phpnu�[���PK�X�[,���A�Ihdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Text.phpnu�[���PK�X�[`5���F$Lhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Search/Text/Unkeyword.phpnu�[���PK�X�[2�{//A�Nhdpreplyviaemail/lib/vendor/ddeboer/imap/src/SearchExpression.phpnu�[���PK�X�[��cc7,Shdpreplyviaemail/lib/vendor/ddeboer/imap/src/Server.phpnu�[���PK�X�[����hh@�bhdpreplyviaemail/lib/vendor/ddeboer/imap/src/ServerInterface.phpnu�[���PK�X�[��9��H�dhdpreplyviaemail/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.phpnu�[���PK�X�[�⸁D�fhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/.gitignorenu�[���PK�X�[��`���Enghdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/.travis.ymlnu�[���PK�X�[
O�G�hhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/composer.jsonnu�[���PK�X�[�g����IQlhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/CONTRIBUTING.mdnu�[���PK�X�[���iiA�qhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/LICENSEnu�[���PK�X�[��_��J�vhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/phpunit.xml.distnu�[���PK�X�[�))C�yhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/README.mdnu�[���PK�X�[�"e��J?�hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/autoload.phpnu�[���PK�X�[N���XA�hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Email.phpnu�[���PK�X�[폲�NNcБhdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/EmailReplyParser.phpnu�[���PK�X�[�3K?��[��hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Fragment.phpnu�[���PK�X�[q-H��e*�hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Parser/EmailParser.phpnu�[���PK�X�[��w>��e��hdpreplyviaemail/lib/vendor/willdurand/email-reply-parser/src/EmailReplyParser/Parser/FragmentDTO.phpnu�[���PK�X�[E
�II��highlight/highlight.phpnu�[���PK�X�[�D-�KK3�highlight/highlight.xmlnu�[���PK�X�[D~�2gg+��hikamarketoverrides/hikamarketoverrides.phpnu�[���PK�X�[F����+��hikamarketoverrides/hikamarketoverrides.xmlnu�[���PK�X�[�#o,,��hikamarketoverrides/index.htmlnu�[���PK�X�[-�e		?E�hikashopaddreservationsession/hikashopaddreservationsession.phpnu�[���PK�X�[��<<?��hikashopaddreservationsession/hikashopaddreservationsession.xmlnu�[���PK�X�[�#o,,(h�hikashopaddreservationsession/index.htmlnu�[���PK�X�[�sg�pp_�hikashopaddreservationsession/language/en-GB/en-GB.plg_system_hikashopaddreservationsession.ininu�[���PK�X�[�sg�ppc�hikashopaddreservationsession/language/en-GB/en-GB.plg_system_hikashopaddreservationsession.sys.ininu�[���PK�X�[�#o,,7�hikashopaddreservationsession/language/en-GB/index.htmlnu�[���PK�X�[�#o,,1��hikashopaddreservationsession/language/index.htmlnu�[���PK�X�[a��@�@'�hikashopaffiliate/hikashopaffiliate.phpnu�[���PK�X�[��<���'<
hikashopaffiliate/hikashopaffiliate.xmlnu�[���PK�X�[�#o,,E
hikashopaffiliate/index.htmlnu�[���PK�X�[�p��]�]'zE
hikashopanalytics/hikashopanalytics.phpnu�[���PK�X�[�m3IOO'��
hikashopanalytics/hikashopanalytics.xmlnu�[���PK�X�[�#o,,Z�
hikashopanalytics/index.htmlnu�[���PK�X�[�[��
�
+ҿ
hikashopgeolocation/hikashopgeolocation.phpnu�[���PK�X�[��h-::+��
hikashopgeolocation/hikashopgeolocation.xmlnu�[���PK�X�[�i7�GG6~�
hikashopgeolocation/hikashopgeolocation_restricted.phpnu�[���PK�X�[�#o,,+�
hikashopgeolocation/index.htmlnu�[���PK�X�[����c�c)��
hikashopmassaction/hikashopmassaction.phpnu�[���PK�X�[�K�X��)�Zhikashopmassaction/hikashopmassaction.xmlnu�[���PK�X�[�#o,,q^hikashopmassaction/index.htmlnu�[���PK�X�[N"��#�^hikashoppayment/hikashoppayment.phpnu�[���PK�X�[���h��#�ohikashoppayment/hikashoppayment.xmlnu�[���PK�X�[�#o,,�shikashoppayment/index.htmlnu�[���PK�X�[���r33/'thikashopproductinsert/hikashopproductinsert.phpnu�[���PK�X�[���!/��hikashopproductinsert/hikashopproductinsert.xmlnu�[���PK�X�[N�i��4�hikashopproductinsert/hikashopproductinsert_view.phpnu�[���PK�X�[�#o,,
0�hikashopproductinsert/index.htmlnu�[���PK�X�[G>Xz�&�&)��hikashopproducttag/hikashopproducttag.phpnu�[���PK�X�[�`�A��)��hikashopproducttag/hikashopproducttag.xmlnu�[���PK�X�[�#o,,l�hikashopproducttag/index.htmlnu�[���PK�X�[����=��hikashopregistrationredirect/hikashopregistrationredirect.phpnu�[���PK�X�[U���=�hikashopregistrationredirect/hikashopregistrationredirect.xmlnu�[���PK�X�[�#o,,'Zhikashopregistrationredirect/index.htmlnu�[���PK�X�[j��E77+�hikashopremarketing/hikashopremarketing.phpnu�[���PK�X�[�/Ȝ�+ohikashopremarketing/hikashopremarketing.xmlnu�[���PK�X�[�#o,,f#hikashopremarketing/index.htmlnu�[���PK�X�[�y��MM!�#hikashopsocial/hikashopsocial.phpnu�[���PK�X�[����6�6!Mqhikashopsocial/hikashopsocial.xmlnu�[���PK�X�[�#o,,��hikashopsocial/index.htmlnu�[���PK�X�[n�_�\�\�hikashopuser/hikashopuser.phpnu�[���PK�X�[ʧ����hikashopuser/hikashopuser.xmlnu�[���PK�X�[�#o,,�hikashopuser/index.htmlnu�[���PK�X�[�"_��=Olanguagecode/language/en-GB/en-GB.plg_system_languagecode.ininu�[���PK�X�[��3���Aelanguagecode/language/en-GB/en-GB.plg_system_languagecode.sys.ininu�[���PK�X�[2���`languagecode/languagecode.phpnu�[���PK�X�[��}�"languagecode/languagecode.xmlnu�[���PK�X�[g
�ɚb�b!$'languagefilter/languagefilter.phpnu�[���PK�X�[ցq��!�languagefilter/languagefilter.xmlnu�[���PK�X�[�!F��log/log.phpnu�[���PK�X�[��;��D�log/log.xmlnu�[���PK�X�[�V�!>�loginasuser/assets/css/index.htmlnu�[���PK�X�[����&��loginasuser/assets/css/loginasuser.cssnu�[���PK�X�[�V��loginasuser/assets/index.htmlnu�[���PK�X�[$�
���5W�loginasuser/assets/js/loginasuser-communitybuilder.jsnu�[���PK�X�[�~�
�
-N�loginasuser/assets/js/loginasuser-hikashop.jsnu�[���PK�X�[�-f�GG,��loginasuser/assets/js/loginasuser-j2store.jsnu�[���PK�X�[l>�
�
1/�loginasuser/assets/js/loginasuser-osmembership.jsnu�[���PK�X�[�y����.2�loginasuser/assets/js/loginasuser-phocacart.jsnu�[���PK�X�[��33/��loginasuser/assets/js/loginasuser-virtuemart.jsnu�[���PK�X�[]��##-�loginasuser/com_users_helper_files/index.htmlnu�[���PK�X�[Q�T?>��loginasuser/com_users_helper_files/joomla_com_users/common.phpnu�[���PK�X�[�v�gg?�loginasuser/com_users_helper_files/joomla_com_users/default.phpnu�[���PK�X�[4rqq<�loginasuser/com_users_helper_files/joomla_com_users/edit.phpnu�[���PK�X�[���G�loginasuser/com_users_helper_files/joomla_com_users/j3-default-edit.phpnu�[���PK�X�[�
D��'�'BWloginasuser/com_users_helper_files/joomla_com_users/j3-default.phpnu�[���PK�X�[j��~~G�Eloginasuser/com_users_helper_files/joomla_com_users/j4-default-edit.phpnu�[���PK�X�[��I�IB�Yloginasuser/com_users_helper_files/joomla_com_users/j4-default.phpnu�[���PK�X�[�V��loginasuser/elements/index.htmlnu�[���PK�X�[��.�ww,��loginasuser/elements/loginasuserinaction.phpnu�[���PK�X�[������"Z�loginasuser/elements/w357frmrk.phpnu�[���PK�X�[U�Ls��.��loginasuser/elements/web357frameworkstatus.phpnu�[���PK�X�[]��##��loginasuser/index.htmlnu�[���PK�X�[N�s��;�loginasuser/language/en-GB/en-GB.plg_system_loginasuser.ininu�[���PK�X�[�@e��?R�loginasuser/language/en-GB/en-GB.plg_system_loginasuser.sys.ininu�[���PK�X�[�V�%��loginasuser/language/en-GB/index.htmlnu�[���PK�X�[�V�&�loginasuser/language/index.htmlnu�[���PK�X�[�V�%��loginasuser/language/nl-NL/index.htmlnu�[���PK�X�[�M�j��;�loginasuser/language/nl-NL/nl-NL.plg_system_loginasuser.ininu�[���PK�X�[穤�?�loginasuser/language/nl-NL/nl-NL.plg_system_loginasuser.sys.ininu�[���PK�X�[ےf�MUMU��loginasuser/loginasuser.phpnu�[���PK�X�[�U���
6loginasuser/loginasuser.xmlnu�[���PK�X�[?p|�-=-=%�Tloginasuser/script.install.helper.phpnu�[���PK�X�[��)�zz��loginasuser/script.install.phpnu�[���PK�X�[k�G�
�
I�logout/logout.phpnu�[���PK�X�[�H{�$$Y�logout/logout.xmlnu�[���PK�X�[,I�����logrotation/logrotation.phpnu�[���PK�X�[`���DD��logrotation/logrotation.xmlnu�[���PK�X�[�#o,,'�mijo_redirect/index.htmlnu�[���PK�X�[��HH��mijo_redirect/mijo_redirect.phpnu�[���PK�X�[_��!��2�mijo_redirect/mijo_redirect.xmlnu�[���PK�X�[�#o,,#`�module_permission/fields/index.htmlnu�[���PK�X�[�#o,,��module_permission/index.htmlnu�[���PK�X�[^]K���GW�module_permission/language/en-GB/en-GB.plg_system_module_permission.ininu�[���PK�X�[^]K���KZ�module_permission/language/en-GB/en-GB.plg_system_module_permission.sys.ininu�[���PK�X�[�#o,,+a�module_permission/language/en-GB/index.htmlnu�[���PK�X�[�#o,,%��module_permission/language/index.htmlnu�[���PK�X�[�sL�
�
'i�module_permission/module_permission.phpnu�[���PK�X�[3�SG]]'��module_permission/module_permission.xmlnu�[���PK�X�[�#o,,"4module_permission/rules/index.htmlnu�[���PK�X�[�#o,,�nossloutsidecheckout/index.htmlnu�[���PK�X�[�;s�;;--nossloutsidecheckout/nossloutsidecheckout.phpnu�[���PK�X�[����hh-�
nossloutsidecheckout/nossloutsidecheckout.xmlnu�[���PK�X�[��:�'�'�notifly/notifly.phpnu�[���PK�X�[�vVLeec;notifly/notifly.xmlnu�[���PK�X�[�����!?offlajnparams/compat/greensock.jsnu�[���PK�X�[�V�y�offlajnparams/compat/index.htmlnu�[���PK�X�[�V�5��offlajnparams/compat/libraries/coomla/html/index.htmlnu�[���PK�X�[w8g�aaIk�offlajnparams/compat/libraries/coomla/html/parameter/element/calendar.phpnu�[���PK�X�[5_���IE�offlajnparams/compat/libraries/coomla/html/parameter/element/category.phpnu�[���PK�X�[����
�
Q�offlajnparams/compat/libraries/coomla/html/parameter/element/componentlayouts.phpnu�[���PK�X�[�)E}��Q+offlajnparams/compat/libraries/coomla/html/parameter/element/contentlanguages.phpnu�[���PK�X�[3
bH�offlajnparams/compat/libraries/coomla/html/parameter/element/editors.phpnu�[���PK�X�[A�M$		I&offlajnparams/compat/libraries/coomla/html/parameter/element/filelist.phpnu�[���PK�X�[���&K�&offlajnparams/compat/libraries/coomla/html/parameter/element/folderlist.phpnu�[���PK�X�[�}����J�/offlajnparams/compat/libraries/coomla/html/parameter/element/helpsites.phpnu�[���PK�X�[W
m�..G7offlajnparams/compat/libraries/coomla/html/parameter/element/hidden.phpnu�[���PK�X�[n�T~J�?offlajnparams/compat/libraries/coomla/html/parameter/element/imagelist.phpnu�[���PK�X�[�V�G�Eofflajnparams/compat/libraries/coomla/html/parameter/element/index.htmlnu�[���PK�X�[[N���JFFofflajnparams/compat/libraries/coomla/html/parameter/element/languages.phpnu�[���PK�X�[8?���E�Mofflajnparams/compat/libraries/coomla/html/parameter/element/list.phpnu�[���PK�X�[�e٘�E�Vofflajnparams/compat/libraries/coomla/html/parameter/element/menu.phpnu�[���PK�X�[��

I^offlajnparams/compat/libraries/coomla/html/parameter/element/menuitem.phpnu�[���PK�X�[��$��
�
N�nofflajnparams/compat/libraries/coomla/html/parameter/element/modulelayouts.phpnu�[���PK�X�[�_��%%I�yofflajnparams/compat/libraries/coomla/html/parameter/element/password.phpnu�[���PK�X�[�)�F}�offlajnparams/compat/libraries/coomla/html/parameter/element/radio.phpnu�[���PK�X�[b��44G�offlajnparams/compat/libraries/coomla/html/parameter/element/spacer.phpnu�[���PK�X�[���R55D��offlajnparams/compat/libraries/coomla/html/parameter/element/sql.phpnu�[���PK�X�[D�(>O	O	NY�offlajnparams/compat/libraries/coomla/html/parameter/element/templatestyle.phpnu�[���PK�X�[bl����E&�offlajnparams/compat/libraries/coomla/html/parameter/element/text.phpnu�[���PK�X�[+_jwwI-�offlajnparams/compat/libraries/coomla/html/parameter/element/textarea.phpnu�[���PK�X�[R�22J�offlajnparams/compat/libraries/coomla/html/parameter/element/timezones.phpnu�[���PK�X�[i	0��J��offlajnparams/compat/libraries/coomla/html/parameter/element/usergroup.phpnu�[���PK�X�[��@,YY@9�offlajnparams/compat/libraries/coomla/html/parameter/element.phpnu�[���PK�X�[�V�?�offlajnparams/compat/libraries/coomla/html/parameter/index.htmlnu�[���PK�X�[��_�0�08��offlajnparams/compat/libraries/coomla/html/parameter.phpnu�[���PK�X�[�V�0�offlajnparams/compat/libraries/coomla/index.htmlnu�[���PK�X�[�V�:#offlajnparams/compat/libraries/coomla/utilities/index.htmlnu�[���PK�X�[l*AF�U�U=�offlajnparams/compat/libraries/coomla/utilities/simplexml.phpnu�[���PK�X�[r�a��
�
>�bofflajnparams/compat/libraries/coomla/utilities/xmlelement.phpnu�[���PK�X�[Л9�00-Uqofflajnparams/compat/libraries/html5/Data.phpnu�[���PK�X�[
�H''/�offlajnparams/compat/libraries/html5/index.htmlnu�[���PK�X�[�LC++4h�offlajnparams/compat/libraries/html5/InputStream.phpnu�[���PK�X�[em˴˴C�offlajnparams/compat/libraries/html5/named-character-references.sernu�[���PK�X�[�+'i��/$hofflajnparams/compat/libraries/html5/parser.phpnu�[���PK�X�[
�=���2pofflajnparams/compat/libraries/html5/Tokenizer.phpnu�[���PK�X�[͘Í����4Zofflajnparams/compat/libraries/html5/TreeBuilder.phpnu�[���PK�X�[�V�)D�offlajnparams/compat/libraries/index.htmlnu�[���PK�X�[&{�K����offlajnparams/formrenderer.phpnu�[���PK�X�[-0�����offlajnparams/generalinfo.phpnu�[���PK�X�[�НGWW��offlajnparams/imageuploader.phpnu�[���PK�X�[e,fC��o�offlajnparams/importexport.phpnu�[���PK�X�[
�H''�offlajnparams/index.htmlnu�[���PK�X�[^���ZZ��offlajnparams/manifest.xmlnu�[���PK�X�[�Ƣ�&&��offlajnparams/menuloader.phpnu�[���PK�X�[�%		%�offlajnparams/offlajnjoomlacompat.phpnu�[���PK�X�[�1s�:�:Oofflajnparams/offlajnparams.phpnu�[���PK�X�[/2�//bTofflajnparams/offlajnparams.xmlnu�[���PK�X�[�I
$$�Yofflajnparams/relatednews.phpnu�[���PK�X�[���VooQ^offlajnparams/tab15.tpl.phpnu�[���PK�X�[���r\\cofflajnparams/tab16.tpl.phpnu�[���PK�X�[	�Ǖ��hp3p/p3p.phpnu�[���PK�X�[0Z�EE�lp3p/p3p.xmlnu�[���PK�X�[T�x�
�
 qprivacyconsent/field/privacy.phpnu�[���PK�X�[VZ�0�{privacyconsent/privacyconsent/privacyconsent.xmlnu�[���PK�X�[X��MM!b~privacyconsent/privacyconsent.phpnu�[���PK�X�[�m|�a
a
!��privacyconsent/privacyconsent.xmlnu�[���PK�X�[1�r��x�redirect/form/excludes.xmlnu�[���PK�X�[�xp%p%��redirect/redirect.phpnu�[���PK�X�[�uuMredirect/redirect.xmlnu�[���PK�X�[�#o,,	reds_redirect/index.htmlnu�[���PK�X�[�*�>>{	reds_redirect/reds_redirect.phpnu�[���PK�X�[��B��reds_redirect/reds_redirect.xmlnu�[���PK�X�[&����;4regularlabs/language/ar-AA/ar-AA.plg_system_regularlabs.ininu�[���PK�X�[�t�uu?��regularlabs/language/ar-AA/ar-AA.plg_system_regularlabs.sys.ininu�[���PK�X�[������;��regularlabs/language/ar-SA/ar-SA.plg_system_regularlabs.ininu�[���PK�X�[�t�uu?�/regularlabs/language/ar-SA/ar-SA.plg_system_regularlabs.sys.ininu�[���PK�X�[������;p2regularlabs/language/bg-BG/bg-BG.plg_system_regularlabs.ininu�[���PK�X�[|Yx,��?o�regularlabs/language/bg-BG/bg-BG.plg_system_regularlabs.sys.ininu�[���PK�X�[�'���;��regularlabs/language/ca-ES/ca-ES.plg_system_regularlabs.ininu�[���PK�X�[I}<Obb?�Q
regularlabs/language/ca-ES/ca-ES.plg_system_regularlabs.sys.ininu�[���PK�X�[h�	܆܆;�T
regularlabs/language/cs-CZ/cs-CZ.plg_system_regularlabs.ininu�[���PK�X�[�6�l��?�
regularlabs/language/cs-CZ/cs-CZ.plg_system_regularlabs.sys.ininu�[���PK�X�[�7�v����;�
regularlabs/language/da-DK/da-DK.plg_system_regularlabs.ininu�[���PK�X�[�E��bb?b!regularlabs/language/da-DK/da-DK.plg_system_regularlabs.sys.ininu�[���PK�X�[9��O�O�;�d!regularlabs/language/de-DE/de-DE.plg_system_regularlabs.ininu�[���PK�X�[/�\Loo?��!regularlabs/language/de-DE/de-DE.plg_system_regularlabs.sys.ininu�[���PK�X�[�܄�]�]�;��!regularlabs/language/el-GR/el-GR.plg_system_regularlabs.ininu�[���PK�X�[�����?O�"regularlabs/language/el-GR/el-GR.plg_system_regularlabs.sys.ininu�[���PK�X�[������;S�"regularlabs/language/en-GB/en-GB.plg_system_regularlabs.ininu�[���PK�X�[�E|i__?�#regularlabs/language/en-GB/en-GB.plg_system_regularlabs.sys.ininu�[���PK�X�[����;�#regularlabs/language/es-ES/es-ES.plg_system_regularlabs.ininu�[���PK�X�[�r�kk?��#regularlabs/language/es-ES/es-ES.plg_system_regularlabs.sys.ininu�[���PK�X�[�%I��{�{;y�#regularlabs/language/et-EE/et-EE.plg_system_regularlabs.ininu�[���PK�X�[ZЁ%__?�$regularlabs/language/et-EE/et-EE.plg_system_regularlabs.sys.ininu�[���PK�X�[�H�:����;k$regularlabs/language/fa-IR/fa-IR.plg_system_regularlabs.ininu�[���PK�X�[s�7���?��$regularlabs/language/fa-IR/fa-IR.plg_system_regularlabs.sys.ininu�[���PK�X�[������;��$regularlabs/language/fr-FR/fr-FR.plg_system_regularlabs.ininu�[���PK�X�[�=����?�>%regularlabs/language/fr-FR/fr-FR.plg_system_regularlabs.sys.ininu�[���PK�X�[���Ӊ���;�A%regularlabs/language/hr-HR/hr-HR.plg_system_regularlabs.ininu�[���PK�X�[�3dd?��%regularlabs/language/hr-HR/hr-HR.plg_system_regularlabs.sys.ininu�[���PK�X�[�W�~i�i�;r�%regularlabs/language/hu-HU/hu-HU.plg_system_regularlabs.ininu�[���PK�X�[�b��nn?FH&regularlabs/language/hu-HU/hu-HU.plg_system_regularlabs.sys.ininu�[���PK�X�[IH2����;#K&regularlabs/language/id-ID/id-ID.plg_system_regularlabs.ininu�[���PK�X�[T��mm?�&regularlabs/language/id-ID/id-ID.plg_system_regularlabs.sys.ininu�[���PK�X�[j���
�
�;��&regularlabs/language/it-IT/it-IT.plg_system_regularlabs.ininu�[���PK�X�[��oo?lS'regularlabs/language/it-IT/it-IT.plg_system_regularlabs.sys.ininu�[���PK�X�[
��\ʖʖ;JV'regularlabs/language/ja-JP/ja-JP.plg_system_regularlabs.ininu�[���PK�X�[z+���?�'regularlabs/language/ja-JP/ja-JP.plg_system_regularlabs.sys.ininu�[���PK�X�[�|�
��;s�'regularlabs/language/lt-LT/lt-LT.plg_system_regularlabs.ininu�[���PK�X�[fo·ff?�v(regularlabs/language/lt-LT/lt-LT.plg_system_regularlabs.sys.ininu�[���PK�X�[���N��;�y(regularlabs/language/nb-NO/nb-NO.plg_system_regularlabs.ininu�[���PK�X�[�!�mm?�(regularlabs/language/nb-NO/nb-NO.plg_system_regularlabs.sys.ininu�[���PK�X�[��&�&�;�(regularlabs/language/nl-BE/nl-BE.plg_system_regularlabs.ininu�[���PK�X�[ҫ��ee?|�)regularlabs/language/nl-BE/nl-BE.plg_system_regularlabs.sys.ininu�[���PK�X�[3�ݙ����;P�)regularlabs/language/nl-NL/nl-NL.plg_system_regularlabs.ininu�[���PK�X�[�9ܾkk?V*regularlabs/language/nl-NL/nl-NL.plg_system_regularlabs.sys.ininu�[���PK�X�[r����;0*regularlabs/language/pl-PL/pl-PL.plg_system_regularlabs.ininu�[���PK�X�[����pp?��*regularlabs/language/pl-PL/pl-PL.plg_system_regularlabs.sys.ininu�[���PK�X�[ȶN%����;j�*regularlabs/language/pt-BR/pt-BR.plg_system_regularlabs.ininu�[���PK�X�[=�P[hh?y+regularlabs/language/pt-BR/pt-BR.plg_system_regularlabs.sys.ininu�[���PK�X�[O��Xw�w�;P+regularlabs/language/ro-RO/ro-RO.plg_system_regularlabs.ininu�[���PK�X�[�y�cc?2�+regularlabs/language/ro-RO/ro-RO.plg_system_regularlabs.sys.ininu�[���PK�X�[�
��I�I�;�+regularlabs/language/ru-RU/ru-RU.plg_system_regularlabs.ininu�[���PK�X�[c���?�e,regularlabs/language/ru-RU/ru-RU.plg_system_regularlabs.sys.ininu�[���PK�X�[�a����;�h,regularlabs/language/sk-SK/sk-SK.plg_system_regularlabs.ininu�[���PK�X�[$[L�ii?��,regularlabs/language/sk-SK/sk-SK.plg_system_regularlabs.sys.ininu�[���PK�X�[������;��,regularlabs/language/sl-SI/sl-SI.plg_system_regularlabs.ininu�[���PK�X�[d�ll?�u-regularlabs/language/sl-SI/sl-SI.plg_system_regularlabs.sys.ininu�[���PK�X�[g�8�8�;�x-regularlabs/language/sv-SE/sv-SE.plg_system_regularlabs.ininu�[���PK�X�[�P+gg?{�-regularlabs/language/sv-SE/sv-SE.plg_system_regularlabs.sys.ininu�[���PK�X�[za����;Q�-regularlabs/language/th-TH/th-TH.plg_system_regularlabs.ininu�[���PK�X�[=�}���?̥.regularlabs/language/th-TH/th-TH.plg_system_regularlabs.sys.ininu�[���PK�X�[`�0��;�.regularlabs/language/tr-TR/tr-TR.plg_system_regularlabs.ininu�[���PK�X�[�!Q���?25/regularlabs/language/tr-TR/tr-TR.plg_system_regularlabs.sys.ininu�[���PK�X�[�F��H�H�;&8/regularlabs/language/uk-UA/uk-UA.plg_system_regularlabs.ininu�[���PK�X�[�K���?��/regularlabs/language/uk-UA/uk-UA.plg_system_regularlabs.sys.ininu�[���PK�X�[O�p�*u*u;��/regularlabs/language/zh-CN/zh-CN.plg_system_regularlabs.ininu�[���PK�X�[UA�^^?ig0regularlabs/language/zh-CN/zh-CN.plg_system_regularlabs.sys.ininu�[���PK�X�[EfС�|�|;6j0regularlabs/language/zh-TW/zh-TW.plg_system_regularlabs.ininu�[���PK�X�[1�Dvcc?<�0regularlabs/language/zh-TW/zh-TW.plg_system_regularlabs.sys.ininu�[���PK�X�[�G��ii�0regularlabs/regularlabs.phpnu�[���PK�X�[���rr�0regularlabs/regularlabs.xmlnu�[���PK�X�[�tYtY%1regularlabs/script.install.helper.phpnu�[���PK�X�[.���FFH`1regularlabs/script.install.phpnu�[���PK�X�[4��
���d1regularlabs/src/AdminMenu.phpnu�[���PK�X�[\�quu�q1regularlabs/src/Application.phpnu�[���PK�X�[�i�����y1regularlabs/src/DownloadKey.phpnu�[���PK�X�[Ƙ��w1regularlabs/src/Params.phpnu�[���PK�X�[��{T����1regularlabs/src/QuickPage.phpnu�[���PK�X�[�.��
��1regularlabs/src/SearchHelper.phpnu�[���PK�X�[�]Tز���1regularlabs/vendor/autoload.phpnu�[���PK�X�[?�6H��1��1regularlabs/vendor/composer/autoload_classmap.phpnu�[���PK�X�[�-�z��3��1regularlabs/vendor/composer/autoload_namespaces.phpnu�[���PK�X�[���r��-��1regularlabs/vendor/composer/autoload_psr4.phpnu�[���PK�X�[ԩ�:��-™1regularlabs/vendor/composer/autoload_real.phpnu�[���PK�X�[�	���/�1regularlabs/vendor/composer/autoload_static.phpnu�[���PK�X�[f�p�,�,+e�1regularlabs/vendor/composer/ClassLoader.phpnu�[���PK�X�[D�hp*��1regularlabs/vendor/composer/installed.jsonnu�[���PK�X�[
�..#��1regularlabs/vendor/composer/LICENSEnu�[���PK�X�[w��
�
l�1remember/remember.phpnu�[���PK�X�[M��))E�1remember/remember.xmlnu�[���PK�X�[�#o,,��1rsmembership/index.htmlnu�[���PK�X�[�^-�1�1&�1rsmembership/rsmembership.phpnu�[���PK�X�[Q^���o2rsmembership/rsmembership.xmlnu�[���PK�X�[�#o,,�2rsmembershipwire/index.htmlnu�[���PK�X�[
O���%,2rsmembershipwire/rsmembershipwire.phpnu�[���PK�X�[
���%l12rsmembershipwire/rsmembershipwire.xmlnu�[���PK�X�[�#o,,�52rsticketspro/index.htmlnu�[���PK�X�[��3:62rsticketspro/rsticketspro.phpnu�[���PK�X�[�ؒ����R2rsticketspro/rsticketspro.xmlnu�[���PK�X�[���ii'�V2rsticketspro/rsticketspro_anonymise.xmlnu�[���PK�X�[s�3?��SX2sef/sef.phpnu�[���PK�X�[N
c4AA#u2sef/sef.xmlnu�[���PK�X�[_պ����y2sessiongc/sessiongc.phpnu�[���PK�X�[o���		��2sessiongc/sessiongc.xmlnu�[���PK�X�[�2smartslider3/index.htmlnu�[���PK�X�[ɜ�%%K�2smartslider3/smartslider3.phpnu�[���PK�X�[f袯���2smartslider3/smartslider3.xmlnu�[���PK�X�[�V�&��2smsnotificationforrstickets/index.htmlnu�[���PK�X�[
c]][.�2smsnotificationforrstickets/language/en-GB/en-GB.plg_system_smsnotificationforrstickets.ininu�[���PK�X�[�*�HH_�2smsnotificationforrstickets/language/en-GB/en-GB.plg_system_smsnotificationforrstickets.sys.ininu�[���PK�X�[�V�5�2smsnotificationforrstickets/language/en-GB/index.htmlnu�[���PK�X�[�9_g��[q�2smsnotificationforrstickets/language/fa-IR/fa-IR.plg_system_smsnotificationforrstickets.ininu�[���PK�X�[/�O_��2smsnotificationforrstickets/language/fa-IR/fa-IR.plg_system_smsnotificationforrstickets.sys.ininu�[���PK�X�[�V�51�2smsnotificationforrstickets/language/fa-IR/index.htmlnu�[���PK�X�[�V�/��2smsnotificationforrstickets/language/index.htmlnu�[���PK�X�[V]��!�!;3�2smsnotificationforrstickets/smsnotificationforrstickets.phpnu�[���PK�X�[�Q�W��;}�2smsnotificationforrstickets/smsnotificationforrstickets.xmlnu�[���PK�X�[�6�I��w�2stats/field/base.phpnu�[���PK�X�[=�ؙ����2stats/field/data.phpnu�[���PK�X�[G�����2stats/field/uniqueid.phpnu�[���PK�X�[������2stats/layouts/field/data.phpnu�[���PK�X�[CT�^		
�2stats/layouts/field/uniqueid.phpnu�[���PK�X�[9�^f3stats/layouts/message.phpnu�[���PK�X�[�oss�	3stats/layouts/stats.phpnu�[���PK�X�[�:'�1�1�
3stats/stats.phpnu�[���PK�X�[O����?3stats/stats.xmlnu�[���PK�X�[��ހzz/UG3ticketfromcontactform/ticketfromcontactform.phpnu�[���PK�X�[�H/.O3ticketfromcontactform/ticketfromcontactform.xmlnu�[���PK�X�[k���2�S3updatenotification/postinstall/updatecachetime.phpnu�[���PK�X�[��c-c-)�Y3updatenotification/updatenotification.phpnu�[���PK�X�[�2��[[)I�3updatenotification/updatenotification.xmlnu�[���PK�X�[�#o,,��3vm_redirect/index.htmlnu�[���PK�X�[o��k��o�3vm_redirect/vm_redirect.phpnu�[���PK�X�[�4i���q�3vm_redirect/vm_redirect.xmlnu�[���PK�X�[{=������3web357framework/autoload.phpnu�[���PK�X�[|
���"��3web357framework/elements/about.phpnu�[���PK�X�[\P�ww#��3web357framework/elements/apikey.phpnu�[���PK�X�[�
�OŇŇ7\�3web357framework/elements/assets/json/_web357-items.jsonnu�[���PK�X�[#�����+�b7web357framework/elements/checkextension.phpnu�[���PK�X�[	�Az�S�S(�i7web357framework/elements/description.phpnu�[���PK�X�[��LD		,�7web357framework/elements/elements_helper.phpnu�[���PK�X�[�ԪA

#J�7web357framework/elements/header.phpnu�[���PK�X�[�#o,,#��7web357framework/elements/index.htmlnu�[���PK�X�[v���__!<�7web357framework/elements/info.phpnu�[���PK�X�['�g��&��7web357framework/elements/jedreview.phpnu�[���PK�X�[��`��)�7web357framework/elements/k2categories.phpnu�[���PK�X�[o+*«�.�7web357framework/elements/loadmodalbehavior.phpnu�[���PK�X�[{��
�
'#�7web357framework/elements/profeature.phpnu�[���PK�X�[��JJ)y8web357framework/elements/vmcategories.phpnu�[���PK�X�[�J��,8web357framework/elements/vmmanufacturers.phpnu�[���PK�X�[���nn%^8web357framework/elements/w357note.phpnu�[���PK�X�[z�5=5=)!8web357framework/script.install.helper.phpnu�[���PK�X�[�
���"�T8web357framework/script.install.phpnu�[���PK�X�[y��_�_-�Z8web357framework/Web357Framework/Functions.phpnu�[���PK�X�[���%%%%2Һ8web357framework/Web357Framework/VersionChecker.phpnu�[���PK�X�[D"'h�4�4)Y�8web357framework/web357framework.class.phpnu�[���PK�X�[6�5��#^9web357framework/web357framework.phpnu�[���PK�X�[̼��

#ɽ9web357framework/web357framework.xmlnu�[���PK�X�[}�3�3#�9sppagebuilder/sppagebuilder.phpnu�[���PK�X�[���:�9sppagebuilder/assets/js/init.jsnu�[���PK�X�[��a�:sppagebuilder/sppagebuilder.xmlnu�[���PK�X�[���3?	:sppagebuilderproupdater/sppagebuilderproupdater.phpnu�[���PK�X�[
LN��3�:sppagebuilderproupdater/sppagebuilderproupdater.xmlnu�[���PKC#�: