我需要创建一个特定于用户的内容页面,我已经注册了用户,我需要创建一个模块/页面/菜单/提要或者任何只显示一个或一些用户的文章。
例如,在我的网站上,我向公众展示了一些项目(文章被修改为一些架构化项目),例如:新闻、完成的项目等,有些人注册并访问其他为注册用户准备的内容,例如:只有注册客户才感兴趣的新项目,到目前为止,我成功地完成了这项工作,但现在,我有一些工作是针对特定用户的,他/她只能在他/她的提要中看到,例如:我们制作的他们的项目的状态,一些带有正在进行中的工作照片的画廊,等等。
因此,这个提要必须是一个模块/页面/菜单,它显示带有特定类别的文章,并为注册用户提供。但我希望能够发布一篇文章,该文章只针对特定用户或一组用户,并显示在这个feed (模块)中,或者至少有一个新模块显示特定于用户的内容,而不必为每个用户创建一个类别和访问级别。
有没有一个分机或插件可以帮我做这件事?
发布于 2014-04-15 19:22:59
你需要做两件事:
模块应该在向用户显示访问级别之前检查访问级别,并且只向拥有正确权限的用户显示受限制的项目。
发布于 2014-04-27 19:16:34
系统并不真正支持您所要求的内容,但是您可以使用以下设置:
制作一个内容插件(plugin)。在事件onContentPrepareForm中,您可以修改created_by_别名字段,以便为允许查看这篇内容文章的特殊用户使用它。
function onContentPrepareForm($form, $data){
// first check that context is right
// Then change the type of the field. This should allow to select
// the user when you create the article.
$form->getField('created_by_alias')->__set('type', 'user');
}在onContentPrepareData事件中,检查created_by_alias中的数据是否引用了用户组中的有效用户。
public function onContentPrepare($context, $article, $params, $page){
// first check that context is right
//Then fetch the user data:
if(is_int($article->created_by_alias)){ // ( Optionally check if the article is in a specific category )
$db=JFactory::getDbo();
$currentuser=JFactory::getUser();
$allowedgroup=2; // the registered users group
$sql="select u.id from #__users inner join #__user_usergroup_map ug (u.id=ug.user_id) where ug.group_id={$allowedgroup}";
$db->setQuery($sql);
$user=$db->loadObject();
if($user->id==$currentuser){
$data->user=$user;
}
else{
//Unset the article content to prevent unothorized users from seeing the content.
unset($article);
}
}最后,创建一个为特定用户提供文章的模块(module),其中至少包含:
$list=array();
$user=Jfactory::getUser();
if($user->id>0){
$sql="select * from #__content where created_by_alias={$user->id}";
// ( also add sql to check that the user has access,
// the article is published, the correct category etc)
$db=Jfactory::getDbo();
$db->setQuery($sql);
$list=$db->loadObjectList();
if(!count($list)) return;
}
else return;
print_r($list); // Prints the content articles此方案应保护未经授权的用户不查看特定用户的文章内容。模块应该(在很好地输出您想要显示的内容之后)为登录的旅店用户显示一个文章列表。模块可以以正常的方式链接到文章,授权用户可以访问。因此,它应该是“足够安全的”,并提供您需要的功能,没有太多的麻烦。
发布于 2014-05-07 14:46:03
我将在这里尝试另一个:您只需在您的站点上安装一个messageing系统即可。UddeIM就是这样的一个系统。这将允许您为用户提供特定的内容。可以配置UddeIM,因此只有管理员才能发送消息。该组件还有一些模块,用于显示最新消息等。
https://stackoverflow.com/questions/23091911
复制相似问题