G@G 20 октября 2014 1 7
Здравствуйте коллеги! Возникла необходимость загружать многостраничные методички на сайт. И столкнулся с такой проблемой, ни как не могу найти, каким образом сделать в Modx Revo многостраничный ресурс.
Буду благодарен за любые советы.
7 комментариев
К
Каминари 20 октября 2014г в 10:21 #
Может, вам пригодится что-то подобное?
К
Каминари 20 октября 2014г в 10:25 #
А вообще, было бы здорово реализовтаь подобный модуль:

Допустим, вам необходимо хранить большое количество текстовых символов и выдавать по запросу пользователя их определенный диапазон (страницы).

Условно, я вижу 3 способа хранить данные для поставленной задачи с позиции оптимизации и нагрузки:
— файлом на сервере (допустим, .txt формат)
— одной кучей текста в одной ячейки таблицы sql с последующей разбивкой php на страницы
— дробить при добавлении текста на подстраницы и заливать каждую страницу отдельной записью в базе

Насколько я понимаю, первый способ имеет минус с позиции стилизации текста (нет возможности визуально добавлять изображения и стили), второй — необходимостью пользователю выгрузить всю книгу разом и уже после обрабатывать (и так каждый раз при переключении страницы), а третий — большим количеством записей в базе(с одной книги ~100-200 записей).

Поэтому, возможна следующей задумка:

При добавлении книги с админки предоставлять визуальный редактор, куда нужно выгрузить весь текст разом и, при желании, стилизовать.
//ну или альтернатива: выбрать файл для загрузки

После нажатия кнопки сохранить, в базу поступает только информационная часть о книге (название, описание, иконка, id, ...), а сам текст книги один раз парсится (с анализом обрезания страницы до конца абзаца/предложения/слова и закрытости тегов) и каждая полученная таким образом страница обрамляется невидимыми тегами-комментариями вида



… после чего благополучно заливается на сервер в заданную папку с названием вида [id].txt и при запросе пользователем конкретной страницы книги только ищет в заданной записи соответствующий комментарий и выводит только часть текста заданной длины.

Ну и при редактировании книги, админка заново запрашивает весь файл и его можно легко редактировать дальше.

Т.е. вся нагрузка уходит с пользователя и базы на файловую систему (нагрузка минимальна) и в момент сохранения документа.

P.s. буду рад услышать любые За и Против данного метода и возможные способы реализации.
К
Каминари 20 октября 2014г в 10:26 #
упс, вырезался тег:

..вида
 
К
Каминари 20 октября 2014г в 10:27 #
Похоже, даже через тег code режется строка с закоментированным участком..)
Fi1osof1
Fi1osof 20 октября 2014г в 10:30 #
Да, пока не идеально обрабатывается посылаемый код. Тег <4code> не стоит передовать внутри такого же кода.
Или на гистхаб листинги выкладывайте.
G
G@G 20 октября 2014г в 10:32 #
Спасибо Максим.
PageBreaker - похоже решение моей проблемы

Плагин добавляет 4 кнопочки на панель редактора.

Ручная разбивка. Выставляет разделитель в месте, где сейчас стоит курсор.
Автоматическая разбивка через указанное количество символов.
Автоматическая разбивка через каждые 2000 символов.
Очистка разделителей

Пока для меня этого вполне достаточно, дальше буду смотреть.
G
G@G 20 октября 2014г в 10:35 #
А вообще, было бы здорово реализовтаь подобный модуль:

Тоже подумывал об этом для загрузки, например, статических ресурсов.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.