2014-09-23 38 views
3

我正在寻找解决方案来显示带有用户名的网址。我正在使用Joomla 3.3.0稳定版本。用户名在Joomla 3.3中的URL

Ex。 site_url/userp-username

我试图用以下规则解决这个问题,我使用了我的核心PHP网站。

RewriteRule ^userp-([a-zA-Z0-9-_]+)/?$ site_url/index.php?option ... er_name=$1 [R=301,L] 

当我击例如http://sitename.com/userp-vishal07它执行,我想呼吁这个网址的代码的URL并正确显示结果。但url并不会保持原样并变成http://vicciivital.com/index.php/en/component/users/profile?layout=view_profile&user_name=vishal07

我无法理解Joomla重定向如何工作。如果我在这里犯了什么错误,请纠正我。

+0

嗨,欢迎来到SO!在网站上,不鼓励添加签名和诸如“预先感谢!”的内容问题。它只是增加了噪音,该网站真的努力成为黑色和白色 - 问题和答案。来自用户的投票都会谈论好的和坏的 - 像感谢你的回答:) – Fluffeh 2014-09-23 10:41:31

回答

1

由于我从来没有理解com_users路由器不会路由任何配置文件,除了用户自己的配置文件的原因。

/** 
* Method to get a route configuration for the profile view. 
* 
* @return mixed Integer menu id on success, null on failure. 
* @since 1.6 
*/ 
public static function getProfileRoute() 
{ 
    // Get the items. 
    $items = self::getItems(); 
    $itemid = null; 

    // Search for a suitable menu id. 
    //Menu link can only go to users own profile. 

    foreach ($items as $item) 
    { 
     if (isset($item->query['view']) && $item->query['view'] === 'profile') 
     { 
      $itemid = $item->id; 
      break; 
     } 

    } 
    return $itemid; 
} 

你需要做的是扩展这个方法来处理每个人的配置文件。只要确保处理存在具有与用户的别名相同的别名的内容项目或标签的情况。

一般来说,最简单的解决方法是使用com_contact作为配置文件。打开联系人创建者插件将自动为新用户创建联系人,联系人可以显示配置文件插件中的任何内容。此外,它可以显示用户的文章,然后你可以添加插件的其他东西,如果你想。对我来说,它总是工作得更好,然后搞乱com_users配置文件。