Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
PKh{�[����
'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();
}
}
}
PKh{�[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>
PKh{�[�כ�>>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"
PKh{�[�ȯ��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"
PKh{�[��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"
PKh{�[�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"
PKh{�[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"
PKh{�[�����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"
PKh{�[�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"
PKh{�[ܡ�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"
PKh{�[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"
PKh{�[ɺ�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"
PKh{�[*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"
PKh{�[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"
PKh{�[%(+�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"
PKh{�[���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"
PKh{�[�+�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"
PKh{�[���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"
PKh{�[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"
PKh{�[���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"
PKh{�[���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"
PKh{�[���
��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ė"
PKh{�[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"
PKh{�[���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"
PKh{�[�;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"
PKh{�[��*`��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"
PKh{�[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"
PKh{�[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"
PKh{�[{�${@@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"
PKh{�[���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"
PKh{�[�����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"
PKh{�[���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"
PKh{�[��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"
PKh{�[�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"
PKh{�[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ı"
PKh{�[�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"
PKh{�[:���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"
PKh{�[���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"
PKh{�[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"
PKh{�[���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"
PKh{�[~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="模板文件"
PKh{�[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="高级模板管理器"
PKh{�[+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);
}
}
PKh{�[��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');
}
}
PKh{�[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);
}
}
PKh{�[�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>
PKh{�[����
'advancedtemplates/advancedtemplates.phpnu�[���PKh{�[YOm�kk'aadvancedtemplates/advancedtemplates.xmlnu�[���PKh{�[�כ�>>J#advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.ininu�[���PKh{�[�ȯ��N�!advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[��6VVJ�$advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.ininu�[���PKh{�[�5J��N�,advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[l�?���J�/advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.ininu�[���PKh{�[�����N�7advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[�4�J�:advancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.ininu�[���PKh{�[ܡ�f��N�Badvancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[RR�ܣ�J�Eadvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.ininu�[���PKh{�[ɺ�N�Madvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[*0���J�Padvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.ininu�[���PKh{�[0(s{��NPYadvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[%(+�BBJ�\advancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N<dadvancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[�+�55JRgadvancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��Noadvancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[8�L��Jradvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N+zadvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[���OOJA}advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���
��N
�advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[n��yQQJ)�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[�;e�llJ
�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.ininu�[���PKh{�[��*`��N�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[m0�aaJ�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.ininu�[���PKh{�[M�6`��N�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[{�${@@J�advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N°advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[�����Jسadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N�advancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[��88J/�advancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.ininu�[���PKh{�[�8�|��N��advancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[am���J��advancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.ininu�[���PKh{�[�uD��NL�advancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[:���J��advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N��advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[j���PPJ��advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.ininu�[���PKh{�[���e��N��advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[~G����J��advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.ininu�[���PKh{�[iV�;N�advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.sys.ininu�[���PKh{�[+B��}Y}Y+�advancedtemplates/script.install.helper.phpnu�[���PKh{�[��c�QQ$�Oadvancedtemplates/script.install.phpnu�[���PKh{�[l���s�s�Sjoomla/joomla.phpnu�[���PKh{�[�TM�11��joomla/joomla.xmlnu�[���PK..9