Я программирую CMS, которая позволяет создавать и редактировать элементы (блоки контента) на сайте в режиме WYSIWYG. в основном, когда вы вошли в систему, вы визуально видите один и тот же веб-сайт, но при наведении курсора и нажатии на элементы появляются либо редакторы (например, Aloha), либо дополнительные элементы управления.
Например:
- при наведении на абзац будет отображаться
небольшое меню на его стороне, которая позволяет
выбирая между левым, центральным и
выравнивание по правому краю
- нажатие на абзац сделает его редактируемым
- при наведении курсора на изображение будет отображаться точка с правой стороны изображения, которую можно перетаскивать, изменяя ширину изображения (высота будет пропорционально обновляться)
- при наведении курсора на любой из блоков на веб-сайте появится кнопка «+», позволяющая создать еще один блок перед наведенным блоком.
- и т.д.
Моя текущая стратегия состоит в том, чтобы использовать аналогичную технику, которую я видел в Nike Better World и с тех пор использую: существует экземпляр javascript, который вызывает плагин jquery для каждого элемента html, который имеет данные. атрибут controller, имя плагина определяется атрибутом data-controller.
Немного расширив эту концепцию, я бы использовал ее для прикрепления всех видов элементов управления к блокам контента.
Но, будучи новичком, только недавно я наткнулся на фреймворки javascript mvc, такие как backbone.js. Я работал с MVC на стороне сервера (в Кохане), но еще никогда не работал в javascript. Кажется, я могу это использовать, но мне неясно, какова будет стратегия. CMS, над которой я работаю, является своего рода гибридом между правильным javascript-приложением и html-сайтом старой школы. Я не понимаю, как я могу использовать, например, объект коллекции backbone.js для блоков контента, если они уже загружены в HTML страницы (для меня нет смысла загружать их с помощью javascript).
У кого-нибудь есть предложения?