AJAX Babble

Developer

Laisvunas

3rd Party (Commercial)


EE Version Support

  • ExpressionEngine 1.x
  • ExpressionEngine 2

Compatibility

If an item is crossed out, it might be untested, not applicable or incompatible. Contact the developer to be sure.

  • Updater
  • Multi Site Manager
  • Stand Alone Entry Form
  • Low Variables
  • Content Elements
  • Better Workflow
  • Matrix
  • Grid
  • Webservice
  • Publisher

Requirements

  • jQuery for the Control Panel

Add-On Type(s)

Plugin

Tags

This plugin uses AJAX to submit comments. Supports pagination, scrolling newly submitted comment into view and triggering search for certain comment through URL. This add-on has been designed to be fully compatible with AJAX Captcha, AJAX Form Validator, AJAX Login and Edit Comments. Also it is compatible with rating module LikEE (see USAGE WITH RATING MODULE LIKEE).

INSTALLATION FOR EE1.X

Copy the file pi.ajax_babble.php into /system/plugins directory on your server.

INSTALLATION FOR EE2.0 PLUS

Copy the file pi.ajax_babble.php into /system/expressionengine/third_party/ajax_babble directory on your server.

I. THE TAG exp:ajax_babble:script

This is a *single* tag.

PARAMETERS

1) form_id - required. Allows you to specify CSS id parameter of the form outputted by
exp:comment:form tag. Usually its value will be “comment_form”.

2) entry_id - required. Allows you to specify ID number of the entry being commented on.

3) comments_template_url - required. Allows you to specify URL of the comment template.
You must specify full URL, i.e. starting with “http”. This parameter accepts inside its value
the following ExpressionEngine variables: site_id, site_url, site_index, homepage.

4) comments_container_id - required. Allows you to specify CSS id parameter of the HTML element
inside which AJAX should output comments.

5) submit_button_id - required. Allows you to specify CSS id parameter of the submit button of the
comment form.

6) comments_number_id - optional. Allows you to specify CSS id parameter of the HTML element
inside which number of comments is displayed; this number will be updated when AJAX will submit a new
comment. This parameter supports pipe operator.

7) css_id_to_scroll - optional. Allows you to specify CSS id parameter of the comment which will
be scrolled into view after AJAX will load comments. Into view will be scrolled either
the newly submitted comment or the comment which was found by the search triggered by URL.
The value of this parameter *must* be the same as the value of
identically named parameter of exp:ajax_babble:comments tag.

8) preview_template_url - optional. Allows you to specify URL of the preview template.
You must specify full URL, i.e. starting with “http”. This parameter accepts inside its value
the following ExpressionEngine variables: site_id, site_url, site_index, homepage.

9) preview_container_id - optional. Allows you to specify CSS id parameter of the HTML element
inside which AJAX should output comment preview.

10) preview_button_id - optional. Allows you to specify CSS id parameter of the preview button of the
comment form.

11) comments_progress_indicator_id - optional. Allows you to specify CSS id parameter of the HTML element
which will act as the indicator of comments being loaded.

12) preview_progress_indicator_id - optional. Allows you to specify CSS id parameter of the HTML element
which will act as the indicator of comment preview being loaded.

13) progress_indicator_class - optional. Allows you to specify CSS class parameter of the HTML element
which will act as the indicator of comments or comment preview being loaded.

14) comments_error_message_id - optional. Allows you to specify CSS id parameter of the HTML element
inside which an error message outputted when AJAX tried to load comments will be displayed.

15) preview_error_message_id - optional. Allows you to specify CSS id parameter of the HTML element
inside which an error message outputted when AJAX tried to load comment preview will be displayed.

16) error_message_class - optional.  Allows you to specify CSS class parameter of the HTML element
inside which an error message outputted when AJAX tried to load comments or comment preview will be displayed.

17) add_callback_submit - optional. Allows you to specify name of javascript function which
will be executed when AJAX response will be outputted into container after submission of the new comment.
This parameters supports pipe character, i.e. you can add several callback functions.

