Commenters

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 displays list of comment authors and entries they commented on.

I. PARAMETERS

1) site - Optional. Allows you to specify site id number.
You can stack site id numbers using pipe character to get entries
from any of those sites, e.g. site="1|3". Or use "not"
(with a space after it) to exclude sites, e.g. site="not 1|2".

2) weblog - Optional. Allows you to specify weblog name.
You can use the pipe character to get entries from any of those
weblogs, e.g. weblog="weblog1|weblog2|weblog3".
Or you can add the word "not" (with a space after it) to exclude weblogs,
e.g. weblog="not weblog1|weblog2|weblog3".

3) channel - Optional. For EE2.x only. Allows you to specify channel name.
You can use the pipe character to get entries from any of those
channel, e.g. channel="channel1|channel2|channel3".
Or you can add the word "not" (with a space after it) to exclude channel,
e.g. channel="not channel1|channel2|channel3"

4) category - Optional. Allows you to specify category id number
(the id number of each category is displayed in the Control Panel).
You can stack categories using pipe character to get entries
with any of those categories, e.g. category="3|6|8". Or use "not"
(with a space after it) to exclude categories, e.g. category="not 4|5|7".

5) status - Optional. Allows you to specify status of entries. You can choose multiple
statuses using a pipe status="draft|reviewed|published" or exclude statuses using "not"
status="not submitted|processing|closed".

6) entry_id - Optional. Allows you to specify entry_id of entries. You can specify multiple
entry_ids using pipe, e.g. entry_id="101|109|12|136" or exclude entry_ids using "not",
e.g. entry_id="not 101|109|12|136".

7) entry_series - Optional. Allows you to specify pipe delimited series of
entry ids, e.g. entry_series="78|95|54|22|156". Entries will be outputted exactly
in the same order. You also can specify up to 50 pipe delimited series of
entry ids using parameters entry_series_1, entry_series_2, entry_series_3 ...
entry_series_48, entry_series_49, entry_series_50.

8) author_id - Optional. Allows you to specify member ID of entry author. You can specify multiple
author_ids using pipe, e.g. entry_id="15|19|78" or exclude entry_ids using "not",
e.g. author_id="not 1|6".

9) commenter_id - Optional. Allows you to specify member ID of comment author. You can specify multiple
commenter_ids using pipe, e.g. commenter_id="15|19|78" or exclude entry_ids using "not",
e.g. commenter_id="not 1|6".

10) ajax_pagination - Optional. Allows you to specify if using pagination the pages
should be loaded via ajax. Possible values are "yes" and "no". Default is "no".

11) commenters_orderby - Optional. This parameter sets the display order of the commenters.
Possible values are "screen_name" and "comments_number". Default is "comments_number".

12) commenters_sort - Optional. Allows you to specify sort order of commenters.
Sort order can be ascending (sort="asc") or descending (sort="desc").
Default is descending.

13) commenters_limit - Optional. Allows you to specify max number of commenters to be displayed. Default value is "20".
To display all commenters set the value of this parameter to "none".

14) commenters_per_page - Optional. Allows you to specify max number of commenters to be displayed on one
page (if using pagination). Default value is "10".

15) entries_orderby - Optional. This parameter sets the display order of the entries.
Possible values are "date", "title", "edit_date", "comment_total", "most_recent_comment".
Default is "date".

16) entries_sort - Optional. Allows you to specify sort order of entries.
Sort order can be ascending (sort="asc") or descending (sort="desc").
Default is descending.

17) entries_per_commenter_limit - Optional. Allows you to specify max number of entries to be displayed for
each commenter. Default value is "20". To display all commented entries set the value of this parameter to "none".

18) entries_per_commenter_on_page - Optional. Allows you to specify max number of entries to be displayed for
each commenter on one page (if using pagination). Default value is "10".

19) expired_entries - Optional. Allows you to specify if expired entries should be displayed.
Possible values are "yes" and "no". Default is "no".

20) expired_comments - Optional. Allows you to specify if expired comments should be counted.
Possible values are "yes" and "no". Default is "no".

