Наполнение и модерирование даже относительно небольшого сайта отнимает массу времени. Полностью автоматизировать эти процессы не получается, поэтому рутинную работу приходится делать людям. Но совсем без специальных инструментов эффективность труда контент-менеджеров и модераторов бывает чудовищно низкой. И, мне кажется, здесь хорошим решением являются пользовательские скрипты.
Если вдруг не знаете, речь о программах на javascript, которые хранятся на локальной машине, и которые можно запускать на страницах любых сайтов, получая доступ к DOM. В Firefox это делается с помощью расширения Greasemonkey, в Chrome — с помощью Tampermonkey, в Opera — с помощью файлов user.js.
Что именно можно делать? Например, можно в пару кликов постить найденные в интернете картинки и кусочки текста на свой сайт. Посмотрите, как работает букмарклет френдфида. Можно в любом месте на своем сайте внедрить edit-in-place-редактирование. Можно подсвечивать ненормативную лексику и т.д.
Чем пользовательские скрипты лучше тех, что «встроены» в сайт? Они могут работать не только на вашем, но и на любом другом сайте. Их не нужно деплоить, не нужно думать о контроле доступа, не нужно тестировать в разных браузерах. Они гранулярные. Они могут быть написаны грязно, на один раз. Их проще начать разрабатывать, а потом, при необходимости, легко перенести на сайт. Не нужно писать лишний серверный код.
Общий алгоритм такой:
- Человек мышкой указывает на текст/URL/картинку/видео на вашем или чужом сайте.
- После клика/выделения появляются поля для редактирования/добавления параметров и кнопка для сохранения.
- После нажатия на кнопку отправляется POST-запрос.
- Этот запрос обрабатывается простеньким серверным скриптом, который выполняет insert/update запросы к базе данных и обрабатывает файлы.
Скорость выполнения операций с такими вспомогательными скриптами возрастает в разы. Что не менее важно, избавление от части рутинных кликов делает процесс для человека гораздо приятнее.
Ссылки на фрагменты кода для людей, которые, как и я, не особенно хорошо знают javascript:
- Как с помощью javascript отправить POST-запрос
- Как получить HTML-код выделенного мышкой текста
- Как достать GET-параметры из URL текущей страницы
- Как навешивать события на элементы с помощью addEventListener
- Список событий для addEventListener
- Текст для передачи GET-запросом можно закодировать функцией encodeURIComponent()
Если вы напишете пару подобных скриптов, то увидите, что они однотипные и простые. После этого, когда будете замечать трудоемкий участок рутинной работы, сразу будет хотеться его автоматизировать. Когда объемы большие, написать пользовательский скрипт — быстрее, чем решать задачу в лоб.
Комментарии
Алексей, 07.02.2013 22:35
Дима, привет. Рад, что ты снова написал пост, надеюсь, та регулярность, чтобы наблюдалась год-полтора назад, снова вернётся :-)
По теме: у юзерскриптов есть одна ужасно неприятная особенность: их надо обновлять и устанавливать локально. То есть их внедрение мало пригодно для сайтов, которые будут обслуживаться клиентами или часто меняющимися контентщиками, потому что куча накладных расходов придётся на обучение, обновление версий и т.д. разве что идти дальше и делать сразу своё «студийное» расширение для браузера.
Дмитрий Сергеев, 08.02.2013 09:46
Спасибо за добрые слова.
С недостатком согласен.
Мне нравится, что при разработке нужен минимум лишних движений. Психологически проще решиться автоматизировать какую-то задачу. Не нужно думать, как в этой CMS "правильно" подключить edit-in-place, как бы использовать максимум уже написанного кода. Написал - решил текущую задачу, дальше, если приживется, срипт можно облагородить.