[drupal-devel] [bug] "Add new comment" no longer shows up in $links?

Dries drupal-devel at drupal.org
Sat Jan 22 08:58:44 UTC 2005

 Project:      Drupal
 Version:      cvs
 Component:    poll.module
 Category:     bug reports
 Priority:     normal
 Assigned to:  Goba
 Reported by:  Morbus Iff
 Updated by:   Dries
 Status:       patch

This update seems to bring all core modules in line.  However, several
contributed modules behave differently or have not been updated
accordingly.  I compiled a list of modules that use $main instead of

$ grep -r "\$main" * | grep "_view(&" | awk -F ":" '{print $1}'
sandbox/matteo/custom done types/announce.module
sandbox/matteo/custom done types/biography.module
sandbox/matteo/custom done types/choir.module
sandbox/matteo/custom done types/group.module
sandbox/matteo/custom done types/media.module
sandbox/matteo/custom done types/resource.module
sandbox/matteo/custom done types/review.module
sandbox/matteo/modules/Drupal CVS/feedback/feedback.module

I don't recall when this change happened (from 4.4 to 4.5 I think) but
it might be worth adding a note to the upgrade guide.


Previous comments:

December 30, 2004 - 16:41 : Morbus Iff

I recently upgraded from 4.4.2 to 4.5.1, and have noticed that the poll
block no longer displays the "add new comment" or "# comments" link.
This is (was) important to me, as I usually ask for comments whenever
someone chooses the negative option. Any idea where and why this went?
You can still get to the comment form in a roundabout way ("other
polls", choose your poll, whammo), but that's far too many clicks and
intellect points.


January 18, 2005 - 17:50 : rooey

I had the same problem going from 4.4 to 4.5 - i still see it in 4.5.2

There is *some* info on comment issues here:

I didn't find any of them solved this particular issue tho.


January 18, 2005 - 19:28 : Junyor

So, not even the "add new comment" link is showing up?  I just loaded
the poll module and that shows fine.  However, the current comment
count doesn't show correctly in the block.

This is what I've seen so far:
1) poll_block calls poll_view
2) poll_view calls poll_view_voting, which outputs the poll choices
3) for blocks, poll_view calls link_node, which calls hook_link('node')
in each module.  For all other poll displays, the theme does the call to
link_node (via node_view)

I'm guessing poll_view is where the problem is.  I'll keep looking at


January 18, 2005 - 19:41 : Junyor

Changing the call to link_node on line 438 in poll.module (in poll_view)


January 18, 2005 - 19:51 : Junyor

Trying again with correct PHP tags. :)

Changing the call to link_node on line 438 in poll.module (in
poll_view) to:

seems to solve the problem.  I'm trying to look now at the history of
link_node to see why that fixed it.  That's the same parameters that
the call in theme_node uses.


January 18, 2005 - 19:58 : Junyor

Attachment: http://drupal.org/files/issues/junyor.poll.patch (762 bytes)

The change to theme_node was done as part of
http://drupal.org/node/9287.  Other than theme_node, poll_view is the
only function that calls link_node directly.

Attached is a patch to fix the function call in poll_view to send the
correct parameters.


January 18, 2005 - 20:21 : Morbus Iff

Confirmed Junyor's patch. Excellent (note: take my confirmation with a
grain of salt. One of my previous patches caused a grievous bug for
4.5.2 tracker.module, and I should not be trusted anymore <g>).


January 18, 2005 - 20:22 : Morbus Iff

(His patch is currently in use at gamegrene.com, running 4.5.1).


January 18, 2005 - 20:23 : Jeremy at kerneltrap.org

Seems to work like a charm -- thanks.  :)


January 18, 2005 - 20:35 : moshe weitzman

please submit a patch for HEAD as well (if needed). link_node() no
longer exists so this patch is no help for HEAD


January 18, 2005 - 20:36 : Junyor

Note: The attached patch is a good solution for 4.5.2.  For HEAD, all
hook_link functions need to have their parameter list updated to make
sure they're using $teaser and not $main.  Same goes for node_link. 
Additionally, we should think about adding a theme function to handle
hook_block links (if one doesn't already exist).


January 18, 2005 - 20:42 : Junyor

@moshe: I don't think a patch for HEAD to fix this bug will be needed,
as the erroneous function call was removed.  Has anyone tested the poll
module on HEAD to see if this problem exists there?


January 20, 2005 - 21:39 : Dries

Committed to HEAD.


January 22, 2005 - 02:35 : Goba

Attachment: http://drupal.org/files/issues/Drupal-fix-poll-links.patch (1.72 KB)

Dries actually comitted the fix to 4.5, but this is still buggy in HEAD.
A patch attached which fixes the behaviour. Simply 1 needs to be passed
on the teaser value to get the proper comment (and other type of
links), since the poll block is kind of a teaser.

This patch also renames $main to $teaser, where appropriate to follow
latest Drupal conventions. Without this rename, poll_view() gets a
$teaser parameter, and then tries to use $main. This might also apply
to 4.5, but since the value of $teaser is never used from then on, it
is not much of a problem, just some unneccessary code. I have not
removed it from poll_view_results() and poll_view_voting(), to keep the
familiary looking param list, although $teaser is not utilized there.

Note: someone might check the Drupal code for $main, since as this
patch shows it was renamed to $teaser at some places, but not all.

View: http://drupal.org/node/14936
Edit: http://drupal.org/project/comments/add/14936

More information about the drupal-devel mailing list