x
 
Евгений Мухамеджанов
4 августа 2011

Здравствуйте! Спасибо, что ведёте такую важную для всех рубрику! Прошу извинения за слишком большую картинку и длинный текст — старался сделать всё максимально понятным. Ваш совет очень важен для меня — уже долго не могу решить проблему с интерфейсом.

Сейчас в разработке ЦМС. В ней мы решили не ограничиваться выбором шаблона, редактированием статичного текста и вставкой модулей. У нас реализовывается вставка на страницу в шаблон любого количества блоков, которые могут сами содержать любое количество блоков и т. д.

Существуют два типа стандартных блоков: текстовый (только текст, не может содержать ничего больше, на картинке это блоки №4 и №6) и простой блок.

В простой блок администратор может вставлять любые другие блоки, задавать параметры: отступы, ширину, рамки, фон — ну, как style для <div>. На картинке это блоки №1, №2, №5.

В зависимости от сайта создаётся набор дополнительных модулей и блоков. К примеру, это блок с закругленным краем №3. Непосредственно в этот блок админ ничего добавить не может, поэтому при вставке №3 на страницу блок сам для себя создает текстовый блок №4 и простой блок №5, в которые админ может вставлять другие модули и блоки.

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

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

Только возникает проблема, когда несколько блоков перекрывают друг друга.

В пункте 2 показано, как отображает перекрывающиеся блоки браузер. Человек видит только блок с закругленным краем под заголовком.

В пункте 1 показано, что под ним ещё два блока, и левый верхний угол точно совпадает у всех.

Доступ ко всем из них — видимых и невидимых — важен. К примеру, пользователь решит удалить левую колонку (блок №1) или изменить отсуп у блока №2.

Итак, нужно решить задачу — как дать доступ администратору к управлению блоками. Я вижу решение проблемы двумя способами:

  1. Как показано в пункте 3 — создать для админа плавающую (или не плавающую) панельку на сайте, где все блоки будут отображаться в виде дерева. При наводе мыши на элемент на панельке подсвечивается соответствующий блок. При клике на элементе вызывается меню для блока.
  2. Как показано в пункте 4 — при наводе мыши на область блока, у левого верхнего края отображать кнопку. Если под мышью оказываются несколько блоков (они перекрываются), то отображать эти кнопки рядом, но чтобы кнопка верхнего блока казалась выше кнопки нижнего блока (с помощью тени). При наведении на кнопку подсвечивать соответствующий блок и вывод меню. Может, стоит скрывать верхние блоки, если выделен один из нижних — как на картинке в пункте 5.
  3. Объединить эти два способа.

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

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

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



Евгений!

Количество текста в вашем вопросе, необходимое для описания проблемы — это диагноз. Вы решаете не ту задачу. Если у вас спутавшийся клубок, лучше всего его просто отрезать.

Я не верю в визуальные админки. В совете о схемах документоооборота я писал о том, что идея визуального программирования «для секретарш» вызывает сомнения, а любой структурный язык или псевдокод справляется с задачей записи логики гораздо эффективнее и лаконичнее.

Для секретарш:


Для админов:


Поделиться
Отправить

Комментарии

Александр Сарычев
4 августа 2011

Евгений, меня во всей вашей постановке проблемы пугает «перекрывающихся блоков может быть много под областью курсора (теоретически бесконечно)». Вот эта бесконечность — программистский подход к постановке и решению задач, о котором говорят разные умные люди типа Купера.

Т. е. вы не ставите себе никаких ограничений (уже плохо), и ваша система годится вообще для всех людей, всех типов сайтов и задач?

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

Я не так уж много сталкивался с ЦМС, может с пятью разными, но все они умеют всё, и в то же время ничего. Чтобы сделать с их помощью действительно рабочий и удобный сайт, который не заложен в их план по умолчанию (главная страница, о нас, контакты, блог и интернет-магазин с максимумом пятью категориями и двадцатью-тридцатью позициями в каждой) — начинаются проблемы, решение которых уже требуют работы программиста. Т. е. универсальность-то и не выходит.

Может? вспомнить о «Getting Real», да наложить побольше ограничений и сделать поменьше, но действительно востребованное для кого-то и решающее определённую задачу?

Илья Бирман сделал Эгею, которая даже в ЖЖ не кросс-постит, и ничего, все ребята побежали туда, потому что им это подходит, нет мусора (FCKEditor с функционалом MS Word в поле создания заметки, к примеру), а необходимый минимум для написания заметок и общения с читателями есть.

Евгений Мухамеджанов
5 августа 2011

Думаю, правильным вариантом «для секретарш» будет оставить возможность редактирования только основного контента (текст, добавление заметок в блоге и т. п.), а с вёрсткой будут работать специалисты, знающие ХТМЛ.

Спасибо за советы!


Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

Мы публикуем комментарии, которые добавляют к уже сказанному новые мысли и хорошие примеры. Мы ожидаем, что такие комментарии составят около 20% от общего числа.

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

4 Занимаюсь разработкой интерфейса веб-приложения, в некоторых местах надо показать числовой коэффициент 3 10 Как вы относитесь к элементам интерфейса с динамическим контентом в рамках фиксированного пространства? 10