Компоненты

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

на

Для того, чтобы иметь возможность редактировать отдельные части шаблона в 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 и прочими, так и отечественными социалками: Вконтакте и Одноклассники.

Эту страницу посетили 35000 раз(а).

Последние новости

Последние комментарии

Для контактов

Back to top