21) invalid_input - Optional. Accepts two values: "alert" and "silence".
Default value is "silence". If the value is "alert", then in cases when some
parameter"s value is invalid plugin exits and PHP alert is being shown;
if the value is "silence", then in cases when some parameter"s value
is invalid plugin finishes its work without any alert being shown.
Set this parameter to "alert" for development, and to "silence" - for deployment.

22) date_format - Optional. Allows you to specify how date should be formatted.
Use ExpressionEngine’s date formatting code. Default format is "%D, %F %d, %Y".

23) date_localize - Optional. Allows you to specify if the date should be localized.
Possible values are "yes" and "no". Default is "no".

24) time_span_entries - Optional. Allows you to specify number of days from now.
E.g. time_span_entries="14" means that plugin will display commented entries posted
during the last 14 days.

25) time_span_comments - Optional. Allows you to specify number of days from now.
E.g. time_span_comments="21" means that plugin will display commented entries which have comments submitted
during the last 21 days.

26) max_pagination_links - Optional. Allows you to specify how many pagination links should be
displayed. Default value is "2".

27) ajax_namespace - Optional. Used in case you add several exp:commenters tag on one template
each having parameter ajax_pagination="yes". In such case each exp:commenters tag *must* have
parameter "ajax_namespace" with unique string as its value.

28) ajax_post_vars_commenters - Optional. Allows you to specify pipe delimited list of POST variable names which will be
sent by AJAX while fetching commenters data. E.g. ajax_post_vars_commenters="my_var_1|my_var_2".

29) ajax_post_values_commenters - Optional. Allows you to specify pipe delimited list of POST variable values which will be
sent by AJAX while fetching commenters data. E.g. ajax_post_values_commenters="my_value_1|my_value_2". On the template which will be used by AJAX those POST
variables can be outputted by some other add-on, e.g. by "GET/POST Parameters" plugin available at http://devot-ee.com/add-ons/get-post-parameters/.

30) ajax_post_vars_entries - Optional. Allows you to specify pipe delimited list of POST variable names which will be
sent by AJAX while fetching commented entries data. E.g. ajax_post_vars_entries="my_var_1|my_var_2".

31) ajax_post_values_entries - Optional. Allows you to specify pipe delimited list of POST variable values which will be
sent by AJAX while fetching commented entries data. E.g. ajax_post_values_entries="my_value_1|my_value_2". On the template which will be used by AJAX those POST
variables can be outputted by some other add-on, e.g. by "GET/POST Parameters" plugin available at http://devot-ee.com/add-ons/get-post-parameters/.

32) ajax_main_template_url - Optional. Allows you to specify template group name and template name
(those names shoul be separated by slash) which will be used by AJAX to fetch commenters data.

33) ajax_entries_template_url - Optional. Allows you to specify template group name and template name
(those names shoul be separated by slash) of the template which will be used by AJAX to fetch entries data.

34) ajax_container_id - Optional. Allows you to specify CSS id parameter of the HTML element
inside which AJAX should output data about commenters.

35) entries_container_class - Optional. Each commenter’s entries will be outputted inside div container. This parameter
allows to specify CSS class parameter of that div element.

36) progress_indicator_commenters_id - Optional. Allows you to specify CSS id parameter of the HTML element
which will act as the indicator of commenters data being loaded via AJAX.

37) progress_indicator_commenters_class - Optional. Allows you to specify CSS class parameter of the HTML element
which will act as the indicator of commenters data being loaded via AJAX.

38) error_message_commenters_container_id - Optional. Allows you to specify CSS id parameter of the HTML element
inside which an error message will be outputted in case pulling commenters data by AJAX fails.

39) error_message_commenters_container_class - Optional. Allows you to specify CSS class parameter of the HTML element
inside which an error message will be outputted in case pulling commenters data by AJAX fails.

40) progress_indicator_entries_id - Optional. Allows you to specify CSS id parameter of the HTML element
which will act as the indicator of entries data being loaded via AJAX.

41) progress_indicator_entries_class - Optional. Allows you to specify CSS class parameter of the HTML element
which will act as the indicator of entries data being loaded via AJAX.

42) error_message_entries_container_id - Optional. Allows you to specify CSS id parameter of the HTML element
inside which an error message will be outputted in case pulling entries data by AJAX fails.

