Командная строка для управления сайтом

20.03.2008

Для опытных пользователей командная строка нередко быстрее и удобнее, чем графический интерфейс. У некоторых CMS есть зачатки консолей. Например, в администраторском разделе может быть окошко для исполнения SQL-запросов.

Мне кажется интересной идея развитой консоли для управления сайтом. Работать она может в браузере. Уместным будет AJAX. А может лучше сразу в shell?

По-моему на задачах вроде настройки меню можно получить колоссальный выигрыш во времени. Вместо создания пунктов, вкладывания их друг в друга, сортировки при помощи мыши достаточно будет писать несложные команды.

Удобно было бы задавать параметры модулей, раздавать права доступа, перестраивать кеш и поисковый индекс.

Может видели что-нибудь подобное? Интересно было бы посмотреть «вживую».

Комментарии

Uznick, 20.03.2008 17:26

> По-моему на задачах вроде настройки меню можно получить колоссальный
> выигрыш во времени. Вместо создания пунктов, вкладывания их друг в друга,
> сортировки при помощи мыши достаточно будет писать несложные команды.

А зачем? Все радостно кричат, что cms делаются для простых пользоваталей, а не для программистов. А простой пользователь не будет пользоваться консолью, ему проще и очевиднее мышкой перетащить пункты.

Дмитрий Сергеев, 20.03.2008 20:27

>> Все радостно кричат, что cms делаются для простых пользоваталей...

Я не кричу :)

CMS CMF рознь. Блоговому движку консоль может и не нужна, а сложному продукту пригодится. Командная строка мне видится в качестве вспомогательного средства для разработчиков и администраторов больших сайтов.

Роман Настенко, 20.03.2008 18:04

Консоль ЖЖ, очень удобна для массовых операций:
http://www.livejournal.com/admin/console/

Дмитрий Сергеев, 20.03.2008 20:29

>> Консоль ЖЖ...

Спасибо за пример, я не знал про такую штуку.

SHAman, 20.03.2008 18:11

Вообще, согласен с Uznick. Консоль требует хоть какой-то соображалки относительно того, что ты делаешь. Если обратиться к вашему примеру с SQL, можно понять, что обычный пользователь делать этого не будет. А программер сделает по-умному:)

Хотя, согласен, иногда нехватает возможности через веб-интерфейс что-то такое сделать. Одну выборочку или шаблончик изменить... Скорее даже просто выборочку нестандартную.

В принципе, консоль для SQL была бы неплоха. Но только для ограниченного числа пользователей CMS. То есть, как плагин.

Дмитрий Сергеев, 20.03.2008 20:32

Конечно, как добавка к админке. GUI пусть остается. А специалистам, которым важна производительность труда, консольку в самый раз.

Речь не идет об обычных пользователях.

Никита Козин, 21.03.2008 08:46

Поддерживаю, для редакторов сайта консоль не нужна, а вот для администратора, который технической стороной занимается — была бы полезной.

Дмитрий Сергеев, 20.03.2008 20:32

Обычные пользователи и в ОС командной строкой не пользуются.

Зимин Дмитрий, 20.03.2008 20:07

Чтобы пользоваться консолью с той же легкостью, что и в *nix, нужно чтобы у CMS была столь же фантастическая архитектура. Пока архитектура CMS, не говоря уже об их удобстве, оставляет желать лучшего.

Дмитрий Сергеев, 20.03.2008 20:39

У Drupal архитектура как раз позволяет прикрутить консоль. Есть даже проект под названием Drupal Shell, позволяющий, например, через CLI устанавливать модули. Они, по-моему, сами скачиваются из главного репозитария и сами распаковываются.

Но это не совсем то, о чем я говорю. Мне, прежде всего, интересно конфигурирование движка из командной строки и администрирование сайта.

СГДС, 29.03.2008 19:16

а по-моему drush это позволяет всё делать. Хотя сам его не использовал, но когда почитал доки на английском, идеи понравились но сильно наворочено сейчас для меня.

Konstantin, 20.03.2008 20:26

Что-то типа консоли, которая есть например в жж?
Я вот только её не смотрел дальше бана юзеров и было это давно, так что по поводу функционала не уверен.. конечно до правки меню, шаблонов и тд она не доходит, но думаю некоторую часть данной идеи воплощает :)

Константин Тумалевич, 20.03.2008 21:43

В фреймворке Ruby on Rails в любом проекте есть консоль ... есть даже вроде какой-то плагин позволяющий ей пользоваться в браузере ...

Дмитрий Сергеев, 21.03.2008 12:36

Я почитал, по-моему мощная штука.

...you can inspect domain models, change values, and save to the database...

...you can get a full trace of anything...

Интересно, ей кто-нибудь пользуется?

Kyxa, 22.03.2008 11:49

Ага, я с django разбирался - там тоже такая вещь есть.
Действительно, с ней удивительно удобно разрабатывать и тестить модельки получается :)

