我将网站从1.7转换为2.5,所有这些都已经完成,但我遇到了一个问题。我想使用以前版本中存在的这两个自定义K2模板用于用户注册和用户配置文件,因为他们使用K2作为用户注册机制。
我已将K2配置为Enable K2 User Profile
:
但无论出于何种原因,当我导航到index.php?option=com_users&view=register
时,它仍然会抓取默认的注册表单。现在,我认为它可能是URL,但旧的1.7系统使用相同的URL。因此,通过一些调试,我发现当布局被告知要搜索文件时,K2路径不在数组中。
我在这里做错了什么?
注意:我还尝试配置User Manager
,以便将Allow User Registration
设置为No
,但我得到的是403
,因为它只是没有超越那个K2模板。
正如我在评论中所述,无论出于何种原因,我都没有K2注册菜单项类型。然而,最奇怪的部分是1.7版本没有指向K2注册。
多一点背景。这是一个真正被黑客攻击的系统。菜单实际上是使用直接自定义的Jumi模块构建的,当用户登录用于配置文件的链接时,例如:
index.php?option=com_users&view=user&layout=form&id=3
和注册链接,也是自定义的(即它是自定义视图上的链接)是这样的:
index.php?option=com_user&view=register
因此,简而言之,我对Joomla导航系统了解不足以了解如何将这些链接重新路由到位于/components/com_k2/templates
文件夹的K2视图。
我将register.php
文件夹中存在的/components/com_k2/templates
视图放入/templates/tmplname/html/com_users/register
文件夹并重命名为default.php
,以便默认用户注册导航将选择该视图。它确实选择了这个观点,没有真正意外,但它也失败了:
<?php if(count(array_filter($this->K2Plugins))): ?>
因为K2Plugins
是null
而且array_filter
函数不允许这样做。我猜这是因为如果这个视图位于com_k2
文件夹内,就像它的原始位置一样,这将是可用的。我正在尝试我现在能想到的一切。
它也投入了这条线:
$this->K2Params->get('recaptchaOnRegistration')
因为K2Params
为空,所以当然get
不可用。
答案 0 :(得分:0)
我终于找到了问题! /plugins/system/k2/k2.php
正在使用onAfterDispatch
方法导航com_users
。如果是com_users
和register
或profile
,则会重定向并利用不同的视图。好吧,问题是旧代码说com_user
而不是com_users
。傻!