I have node pages with 50 comments per node and noticed that I have tons of queries by privatemsg_is_disabled on that page.
I have all link options disabled since I'm only showing a privatemessage link on the profile using a views field.

When I remove "$url = privatemsg_get_link(user_load($comment->uid));" in privatemsg_comment_view() I don't get the extra queries.
How about moving it inside the "if" statement?

function privatemsg_comment_view($comment) {
  $types = array_filter(variable_get('privatemsg_link_node_types', array()));
  if (in_array(node_load($comment->nid)->type, $types) && variable_get('privatemsg_display_on_comments', 0)) {
    //moved inside if statement
    $url = privatemsg_get_link(user_load($comment->uid));
    if (!empty($url)){
		$links['privatemsg_link'] = array(
		  'title' => t('Send author a message'),
		  'href' => $url . '/' . t('Message regarding @comment', array('@comment' => trim($comment->subject))),
		  'query' => drupal_get_destination(),
		$comment->content['links']['privatemsg'] = array(
		  '#theme' => 'links',
		  '#links' => $links,
		  '#attributes' => array('class' => array('privatemsg-send-link', 'privatemsg-send-link-node', 'links', 'inline')),

ditto for privatemsg_node_view()

#2 unnecessary_queries-1674344.patch3.02 KBmototribe
PASSED: [[SimpleTest]]: [MySQL] 3,125 pass(es). View


Berdir’s picture

Yes, makes sense, patches welcome :)

mototribe’s picture

3.02 KB
PASSED: [[SimpleTest]]: [MySQL] 3,125 pass(es). View

yeah, it's about time for me to learn how to create a patch ;-)

Please let me know if I did it correctly.


Berdir’s picture

Version: 7.x-1.2 » 7.x-1.x-dev
Status: Active » Needs review

Path looks ok visually, remember to set the issue status to needs review so that the testbot picks up the patch.

Berdir’s picture

Status: Needs review » Fixed

Thanks, commited.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes