-1

我将网站从 1.7 转换为 2.5,一切都快完成了,但我遇到了一个问题。我想使用以前版本中存在的这两个自定义 K2 模板来进行用户注册和用户配置文件,因为它们使用 K2 作为用户注册机制。

我已将 K2 配置为Enable K2 User Profile

启用 K2 用户配置文件

但无论出于何种原因,当我导航到index.php?option=com_users&view=register它时,它仍然在抓取默认的注册表单。现在,我认为可能是 URL,但旧的 1.7 系统使用的是相同的 URL。因此,通过一些调试,我发现当布局被告知搜索文件时,K2 路径不在数组中。

我在这里做错了什么?

注意:我也尝试配置设置为的User Managerso ,但我只是得到一个then 因为它只是没有覆盖该 K2 模板。Allow User RegistrationNo403

允许用户注册

更新

正如我在评论中所说,无论出于何种原因,我都没有 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))): ?>

因为K2Pluginsisnull并且该功能不允许这样做array_filter。我猜这是因为如果这个视图在com_k2文件夹中,就像它的原始位置一样,这将是可用的。我正在尝试我现在​​能想到的一切。

它也抛出了这一行:

$this->K2Params->get('recaptchaOnRegistration')

因为K2Params是 null 所以当然get不可用。

4

1 回答 1

0

终于找到问题了!/plugins/system/k2/k2.php正在捕获的onAfterDispatch导航方法com_users。如果是com_usersregister那么profile它会重定向并利用不同的视图。好吧,问题是旧代码说com_user而不是com_users. 愚蠢的!

于 2013-08-31T17:42:36.727 回答