链接将私信发送到节点中的当前用户(内容的作者)? -- privatemsg 领域 drupal 相关 的问题

Link to send private message to current user in the node (author of the content)?


0
vote

问题

中文

是可以创建一个链接以将私人消息发送到节点中的当前用户(到节点内容的作者更精确)。我正在使用privatemsg模块。 我试图用展示套件动态字段执行此操作,但我无法完成。

我发现privatemsg模块有一个选项"在所选内容类型上显示链接" 。所以,我在内容类型中有"联系人当前成员链接" ,但它仅显示登录用户。< / p>

有没有任何配置或挂钩,我可以实现以显示匿名用户的相同链接?

这是显示链接的代码。

  function privatemsg_node_view($node, $view_mode) {   $types = array_filter(variable_get('privatemsg_link_node_types', array()));   $url = privatemsg_get_link(user_load($node->uid));   if (in_array($node->type, $types) && !empty($url) && ($view_mode == 'full' || (variable_get('privatemsg_display_on_teaser', 1) && $view_mode == 'teaser'))) {     $node->content['links']['#links']['privatemsg_link'] = array(       'title' => t('Contact member'),       'href' => $url . '/' . t('Message regarding @node', array('@node' => $node->title)),       'query' => drupal_get_destination(),       'attributes' => array('class' => 'button radius privatemsg-send-link privatemsg-send-link-node'),     );   } }    
