Хотя можно хранить список логотипов в таблице базы данных, но, здесь есть лучшая альтернатива: создать каталог в прострастве "Публикуемых материалов", статьи которого будут определениями отдельных логотипов. Пусть это будет каталог No.54 (в новых версиях Midgardвозможна ссылка по имени). В каталоге 54 разместим статьи, причем в атрибут extra1 этой статьи запишем url изображения, а в атрибут extra2 - url ссылки. Чбы отличать логотипы от всех других статей в этом каталоге, присвоим им тип номер 12. Несмотря на то, что при этом используется интерфейс Midgard и который позволяет создать статьи в каталоге, на самом деле вносятся данные в аналогичную таблицу MySQL, но ее поля были предопределены разработчиками (если не хватило предопределенных полей - то об этом отдельный разговор, начиная с версии Bifrost).
Для отображения указаного списка логотипов требуется в адресном пространстве поместить следующий фрагмент кода:
<P> <? $article = mgd_list_topic_articles(54,"order",12); if ($article) while($article->fetch()) { $article_item = mgd_get_article($article->id); ?> <A HREF="&(article_item.extra2);"> <IMG SRC="&(article_item.extra1);"> </A> <? } ?> </P>
Как видим, о декомпозиции кода и дизайна речи пока не идет. К счастью, есть выход: определить участки HTML-кода в виде стилевых элементов и разместить их в пространстве Стилей. Тогда фрагмент кода изменится:
<[LOGO_head]> <? $article = mgd_list_topic_articles(54,"order",12); if ($article) while($article->fetch()) { $article_item = mgd_get_article($article->id); ?> <[LOGO_item]> <? } ?> <[LOGO_tail]>
А в таблице стилей появятся следующие элементы:
LOGO_head -- <p> LOGO_item -- <A HREF="&(article_item.extra2);"> <IMG SRC="&(article_item.extra1);"> </A> LOGO_tail -- <p>
Кажется, нужно еще сказать что-то о повторном использовании? Хорошо, создадим страничный элемент LOGO_list, следующего содержания:
<[LOGO_head]> <? $article = mgd_list_topic_articles($article_topic,"order",12); if ($article) while($article->fetch()) { $article_item = mgd_get_article($article->id); ?> <[LOGO_item]> <? } ?> <[LOGO_tail]>
А на самой странице разместим следующий код:
<? $article_topic = 54; ?> <[LOGO_list]>
Вот, в принципе готово. Объяснив дизайнеру какие элементы можно редактировать и зачем, можно ожидать что дизайнер сделает дизайн.
Несмотря на технологические затруднения при разделении труда разработчиков, необходимо отметить отсутствие необходимости создания обвязки для достижения функциональной полноты. Все уже есть - контент-менеджер может спокойно положить статью в каталог и забыть о ней. Причем интерфейс для контент-менеджера вполне удобный, это не командная строка mysql....