Как справиться с тематикой модулей в веб-приложении? - PullRequest
2 голосов
/ 03 октября 2009

Я сделал CMS, которая позволяет пользователям выбирать, какие модули показывать, где и на сайте. У меня также есть шаблоны / темы, которые определяют, как сайт выглядит. У меня проблема выглядит так:

Предположим, я разместил модуль кабины для голосования на сайте. Когда я нажимаю «Просмотр результатов», результаты отображаются с графическими полосами, как на этой демонстрационной странице: http://osc.template -help.com / joomla_25754 / index.php? Option = com_poll & id = 14: joomla-is-used -для

Мой первый вопрос: не относится ли к тем графическим панелям ответственность за темы / шаблоны, а не за модули? Если модули могут решить, что показывать, они могут отображать графику, которая не соответствует шаблонам / темам.

Как мне справиться со всем этим? Я не совсем уверен, как объяснить проблему лучше, но проблема в том, что в текущей версии некоторые модули будут отображать графику / внешний вид, который выглядит плохо на некоторых шаблонах. Все gfx и все в таком духе должно быть ответственностью системы шаблонов, верно? Но как мне этого достичь ... как модули и шаблоны будут работать вместе, чтобы создать нечто подобное или у вас есть другие идеи?

Ответы [ 4 ]

4 голосов
/ 09 октября 2009

Изображения должны быть определены в CSS темы

Это правда, что внешний вид графических элементов (в данном случае панели результатов) должны быть определены в файле CSS темы, чтобы соответствовать другим тематическим элементам.

Но есть две возможности, в зависимости от вашей темы

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

2. Графический стиль значительно меняется ( т.е. каждый визуальный элемент может / будет меняться )
В этом случае я предлагаю вам определить все изображения внутри CSS-файлов темы как фоновые изображения. Ваши элементы <IMG> должны отображать только прозрачные изображения правильных размеров (также могут быть определены темой), но файл CSS, определенный определенной темой, должен определять фактическое изображение, которое будет отображаться на фоне этого прозрачного изображения. Таким образом, вы сможете использовать тот же HTML-файл, но тематические CSS-файлы.

2 голосов
/ 03 октября 2009

Как правило, вы должны пытаться использовать имена классов CSS, которые являются стандартными для CMS. Например. В Joomla есть классы под названием sectiontableentry1 и sectiontableentry2 для чередующихся строк в таблице. Если вы можете угнать любой из этих классов, это позволит вашему расширению соответствовать цветовой схеме шаблона. Если ни одно из стандартных имен классов не подходит, лучшее, что вы можете сделать, это попытаться выбрать нейтральную цветовую схему - обычно оттенки серого.

Список основных классов CSS для Joomla приведен здесь: http://docs.joomla.org/Template_reference_material

1 голос
/ 16 октября 2009

Как вариант, мы рассматривали возможность переопределения темы тем, как базовые элементы модуля отображаются на уровне html.

С помощью asp.net mvc это довольно просто реализовать, и это будет выглядеть как папка «Элементы» с определенным файлом для каждого элемента, например header.ascx, button_confirm.ascx, button.cancel.ascx, voices.ascx tags.ascx и т. д.

Все эти файлы должны иметь общий параметр Model, который должен обеспечивать доступ как к свойствам модуля, так и к свойствам элемента содержимого. (Я надеюсь, что у вашего контента есть базовый класс)

Мы остановились, просто потому что это вышло за рамки.

1 голос
/ 16 октября 2009

Это невозможно сделать совершенно правильно. Большинство cmsses / блогов с открытым исходным кодом, которые имеют какую-то тематику, не поддерживают его на всех расширениях, просто потому, что расширения не находятся под контролем автора cms (и не находятся под контролем создателя темы). Таким образом, тема будет хорошо смотреться на основных cms и, возможно, на некоторых распространенных расширениях, но после этого она будет просто скрещена.

Независимо от того, сколько элементов / типов / классов вы определили заранее для создателей темы, всегда будет что-то, о чем не думали в настройке темы. Единственный выход из этого - очень жесткие рекомендации по дизайну, и даже это никогда не обеспечит вам 100% охват, даже ближе, чем вы были бы без него.

Пример: гистограмма будет показана некоторым плагином. Ваша первая попытка в рамках темы была всегда требовать, чтобы тема перечисляла 10 цветов для использования в диаграмме, конечно, для этой диаграммы нужно 11 :-) Теперь ваша следующая итерация движка тем требует, чтобы авторы тем придумывали схему для генерации бесконечного количества цветов для использования в графиках (вы только что немного усложнили работу с темером). Теперь, конечно, для отображения графика требуется 3 набора из каждых 2-х похожих цветов ... ты никогда не выиграешь эту гонку.

Я бы сказал, что ваш лучший вариант - убедиться, что создатели тем имеют хороший набор базовых классов CSS для определения (наряду с большой серией справочных страниц из ваших базовых CMS, чтобы они могли протестировать свои проекты). Теперь вам следует поощрять ваших разработчиков расширений использовать стандартные стили как можно чаще и стимулировать их к этому, упрощая проверку расширений с многочисленными темами. В качестве последнего, но очень необходимого варианта, вы должны позволить людям, которые настраивают сайт, легко переопределять / корректировать стилизацию расширения в определенной теме - это должно сделать проблемы с темной системой просто бременем, а не дело выключатель.

...