如何在Joomla 3中禁用前端登录组件?
我已经设法禁用前端用户注册,不允许注册如下。

但是登录表单仍然可以通过下面的url访问。
index.php?option=com_users&view=login如何禁用前端登录组件而不编辑核心文件?
既然我已经经历了下面的事。我不想用RewriteRule来完成它。我想向用户显示它已被禁用的消息。
发布于 2014-06-25 05:21:16
尝尝这个,
Joomla默认登录模块受到保护。所以您不能从管理端编辑/禁用它。
只要检查一下extensions-> extension manager -> Search for login
然后这个模块就会显示。但你不能让它失效。因此,在不接触核心文件的情况下覆盖此功能的解决方案是模板覆盖。
您可以简单地在模板中重写此视图index.php?option=com_users&view=login。
通过DB表编辑受保护的扩展
扩展不能被编辑,但是您可以通过打开或关闭它来管理它。受保护,意味着这个扩展不能被管理,否则它将破坏您的网站的结构。但是,如果希望将扩展带到未锁定状态,则可以访问DB (在我的例子中,MySQL由phpMyAdmin编辑),查找可靠的结构表,查找所需的字符串,并将“状态”从"1“更改为"0”。通常,您的主机为您提供一些DB管理工具。
希望能帮上忙..。
发布于 2021-03-24 15:14:13
我为此写了一个插件。它完全禁用前端的“用户”。您还可以禁用特定的视图,仅用于以下内容:
index.php?option=com_users&view=login
index.php?option=com_users&view=registration
index.php?option=com_users&view=profile&layout=edit这是前端完全禁用用户的代码。
<?php defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Router\Route;
class PlgSystemCobizDisableLogin extends CMSPlugin
{
public function onAfterInitialise()
{
$this->disableLogin();
}
protected function disableLogin()
{
$app = Factory::getApplication();
if ($app->isClient('site') === false) return;
$disable_users = $this->params->get('disable_users', 1);
if (!$disable_users) return;
$option = $app->input->getCmd('option');
if ($option == 'com_users') {
$this->redirect();
}
}
protected function redirect()
{
$Itemid = $this->getHomePageItemid();
$app = Factory::getApplication();
$link = Route::_('index.php?Itemid=' . $Itemid);
Factory::getApplication()->enqueueMessage('Toegang gewijgerd', 'error');
$app->redirect($link);
}
protected function getHomePageItemid()
{
$tableName = '#__menu';
$db = Factory::getDbo();
$query = $db->getQuery(true);
$query->select('id');
$query->from($db->quoteName($tableName));
$query->where($db->quoteName('published') . ' = ' . $db->quote(1));
$query->where($db->quoteName('home') . ' = ' . $db->quote(1));
$db->setQuery($query);
$data = $db->loadResult();
return $data;
}
}还是我忽略了什么?我承认这也禁用了前端用户的注册.但在大多数情况下,这也是我想要的!:-)
发布于 2019-07-05 15:35:39
在Joomla3.x中,我发现一个简单的方法是编辑/components/com/controller.php er.php,并像这样标记视图字符串登录。我得到了404服务器响应,但这正是我想要的。因为这不是一个url,而是一个组件视图,所以很难重定向。
// Set the default view name and format from the Request.
// $vName = $this->input->getCmd('view', 'login');
$vFormat = $document->getType();https://stackoverflow.com/questions/24400575
复制相似问题