Попытка придумать способ написать веб-CMS - PullRequest
1 голос
/ 22 июля 2010

Поэтому я хочу, чтобы мои пользователи сами управляли контентом сайта. Например, когда клиент / посетитель находится на сайте, они видят контент (содержимое каждой страницы или абзац хранятся в базе данных). Если сотрудник находится на сайте, он должен иметь возможность войти (или интегрировать в LDAP), и для каждого <p> или <div> рядом с ним должен быть маленький значок редактирования. Когда они щелкают по нему, он превращает абзац в расширенное текстовое поле, где они могут сами редактировать содержимое.

Это то, о чем я думал некоторое время, но никогда не реализовывал и хотел бы попробовать. Есть ли какие-нибудь учебники или книги, с которых я могу начать? Я могу сделать это в php или asp.net (mvc).

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

Концепция не сложна, вот как я ее вижу:

- Когда пользователь нажимает на иконку редактирования, в javascript он принимает любой html-код внутри указанного "div", замените его натекстовое поле (HTML-редактор, такой как tinymce, было бы еще лучше) и поместите в него существующий html.

- Когда содержимое было отредактировано, оно должно иметь кнопку отправки.При отправке он должен выполнить ajax-вызов функции на стороне сервера, которая сохранит содержимое в вашей базе данных.

- Последний шаг - обновить всю страницу или только измененный раздел с помощью другого ajax-вызова.

Вот плагин для jquery, который упростит вашу работу: http://www.appelsiini.net/projects/jeditable

и вот демо (просто нажмите на текст, чтобы отредактировать его): http://www.appelsiini.net/projects/jeditable/default.html

Вы также можете реализовать функцию перетаскивания, чтобы пользователи могли размещать «div» там, где они хотят.

Надеюсь, это поможет

0 голосов
/ 22 июля 2010

Исходя из вашей схемы дизайна задней части салфетки, вы захотите рассмотреть следующие вопросы:

  • Как пользователь создает совершенно новую страницу?Будет ли это функцией CMS?
  • Как пользователь добавляет новый блок на страницу и размещает его там, где хочет?
  • Как пользователь редактирует несколько блоков?Это будет важно?
  • Как хранятся ваши данные, чтобы можно было редактировать на уровне блоков?
  • Будет ли у вас история изменений, процесс редактирования и т. Д .?
  • Будет ли какое-либо разрешение конфликтов для одновременных правок?

В конечном счете, используемая вами технология не будет иметь большого значения, так что выбирайте то, с чем вы наиболее знакомы или что проще всего / дешевле для вашегоинфраструктуры.Посмотрите на другие системы CMS для идей.(Обратите внимание, что то, что популярная CMS делает что-то определенным образом, не означает, что это хорошая идея. Просто сказать ...)

...