43) error_message_entries_container_class - Optional. Allows you to specify CSS class parameter of the HTML element
inside which an error message will be outputted in case pulling entries data by AJAX fails.

44) ajax_add_callback_commenters - Optional. Allows you to specify name of javascript function which
will be executed when AJAX response containing commenters data will be outputted after clicking of some pagination link.
This parameters supports pipe character, i.e. you can add several callback functions.

45) ajax_add_callback_commenters_args - Optional. Allows you to specify argument of javascript function which will
be executed when AJAX response containing commenters data will be outputted after clicking of some pagination link.
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 "ajax_add_callback_commenters" parameter.
If some functions should have arguments and other functions shouldn’t, specify "null" or "0" (without quotation marks)
as arguments for the latter.

46) ajax_add_callback_entries - Optional. Allows you to specify name of javascript function which
will be executed when AJAX response containing entries data will be outputted after clicking of some pagination link.
This parameters supports pipe character, i.e. you can add several callback functions.

47) ajax_add_callback_entries_args - Optional. Allows you to specify argument of javascript function which will
be executed when AJAX response containing entries data will be outputted after clicking of some pagination link.
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 "ajax_add_callback_entries" parameter.
If some functions should have arguments and other functions shouldn’t, specify "null" or "0" (without quotation marks)
as arguments for the latter.


II. VARIABLE PAIRS

Inside the tag pair {exp:commenters}{/exp:commenters} there can be following variable pairs:

1) {commenters_general_info_top}{/commenters_general_info_top}
2) {commenters_general_info_bottom}{/commenters_general_info_bottom}
3) {commenters_author}{/commenters_author}
4) {commenters_entry}{/commenters_entry}
5) {commenters_authors_pagination_top}{/commenters_authors_pagination_top}
6) {commenters_authors_pagination_bottom}{/commenters_authors_pagination_bottom}
7) {commenters_entries_pagination_top}{/commenters_entries_pagination_top}
8) {commenters_entries_pagination_bottom}{/commenters_entries_pagination_bottom}
 
Each single variable should be inside relevant variable pair. The tag pair {exp:commenters}{/exp:commenters}
will not output any content which is outside above mentioned variable pairs.

Conditionals are supported for each single variable.
 
III. VARIABLE PAIRS {commenters_general_info_top}{/commenters_general_info_top} AND {commenters_general_info_bottom}{/commenters_general_info_bottom}

Inside these variable pairs there can be following single variables:

1) commenters_author_total - outputs total number of commenters which satisfy conditions
specified in parameters of exp:commenters tag.

2) commenters_comments_total - - outputs total number of comments submitted by commenters which satisfy conditions
specified in parameters of exp:commenters tag.

IV. VARIABLE PAIR {commenters_author}{/commenters_author}

Inside this variable pair there can be following single variables:

1) commenters_author_count - outputs count number of commenter.

2) commenters_author_absolute_count - outputs absolute count number of commenter (including pagination).

3) commenters_author_total - outputs total number of commenters which satisfy conditions
specified in parameters of exp:commenters tag.

4) commenters_author_id - outputs member ID of commenter.

5) commenters_author_screen_name - outputs screen name of commenter.

6) commenters_author_comments_number - outputs number of comments posted by commenter.

7) commenters_author_commented_entries_number - outputs number of entries commenter has
commented on.

8) commenters_author_avatar_url - outputs URL to the avatar image associated with the comment’s author. Typically used as such:

{if commenters_author_avatar_url}<img  src="{commenters_author_avatar_url}" width="{commenters_author_avatar_width}" height="{commenters_author_avatar_height}" alt="{commenters_author_screen_name}'s avatar" />{/if}

9) commenters_author_avatar_width - outputs width of the avatar image associated with the comment’s author.

10) commenters_author_avatar_height - outputs height of the avatar image associated with the comment’s author.

V. VARIABLE PAIR {commenters_entry}{/commenters_entry}

Inside this variable pair there can be following single variables:

1) commenters_entry_count - outputs count number of entry.

2) commenters_entry_absolute_count - outputs absolute count number of entry (including pagination).

3) commenters_entry_id - outputs ID number of entry.

4) commenters_entry_title - outputs title of entry.

