Описание
Плагин 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"> </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>