This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ru:components-depending-on-the_page [2013/10/01 09:43] Arkady [Функция для вывода разных компонентов на разных страницах] |
ru:components-depending-on-the_page [2013/10/09 12:20] (current) Arkady |
||
---|---|---|---|
Line 69: | Line 69: | ||
<code><?php | <code><?php | ||
- | if (return_i18n_component('sidebar-'.return_page_slug())) { | + | if (return_component('sidebar-'.return_page_slug())) { |
- | get_i18n_component('sidebar-'.return_page_slug()); | + | get_component('sidebar-'.return_page_slug()); |
} else { | } else { | ||
- | get_i18n_component('sidebar'); | + | get_component('sidebar'); |
} | } | ||
?></code> | ?></code> | ||
Line 78: | Line 78: | ||
Компонент с именем //sidebar// - наш сайдбар по умолчанию. Остальным компонентам присваиваются имена //sidebar-xxx//, где xxx - текстовый идентификатор страницы (slug), на которой предполагается замена сайдбара по умолчанию на предназначенный именно для этой страницы. | Компонент с именем //sidebar// - наш сайдбар по умолчанию. Остальным компонентам присваиваются имена //sidebar-xxx//, где xxx - текстовый идентификатор страницы (slug), на которой предполагается замена сайдбара по умолчанию на предназначенный именно для этой страницы. | ||
- | Другой способ – использование пользовательского поля (custom field) c именем «//sidebar//» - лучше применить выпадающий список с именами компонентов-сайдбаров. Допустимо и простое текстовое поле, но это не очень удобно из-за возможной ошибки при вводе имени компонента. | + | Другой способ – использование плагина [[http://getsimplecms.ru/plaginy-dlya-getsimple-cms/plagin-i18n-custom-fields/|I18N Custom Fields]]. Создайте пользовательское поле (custom field) c именем «//sidebar//» - лучше применить выпадающий список с именами компонентов-сайдбаров. Допустимо и простое текстовое поле, но это не очень удобно из-за возможной ошибки при вводе имени компонента. |
После формирования списка просто включаем выбранный компонент в шаблон: | После формирования списка просто включаем выбранный компонент в шаблон: | ||
- | <code><?php get_i18n_component(return_custom_field('sidebar')); ?></code> | + | <code><?php get_component(return_custom_field('sidebar')); ?></code> |
При желании можно предварительно проверить пользовательское поле с компонентом на существование: | При желании можно предварительно проверить пользовательское поле с компонентом на существование: | ||
Line 88: | Line 88: | ||
<code><?php | <code><?php | ||
if (return_custom_field('sidebar')) { | if (return_custom_field('sidebar')) { | ||
- | get_i18n_component(return_custom_field('sidebar')); | + | get_component(return_custom_field('sidebar')); |
} else { | } else { | ||
- | get_i18n_component('sidebar'); | + | get_component('sidebar'); |
} | } | ||
?></code> | ?></code> | ||
Line 104: | Line 104: | ||
get_custom_field('sidebar'); | get_custom_field('sidebar'); | ||
} else { | } else { | ||
- | get_i18n_component('sidebar'); | + | get_component('sidebar'); |
} | } | ||
?></code> | ?></code> | ||
Line 113: | Line 113: | ||
**Вольный перевод одного из постов с англоязычного форума GetSimple** | **Вольный перевод одного из постов с англоязычного форума GetSimple** | ||
- | Исходный текст для перевода взят [[http://get-simple.info/forum/topic/214/function-per-page-components/|отсюда]] приблизительно в 2011 году. | + | //Исходный текст для перевода взят [[http://get-simple.info/forum/topic/214/function-per-page-components/|отсюда]] приблизительно в 2011 году.// |
Как-то раз, верстая очередной сайт, я столкнулся с необходимостью замены подвалов на определенных страницах. Я попробовал поискать существующее решение на форуме.Так вот, в одном из постов **Chris Cagle** предложил следующий способ: | Как-то раз, верстая очередной сайт, я столкнулся с необходимостью замены подвалов на определенных страницах. Я попробовал поискать существующее решение на форуме.Так вот, в одном из постов **Chris Cagle** предложил следующий способ: | ||
Line 150: | Line 150: | ||
</code> | </code> | ||
- | Концерт окончен. Теперь посмотрите на ваш сайт в браузере - сайдбар на месте, с ним все хорошо. | + | Теперь посмотрите на ваш сайт в браузере - сайдбар на месте, с ним все хорошо. |
Теперь поменяем сайдбар, скажем, на главной странице на другой. Нам не придется менять что-либо в файлах темы. Все, что мы делаем - добавляем в админке новый компонент. Допустим, наша главная страничка носит имя //index//. Обзываем наш новый компонент //index-sidebar//, и на страничке //index// теперь будет появляться именно он. Что касается других страниц - на них будет по-прежнему отображаться компонент //sidebar// по умолчанию! | Теперь поменяем сайдбар, скажем, на главной странице на другой. Нам не придется менять что-либо в файлах темы. Все, что мы делаем - добавляем в админке новый компонент. Допустим, наша главная страничка носит имя //index//. Обзываем наш новый компонент //index-sidebar//, и на страничке //index// теперь будет появляться именно он. Что касается других страниц - на них будет по-прежнему отображаться компонент //sidebar// по умолчанию! | ||
Line 196: | Line 196: | ||
} | } | ||
}</file> | }</file> | ||
+ | | ||
+ | ====== Ссылки ====== | ||
+ | |||
+ | На главную [[ru:|Содержание]] | ||
+ | |||
+ | ===== Страницы этой секции ===== | ||
+ | |||
+ | === Руководства, Советы === | ||
+ | *[[ru:themes:tutorial|Урок по созданию темы]] | ||
+ | *[[ru:security|Дополнительные меры безопасности]] | ||
+ | *[[ru:how_to:accessibility|Горячие клавиши]] | ||
+ | *[[ru:SEO for GetSimple|Оптимизация сайта на GetSimple для поисковых систем (SEO)]] |