feat(deployed): add mod_login2 3.0.0 (no-source, vetted live)
mod_login2 module (mislabeled Joomla! Project); unmapped -> deployed files. Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
This commit is contained in:
parent
c555d00bfc
commit
a9429be422
75
deployed/mod_login2/modules/mod_login2/helper.php
Normal file
75
deployed/mod_login2/modules/mod_login2/helper.php
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Site
|
||||||
|
* @subpackage mod_login
|
||||||
|
*
|
||||||
|
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper for mod_login
|
||||||
|
*
|
||||||
|
* @since 1.5
|
||||||
|
*/
|
||||||
|
class ModLoginHelper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Retrieve the URL where the user should be returned after logging in
|
||||||
|
*
|
||||||
|
* @param \Joomla\Registry\Registry $params module parameters
|
||||||
|
* @param string $type return type
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getReturnUrl($params, $type)
|
||||||
|
{
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$item = $app->getMenu()->getItem($params->get($type));
|
||||||
|
|
||||||
|
// Stay on the same page
|
||||||
|
$url = JUri::getInstance()->toString();
|
||||||
|
|
||||||
|
if ($item)
|
||||||
|
{
|
||||||
|
$lang = '';
|
||||||
|
|
||||||
|
if ($item->language !== '*' && JLanguageMultilang::isEnabled())
|
||||||
|
{
|
||||||
|
$lang = '&lang=' . $item->language;
|
||||||
|
}
|
||||||
|
|
||||||
|
$url = 'index.php?Itemid=' . $item->id . $lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base64_encode($url);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current users type
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getType()
|
||||||
|
{
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
|
||||||
|
return (!$user->get('guest')) ? 'logout' : 'login';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get list of available two factor methods
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @deprecated 4.0 Use JAuthenticationHelper::getTwoFactorMethods() instead.
|
||||||
|
*/
|
||||||
|
public static function getTwoFactorMethods()
|
||||||
|
{
|
||||||
|
JLog::add(__METHOD__ . ' is deprecated, use JAuthenticationHelper::getTwoFactorMethods() instead.', JLog::WARNING, 'deprecated');
|
||||||
|
|
||||||
|
return JAuthenticationHelper::getTwoFactorMethods();
|
||||||
|
}
|
||||||
|
}
|
||||||
29
deployed/mod_login2/modules/mod_login2/mod_login.php
Normal file
29
deployed/mod_login2/modules/mod_login2/mod_login.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Site
|
||||||
|
* @subpackage mod_login
|
||||||
|
*
|
||||||
|
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
// Include the login functions only once
|
||||||
|
JLoader::register('ModLoginHelper', __DIR__ . '/helper.php');
|
||||||
|
|
||||||
|
$params->def('greeting', 1);
|
||||||
|
|
||||||
|
$type = ModLoginHelper::getType();
|
||||||
|
$return = ModLoginHelper::getReturnUrl($params, $type);
|
||||||
|
$twofactormethods = JAuthenticationHelper::getTwoFactorMethods();
|
||||||
|
$user = JFactory::getUser();
|
||||||
|
$layout = $params->get('layout', 'default');
|
||||||
|
|
||||||
|
// Logged users must load the logout sublayout
|
||||||
|
if (!$user->guest)
|
||||||
|
{
|
||||||
|
$layout .= '_logout';
|
||||||
|
}
|
||||||
|
|
||||||
|
require JModuleHelper::getLayoutPath('mod_login', $layout);
|
||||||
169
deployed/mod_login2/modules/mod_login2/mod_login.xml
Normal file
169
deployed/mod_login2/modules/mod_login2/mod_login.xml
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<extension type="module" version="3.1" client="site" method="upgrade">
|
||||||
|
<name>mod_login2</name>
|
||||||
|
<author>Joomla! Project</author>
|
||||||
|
<creationDate>July 2006</creationDate>
|
||||||
|
<copyright>Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.</copyright>
|
||||||
|
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||||
|
<authorEmail>admin@joomla.org</authorEmail>
|
||||||
|
<authorUrl>www.joomla.org</authorUrl>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
<description>MOD_LOGIN_XML_DESCRIPTION</description>
|
||||||
|
<files>
|
||||||
|
<filename module="mod_login2">mod_login.php</filename>
|
||||||
|
<folder>tmpl</folder>
|
||||||
|
<filename>helper.php</filename>
|
||||||
|
</files>
|
||||||
|
<languages>
|
||||||
|
<language tag="en-GB">en-GB.mod_login2.ini</language>
|
||||||
|
<language tag="en-GB">en-GB.mod_login2.sys.ini</language>
|
||||||
|
</languages>
|
||||||
|
<help key="JHELP_EXTENSIONS_MODULE_MANAGER_LOGIN" />
|
||||||
|
<config>
|
||||||
|
<fields name="params">
|
||||||
|
<fieldset name="basic"
|
||||||
|
addfieldpath="/administrator/components/com_menus/models/fields"
|
||||||
|
>
|
||||||
|
<field
|
||||||
|
name="pretext"
|
||||||
|
type="textarea"
|
||||||
|
label="MOD_LOGIN_FIELD_PRE_TEXT_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_PRE_TEXT_DESC"
|
||||||
|
filter="safehtml"
|
||||||
|
cols="30"
|
||||||
|
rows="5"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="posttext"
|
||||||
|
type="textarea"
|
||||||
|
label="MOD_LOGIN_FIELD_POST_TEXT_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_POST_TEXT_DESC"
|
||||||
|
filter="safehtml"
|
||||||
|
cols="30"
|
||||||
|
rows="5"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="login"
|
||||||
|
type="modal_menu"
|
||||||
|
label="MOD_LOGIN_FIELD_LOGIN_REDIRECTURL_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_LOGIN_REDIRECTURL_DESC"
|
||||||
|
disable="separator,alias,heading,url"
|
||||||
|
select="true"
|
||||||
|
new="true"
|
||||||
|
edit="true"
|
||||||
|
clear="true"
|
||||||
|
>
|
||||||
|
<option value="">JDEFAULT</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="logout"
|
||||||
|
type="modal_menu"
|
||||||
|
label="MOD_LOGIN_FIELD_LOGOUT_REDIRECTURL_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_LOGOUT_REDIRECTURL_DESC"
|
||||||
|
disable="separator,alias,heading,url"
|
||||||
|
select="true"
|
||||||
|
new="true"
|
||||||
|
edit="true"
|
||||||
|
clear="true"
|
||||||
|
>
|
||||||
|
<option value="">JDEFAULT</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="greeting"
|
||||||
|
type="radio"
|
||||||
|
label="MOD_LOGIN_FIELD_GREETING_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_GREETING_DESC"
|
||||||
|
class="btn-group btn-group-yesno"
|
||||||
|
default="1"
|
||||||
|
filter="integer"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="name"
|
||||||
|
type="list"
|
||||||
|
label="MOD_LOGIN_FIELD_NAME_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_NAME_DESC"
|
||||||
|
default="0"
|
||||||
|
filter="integer"
|
||||||
|
showon="greeting:1"
|
||||||
|
>
|
||||||
|
<option value="0">MOD_LOGIN_VALUE_NAME</option>
|
||||||
|
<option value="1">MOD_LOGIN_VALUE_USERNAME</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="profilelink"
|
||||||
|
type="radio"
|
||||||
|
label="MOD_LOGIN_FIELD_PROFILE_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_PROFILE_DESC"
|
||||||
|
class="btn-group btn-group-yesno"
|
||||||
|
default="0"
|
||||||
|
filter="integer"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="usesecure"
|
||||||
|
type="radio"
|
||||||
|
label="MOD_LOGIN_FIELD_USESECURE_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_USESECURE_DESC"
|
||||||
|
class="btn-group btn-group-yesno"
|
||||||
|
default="0"
|
||||||
|
filter="integer"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="usetext"
|
||||||
|
type="list"
|
||||||
|
label="MOD_LOGIN_FIELD_USETEXT_LABEL"
|
||||||
|
description="MOD_LOGIN_FIELD_USETEXT_DESC"
|
||||||
|
default="0"
|
||||||
|
filter="integer"
|
||||||
|
>
|
||||||
|
<option value="0">MOD_LOGIN_VALUE_ICONS</option>
|
||||||
|
<option value="1">MOD_LOGIN_VALUE_TEXT</option>
|
||||||
|
</field>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset name="advanced">
|
||||||
|
<field
|
||||||
|
name="layout"
|
||||||
|
type="modulelayout"
|
||||||
|
label="JFIELD_ALT_LAYOUT_LABEL"
|
||||||
|
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="moduleclass_sfx"
|
||||||
|
type="textarea"
|
||||||
|
label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
|
||||||
|
description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC"
|
||||||
|
rows="3"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<field
|
||||||
|
name="cache"
|
||||||
|
type="list"
|
||||||
|
label="COM_MODULES_FIELD_CACHING_LABEL"
|
||||||
|
description="COM_MODULES_FIELD_CACHING_DESC"
|
||||||
|
default="0"
|
||||||
|
filter="integer"
|
||||||
|
>
|
||||||
|
<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
|
||||||
|
</field>
|
||||||
|
</fieldset>
|
||||||
|
</fields>
|
||||||
|
</config>
|
||||||
|
</extension>
|
||||||
124
deployed/mod_login2/modules/mod_login2/tmpl/default.php
Normal file
124
deployed/mod_login2/modules/mod_login2/tmpl/default.php
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Site
|
||||||
|
* @subpackage mod_login
|
||||||
|
*
|
||||||
|
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
require_once JPATH_SITE . '/components/com_users/helpers/route.php';
|
||||||
|
|
||||||
|
JHtml::_('behavior.keepalive');
|
||||||
|
JHtml::_('bootstrap.tooltip');
|
||||||
|
|
||||||
|
?>
|
||||||
|
<form action="<?php echo JRoute::_('index.php', true, $params->get('usesecure')); ?>" method="post" id="login-form" class="form-inline">
|
||||||
|
<?php if ($params->get('pretext')) : ?>
|
||||||
|
<div class="pretext">
|
||||||
|
<p><?php echo $params->get('pretext'); ?></p>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<div class="userdata">
|
||||||
|
<div id="form-login-username" class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<?php if (!$params->get('usetext')) : ?>
|
||||||
|
<div class="input-prepend">
|
||||||
|
<span class="add-on">
|
||||||
|
<span class="icon-user hasTooltip" title="<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?>"></span>
|
||||||
|
<label for="modlgn-username" class="element-invisible"><?php echo JText::_('MOD_LOGIN_VALUE_USERNAME'); ?></label>
|
||||||
|
</span>
|
||||||
|
<input id="modlgn-username" type="text" name="username" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?>" />
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<label for="modlgn-username"><?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?></label>
|
||||||
|
<input id="modlgn-username" type="text" name="username" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?>" />
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="form-login-password" class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<?php if (!$params->get('usetext')) : ?>
|
||||||
|
<div class="input-prepend">
|
||||||
|
<span class="add-on">
|
||||||
|
<span class="icon-lock hasTooltip" title="<?php echo JText::_('JGLOBAL_PASSWORD') ?>">
|
||||||
|
</span>
|
||||||
|
<label for="modlgn-passwd" class="element-invisible"><?php echo JText::_('JGLOBAL_PASSWORD'); ?>
|
||||||
|
</label>
|
||||||
|
</span>
|
||||||
|
<input id="modlgn-passwd" type="password" name="password" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('JGLOBAL_PASSWORD') ?>" />
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<label for="modlgn-passwd"><?php echo JText::_('JGLOBAL_PASSWORD') ?></label>
|
||||||
|
<input id="modlgn-passwd" type="password" name="password" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('JGLOBAL_PASSWORD') ?>" />
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php if (count($twofactormethods) > 1): ?>
|
||||||
|
<div id="form-login-secretkey" class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<?php if (!$params->get('usetext')) : ?>
|
||||||
|
<div class="input-prepend input-append">
|
||||||
|
<span class="add-on">
|
||||||
|
<span class="icon-star hasTooltip" title="<?php echo JText::_('JGLOBAL_SECRETKEY'); ?>">
|
||||||
|
</span>
|
||||||
|
<label for="modlgn-secretkey" class="element-invisible"><?php echo JText::_('JGLOBAL_SECRETKEY'); ?>
|
||||||
|
</label>
|
||||||
|
</span>
|
||||||
|
<input id="modlgn-secretkey" autocomplete="off" type="text" name="secretkey" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('JGLOBAL_SECRETKEY') ?>" />
|
||||||
|
<span class="btn width-auto hasTooltip" title="<?php echo JText::_('JGLOBAL_SECRETKEY_HELP'); ?>">
|
||||||
|
<span class="icon-help"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<label for="modlgn-secretkey"><?php echo JText::_('JGLOBAL_SECRETKEY') ?></label>
|
||||||
|
<input id="modlgn-secretkey" autocomplete="off" type="text" name="secretkey" class="input-small" tabindex="0" size="18" placeholder="<?php echo JText::_('JGLOBAL_SECRETKEY') ?>" />
|
||||||
|
<span class="btn width-auto hasTooltip" title="<?php echo JText::_('JGLOBAL_SECRETKEY_HELP'); ?>">
|
||||||
|
<span class="icon-help"></span>
|
||||||
|
</span>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if (JPluginHelper::isEnabled('system', 'remember')) : ?>
|
||||||
|
<div id="form-login-remember" class="control-group checkbox">
|
||||||
|
<label for="modlgn-remember" class="control-label"><?php echo JText::_('MOD_LOGIN_REMEMBER_ME') ?></label> <input id="modlgn-remember" type="checkbox" name="remember" class="inputbox" value="yes"/>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<div id="form-login-submit" class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<button type="submit" tabindex="0" name="Submit" class="btn btn-primary"><?php echo JText::_('JLOGIN') ?></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
$usersConfig = JComponentHelper::getParams('com_users'); ?>
|
||||||
|
<ul class="unstyled">
|
||||||
|
<?php if ($usersConfig->get('allowUserRegistration')) : ?>
|
||||||
|
<li>
|
||||||
|
<a href="<?php echo JRoute::_('index.php?option=com_users&view=registration&Itemid=' . UsersHelperRoute::getRegistrationRoute()); ?>">
|
||||||
|
<?php echo JText::_('MOD_LOGIN_REGISTER'); ?> <span class="icon-arrow-right"></span></a>
|
||||||
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
<li>
|
||||||
|
<a href="<?php echo JRoute::_('index.php?option=com_users&view=remind&Itemid=' . UsersHelperRoute::getRemindRoute()); ?>">
|
||||||
|
<?php echo JText::_('MOD_LOGIN_FORGOT_YOUR_USERNAME'); ?></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="<?php echo JRoute::_('index.php?option=com_users&view=reset&Itemid=' . UsersHelperRoute::getResetRoute()); ?>">
|
||||||
|
<?php echo JText::_('MOD_LOGIN_FORGOT_YOUR_PASSWORD'); ?></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<input type="hidden" name="option" value="com_users" />
|
||||||
|
<input type="hidden" name="task" value="user.login" />
|
||||||
|
<input type="hidden" name="return" value="<?php echo $return; ?>" />
|
||||||
|
<?php echo JHtml::_('form.token'); ?>
|
||||||
|
</div>
|
||||||
|
<?php if ($params->get('posttext')) : ?>
|
||||||
|
<div class="posttext">
|
||||||
|
<p><?php echo $params->get('posttext'); ?></p>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</form>
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Site
|
||||||
|
* @subpackage mod_login
|
||||||
|
*
|
||||||
|
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
JHtml::_('behavior.keepalive');
|
||||||
|
?>
|
||||||
|
<form action="<?php echo JRoute::_('index.php', true, $params->get('usesecure', 0)); ?>" method="post" id="login-form" class="form-vertical">
|
||||||
|
<?php if ($params->get('greeting', 1)) : ?>
|
||||||
|
<div class="login-greeting">
|
||||||
|
<?php if (!$params->get('name', 0)) : ?>
|
||||||
|
<?php echo JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('name'), ENT_COMPAT, 'UTF-8')); ?>
|
||||||
|
<?php else : ?>
|
||||||
|
<?php echo JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('username'), ENT_COMPAT, 'UTF-8')); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if ($params->get('profilelink', 0)) : ?>
|
||||||
|
<ul class="unstyled">
|
||||||
|
<li>
|
||||||
|
<a href="<?php echo JRoute::_('index.php?option=com_users&view=profile'); ?>">
|
||||||
|
<?php echo JText::_('MOD_LOGIN_PROFILE'); ?></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<?php endif; ?>
|
||||||
|
<div class="logout-button">
|
||||||
|
<input type="submit" name="Submit" class="btn btn-primary" value="<?php echo JText::_('JLOGOUT'); ?>" />
|
||||||
|
<input type="hidden" name="option" value="com_users" />
|
||||||
|
<input type="hidden" name="task" value="user.logout" />
|
||||||
|
<input type="hidden" name="return" value="<?php echo $return; ?>" />
|
||||||
|
<?php echo JHtml::_('form.token'); ?>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
Loading…
Reference in New Issue
Block a user