18) add_callback_submit_args - optional. Allows you to specify argument of javascript function which will
be executed after successful submission of comment. This parameter supports pipe operator, i.e. you can specify arguments
of several javascript functions. The order of arguments should follow the order of functions in “add_callback_submit” parameter.
If some functions should have arguments and other functions shouldn’t, specify “null” or “0” (without quotation marks) as arguments for the latter.

19) add_callback_paginate - optional. Allows you to specify name of javascript function which
will be executed when AJAX response will be outputted into container after clicking of some pagination link.
This parameters supports pipe character, i.e. you can add several callback functions.

20) add_callback_paginate_args - optional. Allows you to specify argument of javascript function which will
be executed after successful load of paginated comments. This parameter supports pipe operator, i.e. you can specify arguments
of several javascript functions. The order of arguments should follow the order of functions in “add_callback_paginate” parameter.
If some functions should have arguments and other functions shouldn’t, specify “null” or “0” (without quotation marks) as arguments for the latter.

21) add_callback_delete - optional. Allows you to specify argument of javascript function which will
be executed after successful deletion of a comment. This parameters supports pipe character, i.e. you can add several callback functions.

22) add_callback_delete_args - optional. Allows you to specify argument of javascript function which will
be executed after successful eletion of a comment. This parameter supports pipe operator, i.e. you can specify arguments
of several javascript functions. The order of arguments should follow the order of functions in “add_callback_delete” parameter.
If some functions should have arguments and other functions shouldn’t, specify “null” or “0” (without quotation marks) as arguments for the latter.

23) any name of javascript function which is used inside the value of “add_callback_submit” parameter or
“add_callback_paginate” parameter can be used as the name of a new parameter. The value of this parameter will
be used as argument of the relevant javascript function. E.g. if you have parameter add_callback_submit=“my_callback”,
then you can add parameter my_callback=“5”; the number “5” will be used as the argument for “my_calback” function.
In case you need to call a function with several arguments, use javascript object.  E.g. if you have parameter
add_callback_submit=“new_callback”, then you can add parameter new_callback=’{“value1”: null,“value2”: “some_string”}’.
Notice, that you can this way specify arguments only for functions defined in global namespace, i.e. you can define
agument for the function “my_cllback”, but cannot define argument for the fumction “my_namespace.my_callback”. To define
arguments for namespaced functions use parameters “add_callback_submit_args” and “add_callback_paginate_args”.

24) empty_comment_message_text - optional. Allows you to specify the text of the message which will
be displayed in case comment is empty.

25) empty_comment_display_js_alert - optional. Possible values is “yes” and “no”. Default is “no”. Allows you to specify
if you wish empty comment message to be displayed as javascript alert. In case the value is “no” empty comment message
will be displayed inside HTML element whose id attribute is the value of “comments_error_message_id” parameter.

26) pagination_symbol - optional. Allows you to specify a letter or word which in URL indicates pagination. Default value is “N”.
You will need to set some other value (most probably “P”) in case in comment template you use some other ExpressionEngine tag
instead of exp:comment:entries (e.g. for outputting comments you can use exp:query tag). In such case you will need to use the tag
exp:ajax_babble:pagination which also has parameter “pagination_symbol”.

27) protect_backslashes - Optional. In some cases parsing of an ExpressionEngine’s teplate results into removal of
the backslashes inside of some tags. This is probably the case if adding exp:ajax_babble:script tag into template results into javascript errors.
This parameter can have the value “yes” or “no” (default).

II. THE TAG exp:ajax_babble:comments

This is a *tag pair* used to *wrap* the tag exp:comment:entries.

PARAMETERS

1) entry_id - required. This parameter *must* have the value {embed:entry_id}

2) limit - optional. Allows you to specify how many comments should be displayed on one page. Default is 100.
This parameter *must* have exactly the same value as “limit” parameter of exp:comment:entries tag which
is wrapped by exp:ajax_babble:comments tag.

