RFC #1

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

Вопрос: как сделать оформление сайтов в кольце. Требования:

- Должна быть возможность выразить себя через внешний вид сайта.

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

- Создание этой возможности должно быть мне по силам.

Вкратце рассмотрим существующие ныне варианты, их плюсы и минусы.

1) Что-то вроде ЖЖ: набор стилистических тем, которые можно редактировать после установки.

Каждая тема включает в себя море параметров: цвет заголовка, цвет подзаголовка, цвет ссылки если она заголовок, цвет ссылки если на неё навели мышку...

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

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

Плюсы: Кликнул -- получил другое оформление. После можешь редактировать это оформление.

Минусы: Если дизайнер не учёл какой-то возможности, ею сложно воспользоваться. Делать такие макеты очень дорого, у меня нет такой возможности. Макетов будет очень ограниченное количество, существенно меньшее, чем может быть народу в проекте.

2) Простое редактирование CSS-файла.

Это как сейчас. Плюсы: абсолютная гибкость оформления.

Минусы: смена вёрстки становится невозможной. Для оформления нужна дополнительная квалификация и крайнее задротство.

3) Как во ВКонтакте, с вариациями. Разрешить менять только картинку на главной страничке и пиктограммку в шапке. Всё остальное сделать настолько совершенным, чтобы всем хватало.

Плюсы: дешёвая программная часть реализации, предельно низкий порог вхождения.

Минусы: жёсткость, невозможность изменить общее ощущение от странички. Необходимость купить где-то этот идеальный макет.

4) Как в Твиттере. Вот посмотрите:

twitter.com/name_alari -- страничка в одном из стандартных оформлений.

twitter.com/AnnaBushueva -- сильно нестандартное оформление.

Что изменилось?

- фон правой колонки

- картинка фона

Всё. Несмотря на это, странички становятся индивидуальными. Вот ещё пример: twitter.com/dalailama.

Плюсы: очень низкий порог вхождения.

Минусы: всё же, колечко -- не твиттер и нуждается в бОльшем количестве средств выразительности.

5) Моя задумка.

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

В результате генерируются блоки CSS.

Плюсы:

- гибкость -- оформить визуально можно практически всё

- менять вёрстку всё ещё можно (хотя и дорого) -- нужно только иметь в голове связи

- не нужны проф. навыки для работы с дизайном

- благодаря контекстности не нужна тысяча вбитых типов полей (как в случае с жж)

Минусы:

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

- сравнительно высокая сложность реализации и поддержки

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

Буду благодарен за любые комментарии.

09.03.2010 18:50:51
Что для тебя приоритетнее в получающихся страницах - их индивидуальность или гармоничность? Чем больше простор для индивидуальности, тем больше способов нарушить гармонию, и кто-то обязательно будет нарушать.

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

Поэтому для таких как я возможность выбрать одну из не более чем семи-плюс-минус-две дефолтовых тем крайне желательна. А может быть не только тем, но и макетов - с разной структурой страниц, разным количеством колонок, расположением меню и т.д. 8 тем и 8 макетов дают уже 64 разных дизайнов. А дальше идея с контекстными меню вполне хороша - возможность дошлифовать напильником так же важна, как возможность оставить всё как есть :)
11.03.2010 12:10:44
8 макетов придумать трудно. Когда есть (как сейчас) две колонки, откуда взять восемь макетов?
8 тем -- тоже трудно. Но в целом пожелание про выбор сравнительно грубых композиций с предоставлением напильника -- услышано, спасибо :)
11.03.2010 16:24:15
На самом деле даже одна дефолтовая тема - это уже отлично. Уж на что весь из себя супер-пупер веб-дизайнер Тёма Лебедев - и то свою страничку в ЖЖ не кастомизирует, юзает дефолтовую.
11.03.2010 05:47:35
Хоть я и «не в кольце», но захотелось оставить сюда коммент :) - крутится в голове мысль, что большенство перечисленных плюсов можно совместить

Мысль: Сделать возможным выбор из опубликованных тем + возможность редактирования/создания темы на уровне файлов шаблонов

(+) Кликнул -- получил другое оформление. После можешь редактировать это оформление.
(+) Абсолютная гибкость оформления, включая верстку
(+) Плюсы: дешёвая программная часть реализации — выбор темы идет как переключение, скажем, директории с шаблонами для применяющегося шаблонизатора (smarty, quicky, итд)

Плюс к такой схеме можно добавлять различные возможности онлайн редактирования тем: через выбор параметров конфигурации как в твиттере и/или интерфейс с изменением параметров через контекстное меню
11.03.2010 12:20:04
Спасибо за коммент :)

Редактирование файлов шаблонов, к сожалению, я считаю недопустимым. Причина -- это не вордпресс, здесь база данных единая.
Смарти -- технология убогая и уже практически вышедшая из употребления. Зачем создавать язык шаблонов на пхп -- который сам создан как язык шаблонов?
В любом случае шаблон в итоге должен кэшироваться в виде пхп. Здесь есть несколько проблем:
1) Создание инфраструктуры кэширования. Свой кэш для каждого сайта, параллельное сохранение исходника шаблона, встраивание шаблона в систему предоставления каких-то фрагментов, которые, собственно, и составляют контент... Потом нужно мусор собирать.
2) Контроль безопасности. Пользователь может найти способ внедрить свой пхп-код в страницу. И сделать DROP DATABASE, например.
3) Каждый фрагмент может иметь собственную вёрстку. Для него тоже делать пользовательский шаблон? Если нет, пользователь должен будет редактировать оформление фрагмента через цсс. Очевидно, через файл. Опять проблемы: задротство и невозможность миграции.

В общем, этот вариант мне кажется самым дорогим и костыльным из всех возможных. Не нравится и впадение в зависимость от конкретного шаблонизатора и его синтаксиса (даже если это собственный шаблонизатор и синтаксис -- через пару лет замаешься что-то менять), и создание дополнительной степени сложности в виде кучи шаблонов, и невозможность чистить код чем-нибудь вроде htmlpurifier'а, как это делается сейчас...