Як приховати сторінку / вузол за замовчуванням?


22

Drupal з поля поставляється зі сторінкою (яка є домашньою сторінкою за замовчуванням), яка призначена шляху до вузла .

Як я уникаю, щоб користувачі досягли цього, і перенаправляли їх на фактичну домашню сторінку сайту?


Я використовував рішення, запропоноване @kiamlaluno, щоб перенаправити вузол на інший шлях.

Відповіді:


17

Немає простого способу приховати цю сторінку. Якщо ви не користуєтесь ним, ви можете ввімкнути гачку_menu_alter () та видалити її повністю, або встановити зворотний дзвінок доступу до неї FALSE.


1
Ось гарна відповідь Клайва з кодом exapmle drupal.stackexchange.com/a/24133/6309
milkovsky

8

Створіть псевдонім шляху, який переспрямовує з / вузла на сторінку, яку ви хочете використовувати як головну сторінку.


1
Це не працює для мене з модулем псевдоніму url, псевдонімом / вузлом до <front> або index.php. Я намагаюся переслати на просто /
Джон

5
Як це не дивно, я зробив / вузол <front>, і це працює чудово.
Шон Банністер

Як ви @john, користувальницький інтерфейс псевдоніму не дозволяє мені переходити до першої сторінки. Мені довелося використовувати модуль переадресації.
Постскриптер

6

Я вважаю за краще змінювати зворотний виклик сторінки / node, щоб він відображав помилку 404 Page.
Це завжди показує вашу користувальницьку сторінку 404 під час доступу / вузла.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}

4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

або додайте це до settings.php (URL вхідних даних)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>


1

Подібно до відповіді бердирів, у мене є наступний код, включений у модуль, який є частиною спеціального дистрибутива, який ми будуємо:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

Таким чином я можу зберегти шлях до вузла як головну сторінку та використовувати контекст для позиціонування блоків для створення необхідної передньої сторінки.


1

Ви можете створити сторінку, відображену на / вузол, яка не публікується. Таким чином, користувачі, які зателефонують у цей шлях, матимуть заборонений доступ до сторінки


1

Простим рішенням для мене було створити сторінку, яку я хотів би бути домашньою сторінкою, і встановити URL-адресу в / вузол. Тоді в розділі / admin / config / system / site-information встановіть типову титульну сторінку на / node. Ви ніколи не бачите "/ вузол" в URL-адресі, якщо хтось насправді не вводить його. Це швидко, легко і чисто, якщо ви хочете встановити URL-адресу домашньої сторінки в / вузол.


1

Ви можете створити нову сторінку з URL-адресою вузла, і люди можуть побачити повідомлення, яке перенаправляє їх, щоб перейти на головну сторінку або вибрати категорію чогось.


1

Я спробував кілька речей. Тоді для Drupal 7 і 8 я вважав це найпростішим, не пишучи жодного коду:

завантажуйте та включайте node_page_disable, globalredireire та redirect модулі.

(Примітка: node_page_disable модуль переспрямовує / вузол на 404 не знайдено сторінки помилки.)

потім додайте переспрямування на / node -> головну сторінку

Зверніть увагу, що переадресація перенаправляє і / вузол, і / вузол / на головну сторінку.

і корисну статтю для читання: https://www.drupalaid.com/blog/3-things-you-should-hide


Це перегляд у D8, тому drush @example.com views-disable frontpageвимкне його. Ще отримаєте 404, хоча поки не будуть зроблені інші речі.
колан

0

Створіть вузол, потім перейдіть до конфігурації сайту -> інформація про сайт та встановіть домашню сторінку до шляху вузла. Отже, якщо це ваш перший вузол, це буде вузол / 1.

Редагувати: За замовчуванням, просто створивши вузол, ця сторінка зникне, якщо ви поставите галочку "просунути на головну сторінку" Крок інформації про сайт зробить цей вузол вашою фактичною титульною сторінкою.


1
Щоправда, але /nodeвсе-таки можна дістатися, воно за замовчуванням не буде видно
Laxman13,

Я неправильно прочитав, що він просив. Як щодо http://drupal.org/project/path_redirect модуля перенаправлення шляху ?
Майк Л.

1
На жаль, переадресація шляху не дозволяє перенаправлятись із існуючих шляхів. Він перевіряє, чи шлях, з якого ви намагаєтесь переспрямувати, є дійсним шляхом, і якщо так, то переспрямування не створюється, а відображається попередження.
Laxman13

Класно. Я не використовував його деякий час, тому не був позитивним. Спасибі!
Майк Л.

0

Ви можете скористатися модулем Правила для перевірки URL-адреси перед переглядом сторінки та перенаправлення користувачів на іншу сторінку, якщо хочете.

  • Додати правило з подією: Вміст буде переглянуто
  • Додати умову: Виконати спеціальний PHP-код та перевірити шлях
  • Додайте дію: Перенаправлення сторінки та виберіть шлях, на який потрібно переспрямувати

Це не лише вводить суворі штрафи за виконання, але це слід вважати дуже небезпечним. "Виконати користувацький PHP" ніколи не слід пропонувати, якщо всі побічні ефекти та недоліки дуже добре відомі. -1 за це.
berkes

@berkes Я припускаю, що це тому, що Правила будуть перевіряти кожне завантаження сторінки і, отже, уповільнювати роботу сайту? Чому так завжди нахмуриться "Виконати спеціальний php"? Очевидно, це не добре для використання кінцевим користувачем, але чи є недоліки і для використання розробниками? Вибачте, якщо довго працюю по-справжньому, щоб бути найкращим, що я можу з Drupal, і вивчаю "всі". (При необхідності можна додати другу частину як власне запитання)
Laxman13,

будь ласка, розгляньте новий Q "Які недоліки використання" користувальницького PHP "з деякими прикладними областями (блоки, аргументи перегляду, php-фільтр тощо), де це може бути обговорено?
berkes

0

Популярне запитання ще досить років тому, з уже досить цікавими відповідями. Однак вгадайте, що: "Ці дні для цього є модуль ... насправді навіть два!" (не згадується ні в одній з попередніх відповідей).

Детальніше читайте далі ... (цитати зі сторінок проекту) ...

Адміністратор сторінки вузла (або D6, або D7):

Цей модуль додає панель налаштувань адміністрації для обробки / доступу до сторінки вузла . Після його активації є три можливі конфігурації:

  • Core - ядро ​​Drupal буде працювати з доступом до сторінки вузла як завжди: всі користувачі мають дозвіл на доступ до вмісту
  • Відключений - Ніхто не зможе отримати доступ до / вузла. Він поверне "Сторінку не знайдено" (404).
  • Дозволом - Доступ буде оброблятися за допомогою нового дозволу: "сторінка вузла доступу"

Сторінку вузла вимкнено (або D6, або D7, хоча тільки версії rc2):

Дозволяє легкий доступ до інтерфейсу та відключення шляху / вузла, коли його не використовують. На це надихнули питання безпеки в Модулі перевірки виробництва .


-1

найкращий спосіб - приховати вузли від функції template_preprocess_page

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.