3) max_pagination_links - optional. Allows you to specify how many pagination links should be
  displayed. Default value is “2”.

4) sort - optional. Allows you to specify how - ascendingly (asc)  or descendingly (desc) - comment entries
should be sorted. Default value is “desc”. This parameter *must* have exactly the same value as “sort” parameter
of exp:comment:entries tag which is wrapped by exp:ajax_babble:comments tag.

5) orderby - optional. This parameter sets the display order of the comments. Possible values are: date, email,
location, name, url. Default id “date”. This parameter *must* have exactly the same value as “orderby” parameter
of exp:comment:entries tag which is wrapped by exp:ajax_babble:comments tag.

5) status - optional. Allows to specify status of comments. Defaul value is “open”
E.g. status=“open|closed”

6) search_trigger - optional. Allows you to specify the string in url which will trigger the search for
certain comment. E.g. if this parameter has the value “comment_”, then in case some segment is, say, “comment_255”,
the search will be triggered for the comment having ID number 255.

7) css_id_to_scroll - optional. Allows you to specify CSS id parameter of the comment which will
be scrolled into view after AJAX will load comments. Into view will be scrolled either
the newly submitted comment or the comment which was found by the search triggered by URL.
The value of this parameter *must* be the same as the value of
identically named parameter of exp:ajax_babble:script tag.

8) parse - required. This parameter *must* have the value “inward”.

9) parse_pagination_links - optional. Allows you to specify if the tag exp:ajax_babble:comments should parse
single variable {pagination_links}. Default value is “yes”. Set the value to “no” in following cases: (a) for flexible pagination you use
variable pair {pagination_links}{/pagination_links} instead of single variable {pagination_links}
(see http://expressionengine.com/user_guide/modules/channel/pagination_page.html), (b) in comments template you use
some other ExpressionEngine tag instead of exp:comment:entries (e.g. you can output comments using exp:query tag).
In case you set the value of this parameter to “no” you should use tag pair exp:ajax_babble:pagination (see below).

VARIABLES

1) ajax_babble_entry_id - outputs entry_id number of the entry comments belong to. Used as the value of
of exp:comment:entries tag which is wrapped by exp:ajax_babble:comments tag.

2) ajax_babble_comment_id_to_scroll - comment id of the newly submitted comment or comment id of the
comment the search was triggered for by the string in URL. Used inside conditional which outputs
CSS ID parameter specified by “css_id_to_scroll” parameter of exp:ajax_babble:script tag.

3) ajax_babble_url_title - outputs url_title of the entry comments belong to.

4) ajax_babble_weblog_name - outputs short weblog name of the weblog entry being commented belongs to.

5) ajax_babble_segment_1, ajax_babble_segment_2, ajax_babble_segment_3, ajax_babble_segment_4, ajax_babble_segment_5,
ajax_babble_segment_6, ajax_babble_segment_7, ajax_babble_segment_8, ajax_babble_segment_9 - outputs segments of the URL
which was used to output *main* template.

6) ajax_babble_search_trigger_segment - outputs URL segment in which search triggering string is present.

7) ajax_babble_css_id_to_scroll - outputs the value of “css_id_to_scroll” parameter.

III. MAIN TEMPLATE (E.G technical/ajax_babble_main)

<html>
<head>

<title>AJAX Babble demo</title>

<style>
.pagination a {
cursor: pointer;
color:blue;
}

.pagination a:hover {
text-decoration:underline;
}

div.progress_indicator {
border: solid 1px green;
background-image: url({site_url}images/ajax-loader.gif);
background-repeat: no-repeat;
background-position: center;
height: 7em;
width: 35em;
text-align: center;
display: block!important;
}

div.indicator  {
display: none;
}

.ajax_error {
border: solid 1px red;
height: 7em;
width: 35em;
display: block!important;
}