5) commenters_entry_url_title - outputs url_title of entry.

6) commenters_entry_status - outputs status of entry.

7) commenters_entry_date - outputs date of entry.

8) commenters_entry_weblog_id - outputs weblog ID of the weblog entry was posted into.

9) commenters_entry_weblog_name - outputs weblog short name of the weblog entry was posted into.

10) commenters_entry_weblog_title - outputs weblog title of the weblog entry was posted into.

11) commenters_entry_weblog_url - outputs weblog url as specified in Control Panel.

12) commenters_entry_channel_id - (EE2.x+ only) outputs channel ID of the channel entry was posted into.

13) commenters_entry_channel_name - (EE2.x+ only) outputs channel short name of the channel entry was posted into.

14) commenters_entry_channel_title - (EE2.x+ only) outputs channel title of the channel entry was posted into.

15) commenters_entry_channel_url - (EE2.x+ only) outputs channel url as specified in Control Panel.

16) commenters_entry_author_comments_number - outputs total number of comments posted by commenter.

17) commenters_entry_comments_number - outputs number of comments posted by commenter on relevant entry.

VI. VARIABLE PAIRS {commenters_authors_pagination_top}{/commenters_authors_pagination_top} AND {commenters_authors_pagination_bottom}{/commenters_authors_pagination_bottom}

Inside these variable pairs there can be following single variables:

1) commenters_current_page - outputs number of current page (of pages displaying commenters).

2) commenters_total_pages - outputs number pages (of pages displaying commenters).

3) commenters_pagination_links - outputs pagination links (of pages displaying commenters).

VII. VARIABLE PAIRS {commenters_entries_pagination_top}{/commenters_entries_pagination_top} AND {commenters_entries_pagination_bottom}{/commenters_entries_pagination_bottom}

Inside these variable pairs there can be following single variables:

1) commenters_current_page - outputs number of current page (of pages displaying entries commented by certain commenter).

2) commenters_total_pages - outputs number pages (of pages displaying entries commented by certain commenter).

3) commenters_pagination_links - outputs pagination links (of pages displaying entries commented by certain commenter).

VII. SIMPLE EXAMPLE 1

In this example no pagination, no commented entries displayed, no AJAX used.

<html>

<head>

<title>Commenters plugin's Simple Demo 1</title>

</head>

<body>

<h2>Commenters plugin's Simple Demo 1</h2>

<p>No pagination, no commented entries displayed, no AJAX used.</p>

<h2>Top commenters</h2>

