Как встроить блоки данных в ExpressionEngine, не используя много каналов

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

{exp:channel:entries channel="top" disable="categories|member_data|pagination" limit="1"
sort="desc" dynamic="no" }

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


person David Triebwasser    schedule 12.03.2012    source источник
comment
Я создал группу категорий и категории внутри этой группы. Затем я распределил записи в этом канале по определенным категориям (верхняя, средняя, ​​нижняя). Затем в шаблоне я использую идентификатор категории, чтобы получить только тот контент, который мне нужен: {exp:channel:entries category=1 channel=top disable=categories|member_data|Pagination limit=1 sort=desc dynamic=no }   -  person David Triebwasser    schedule 13.03.2012


Ответы (3)


Менее чем за 1 час оплачиваемой работы вы получите сотни, если не тысячи часов усилий, упакованных для вас. Кто-то всегда платит за код, почему в этот раз не вы? :)

person Jack McDade    schedule 19.03.2012

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

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

1) Определите данные вашего блока как каналы. Например, у меня часто есть реклама на боковой панели, сценарии боковой панели и текстовые каналы на боковой панели.

2) Используйте тип поля воспроизведения (или другой реляционный тип поля) для создания отношений между родительской записью (страницей) и этими подтипами контента.

Обычно это выглядит примерно так: playa Relations

3) Теперь вы можете использовать родительскую запись для отображения дополнительного контента. Вам, конечно, нужно будет перенести все эти данные в свои шаблоны примерно следующим образом:

<div id="right-side">
{exp:playa:children}

    {if channel_short_name == 'sidebar_javascript'}
        {cf_sidebar_js}
    {/if}

    {if channel_short_name == 'sidebar_videos'}
        {exp:channel_videos:videos entry_id="{entry_id}" embed_width="300" embed_height="238"}
        <h4>{title}</h4>
        {video:embed_code}
        <p class="caption">{video:title}</p>
        {/exp:channel_videos:videos}

    {/if}

    {if channel_short_name == 'sidebar_ads'}

     {exp:adman:show group="{cf_sidebar_adman_block}" order="RANDOM" limit="{cf_sidebar_adman_block_number_of}"}
         <a href="{ad_url}" target="_blank">
            <img src="{ad_image}" alt="{ad_alt}" />
         </a>
     {/exp:adman:show}    
    {/if}

{/exp:playa:children}
</div>
person Philip Zaengle    schedule 13.03.2012
comment
моя ДНК, закодированная в drupal, php, linux, apache, postgresql, mysql, не позволит мне купить модуль для EE, но я ценю это предложение. - person David Triebwasser; 19.03.2012
comment
Серьезно, платить за качественное программное обеспечение, облегчающее жизнь клиентам, очень переоценено. - person Philip Zaengle; 19.03.2012

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

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

Я никогда не использовал Low Variables, но у меня сложилось впечатление, что здесь это может быть полезно.

Хотя я согласен с постерами, говорящими о ценности надстроек, это особая потребность, которую я никогда не решал нативно. Помимо вопроса о стоимости надстроек (которые, по моему мнению, имеют смысл), вы также усложняете свою установку, добавляя к ней больше программного обеспечения, что требует больше времени для устранения ошибок и обновления EE.

person Christy Collins    schedule 19.03.2012