ul {
width: 20em;
list-style-type: none;
margin: 0;
padding: 0;
}

li {
border: dotted 1px #ccc;
padding: 0.5em;
margin-bottom: 0.5em;
}

blockquote {
margin: 0em;
padding: 0em;
}

ul div {
position:relative;
}

ul div span {
position: absolute;
right: 0;
}
</style>

</head>

<body>

<h1>AJAX Babble demo</h1>

<p>
This plugin uses AJAX to submit comments. Supports pagination, scrolling newly submitted comment into view and triggering search for certain comment through URL. To trigger search for certain comment right-click on the link in the comment's top right corner.
</p>

<div id="preview_progress_indicator" class="indicator">
Loading comment preview…
</div>

<div id="preview_error_message" class="indicator">
<h3 style="margin-bottom: 1em; color: #cc3300;">Error occurred:</h3>
</div>

<div id="preview_container">

</div>

{exp:comment:form entry_id="3665"}

<h2>Post a Comment</h2>

<p><b>Notice.</b> Please, post something sensible. Otherwise computer will think your comment is a spam.</p>

{if logged_out}
<p>Name: <input type="text" name="name" value="" size="50" /></p>

<p>Email: <input type="text" name="email" value="" size="50" /></p>

<p>URL: <input type="text" name="url" value="" size="50" /></p>
{/if}

<textarea name="comment" cols="50" rows="12"></textarea>

<p><input type="submit" id="comments_submit_button" name="submit" value="Submit" />
<input type="submit" id="comments_preview_button" name="preview" value="Preview" /></p>

{/exp:comment:form}

{exp:ajax_babble:script form_id="comment_form" entry_id="3665" comments_template_url="{homepage}/technical/ajax_babble_comments/" preview_template_url="{homepage}/technical/ajax_babble_preview/" comments_container_id="comments_container" preview_container_id="preview_container" submit_button_id="comments_submit_button" preview_button_id="comments_preview_button"  comments_number_id="comments_number" css_id_to_scroll="comment_to_scroll" comments_progress_indicator_id="comments_progress_indicator" preview_progress_indicator_id="preview_progress_indicator" progress_indicator_class="progress_indicator" comments_error_message_id="comments_error_message" preview_error_message_id="preview_error_message" error_message_class="ajax_error" empty_comment_message_text="Comment cannot be empty!" empty_comment_display_js_alert="yes"}

<div id="comments_progress_indicator" class="indicator">
Loading comments…
</div>

<div id="comments_error_message" class="indicator">
<h3 style="margin-bottom: 1em; color: #cc3300;">Error occurred:</h3>
</div>

<div id="comments_container">
{embed="technical/ajax_babble_comments" entry_id="3665"}
</div>

</body>
</html>

IV. COMMENTS TEMPLATE (E.G technical/ajax_babble_comments)

<h2>Comments:</h2>

<ul>

{exp:ajax_babble:comments entry_id="{embed:entry_id}" limit="5" search_trigger="comment_" orderby="date" sort="asc" parse="inward"}

{exp:comment:entries entry_id="{ajax_babble_entry_id}" limit="5" orderby="date" sort="asc" paginate="top" dynamic="off"}

{paginate}
<p class="pagination">Page {current_page} of {total_pages} pages {pagination_links}</p>
{/paginate}