{exp:commenters weblog="my_weblog" category="5|11" commenters_per_page="20" ajax_pagination="no" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<p> <img  src="{commenters_author_avatar_url}" width="{commenters_author_avatar_width}" height="{commenters_author_avatar_height}" alt="{author}'s avatar" /> {if commenters_author_avatar_url == ""}[No avatar]{/if} {commenters_author_absolute_count}. {commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</p>
{/commenters_author}

{/exp:commenters}

</body>

</html>

VIII. SIMPLE EXAMPLE 2

Displaying pagination, but no commented entries displayed, no AJAX used.

<html>

<head>

<title>Commenters plugin's Simple Demo 2</title>

</head>

<body>

<h2>Commenters plugin's Simple Demo 2</h2>

<p>Displaying pagination, but no commented entries displayed, no AJAX used.</p>

<h2>Top commenters</h2>

{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" ajax_pagination="no" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<p class="interface_paragraph">{commenters_author_absolute_count}. {commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</p>
{/commenters_author}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}

</body>

</html>

IX. SIMPLE EXAMPLE 3

Displaying pagination and commented entries, but no AJAX used.

<head>

<title>Commenters plugin's Simple Demo 3</title>

</head>

<body>

<h2>Commenters plugin's Simple Demo 3</h2>

<p>Displaying pagination and commented entries, but no AJAX used.</p>

<h2>Top commenters</h2>

{exp:category_id category_group="ebook_projecttitle_categories" category_url_title="homeric_hymns" parse="inward"}
{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" entries_per_commenter_limit="10"  ajax_pagination="no" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<h3>{commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</h3>
{/commenters_author}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}
{/exp:category_id}

</body>

</html>

X. COMPLEX EXAMPLE 1

Using AJAX pagination, no commented entries displayed.

Main template code:

<html>

<head>

<title>Commenters plugin's Complex Demo 1</title>

<style>
a {
color: blue;
cursor: pointer;
}
.indicator  {
display: none;
}
div.progress_indicator {
background-image: url({site_url}/images/ajax-loader.gif);
background-repeat: no-repeat;
background-position: center bottom;
height: 4em;
width: 15em;
text-align: center;
display:block;
}
div.ajax_error {
width: 15em;
text-align: center;
display:block;
}
</style>

</head>

<body>

<h2>Commenters plugin's Complex Demo 1</h2>

<p>Using AJAX pagination, no commented entries displayed</p>

<h2>Top commenters</h2>

<div id="comment_authors_progress_indicator" class="indicator">
<h3>Loading list of commenters…</h3>
</div>

<div id="comment_authors_error_message" class="indicator">
<h3>Error occurred:</h3>
</div>

<div id="comments_authors_list">

{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5"  ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_container_id="comments_authors_list"  progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<p>{commenters_author_absolute_count}. {commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</p>
{/commenters_author}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}

</div>

</body>

</html>

The code in the template my_template_group/my_template which will be fetched by AJAX:

{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_container_id="comments_authors_list"  progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<p>{commenters_author_absolute_count}. {commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</p>
{/commenters_author}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}

XI. COMPLEX EXAMPLE 2

Using AJAX pagination, limited number of commented entries displayed.

Main template code:

<html>

<head>

<title>Commenters plugin's Complex Demo 2</title>

<style>
a {
color: blue;
cursor: pointer;
}
.indicator  {
display: none;
}
div.progress_indicator {
background-image: url({site_url}/images/ajax-loader.gif);
background-repeat: no-repeat;
background-position: center bottom;
height: 4em;
width: 20em;
text-align: center;
display:block;
}
div.ajax_error {
width: 20em;
text-align: center;
display:block;
}
</style>

</head>

<body>

<h2>Commenters plugin's Complex Demo 2</h2>

<p>Using AJAX pagination, limited number of commented entries displayed</p>

<h2>Top commenters</h2>

<div id="comment_authors_progress_indicator" class="indicator">
<h3>Loading list of commenters…</h3>
</div>

<div id="comment_authors_error_message" class="indicator">
<h3>Error occurred:</h3>
</div>

<div id="comments_authors_list">

{exp:category_id category_group="ebook_projecttitle_categories" category_url_title="homeric_hymns" parse="inward"}
{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" entries_per_commenter_limit="10"  ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_container_id="comments_authors_list"  progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<h3>{commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</h3>
{/commenters_author}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_absolute_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}
{/exp:category_id}

</div>

</body>

</html>

The code in the template my_template_group/my_template which will be fetched by AJAX:

{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" entries_per_commenter_limit="10"  ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_container_id="comments_authors_list"  progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<h3>{commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</h3>
{/commenters_author}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_absolute_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{commenters_authors_pagination_bottom}<p class="textaligncenter pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_authors_pagination_bottom}

{/exp:commenters}

XII. COMPLEX EXAMPLE 3

Displaying unlimited number of commenters using AJAX pagination,  and displaying unlimited number of commented entries using separate AJAX pagination.

Main template code:

<html>

<head>

<title>Commenters plugin's Complex Demo 3</title>

<style>
a {
color: blue;
cursor: pointer;
}
.indicator  {
display: none;
}
div.progress_indicator {
background-image: url({site_url}eesys/images/ajax-loader.gif);
background-repeat: no-repeat;
background-position: center bottom;
height: 4em;
width: 20em;
text-align: center;
display:block;
}
div.ajax_error {
width: 20em;
text-align: center;
display:block;
}
.commenters_ajax_entries_container {
padding-left: 1em;
}
</style>

</head>

<body>

<h2>Commenters plugin's Complex Demo 3</h2>

<p>Displaying unlimited number of commenters using AJAX pagination,  and  displaying unlimited number of commented entries using separate AJAX pagination</p>

<h2>Top commenters</h2>

<div id="comment_authors_progress_indicator" class="indicator">
<h3>Loading list of commenters…</h3>
</div>

<div id="comment_authors_error_message" class="indicator">
<h3>Error occurred:</h3>
</div>

<div id="comment_authors_entries_progress_indicator" class="indicator">
<p class="textaligncenter interface_paragraph">Loading list of pages commented by {commenters_author_screen_name}...</p>
</div>

<div id="comment_authors_entries_error_message" class="indicator">
<p class="textaligncenter interface_paragraph">Error occurred:</p>
</div>

<div id="comments_authors_list">

{exp:category_id category_group="ebook_projecttitle_categories" category_url_title="homeric_hymns" parse="inward"}
{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" entries_per_commenter_limit="none" entries_per_commenter_on_page="5" ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_entries_template_url="my_template_group/my_template2" ajax_container_id="comments_authors_list" entries_container_class="commenters_ajax_entries_container" progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" progress_indicator_entries_id="comment_authors_entries_progress_indicator" progress_indicator_entries_class="progress_indicator" error_message_entries_container_id="comment_authors_entries_error_message" error_message_entries_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<h3>{commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</h3>
{/commenters_author}

{commenters_entries_pagination_top}<p class="pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_entries_pagination_top}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_absolute_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{commenters_authors_pagination_bottom}<h3>Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</h3>{/commenters_authors_pagination_bottom}

{/exp:commenters}
{/exp:category_id}

</div>

</body>

</html>

The code in the template my_template_group/my_template which will be fetched by AJAX:

{exp:commenters weblog="my_weblog" category="5|11" commenters_limit="none" commenters_per_page="5" entries_per_commenter_limit="none" entries_per_commenter_on_page="5" ajax_pagination="yes" ajax_namespace="CommentAuthorsList" ajax_main_template_url="my_template_group/my_template" ajax_entries_template_url="my_template_group/my_template2" ajax_container_id="comments_authors_list" entries_container_class="commenters_ajax_entries_container" progress_indicator_commenters_id="comment_authors_progress_indicator" progress_indicator_commenters_class="progress_indicator" error_message_commenters_container_id="comment_authors_error_message" error_message_commenters_container_class="ajax_error" invalid_input="alert" parse="inward"}

{commenters_general_info_top}<p class="commentp">{commenters_author_total} commenter{if commenters_author_total > 1}s{/if} posted {commenters_comments_total} comment{if commenters_comments_total > 1}s{/if}</p>{/commenters_general_info_top}

{commenters_author}
<h3>{commenters_author_screen_name} ({commenters_author_comments_number} comment{if commenters_author_comments_number > 1}s{/if} on {commenters_author_commented_entries_number} page{if commenters_author_commented_entries_number > 1}s{/if})</h3>
{/commenters_author}

{commenters_entries_pagination_top}<p class="pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_entries_pagination_top}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_absolute_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{commenters_authors_pagination_bottom}<h3>Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</h3>{/commenters_authors_pagination_bottom}

{/exp:commenters}

The code in the template my_template_group/my_template2 which will be fetched by AJAX (the tag exp:get_post_vars belongs to GET and POST Variables plugin):

{exp:get_post_vars parse="inward"}
{exp:commenters weblog="my_weblog" category="5|11" commenter_id="{post_member_id}" entries_per_commenter_on_page="5" entries_per_commenter_limit="none" ajax_pagination="yes" ajax_namespace="CommentAuthorsList" parse="inward"}

{commenters_entries_pagination_top}<p class="pagination">Page {commenters_current_page} of {commenters_total_pages} {commenters_pagination_links}</p>{/commenters_entries_pagination_top}

{commenters_entry}
<p class="interface_paragraph">{commenters_entry_absolute_count}. <a href="{commenters_entry_weblog_url}{commenters_entry_url_title}">{commenters_entry_title}</a> ({commenters_entry_author_comments_number} comment{if commenters_entry_author_comments_number > 1}s{/if} out of {commenters_entry_comments_number})</p>
{/commenters_entry}

{/exp:commenters}

{/exp:get_post_vars}

Commenters Links

This entry was created February 3, 2011, 12:35 pm.
This entry was last updated August 30, 2011, 6:17 am.

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.

There are no reviews for this add-on yet.

What are you waiting for? Rate it and review it!