dimayakovlev.ru


DY CSV Table

Описание

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

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

Возможности

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

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

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

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

dyCSVTable(string  $filename, string  $attributes = '', array  $headers = array(), boolean  $autonumbering = false, string  $delimeter = ',', string  $enclosure = '"', string  $escape = "\\", boolean  $echo = true) : string|boolean

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

string$filename

Имя CSV-файла с данными

string$attributes

Строка атрибутов таблицы. Если не задана, формируемая таблица не имеет атрибутов

array$headers

Массив заголовков страницы. Если не определён, заголовки таблицы берутся из первой строки заданного CSV-файла

boolean$autonumbering

Если равен true, в формируемую таблицу добавляется столбец с автоматической нумерацией строк

string$delimeter

Устанавливает символ разделителя поля. Если не задан, используется ',' (запятая)

string$enclosure

Устанавливает символ ограничителя поля. Если не задан, используется '"' (двойная кавычка)

string$escape

Устанавливает экранирующий символ, необязательный параметр. Если не задан, используется "\\" (два обратных слэша)

boolean$echo

Если равен true, сформированный HТML код таблицы печатается, если false, возвращается в виде строки

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

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

(% dyCSVTable filename:'my-csv-files/file.csv' %)

Синтаксис, используемый в шорткодах для передачи значений параметрам, имеет вид: параметр1:"значение для параметр1" параметр2:"значение для параметр2". Значения параметров должны быть заключены в одинарные или двойные кавычки. Параметры, используемые в шорткодах, соответствуют параметрам, передаваемым фукнции dyCSVTable, за исключением параметра $echo.

При перечислении заголовков столбцов таблицы необходимо использовать в качестве разделителя символ “|” (вертикальная черта): (% dyCSVTable filename:'my-csv-file/files.csv' headers:'Заголовок 1|Заголовок 2|Заголовок 3' %).

Пример работы DY CSV Table

CSV-файл для обработки

Субъект федерации;Территория (км.кв.);Административный центр;Административно-территориальное деление
Адыгея;7792;Майкоп;7 районов и 2 города
Алтай;92 903;Горно-Алтайск;10 районов и 1 город
Башкортостан;142 947;Уфа;54 района и 21 город
Бурятия;351 334;Улан-Удэ;21 район и 2 города
Дагестан;50 270;Махачкала;41 район и 10 городов
Ингушетия;3628;Магас;4 района и 4 города
Кабардино-Балкария;12 470;Нальчик;10 районов и 3 города
Калмыкия;74 731;Элиста;13 районов и 1 город
Карачаево-Черкесия;14 277;Черкесск;10 районов и 2 города
Карелия;180 520;Петрозаводск;16 районов и 13 городов
Коми;416 774;Сыктывкар;12 районов и 8 городов
Крым;26 081;Симферополь;18 районов и 16 городов
Марий Эл;23 375;Йошкар-Ола;14 районов и 4 города
Мордовия;26 128;Саранск;22 района и 7 городов
Саха (Якутия);3 083 523;Якутск;33 района и 5 городов
Северная Осетия — Алания;7987;Владикавказ;8 районов и 1 город
Татарстан;67 847;Казань;43 района и 14 городов
Тыва;168 604;Кызыл;17 районов и 2 города
Удмуртия;42 061;Ижевск;25 районов и 5 городов
Хакасия;61 569;Абакан;8 районов и 5 городов
Чечня;15 647;Грозный;17 районов и 5 городов
Чувашия;18 343;Чебоксары;21 район и 9 городов

Приведённый в качестве примера CSV-файл, содержит перечень республик, входящих в состав Российской Федерации. Первая строка CSV-файла содержит наименования столбцов таблицы.

Вызов DY CSV Table с использование шорткода

<div class="table-responsive">
  (% dyCSVTable filename:'my-csv-files/file.csv' attributes:'class="table table-striped"' autonumbering='true' delimeter:';' %)
</div>

Результат

