强制使用K2注册和配置文件视图而不是默认的注册和配置文件视图?

时间:2013-08-26 01:12:26

标签: php joomla joomla2.5

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

我已将K2配置为Enable K2 User Profile

Enable K2 User Profile

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

我在这里做错了什么?

注意:我还尝试配置User Manager,以便将Allow User Registration设置为No,但我得到的是403,因为它只是没有超越那个K2模板。

Allow User Registration

更新

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

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

它也投入了这条线:

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

因为K2Params为空,所以当然get不可用。

1 个答案:

答案 0 :(得分:0)

我终于找到了问题! /plugins/system/k2/k2.php正在使用onAfterDispatch方法导航com_users。如果是com_usersregisterprofile,则会重定向并利用不同的视图。好吧,问题是旧代码说com_user而不是com_users。傻!