<li {if "{ajax_babble_comment_id_to_scroll}"=="{comment_id}"}id="comment_to_scroll"{/if} class="comment-body">
<div>{url_as_author} at {comment_date format='%m/%d - %h:%i %A'} said: <span><a href="{homepage}/{ajax_babble_segment_1}/{{if "{ajax_babble_segment_2}" != "" AND "{ajax_babble_segment_2}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_2}/{/if}{if "{ajax_babble_segment_3}" != "" AND "{ajax_babble_segment_3}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_3}/{/if}{if "{ajax_babble_segment_4}" != "" AND "{ajax_babble_segment_4}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_4}/{/if}{if "{ajax_babble_segment_5}" != "" AND "{ajax_babble_segment_5}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_5}/{/if}comment_{comment_id}/">{absolute_count}</a></span></div>
<blockquote>{comment}</blockquote>
</li>

{/exp:comment:entries}

{/exp:ajax_babble:comments}

</ul>

V. PREVIEW TEMPLATE (E.G technical/ajax_babble_preview)

<h2>Comment preview:</h2>

{exp:comment:preview}

<ul>

<li>

<div>{name} at {comment_date format='%m/%d - %h:%i %A'} said:</div>

<blockquote>{comment}</blockquote>

</li>

</ul>

{/exp:comment:preview}

VI. DELETING COMMENTS

If you want to allow logged-in users to delete comments on the frontent, it is possible using AJAX Babble.
(Members of Superadmins group will be able to delete any comment, members of the groups with option
“Can delete comments in their own weblog entries” on will be able delete any comment on the entry they authored,
and other logged-in members will be able to delete their own comments only.)

Adding comments deletion functionality involves two steps.

First, you should create a new template, e.g. technical/ajax_babble_delete_comment. In this template you should place
only the tag exp:ajax_babble:delete_comment. This tag can have following parameters:

1) no_permission_msg - optional. This is the text of error message to display when user don’t have permisison to delete comment.
Default value of this parameter is “You’re not permitted to delete this comment.”.

2) comment_not_found_msg - optional. This is the text of error message to display when some comment doesn’t exist or has been deleted.
Default value of this parameter is “The comment does not exist or has been already deleted.”.

Example of technical/ajax_babble_delete_comment template:

{exp:ajax_babble:delete_comment}

Second, you should add exp:ajax_babble:delete_link tag to technical/ajax_babble_comments template. This is *single* tag
which should be used *inside* exp:comment:entries tag pair. exp:ajax_babble:delete_link can have following parameters:

1) comment_id - required. ID number of the comment to be deleted.

2) comment_html_id - required. HTML “id” attribute of the element which contains comment to be deleted.

3) entry_id - required. ID number of the entry comment belongs to.

4) delete_template_url - required. Allows you to specify URL of the template you placed exp:ajax_babble:delete_comment tag.
You must specify full URL, i.e. starting with “http”. This parameter accepts inside its value
the following ExpressionEngine variables: site_id, site_url, site_index, homepage.

5) class - optional. HTML “class” attribute of the delete comment link.

6) link_text - optional. The text of delete comment link. Default value is “Delete”.

7) alert_text - optional. The text that will be displayed by javascript confirm dialogue
after delete comment link has been clicked. Default value is “Do you really want to delete this comment?”.

8) limit - optional. Allows you to specify how many comments should be displayed on one page. Default is 100.
This parameter *must* have exactly the same value as “limit” parameter of exp:comment:entries tag.

9) sort - optional. Allows you to specify how - ascendingly (asc)  or descendingly (desc) - comment entries
should be sorted. Default value is “desc”. This parameter *must* have exactly the same value as “sort” parameter
of exp:comment:entries tag.

10) orderby - optional. This parameter sets the display order of the comments. Possible values are: date, email,
location, name, url. Default id “date”. This parameter *must* have exactly the same value as “orderby” parameter
of exp:comment:entries tag.

11) status - optional. Allows to specify status of comments. Defaul value is “open”
E.g. status=“open|closed”

Example of technical/ajax_babble_comments with exp:ajax_babble:delete_link tag:

<ul>

{exp:ajax_babble:comments entry_id="{embed:entry_id}" limit="5" search_trigger="comment_" orderby="date" sort="asc" parse="inward"}

{exp:comment:entries entry_id="{ajax_babble_entry_id}" limit="5" orderby="date" sort="asc" paginate="top" dynamic="off"}

{paginate}
<p class="pagination">Page {current_page} of {total_pages} pages {pagination_links}</p>
{/paginate}

