GetSimple CMS
по-русски

Компоненты

Просто добавить, просто редактировать

Для того, чтобы иметь возможность редактировать отдельные части шаблона в GetSimple CMS предусмотрено создание так называемых компонентов. Компоненты могут содержать как обычный текст, так и HTML-теги, JS-скрипты и PHP-коды. Ограничения на количество компонентов нет. После создания компонента над ним справа появится код, который и нужно вставить либо в шаблон, либо в другой компонент. Выглядит он так:

<?php get_component('sidebar'); ?>

При использовании плагина dynpages можно вставлять код компонента и непосредственно в редакторе страниц.

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

  • Для показа компонента только на конкретной странице.
    <?php if (return_page_slug()=='PAGESLUG') get_component('COMPONENTNAME'); ?>
  • Для показа компонента на всех страницах, кроме конкретной страницы. Просто заменить == на != и все.
    <?php if (return_page_slug()!='PAGESLUG') get_component('COMPONENTNAME'); ?>
  • Для показа компонента только на детских страницах конкретной родительской страницы.
    <?php if (get_parent(0)=='PAGESLUG') get_component('COMPONENTNAME'); ?>
  • Для показа компонентов и на родительской и на детских страницах с любой глубиной вложенности.
    <?php 
    if ( return_page_slug() == 'PAGESLUG' || return_parent() == 'PAGESLUG' || return_parent() == 'CHILD-PAGESLUG' ) {
         get_component('COMPONENTNAME');
    } 
    ?>
  • Для показа отдельного компонента для каждой страницы в зависимости от slug (имя ссылки). Создавайте компоненты с именем ссылки страницы. Если компонент для страницы не создан, ничего не будет показано.
    <?php get_component((string) return_page_slug()); ?>
  • Для показа конкретных компонентов для конкретных страниц и одного компонента для всех остальных.
    <?php 
    
    if ( return_page_slug() == 'about' ) { 
    
    get_component('about-component'); } 
    
    elseif ( return_page_slug() == 'index' ) { 
    
    get_component('homepage-component'); } 
    
    else { get_component('default-component'); } 
    
    ?>
  • Так же можно создавать отдельные компоненты для каждой страницы, используя для их показа такой код:
    <?php get_component(return_page_slug().'-sidebar'); ?>

Включение одной страницы в другую страницу

Также в GetSimple CMS существует возможность включения в код обычного текста с конкретных страниц (html-теги работают).

<?php getPageContent('PAGECONTENTSLUG'); ?>

Для включения на конкретной странице код будет выглядеть так:

<?php if (return_page_slug()=='PAGESLUG') { getPageContent('PAGECONTENTSLUG'); } ?>

Дополнительные возможности

Есть функция, позволяющая добавлять к какому-либо компоненту дополнительные компоненты в зависимости от slug страницы. Просто разместите ее в файле functions.php в папке с вашей темой.

function component_master($id,$first=false) {
if (file_exists('data/other/components.xml')) {
$master = return_page_slug();
$extra = false;
$standard = false;
$thisfile = file_get_contents("data/other/components.xml");
$data = simplexml_load_string($thisfile, NULL, LIBXML_NOCDATA);
$components = $data->item;
if (count($components) != 0) {
foreach ($components as $component) {
if ($master.'-'.$id == $component->slug) {
eval("?>" . stripslashes(htmlspecialchars_decode($component->value, ENT_QUOTES)) . "<?php ");
return;
} elseif ($master.'-extra-'.$id == $component->slug) {
$extra = $component->value;
} elseif ($id == $component->slug) {
$standard = $component->value;
}
}
if ($standard) {
eval("?>" . ($extra&&$first?stripslashes(htmlspecialchars_decode($extra, ENT_QUOTES)):'') . stripslashes(htmlspecialchars_decode($standard, ENT_QUOTES)) . ($extra&&!$first?stripslashes(htmlspecialchars_decode($extra, ENT_QUOTES)):'') . "<?php ");
}
}
}
}

После создания этой функции в файле functions.php, размещенном в папке вашей темы, вы должны вставить в код шаблона следующую строчку:

<?php component_master('COMPONENTNAME'); ?>

Сейчас вы можете создавать дополнительные компоненты со следующим названием slug-extra-component для любой из страниц, где slug — имя ссылки страницы, а component — имя компонента, к которому нужно добавить данный компонент. Например имя компонента blog-extra-sidebar будет означать, что этот компонент будет показан на странице blog в компоненте sidebar.

В теме Innovation, по умолчанию включенной в GetSimple есть такой файл с парой функций: одна позволяет создавать "хлебные крошки" в шаблоне, а вторая определяет переменные основанные на настройках InnovationPlugin.

Так как я постоянно использую InnovationPlugin для различных социальных сетей, я перевел его и дополнил, как зарубежными онлайн сервисами YouTube и Flickr и прочими, так и отечественными социалками: Вконтакте и Одноклассники.

Эту страницу посетили 41080 раз(а).
Мы используем куки (cookie) для наилучшего представления нашего сайта. Если вы продолжите использовать сайт, мы будем считать что вас это устраивает. Вы можете просматривать сайт без использования куки (cookie) с частичной потерей функциональности в приватном режиме вашего браузера. Если вы полностью отказываетесь использовать куки (cookie), вы обязаны покинуть сайт.  Принять