Drupal - керування видимістю блоків

Зображення користувача romand.

Виникла потреба виводити блоки (реклама AdSense) лише на сторінках персональних блогів користувачів та у загальному потоці блогів. Для цього, у налаштунках видимості блоку (Page specific visibility settings) необхідно встановити перемикач у 'Show if the following PHP code returns TRUE' та додати наступний код:

if (arg(0) == 'node' && is_numeric(arg(1))) {
    $node = node_load(array('nid' => arg(1)));
    return $node->type == 'blog';
} elseif (arg(0) == 'blog') {
    return TRUE;
} else {
    return FALSE;
}

При потребі, blog можна замінити на forum.

Відгуки

Зображення користувача podarok.

а я б таке через шаблон phptemplate робив

Зображення користувача romand.

У першому варіанті налаштунки зберігаються у базі і, відповідно, не залежать від активної теми. Не дарма ж блоки в адмінці мають опції налаштування видимості?

Додати відгук

Опубліковано не буде.
  • Адреси web-сторінок та e-mail адреси перетворюються на лінки автоматично.
  • Дозволені HTML теги: <a> <img> <h3> <h4> <em> <strong> <cite> <code> <blockquote> <ul> <ol> <li> <dl> <dt> <dd>
  • Стрічки та абзаци розбиваються автоматично.
  • Для вставки коду використовуйте <code>...</code> чи <?php ... ?> (підсвітка PHP).
  • Для вставки відео використовуйте [video:SOURCE]
2 + 0 =
Розв'яжіть математичне рівняння та введіть результат. Наприклад, для 1+3, введіть 4.
Syndicate content

Реклама