<li id="comment_wrapper_id_{comment_id}" class="comment-body">
<div{if "{ajax_babble_comment_id_to_scroll}"=="{comment_id}"} id="comment_to_scroll"{/if}>{url_as_author} at {comment_date format='%m/%d - %h:%i %A'} said: <span><a href="{homepage}/{ajax_babble_segment_1}/{{if "{ajax_babble_segment_2}" != "" AND "{ajax_babble_segment_2}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_2}/{/if}{if "{ajax_babble_segment_3}" != "" AND "{ajax_babble_segment_3}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_3}/{/if}{if "{ajax_babble_segment_4}" != "" AND "{ajax_babble_segment_4}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_4}/{/if}{if "{ajax_babble_segment_5}" != "" AND "{ajax_babble_segment_5}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_5}/{/if}comment_{comment_id}/">{absolute_count}</a></span></div>
<blockquote>{comment}</blockquote>

{exp:ajax_babble:delete_link comment_id="{comment_id}" comment_html_id="comment_wrapper_id_{comment_id}" entry_id="{ajax_babble_entry_id}" delete_template_url="{homepage}/technical/embed_ajax_babble_delete_comment/" class="delete_link" limit="5" orderby="date" sort="asc"}

</li>

{/exp:comment:entries}

{/exp:ajax_babble:comments}

</ul>

VII. THE TAG exp:ajax_babble:pagination and flexible pagination

This is a *tag pair* used to *wrap* pagination links. This tag pair is needed in following cases: (a) for flexible pagination you use
variable pair {pagination_links}{/pagination_links} instead of single variable {pagination_links}
(see http://expressionengine.com/user_guide/modules/channel/pagination_page.html), (b) in comments template you use
some other ExpressionEngine tag instead of exp:comment:entries (e.g. you can output comments using exp:query tag).
The tag exp:ajax_babble:pagination has following parameters:

1) entry_id - required. Allows you to specify ID number of the entry being commented on.

2) pagination_symbol - optional. Allows you to specify a letter or word which in URL indicates pagination. Default value is “N”.
You will need to set some other value (most probably “P”) in case in comment template you use some other ExpressionEngine tag
instead of exp:comment:entries (e.g. for outputting comments you can use exp:query tag). NOTICE: the tag exp:ajax_babble:script
also has paramater “pagination_symbol” which must have the same value as paramater “pagination_symbol” of exp:ajax_babble:pagination tag.

Let’s say you use variable pair {pagination_links}{/pagination_links} instead of single variable {pagination_links} for flexible pagination.
Then in your comments template you should use the tag exp:ajax_babble:pagination and add parse_pagination_links=“no” parameter to
exp:ajax_babble:comments tag:


<h2>Comments:</h2>

<ul>

{exp:ajax_babble:comments entry_id="{embed:entry_id}" limit="5" search_trigger="comment_" orderby="date" sort="asc" parse_pagination_links="no" parse="inward"}

{exp:comment:entries entry_id="{ajax_babble_entry_id}" limit="5" orderby="date" sort="asc" paginate="top" dynamic="no" parse="inward"}

{paginate}
<p class="pagination">Page {current_page} of {total_pages} pages
 
{exp:ajax_babble:pagination entry_id="{ajax_babble_entry_id}"}

{pagination_links}

{first_page}
<a href="{pagination_url}" class="page-first">First Page</a>
{/first_page}

{previous_page}
<a href="{pagination_url}" class="page-previous">Previous Page</a>
{/previous_page}

{page}
<a href="{pagination_url}" class="page-{pagination_page_number} {if current_page}active{/if}">{pagination_page_number}</a>
{/page}

{next_page}
<a href="{pagination_url}" class="page-next">Next Page</a>
{/next_page}

{last_page}
<a href="{pagination_url}" class="page-last">Last Page</a>
{/last_page}

{/pagination_links}

{/exp:ajax_babble:pagination}

</p>
{/paginate}

