2012-05-31 2 views
2

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

Пример шаблон:

<header> 
... 
</header> 

# want to insert "home" page or "about" page here depending on url. 

<footer> 
... 
</footer> 

Пример того, что я хочу домой страница вставила в шаблон:

<div> 
    <%= raw @page.content_for(:body) %> 
</div> 

Пример того, что я хочу о странице, вставил в шаблон:

<div> 
    <div> 
    <div> 
     <%= raw @page.content_for(:body) %> 
    </div> 
    </div> 
</div> 

Как изменить разметку на страницу без добавления разметки в редакторе wysiwyg или в CMS?

ответ

5

Какая версия вы используете?

Если вы используете 2.0.x, то есть два варианта внутри config/initializers/refinery/pages.rb - первый должен быть config.view_template_whitelist, а второй должен быть config.use_view_templates.

Для config.view_template_whitelist, вы можете задать массив символов, которые соответствуют взглядам внутри папки app/views/refinery/pages/ (то есть, если у вас есть about_us.html.erb, вы бы в белый список [: about_us], так же, как вы могли бы, если вы собираетесь сказать render :about_us внутри вашего контроллер.

config.use_view_templates просто должен быть установлен верно для того, чтобы выпадающее меню в интерфейсе, который позволит вам выбрать шаблон из белого списка.

Если вы любопытны, также существует config.layout_template_whitelist и config.use_layout_template варианты тоже которые делают то же самое, но с макетами.

+0

Хорошо, я собираюсь использовать опцию 'view_template_whitelist' и что нужно поместить в мой шаблон, чтобы вытащить код из моего файла в/app/views/refinery/pages? Если я положил '<%= yield %>', он вытаскивает содержимое из базы данных. – Catfish

+0

Я отредактировал свой вопрос, так что это более ясно. – Catfish

+0

У вас есть понимание? – Catfish

0

Если вы хотите, чтобы изменить заголовок, а не весь макет, то вы можете переопределить _header парциальное:

cp /var/lib/gems/1.8/gems/refinerycms-core-2.0.6/app/views/refinery/_header.html.erb app/views/refinery/_header.html.erb 

..и затем редактировать app/views/refinery/_header.html.erb и перезапустить приложение (если требуется).

Это позволило мне разместить изображение заголовка над навигационным меню без создания пользовательского макета.

Смежные вопросы