Возможна ли вставка кода с разграничением прав доступа. Чтобы его содержание могли видеть авторизованные пользователи, а другим предлагалось бы войти на сайт?

Что делать, если сайт композитный?


Да, возможно. Очень просто.

Живой пример внутри текста! Это не картинка, а контент, который вставлен с помощью модуля «Включаемый код»:

— Как отпроситься с работы, если уже переболел всеми известными медицине болезнями?
— ...

Чтобы узнать ответ, авторизуйтесь.

Логин:
Пароль:
Регистрация
Забыли свой пароль?
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:

Создайте включаемый файл, например, hidden_text.php с таким содержимым:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?global $USER?>

<?if ( $USER->IsAuthorized() ):?>

    <p>&mdash; Как отпроситься с работы, если уже переболел всеми известными медицине болезнями?<br />
    &mdash; Женись. Получишь три дня выходных.</p>

<?else:?>

    <p>&mdash; Как отпроситься с работы, если уже переболел всеми известными медицине болезнями?<br />
    &mdash; ...</p>
   
    <p>Чтобы узнать ответ, авторизуйтесь.</p>
       
    <?$APPLICATION->IncludeComponent(
        "bitrix:system.auth.form",
        "",
        Array(
            "REGISTER_URL" => "",
            "FORGOT_PASSWORD_URL" => "/auth/",
            "PROFILE_URL" => "",
            "SHOW_ERRORS" => "N"
        )
    );?>

<?endif?>



Сохраните файл в папке включаемых файлов /bitrix/php_interface/include/askaron.include/ .

Напишите на странице

<?CAskaronInclude::IncludeFile("hidden_text.php");?>

или специальный комментарий в тексте новости:

<!--askaron.include
hidden_text.php
-->

В этом месте появится содержимое включаемого файла в зависимости от текущего пользователя.



Что делать если сайт композитный?

На композитных сайтах разработчик должен везде на сайте отметить динамичные области. Включаемый код - не исключение. Надо обозначить область:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
$frame = new \Bitrix\Main\Page\FrameHelper("my_hidden_text");
$frame->begin();
?>

<?global $USER?>

<?if ( $USER->IsAuthorized() ):?>

    <p>&mdash; Как отпроситься с работы, если уже переболел всеми известными медицине болезнями?<br />
    &mdash; Женись. Получишь три дня выходных.</p>

<?else:?>

    <p>&mdash; Как отпроситься с работы, если уже переболел всеми известными медицине болезнями?<br />
    &mdash; ...</p>
 
    <p>Чтобы узнать ответ, авторизуйтесь.</p>
     
    <?$APPLICATION->IncludeComponent(
        "bitrix:system.auth.form",
        "",
        Array(
            "REGISTER_URL" => "",
            "FORGOT_PASSWORD_URL" => "/auth/",
            "PROFILE_URL" => "",
            "SHOW_ERRORS" => "N"
        )
    );?>

<?endif?>

<?
//$frame->setAnimation(true);
$frame->end();
?>



0  


 Работал месяц. Сейчас не отображается | Описание курса | Стандартные примеры включаемых файлов