dimayakovlev.ru


DY XML Table

Описание

Плагин DY XML Table для системы управления контентом GetSimple CMS предназначен для упрощения и автоматизации публикации табличных данных, представленных в формате XML-документов.

Типичными сценариями для использования DY XML Table является публикации на страницах веб-сайта часто обновляемых статистических, аналитических данных, прайс-листов, складских остатков, а так же любой другой информации, представленной в табличном виде. Таким образом, применение DY XML Table может значительно повысить эффективность использования веб-сайта, а так же снизить затраты на его администрирование.

Возможности

  • поддержка шорткодов: вызов DY XML Table встраивается непосредственно в содержание страницы и не требует от пользователя специальных знаний в области программирования или обязательного редактирования компонентов или шаблонов оформления страниц веб-сайта;
  • экономичное использование ресурсов веб-сервера: плагин поддерживает возможность кэширования данных, что позволяется понизить потребление вычислительных ресурсов веб-сервера при обработке объёмных XML-документов, а так же повысить скорость формирования страниц веб-сайта и обеспечить стабильность его работы;
  • полный контроль над оформлением: DY XML Table не использует предопределённых стилей оформления в формируемом HTML коде, что даёт полную свободу при встраивании таблиц в используемую тему оформления веб-сайта.

Использование

Для начала работы с DY XML Table необходимо подготовить и загрузить на веб-сервер XML-документы с данными. Загружать XML-документы следует непосредственно в стандартную директорию, используемую GetSimple CMS для хранения, загруженных пользователем, файлов, или в созданные внутри неё директории.

DY XML Table работает с XML-документами, имеющими структуру с определённым уровнем вложенности элементов: корень / потомок корня / тупиковый элемент.

Пример XML-документа для обработки

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <item>
    <manufacturer>Canon</manufacturer>
    <model>EOS 5D Mark III</model>
    <type>Body</type>
    <quantity>1</quantity>
    <price>176669</price>
  </item>
  <item>
    <manufacturer>Canon</manufacturer>
    <model>EOS 6D</model>
    <type>Body</type>
    <quantity>1</quantity>
    <price>94999</price>
  </item>
  <item>
    <manufacturer>Canon</manufacturer>
    <model>EOS 70D</model>
    <type>Kit</type>
    <quantity>3</quantity>
    <price>84999</price>
  </item>
  <item>
    <manufacturer>Canon</manufacturer>
    <model>EOS 100D</model>
    <type>Kit</type>
    <quantity>4</quantity>
    <price>38499</price>
  </item>
</records>

Приведённый XML-документ, содержащий данные об ассортименте магазина фототехники, был сформирован при помощи табличного редактора Microsoft Excel, на основе данных, хранящихся в рабочей книге. Для автоматического формирования XML-документов необходимо настроить используемое программное обеспечение. При необходимости XML-документы могут быть набраны вручную.

DY XML Table может использоваться непосредственно в PHP коде, а так же встраиваться в текст страницы при помощи шорткода.

Использование DY XML Table в PHP коде

Для использования DY XML Table в PHP коде используется функция:

<?php dyXMLTable($file, $full, $thead, $echo); ?>

Параметры, принимаемые функцией:

  • $file - имя XML файла с данными. Имя файла должно содержать путь к файлу относительно директории uploads, а так же включать в себя расширение файла (.xml);
  • $full - управляет формирование таблицы, необязательный параметр:
    • $full = true - формируется полная таблица (значение по умолчанию);
    • $full = false - формируется тело таблицы - cтроки таблицы, объединённые блоком <tbody></tbody>;
  • $thead - массив, содержащий заголовки для столбцов формируемой таблицы, необязательный параметр. По умолчанию принимает значение null, формируемая таблица не содержит заголовков столбцов;
  • $echo - управляет выводом функции, необязательный параметр:
    • $echo = true - функция печатает результат на странице, значение по умолчанию;
    • $echo = false - функция возвращает строку, содержащую HTML код сформированной таблицы.

Пример использования функции:

<?php
  dyXMLTable('my-xml-files/shop.xml', true, array('Производитель', 'Модель', 'Комплектация', 'Количество', 'Цена, руб.'), true);
?>

Использование DY XML Table через шорткоды

Для встраивания таблицы в текст страницы, в редакторе текста следует использовать специальный шорткод:

keywords: 'разработка, лаборатория, GetSimple CMS, плагин, xml, таблица, данные'
(% dyXMLTable filename:data.xml full:true THEAD:"Title | Description" %)
Параметры, используемые в шорткоде соответствуют параметрам, передаваемым фукнции dyXMLTable, кроме параметра $echo. При перечислении заголовков столбцов необходимо использовать разделитель следующего вида: “” (пробел, вертикальная черта, пробел).

Пример использования шорткода в тексте страницы:

<div class="table-responsive">
  <table class="table table-striped">
    <thead>
      <tr>
        <th>Производитель</th>
        <th>Модель</th>
        <th>Комплектация</th>
        <th>Количество</th>
        <th>Цена, руб.</th>
      </tr>
    </thead>
    (% dyXMLTable filename:my-xml-files/shop.xml %)
  </table>
</div>

Результат работы DY XML Table

<div class="table-responsive">
    <table class="table table-striped">
        <thead>
            <tr>
                <th>Производитель</th>
                <th>Модель</th>
                <th>Комплектация</th>
                <th>Количество</th>
                <th>Цена, руб.</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Canon</td>
                <td>EOS 5D Mark III</td>
                <td>Body</td>
                <td>1</td>
                <td>176669</td>
            </tr>
            <tr>
                <td>Canon</td>
                <td>EOS 6D</td>
                <td>Body</td>
                <td>1</td>
                <td>94999</td>
            </tr>
            <tr>
                <td>Canon</td>
                <td>EOS 70D</td>
                <td>Kit</td>
                <td>3</td>
                <td>84999</td>
            </tr>
            <tr>
                <td>Canon</td>
                <td>EOS 100D</td>
                <td>Kit</td>
                <td>4</td>
                <td>38499</td>
            </tr>
        </tbody>
    </table>
</div>