<div class="table-responsive">
    <table class="table table-striped">
        <thead>
            <tr>
                <th class="dy-csv-table-autonumbering">&nbsp;</th>
                <th>Субъект федерации</th>
                <th>Территория (км.кв.)</th>
                <th>Административный центр</th>
                <th>Административно-территориальное деление</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>Адыгея</td>
                <td>7792</td>
                <td>Майкоп</td>
                <td>7 районов и 2 города</td>
            </tr>
            <tr>
                <td>2</td>
                <td>Алтай</td>
                <td>92 903</td>
                <td>Горно-Алтайск</td>
                <td>10 районов и 1 город</td>
            </tr>
            <tr>
                <td>3</td>
                <td>Башкортостан</td>
                <td>142 947</td>
                <td>Уфа</td>
                <td>54 района и 21 город</td>
            </tr>
            <tr>
                <td>4</td>
                <td>Бурятия</td>
                <td>351 334</td>
                <td>Улан-Удэ</td>
                <td>21 район и 2 города</td>
            </tr>
            <tr>
                <td>5</td>
                <td>Дагестан</td>
                <td>50 270</td>
                <td>Махачкала</td>
                <td>41 район и 10 городов</td>
            </tr>
            <tr>
                <td>6</td>
                <td>Ингушетия</td>
                <td>3628</td>
                <td>Магас</td>
                <td>4 района и 4 города</td>
            </tr>
            <tr>
                <td>7</td>
                <td>Кабардино-Балкария</td>
                <td>12 470</td>
                <td>Нальчик</td>
                <td>10 районов и 3 города</td>
            </tr>
            <tr>
                <td>8</td>
                <td>Калмыкия</td>
                <td>74 731</td>
                <td>Элиста</td>
                <td>13 районов и 1 город</td>
            </tr>
            <tr>
                <td>9</td>
                <td>Карачаево-Черкесия</td>
                <td>14 277</td>
                <td>Черкесск</td>
                <td>10 районов и 2 города</td>
            </tr>
            <tr>
                <td>10</td>
                <td>Карелия</td>
                <td>180 520</td>
                <td>Петрозаводск</td>
                <td>16 районов и 13 городов</td>
            </tr>
            <tr>
                <td>11</td>
                <td>Коми</td>
                <td>416 774</td>
                <td>Сыктывкар</td>
                <td>12 районов и 8 городов</td>
            </tr>
            <tr>
                <td>12</td>
                <td>Крым</td>
                <td>26 081</td>
                <td>Симферополь</td>
                <td>18 районов и 16 городов</td>
            </tr>
            <tr>
                <td>13</td>
                <td>Марий Эл</td>
                <td>23 375</td>
                <td>Йошкар-Ола</td>
                <td>14 районов и 4 города</td>
            </tr>
            <tr>
                <td>14</td>
                <td>Мордовия</td>
                <td>26 128</td>
                <td>Саранск</td>
                <td>22 района и 7 городов</td>
            </tr>
            <tr>
                <td>15</td>
                <td>Саха (Якутия)</td>
                <td>3 083 523</td>
                <td>Якутск</td>
                <td>33 района и 5 городов</td>
            </tr>
            <tr>
                <td>16</td>
                <td>Северная Осетия — Алания</td>
                <td>7987</td>
                <td>Владикавказ</td>
                <td>8 районов и 1 город</td>
            </tr>
            <tr>
                <td>17</td>
                <td>Татарстан</td>
                <td>67 847</td>
                <td>Казань</td>
                <td>43 района и 14 городов</td>
            </tr>
            <tr>
                <td>18</td>
                <td>Тыва</td>
                <td>168 604</td>
                <td>Кызыл</td>
                <td>17 районов и 2 города</td>
            </tr>
            <tr>
                <td>19</td>
                <td>Удмуртия</td>
                <td>42 061</td>
                <td>Ижевск</td>
                <td>25 районов и 5 городов</td>
            </tr>
            <tr>
                <td>20</td>
                <td>Хакасия</td>
                <td>61 569</td>
                <td>Абакан</td>
                <td>8 районов и 5 городов</td>
            </tr>
            <tr>
                <td>21</td>
                <td>Чечня</td>
                <td>15 647</td>
                <td>Грозный</td>
                <td>17 районов и 5 городов</td>
            </tr>
            <tr>
                <td>22</td>
                <td>Чувашия</td>
                <td>18 343</td>
                <td>Чебоксары</td>
                <td>21 район и 9 городов</td>
            </tr>
        </tbody>
    </table>
</div>