Відображення відгуків на продукти як карток
У цьому прикладі описано, як за допомогою маніфесту розширити функціонал веб-шаблона й відобразити на веб-сторінці відгуки на продукти у форматі картки.
Навчіться створювати компоненти шаблонів для відображення відгуків на продукти
Крок 1. Підготовка
- Створіть у своєму середовищі таблицю з відповідними стовпцями (ім'я, вміст та оцінка)
- Скопіюйте логічне ім’я таблиці.
- Створіть кілька прикладів записів у новій таблиці.
Крок 2. Налаштування веб-шаблона
Скопіюйте вихідний код до нового веб-шаблона в середовищі. Додаткові відомості: Процедура створення компонента веб-шаблона.
{% fetchxml postsQuery %} <fetch mapping='logical'> <entity name='cr50f_review'> <attribute name='cr50f_name' /> <attribute name='cr50f_content' /> <attribute name='cr50f_rating' /> <attribute name='createdon' /> <order attribute='createdon' descending='false' /> </entity> </fetch> {% endfetchxml %} {% assign posts_count = count | integer %} {% assign column_count = columns | integer %} {% assign cutoff = cutoff | integer %} <h2>{{ name | default: "Feedback entries (default)" }} </h2> <span>Showing {{ posts_count }} out of {{ postsQuery.results.entities.size }}</span> {% if postsQuery.results.entities.size > 0 %} <div class="col-sm-12"> <ul style="list-style:none" class="grid"> {% for post in postsQuery.results.entities limit: posts_count %} <li class="col-md-{{ 12 | divided_by: column_count }}"> <div class="panel panel-{% if post.cr50f_rating < cutoff %}danger{%elsif post.cr50f_rating == cutoff%}warning{%elsif post.cr50f_rating == 10%}success{% else %}default{% endif %}"> <div class="panel-heading">{{ post.cr50f_name }} <span class="badge" style="float:right">{{ post.cr50f_rating }}</span> </div> <div class="panel-body" style="height:150px"> <p>{{ post.cr50f_content }}</p> </div> <div class="panel-footer" style="height:55px"> <span>{{ post.createdon }}</span> {% if post.cr50f_rating < cutoff %} <button type="button" class="btn btn-danger" style="float:right" onclick="alert('Flagging this review!')"> <span class="glyphicon glyphicon-flag" aria-hidden="true"></span> </button> {% endif %} </div> </div> </li> {% endfor %} </ul> </div> {% if postsQuery.results.entities.size > count %} <hr/> <button onclick="alert('Not yet implemented :)')" class="button1" style="margin: 0 auto; display:block">{{ load_more_label | default: "Load More" }}</button> {% endif %} {% endif %} {% manifest %} { "type": "Functional", "displayName": "Posts", "description": "Shows all posts", "tables": ["cr50f_review"], "params": [ { "id": "name", "displayName": "Title", "description": "Let's give it a title" }, { "id": "count", "displayName": "Count", "description": "No. of items" }, { "id": "columns", "displayName": "# of Columns", "description": "less than 12" }, { "id": "cutoff", "displayName": "Limit for review", "description": "Number between 1 and 10" }, { "id": "load_more_label", "displayName": "Load more label", "description": "" } ] } {% endmanifest %}
Замініть усі входження cr50f на ім'я схеми нової таблиці. Це також повинно вирішити можливі проблеми із властивостями fetchXML, а також у HTML і
{% manifest %}
.
Крок 3. Застосуйте веб-шаблон
- Додайте новий веб-шаблон до копії сторінки, наприклад, додайте
{% include 'product-reviews' name:'Product Review' count:'15' columns:'3' cutoff:'5' load_more_label:'Load more entries' %}
або{% include 'product-reviews' name:'Product Review' count:'3' columns:'3' cutoff:'5' load_more_label:'Load more entries' %}
, скориставшись веб-програмою Visual Studio Code. - Відредагуйте та налаштуйте властивості веб-шаблону в студії дизайну.
- Якщо потрібно використати цей компонент на інших веб-сторінках, повторіть попередній крок для налаштування його відображення згідно з вимогами.
- Виберіть редагувати дані для оновлення записів у новій таблиці.