要使它更清晰,我不希望匿名用户发送消息。我想要的只是一个登录匿名用户的链接。用伪代码表达它...

  global $user;  if (isset($user->roles[1])) {   // Do not show button to Anonymous user and show something else or a button to log in (THE CODE FOR LOG IN)   echo "something else"; } else {   // Show button to logged in user (the code of "Send author a message" button) }   
英文原文

Is it possible to create a link to send private message to CURRENT USER in the node (to the author of the node content to be more precise). I'm using the Privatemsg module. I was trying to do this with the Display suite dynamic fields, but I am not able.

I found that the Privatemsg module comes with an option to "Display link on the selected content types. So, I have the "contact current member link" right in the content type, but it shows only for logged in users.

Is there any configuration or hook that I can implement to show the same link to anonymous user?

This is the code that shows the link.

function privatemsg_node_view($node, $view_mode) {   $types = array_filter(variable_get('privatemsg_link_node_types', array()));   $url = privatemsg_get_link(user_load($node->uid));   if (in_array($node->type, $types) && !empty($url) && ($view_mode == 'full' || (variable_get('privatemsg_display_on_teaser', 1) && $view_mode == 'teaser'))) {     $node->content['links']['#links']['privatemsg_link'] = array(       'title' => t('Contact member'),       'href' => $url . '/' . t('Message regarding @node', array('@node' => $node->title)),       'query' => drupal_get_destination(),       'attributes' => array('class' => 'button radius privatemsg-send-link privatemsg-send-link-node'),     );   } }  

To make it clearer, I don't want anonymous user to send messages. What I want is just a link to log in for anonymous users. Expressing it with pseudo-code...

global $user;  if (isset($user->roles[1])) {   // Do not show button to Anonymous user and show something else or a button to log in (THE CODE FOR LOG IN)   echo "something else"; } else {   // Show button to logged in user (the code of "Send author a message" button) } 
  
         
         

回答列表

1
 
vote
vote
最佳答案
 

我用一个显示套件自定义代码字段进行了。有了它,我能够使用一些PHP代码。

  global $user; // If the user is anonymous (role=1) show this; otherwise show nothing. if (isset($user->roles[1])) {   print l(t('Contact member'), 'user/login', array('attributes' => array('class' => array('radius', 'button')))); }   
所以,当用户登录时,上面的这个代码将被替换为联系人链接(发送作者消息)。
 

I did it with a Display suite custom code field. With it I am able to use some PHP code.

global $user; // If the user is anonymous (role=1) show this; otherwise show nothing. if (isset($user->roles[1])) {   print l(t('Contact member'), 'user/login', array('attributes' => array('class' => array('radius', 'button')))); } 

So, when the user is logged-in, this code above will be replaced with the contact member link (Send author a message).

 
 

相关问题

0  以编程方式为用户页面创建“发送此用户A私人消息链接”  ( Programatically create send this user a a private message link for user pages ) 
我知道这个问题已经提出了几次,但似乎所有现有答案都仅适用于rivatemsg模块的eAlier版本。我正在运行7.x-2.x-dev,我想以编程方式渲染"发送此用户私人消息" 链接。 PHP代码应该是一个编程创建的块的 $block['content'] 将在用户页面上显示。 建议使用 if ($account ...

4  令牌认证 - “表格已经过时”和规则问题  ( Token authentication the form has become outdated and rules issues ) 
我正在使用令牌身份验证和 privatemsg 模块在一起。当用户收到电子邮件通知时,他/她已收到私信,我已经放置了一个链接(使用查询字符串中的Tokenauth模块提供的令牌),允许用户登录并查看该消息。 在页面底部是消息回复表单。我希望用户能够通过此表单回复(不通过令牌身份验证登录)。但是,当我测试此时,我收到以...

0  每个经过身份验证的用户的屏幕上的模态通知框  ( Modal notification box on the screen of every authenticated user ) 
我希望每次或任何其他管理员(我有2个)发布一篇新的文章,每个经过身份验证的用户都应该在它的屏幕上获取模态通知框,显示我发布的内容类型的提示。 我创建了一个动作'向用户显示一个消息',为触发器,'触发:保存新内容后'然后尝试保存新内容并在任何消息中查找不同的帐户(已记录)发生了。此外,如果这是这样的工作,我想显示一个...

2  如何在使用视图覆盖私人消息块时出现新消息时,如何显示“1新”  ( How to show 1 new when there is a new message when using views to override pr ) 
我有私信。在我的项目中,我禁用了私人消息模块附带的块。使用视图,我创建了一个允许用户访问其私人消息的链接。 在默认的私有消息块中,当用户有新消息时,"消息链接" 旁边出现"新" 。 请,如何在自定义消息链接中Mimick此属性。 谢谢。 ...

2  如何允许用户选择使用一次性登录链接接收电子邮件?  ( How can i allow users to opt out of receiving e mails with one time login links ) 
所以我一直在研究我的网站的更新,以允许用户在收到私信时通过一次性登录链接登录。不幸的是,这种功能最近有在新闻中作为安全问题,所以我想确保我给用户一种选择退出的方法。 一个时间登录链接由登录一次模块。电子邮件通知由 privatemsg 模块的 PM电子邮件通知子模块,但理想情况下,解决方案还将用于由规则,系统电子邮件...

0  向用户发送系统消息  ( Send system message to user ) 
我想向用户发送系统消息,如网站通知,通知等等。 我知道私人消息模块,但它无法区分邮件由真实系统/ admin或普通用户发送。 我该怎么办?? ...

3  在私信中:还匹配自动完成到字段中的姓氏  ( In private message also match last names in auto complete of to field ) 
我正在使用私有消息模块,我确实理解,可以使用"to" -field中的realname集成来发送消息。自动完成功能有助于查找名称。 假设我想写到"John Smith" 。当我开始键入"jo .." 时,它自动完成"John Smith" ,但是当我开始键入"SMI" 时自动完成失败。对于我的网站,拥有这个功能是非...

0  模块提供的覆盖自动完成以不建议当前用户(self)  ( Override autocomplete provided by module to not suggest current userself ) 
我希望从我的问题标题本身看起来很清楚。我想覆盖由模块提供的自动完成,例如 privatemessage 不建议当前的用户(自我)发送消息。 我试图对它进行一些研究,但我所拥有的只是覆盖JS文件。 我很久以前用自定义形式使用了自动计算;当我准备好JSON时,我从列表中删除了当前用户。但如果我必须为某些贡献的模块做同样的...

1  将私人邮件放入块中  ( Putting sent private messages into a block ) 
我使用了这个提示将私人Drupal 7私人消息放入块中,以便放置这些禁止表块上的块: <?php /** * Implements hook_block_info(). */ function MYMODULE_block_info() { $blocks = array(); $blocks['me...

0  将菜单项的类型更改为本地任务(选项卡)  ( Altering the type of a menu item to local task tab ) 
我搜索了几个小时,但我找不到如何改变菜单项的类型到本地任务(标签)。 私有消息7.x模块(当Privatemsg_filter辅助时)公开以下选项卡(本地任务): 收件箱(/消息) 发送消息(/ messages / secor) 所有消息(/ messages / list) 有一个第4个菜单项(/ messa...

0  用户查看admin [privatemsg module]发送的消息的所有回复  ( Users see all replies to a message sent by admin privatemsg module ) 
i(admin)通过用户名(不是通过角色)向几个用户发送消息。如果"user1" 回复递回管理员,user2和user3也会看到该消息, 这就是为什么模块称为privatemessage右:) 任何线索? 谢谢 ...

0  将消息正文发送到带有Privatemsg模块的电子邮件  ( Sending message body to email with privatemsg module ) 
privatemsg模块将您已收到消息给用户的电子邮件通知。如何将"邮件正文" 发送给电子邮件中的用户。所以无需登录并查看消息。 任何线索? 谢谢 ...

0  如何为普通用户启用私人邮件,而不仅仅是管理员?  ( How do i enable private messages for normal users and not just administrators ) 
只有管理员可以在登录时看到"消息" 链接。非管理员用户不能。我该怎么做才能减轻这个? 我通过在作为Bobby身份登录时查看网站,通常是非管理员用户。没有"消息" 链接。但是,如果作为管理员身份勾选鲍比,我将在作为Bobby身份登录时,我可以在屏幕右上角的"我的帐户" 和"注销" 之间看到"消息" 链接。我甚至收到我...

2  用户订阅组时如何通知组管理器  ( How to notify group manager when user subscribe a group ) 
我正在使用有机组和 privatemsg ,我想在有人要求组的成员资格(订阅)时通知(发送私信)。 我想也许我可以使用规则,但我是统治的新态度,不知道如何设置参数和参数。 是否有任何模块或代码片段可以执行此操作? ...

1  如何使用菜单徽章来显示通过privatemsg的收发邮件的数量?  ( How to use the menu badges to show the number of recieved messages via privatems ) 
我使用 privatemsg 在我的网站上允许用户彼此通信。新消息显示在"收件箱" 选项卡中。 我也有菜单徽章模块安装,以便在一个中显示未读消息的计数徽章。 选项卡菜单徽章编辑页面未列出收件箱路径(它是 /messages/received )。它列出了 /messages/list ,, /messages/sen...

2  如何隐藏联系人按钮并用邮件替换  ( How to hide the contact button and replace with a message ) 
我正在建立一个房间让网站。 每张广告旁边都是发送用户私人消息按钮。 如果房间不再可用。 我想用消息替换按钮"抱歉的房间不再可用" 我怎么办? 非常感谢您的帮助 查尔斯 ...

0  在节点模板内容类型中创建发送用户私人消息链接  ( Create send user private message link in a node template content type ) 
如何在节点模板中打印私有消息链接? 这个我尝试了 hide($content['field_privatemsg']); print render($content['field_privatemsg']); 非常感谢您的帮助 ...

0  匿名用户的privatemsg链接  ( Privatemsg link for anonymous users ) 
我被贬低了一个视图,以显示注册用户列表,如姓名,电子邮件,工作等。我也是列表的一个字段是一个私有链接,所以该网站的其他成员将能够联系该用户。 经过身份验证的用户可以看到链接并发送私信,但我想允许匿名用户查看私人消息链接,但是当他们单击它时,它们应该重定向到登录表单。有没有办法做到这一点?我一直在谷歌曲,找不到答案。 ...

0  privatemsg通过多网站配置?  ( Privatemsg through a multi site configuration ) 
是否有可能为网站1中的用户做这样的东西,以在现场2和Visa Versa中的消息用户?使用privatemsg模块? ...

1  如何向标记分类学期的用户发送消息?  ( How to send a message to users who flagged a taxonomy term ) 
我想向已标记的用户发送消息,例如,玩具分类项。但只有在创建新节点并且包含玩具的分类项时才。 任何建议? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.