<li {if "{ajax_babble_comment_id_to_scroll}"=="{comment_id}"}id="comment_to_scroll"{/if} class="comment-body">
<div>{url_as_author} at {comment_date format='%m/%d - %h:%i %A'} said: <span><a href="{homepage}/{ajax_babble_segment_1}/{if "{ajax_babble_segment_2}" != "" AND "{ajax_babble_segment_2}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_2}/{/if}{if "{ajax_babble_segment_3}" != "" AND "{ajax_babble_segment_3}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_3}/{/if}{if "{ajax_babble_segment_4}" != "" AND "{ajax_babble_segment_4}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_4}/{/if}{if "{ajax_babble_segment_5}" != "" AND "{ajax_babble_segment_5}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_5}/{/if}comment_{comment_id}/">{absolute_count}</a></span></div>
<blockquote>{comment}</blockquote>
</li>

{/exp:comment:entries}

{/exp:ajax_babble:comments}

</ul>

VIII. USAGE WITH RATING MODULE LIKEE

To use AJAX Babble with rating module Likee you need to add Likee’s tags not into main, but into embedded template (in AJAX Babble’s description it is technical/ajax_babble_comments template):


{exp:likee:js}

<h2>Comments:</h2>

<ul>

{exp:ajax_babble:comments entry_id="{embed:entry_id}" limit="5" search_trigger="comment_" orderby="date" sort="asc" parse="inward"}

{exp:comment:entries entry_id="{ajax_babble_entry_id}" limit="5" orderby="date" sort="asc" paginate="top" dynamic="off"}

{paginate}
<p class="pagination">Page {current_page} of {total_pages} pages {pagination_links}</p>
{/paginate}

<li {if "{ajax_babble_comment_id_to_scroll}"=="{comment_id}"}id="comment_to_scroll"{/if} class="comment-body">
<div>{url_as_author} at {comment_date format='%m/%d - %h:%i %A'} said: <span><a href="{homepage}/{ajax_babble_segment_1}/{if "{ajax_babble_segment_2}" != "" AND "{ajax_babble_segment_2}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_2}/{/if}{if "{ajax_babble_segment_3}" != "" AND "{ajax_babble_segment_3}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_3}/{/if}{if "{ajax_babble_segment_4}" != "" AND "{ajax_babble_segment_4}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_4}/{/if}{if "{ajax_babble_segment_5}" != "" AND "{ajax_babble_segment_5}" != "{ajax_babble_search_trigger_segment}"}{ajax_babble_segment_5}/{/if}>{absolute_count}</a></span></div>
<blockquote>

{comment}

{exp:likee entry_id="{comment_id}"}
   I {like} it.
   I {dislike} it.
   {like_count} likes
   {dislike_count} dislikes    
{/exp:likee}

</blockquote>
</li>

{/exp:comment:entries}

{/exp:ajax_babble:comments}

</ul>

AJAX Babble Links

This entry was created April 19, 2010, 4:02 pm.
This entry was last updated March 21, 2023, 12:22 pm.

Disclaimer: Information about ExpressionEngine add-ons is provided as a service to you, the user, and every member of the ExpressionEngine community. devot:ee is not responsible if you hose, mangle, wreck, or otherwise destroy your EE website by installing an add-on that you found out about at this site, regardless of its rating, Favorites status, commercial or free status, or general popularity. Caveat EEmptor!

Returns: devot:ee has a 30-day return policy on all commercial add-ons sold through devot-ee.com. If you need to return an add-on, do not go to the developer or the developer's site, but rather visit our returns page at https://devot-ee.com/returns to initiate your return. If you have questions, email support@devot-ee.com.

2 Reviews:

Ryan Vosburg 09.28.11

Ryan Vosburg
Rating - {addon_rating_average}

Awesome plugin and great support! Way to go!

romanovsky2007 01.25.11

romanovsky2007
Rating - {addon_rating_average}

amazing plugin!

do you plan to update it to EE2 version?

dmitry