Пользовательский блок (макет?), содержащий другие блоки в Concrete5

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

Недавно я получил проект по переводу http://www.windowfashionsonwheels.com на Concrete5. Беглый взгляд на исходный код показывает, что это не что иное, как таблицы внутри таблиц... Это довольно отвратительно. Я постоянно работал над воссозданием точного внешнего вида и структуры с минимальным использованием HTML и CSS, но столкнулся с одной небольшой проблемой.

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

В основном я могу эмулировать внешний вид этого окна, создав один блок контента в Concrete5 и применив к нему собственный дизайн (цвет фона, закругленные углы CSS3 и границы изображения CSS3). Однако, поскольку это в значительной степени зависит от CSS3, оно не отображается должным образом в старых браузерах или Internet Explorer, а также позволяет мне работать только с одним блоком содержимого (не идеально, если я хочу иметь текст И слайд-шоу или какой-либо другой блок в пределах окна). такой же светло-серый квадрат)

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

Я также мог бы создать пользовательский шаблон для блока контента, который генерирует эти объекты <div>, позволяя мне размещать их в произвольных местах на любой странице, которую я захочу, однако это позволит светло-серому блоку содержать только один блок контента. Это не позволило бы мне иметь, скажем, блок содержимого и блок слайд-шоу в одном поле.

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

Идеальным решением было бы создать блок, который генерирует этот новый фон и границы (используя несколько объектов <div> для создания закругленных углов и тому подобное по старинке), а затем разрешить размещение блоков внутри этого блока, чтобы я мог иметь любой контент, который захочу. . Однако, насколько мне известно, Concrete5 не позволяет использовать блоки внутри блоков. Однако он позволяет использовать блоки внутри макетов, но, насколько мне известно, макеты предназначены для многоколоночных страниц, а не для специализированных границ.

Если у кого-то есть опыт работы с Concrete5 и есть решение моей проблемы, пожалуйста, помогите.


person stevendesu    schedule 22.07.2011    source источник


Ответы (1)


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

<?php
$a = new Area('Grey Sidebar');
$a->display($c);
?>

Затем перейдите в «Панель инструментов» -> «Страницы и темы», нажмите кнопку «Проверить» рядом с вашей текущей темой, и вы увидите флажок рядом с этим новым типом страницы — нажмите кнопку «Установить» (или как она там называется, я не могу вспомнить, но это очевидно, когда вы это видите).

Теперь, глядя на сайт, на который вы ссылаетесь, тоже кажется, что содержимое внутри этого серого прямоугольника достаточно «спроектировано» и соответствует единообразному формату (заголовок, миниатюра, абзац). Если вы хотите, чтобы этот формат сохранялся и в то же время упрощал редактирование контента нетехническим пользователям, я создал надстройку генератора блоков именно для этой ситуации: http://concrete5.org/marketplace/addons/designer-content

Если бы я создавал этот сайт, я бы объединил оба этих метода (тип страницы для окружающего серого прямоугольника HTML и настраиваемый блок, созданный с помощью дизайнерского контента для каждого внутреннего блока). Но, возможно, в вашей ситуации вы на самом деле не хотите, чтобы содержимое серого поля всегда выглядело одинаково (как сейчас на сайте, на который вы ссылаетесь) - в этом случае просто введите тип страницы с серым полем и выполните сделайте все возможное, чтобы «изолировать» внутреннее содержимое от этого стиля, чтобы любые блоки, которые добавляет пользователь, не мешали бы случайно окружению серого поля (в основном убедитесь, что есть большой ‹div›, окружающий код «Области», и что вы установили явную ширину или что вам нужно в окружающем HTML/CSS).

person Jordan Lev    schedule 22.07.2011
comment
Блок дизайнерского контента выглядит чрезвычайно полезным, и я обязательно изучу его, однако я не планирую создавать новую область для серой боковой панели. Это ограничит место, где может появиться панель (если только я не создам еще несколько типов страниц), и я совершенно уверен, что у этого клиента возникнут проблемы с ее пониманием. На данный момент я нашел, вероятно, лучшее решение, которое я найду. Я применил дизайн к области (а не к отдельному блоку), поэтому с помощью CSS закругленных углов и теней я создал тот же вид. Однако это не работает в IE. - person stevendesu; 23.07.2011
comment
Поскольку новых ответов не поступало, и это действительно хорошее и практичное решение для большинства целей, я его принял. Как я упоминал в предыдущем комментарии, я использовал закругленные углы и тени CSS, чтобы создать точно такой же внешний вид, и клиенту все равно, что это не работает в IE. - person stevendesu; 28.07.2011
comment
Я тоже использую этот аддон, это действительно потрясающе, вы выигрываете много времени, а редактирование веб-сайта очень просто для конечного пользователя! concrete5.org/marketplace/addons/designer-content - person Pixman; 11.07.2013