Виктор, 21.03.2008 09:59

Типовые действия, которые совершает редактор сайта, удобнее сделать в привычном гуй-режиме с отдельной админкой, либо, если позволяет архитектура, модным inplace редактированием. Консоль же для администратора (человека с достаточным уровнем технических знаний) вполне может существовать, но необходимости в ее web версии я лично не вижу. Разумнее использовать возможности того же bash completion для создания удобного иструмента, чем изобретать что то яваскриптовое. Пожалуй единственная консолька на жаваскрипте достойная внимания -
http://base2.googlecode.com/svn/trunk/src/apps/MiniWeb/MiniWeb.html , но она как раз частично эмулирует поведение юниксового шела.

Дмитрий Сергеев, 21.03.2008 13:00

Интересно, что получится, если делать CMS, глядя на нее, как на юниксовое приложение. Развертывание из командной строки шела, какое-то конфигурирование, администрирование. Поищу.

Виктор, 21.03.2008 13:04

http://code.djangoproject.com

http://turbogears.org/

http://trac.edgewall.org

все питон фрэймворки это дело очень любят.

Andrey, 21.03.2008 10:36

Думаю что не прокатит. Обычно наполнением и администрацией сайта занимаются далёкие от технологий люди, которые обучены нажать пару кнопок и выполнить базовые действия.
Консоль для администрации сайта будет требовать более серьёзной квалификации и вряд ли у кого-то будет желание заниматься специальным обучением сотрудников.

Артём Курапов, 21.03.2008 11:56

В своей цмс-ке обошёлся тем, что система запускается через разные интерфейсы.. В том числе и из CLI. Правда приходится вручную подгружать библиотеки mysql/mb_string, но зато можно запускать процессы из crontab минуя wget.

Насчёт SQL-интерфейса тоже есть, но не в открытую, а для SQLyog, что-бы можно было удалённо править базу. Делать ajax-ную консоль в админке небыло нужды. Хотя в принципе идея неплохая иметь аналог консольного управления системой вместо только графического. Вот только какой язык для этого использовать?

Дмитрий Сергеев, 21.03.2008 13:06

>> Хотя в принципе идея неплохая иметь аналог консольного управления системой вместо только графического. Вот только какой язык для этого использовать?

Не знаю :) Чтобы он хорошо поддавался автодополнению.

Спасибо, что рассказал любопытные вещи про свою CMS. Расширяет кругозор.

Kyxa, 22.03.2008 12:15

Интересная идея, нужно прикручивать к своей кмс :)

Думаю сделать следующим образом: вот есть у меня в кмс готовый набор ф-й, который возможно получают какие-либо аргументы. Несколько десятков таких вот ф-й-работников (запустить индексацию сайта, запустить бекап, сделать запрос к базе для получения статистики по ботам и т.д.).

Они есть, и в моей кмс их можно исполнять просто вызывая "правильный" урл. Но все эти ф-ии довольно трудно запомнить, и их можно конечно прикручивать "вручную" (как сейчас и сделано - просто ссылками вызываются ф-ии).

А можно сделать намнооого интереснее :) Аналогично как в сетти - http://www.pixel-apes.com/setty. Как: берем и описываем все ф-ии ключевыми словами. И делаем "горячий" поиск по этим словам.

Т.е. я например ввожу слово "сео", а оно ищет все мои ф-ии, с этим словом связаные - и само мне под них урлы с описаниями формирует (и возможно даже считывает какие "параметры" ф-я может получать и под них поля подготавливает...) - типа "сколько сегодня ботов, сколько сегодня людей с поисковиков, считать и сохранить статистику с аналитикса, показать общую месячную статистику, показать все запросы с конкретного поисковика и т.д.". Причем это можно и в веб-интерфейс вкрутить, и в cli сделать...

Фёдор Двинятин, 25.03.2008 17:33

командная строка в цмс будет, мне кажется, всё равно что графический редактор в браузере - не достаточно ещё юзабельная реализация :)

Lstasss, 27.03.2008 04:18

Писал я в своё время систему для записи на различные проводимые в нашем универе мероприятия (курсы, case'ы и пр).
Писал для своего научного кружка (информатики, само собой). И дописал потом отдельно AJAX на SQL-консоль, очень удобно. Народ SQL знает, пользуются. Всё никак не прикручу к админке =)

А насчёт самой идеи управлять сайтом через консоль... Если это реализуется для себя/разбирающихся и будет удобно - смысл есть. А например добавлять в базовую комплектацию CMS смысла не вижу, ибо рядовой пользователь этим пользоваться не будет.

kodji, 11.04.2008 00:00

Я не знаю как насчет продвинутой консоли, но в своей CMF я всегда даю пользователям уровня разработчика доступ к модулям "Прямой запрос к БД" и модулю, который позволяет оперировать с БД наподобие phpMyAdmin - экономит много времени при разработке новых модулей. Пользователям уровня ниже разработчика такой модуль уже не нужен, имхо.