[buddypress-trac] [BuddyPress] #3279: Activity reply buttons have duplicate IDs
buddypress-trac at lists.automattic.com
buddypress-trac at lists.automattic.com
Mon Jun 13 18:39:49 UTC 2011
#3279: Activity reply buttons have duplicate IDs
---------------------------+-----------------------------
Reporter: boonebgorges | Owner:
Type: defect | Status: new
Priority: minor | Milestone: Awaiting Review
Component: Activity | Version: 1.2.8
Resolution: | Keywords: needs-patch
---------------------------+-----------------------------
Comment (by Dennissmolek):
I'll take this.
There are a few solutions to this.
Firstly there is changing the ID field in the comments.php file created in
the last patch(#3253)
id="acomment-reply-<?php bp_activity_id() ?>-from-<?php
bp_activity_comment_id() ?>"
This would add which object it was coming from.
The JS is set up so that ANY object clicked triggers a multitude of
events. In this case it reads the ID of the object clicked and pulls apart
its ID. The ID is currently acomment-reply-x. When it does so it splits
the string by each dash, so we get an array(acomment, reply, x). Where X
is the activity ID that we are commenting on.
The script then pulls item [2] from the array, which in this case is the
activity ID.
By adding -from-y (where Y is the ID of the comment the reply button is
being clicked) the array now looks like (acomment, reply, x, from, y) This
does not break the JS and currently works on my testing site. Without
pulling apart the js just to make the ID's more semantic I think this is
the fastest and best solution.
Note:
I think we are at a point where we could start thinking about HTML5 and
what we could do with it. By using the data-x="" attribute we could simply
write data-comment="" I'm writing other stuff and I have to think that
hiding data in the ID of a element will become a faux pas when we can use
data- much like tables were/are in the CSS era.
link to what I'm talking about: http://ejohn.org/blog/html-5-data-
attributes/
Two things to note on this issue.
1. If we change the code to use HTML5(which is the future) it wont
validate on a older doctype(PS it already doesnt)
2. The JS doesnt care, we can simply use .attr() and adjust the code
slightly. Older browsers wont have issues with the code, they will simply
ignore the attributes, but the JS will still run.
What use does this have you ask? with this reply button not much, besides
limiting the use of insane ID's and odd code. The ID could be "acomment-
reply-1" which is semantic and valid.
Just an idea I noticed when working on this.. Like I said, the quick fix
is adding the little bit of code. The rest is just an idea I'm proposing..
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/3279#comment:1>
BuddyPress <http://buddypress.org/>
BuddyPress
More information about the buddypress-trac
mailing list