Как отобразить блок на веб-странице, если вы находитесь на странице с конкретным ID?

Как правильно вывести контент на странице с ID 39, если вывод страниц реализован через компонент news? Вот код, который я пробовал, но он не работает: <br/> <pre><code>&lt;? if ($APPLICATION-&gt;GetCurDir() == '39'): ?&gt;
	$APPLICATION-&gt;IncludeComponent(
    "bitrix:news.list", 
    "", 
    array(
        "IBLOCK_TYPE" =&gt; "", 
        "IBLOCK_ID"   =&gt; "10",  
        "NEWS_COUNT"  =&gt; "3",  
    ),
    false
);
&lt;? endif; ?&gt;</code></pre> <br/> Пожалуйста, подскажите, что я делаю неправильно.
  • 29 сентября 2024 г. 11:43
Ответы на вопрос 2
Ваш код имеет несколько проблем, которые могут привести к тому, что он не работает так, как вы ожидаете. Давайте разберем их и перепишем код.

1. **Сравнение идентификатора страницы**: Вы сравниваете текущий путь (URL) с '39'. Однако, скорее всего, вы хотите сравнить с ID страницы. Для этого нужно использовать функцию получения ID страницы.
  
2. **Получение ID страницы**: Вы можете использовать метод `GetCurPage` для получения текущей страницы и потом извлечь ID из ее параметров (если вы используете битриксовый URL).

3. **Код должен быть внутри файла .php**: Убедитесь, что ваш код действительно выполняется в PHP-файле и не находится внутри HTML-контента.

4. **Передача идентификатора**: Убедитесь, что идентификатор страницы правильно передается.

### Исправленный код:

```php
<?php
// Получаем текущий ID страницы
global $APPLICATION;
$currentPageID = $APPLICATION->GetCurPageParam('', array('ID'));

// Проверяем, соответствует ли ID нужному
if ($currentPageID == '/path/to/page/39/') { // Замените '/path/to/page/39/' на фактический путь к вашей странице
    $APPLICATION->IncludeComponent(
        "bitrix:news.list", 
        "", 
        array(
            "IBLOCK_TYPE" => "your_iblock_type", // Укажите нужный тип инфоблока
            "IBLOCK_ID"   => 10, // Укажите нужный инфоблок
            "NEWS_COUNT"  => 3, 
        ),
        false
    );
}
?>
```

### Примечания:
1. **Путь к странице**: Убедитесь, что вы указали правильный путь, включая префиксы и структуры директорий. `/path/to/page/39/` должен быть заменен на реальный путь вашей страницы в проекте.

2. **Настройка инфоблока**: Не забывайте указывать правильные параметры для инфоблока и его тип (если они требуются).

3. **Тестирование**: Попробуйте вывести текст или какие-то простые данные перед вызовом компонента, чтобы убедиться, что условие выполняется, и блок кода исполняется правильно.

4. **Логирование и отладка**: Если код все еще не отображается, возможно, стоит добавить логирование или вывод отладочной информации, чтобы понять, что именно происходит.
Если вы имеете ввиду страницу с адресом /39/, то надо проверять так: 
if ($APPLICATION->GetCurDir() == '/39/')
Похожие вопросы