Single Rating Block – Like This

Rating templates are used to display rating elements on the front end. This can include like, text, current user rating, and other things. And, with the use of templates, you have a lot of control over the rating display.

This user guide is for the Default template for the Single Rating Block for the Like This method.

Introduction

Single Rating Block is used to display rating for the single rating item. To do so, you can use one of the many provided templates each rating method has. But, each rating method has one main template, called Default that also includes additional actions and filters to control the display of the elements in the template without the need to directly modify the template. Because of that, the Default template is the best solution to be used as a general purpose template with additional control through filters and actions. Other templates might include some actions and filters too, and you should check individual templates.

Templates display various elements of the rating block. Some of these elements can be controlled by providing additional settings though function (method) calls, or by using filters to modify these additional settings. Each rating method has different methods available and different filters to modify settings. This user guide will show the whole process of how Default template works, and how can you modify the results by using filters and actions provided, and it will include references to the used filters and actions.

Anatomy of the Default Template

Here is how the Default Stars Rating template for single rating block looks like:

<?php // GDRTS Template: Default // ?>

<div class="<?php gdrts_loop()->render()->classes(); ?>">
    <div class="gdrts-inner-wrapper">

        <?php do_action('gdrts-template-rating-block-before'); ?>

        <?php

        do_action('gdrts-template-like-this-default-before-rating-stars');

        gdrts_loop()->render()->likes();

        do_action('gdrts-template-like-this-default-after-rating-stars');

        ?>

        <?php if (apply_filters('gdrts-template-like-this-default-show-rating-text', true)) { ?>

            <div class="gdrts-rating-text gdrts-text-inline">
                <?php

                do_action('gdrts-template-like-this-default-before-rating-text');

                if (gdrts_loop()->render()->has_votes()) {
                    gdrts_loop()->render()->rating();
                } else {
                    $no_votes = __("Be the first one to like this.", "gd-rating-system");

                    echo apply_filters('gdrts-template-like-this-default-no-votes-message', $no_votes);
                }

                do_action('gdrts-template-like-this-default-after-rating-text');

                ?>
            </div>

        <?php } ?>

        <?php

        if (apply_filters('gdrts-template-like-this-default-show-please-wait', true)) {
            do_action('gdrts-template-like-this-default-before-please-wait');

            if (gdrts_loop()->is()) {
                gdrts_loop()->please_wait(null, null, 'gdrts-text-inline');
            }

            do_action('gdrts-template-like-this-default-before-please-wait');
        }

        gdrts_loop()->json();
        
        do_action('gdrts-template-rating-block-after');

        ?>

    </div>
</div>

Line 3 renders main wrapping DIV using method to get CSS classes for this rating block using method call: gdrts_loop()->render()->classes(). If you are customizing the template you can pass one or more CSS class as a string argument for the classes() method. This method runs the filter for all the CSS classes to add:

The rest of the rating block is inside the DIV with the gdrts-inner-wrapper class. The first action fired there is universal for all single block templates:

Rating Element

After that, we have the main like rating element. This element has two actions fired before and after the stars are displayed: gdrts-template-like-this-default-before-rating-stars and gdrts-template-like-this-default-after-rating-stars. Like is rendered on the line 14 using the method call: gdrts_loop()->render()->likes(). This method has various parameters you can set, or you can use the filter to modify them. For method information check this out:

Or, if you prefer to use the filter, check out the filter gdrts_render_single_like_this_args_likes. This filter works with all the templates, not just the Default one, if the template calls the likes() rendering method.

Most of the other template elements are optional.

Rating Text

Filter gdrts-template-like-this-default-show-rating-text is used to decide if the rating text will be displayed (default: true). Inside the rating text DIV, we have two actions fired: gdrts-template-like-this-default-before-rating-text and gdrts-template-like-this-default-after-rating-text. Between these two, we have the block that shows the rating text if the rating item has votes. To display rating text, the template uses the method: gdrts_loop()->render()->rating().

Or, if you prefer to use the filter, check out the filter gdrts_render_single_like_this_args_rating. This filter allows you to modify the strings displaying the rating text. This filter works with all the templates, not just the Default one, if the template calls the rating() rendering method.

Unlike other methods, rating text includes the information about the current user vote, so this rating method doesn’t have dedicated user vote block for the template.

Please wait

For the ‘Please wait’ message, you have a filter gdrts-template-like-this-default-show-please-wait to decide if the ‘Please wait’ will be displayed or not (default: true). Actions gdrts-template-like-this-default-before-please-wait and gdrts-template-like-this-default-before-please-wait are run around the ‘Please wait’ message. And, the message is displayed using the method call: gdrts_loop()->please_wait(). For the please wait method call, by default, Like This templates pass the ‘gdrts-text-inline’ class.

In the end, lines with the method call gdrts_loop()->json() and actions that follow are required in all single block templates.

Other templates

The plugin includes more than just the Default template. But, these templates are simpler, they don’t have all the extra filters and actions Default template has. If you understand the Default template, you can think of other templates as examples of what else can be done with templates customization, and to help you started with your own templates.

0
0
53
Rate this user guide

You are not allowed to rate this post.

Comments

Leave a Reply