Наша взаимовыгодная связь https://banwar.org/
Зараз ми з вами реалізуємо коментарі на MODX Revo за допомогою компонента Tickets. Даний компонент працює як з авторизованими користувачами, так і з анонімами. Ми з вами будемо працювати з анонімними користувачами. Блок коментарів ми будемо підлаштовувати під наш шаблон:
Отже, для того, щоб приступити, нам необхідно встановити компонент Tickets зі сховищ modstore.pro (він є і в офіційному репозиторії, але я раджу встановлювати саме з modstore.pro, так як там він швидше оновлюється).
З усього пакета Tickets нам поки знадобиться тільки сниппет TicketComments. Для того щоб нам почати його використовувати необхідно створити 3 чанка:
Чанк обгортки коментарів - commentsWrapperTpl (будьте уважні, порівнюйте класи і ідентифікатори з оригінальним чанка Tickets):
<Section class = "inner-bottom-xs comments"> <h3> <span id = "comment-total"> [[+ total]] </ span> коммент. </ H3> <div id = "comments-wrapper "> <div class =" comment-list "id =" comments "> [[+ comments]] </ div> </ div> <div id =" comments-tpanel "> <div id =" tpanel-refresh " > </ div> <div id = "tpanel-new"> </ div> </ div> </ section>Чанк самого коментаря - commentTpl (будьте уважні, порівнюйте класи і ідентифікатори з оригінальним чанка Tickets):
<Div class = "comment-item ticket-comment" id = "comment - [[+ id]]" data-parent = "[[+ parent]]" data-newparent = "[[+ new_parent]]" data- id = "[[+ id]]"> <div class = "row no-margin ticket-comment-body [[+ bad]]"> <div class = "col-lg-1 col-xs-12 col- sm-2 no-margin "> <div class =" avatar "> <img src =" [[+ avatar]] "alt =" avatar "> </ div> </ div> <div class =" col-xs -12 col-lg-11 col-sm-10 no-margin-right "> <div class =" comment-body "> <div class =" meta-info "> <header class =" row no-margin "> <div class = "pull-left ticket-comment-rating inactive"> <h4 class = "author"> <a href="[[+url]]#comment-[[+id]]"> [[+ fullname ]] </a> </ h4> <span class = "date"> - [[+ date_ago]] </ span> <span class = "likes plus"> <span class = "likes-count rating [[+ rating_positive]] [[+ rating_negative]] "> [[+ rating]] </ span> <i class =" icon fa fa-thumbs-up "> </ i> </ span> <span class =" dislikes minus "> <i class =" icon fa fa-thumbs-down "> </ i> </ span> [[+ has_parent]] <span class =" ticket-comment-down "> <a href =" # "data -child = ""> ↓ </a> </ span> </ div> </ header> </ div> <div class = "co mment-content "> [[+ text]] </ div> </ div> </ div> </ div> <div class =" comments-list "> [[+ children]] </ div> </ div > <! - tickets_rating_positive positive -> <! - tickets_rating_negative negative -> <! - tickets_has_parent <span class = "ticket-comment-up"> <a href = "[[+ url]] # comment- [[+ parent]] "data-id =" [[+ id]] "data-parent =" [[+ parent]] "> ↑ </a> </ span> ->Чанк сторінки написання коментаря - commentFormTpl (будьте уважні, порівнюйте класи і ідентифікатори з оригінальним чанка Tickets):
<Section id = "reply-block" class = "leave-reply"> <h4 id = "comment-new-link"> <a href="#" class="btn btn-default"> [[% ticket_comment_create] ] </a> </ h4> <h3> Написати коментар </ h3> <p> Ваш email не буде опублікований. Обов'язкові поля відмічені символом <abbr class = "required"> * </ abbr> </ p> <div id = "comment-form-placeholder"> <form role = "form" id = "comment-form" action = " "method =" post "class =" reply-form cf-style-1 "> <div id =" comment-preview-placeholder "> </ div> <input type =" hidden "name =" thread "value =" [[+ thread]] "/> <input type =" hidden "name =" parent "value =" 0 "/> <input type =" hidden "name =" id "value =" 0 "/> <div class = "row field-row"> <div class = "col-xs-12 col-sm-6"> <label> [[% ticket_comment_name]] * </ label> <input class = "le-input" name = "name" value = "[[+ name]]" id = "comment-name"> <span class = "error"> </ span> </ div> <div class = "col-xs-12 col-sm -6 "> <label> [[% ticket_comment_email]] * </ label> <input class =" le-input "name =" email "value =" [[+ email]] "id =" comment-email "> <span class = "error"> </ span> </ div> </ div> <div class = "row field-row"> <div class = "col-xs-12"> <label for = "comment- editor "> </ label> <textarea name =" text "id =" comment-editor "cols =" 30 "rows =" 10 "class =" form-control "> < / Textarea> </ div> </ div> <div class = "row field-row"> <div class = "col-xs-12"> [[+ captcha]] </ div> </ div> <button class = "le-button big post-comment-button submit" type = "submit" value = "[[% ticket_comment_save]]" title = "Ctrl + Shift + Enter"> Написати </ button> </ form> </ div> </ section> <! - tickets_captcha <div class = "row field-row"> <div class = "col-xs-12"> <label for = "comment-captcha" id = "comment-captcha" > [[+ captcha]] </ label> <input type = "text" name = "captcha" value = "" id = "comment-captcha" class = "form-control" /> <span class = "error" > </ span> </ div> </ div> ->
Після того як наші чанкі будуть створені, в шаблоні "Пост" на місці коментарів нам необхідно викликати сниппет TicketComments з наступними параметрами:
[[! TicketComments? & AllowGuest = `1` & tplCommentFormGuest =` commentFormTpl` & tplCommentGuest = `commentTpl` & tplCommentAuth =` commentTpl` & tplComments = `commentsWrapperTpl` & gravatarSize =` 70`]]
Думаю, що означають ці параметри, ви прочитаєте в документації (Вона російською, не лякайтеся). Тепер у нас працюють коментарі! Вітаю! В панелі адміністратора тепер з'явився пункт управління коментарями в розділі "додатка".
Також нам необхідно вивести кількість коментарів. Стандартними засобами це зробити не вийде, тому як вивести кількість коментарів дивіться в іншій статті .
Даний урок, де ми робили блог - останній. З наступного уроку ми приступимо до розробки Інтернет-магазину. Найцікавіше ще попереду!
TicketComments?