Ramapriya
@Ramapriya

Не добавляется пункт меню в профиле пользователя Битрикс24?

Добрый день!

Некоторое время назад удалось добавить пункт меню в группе Битрикс по данному материалу

Сейчас потребовалось добавить аналогичный пункт в меню карточки пользователя.

Делаю всё то же самое - не работает. Причём если перехожу по адресу, ссылка на который должна быть в меню, страница открывается, ошибок нет.

Добавил запись в лог - логи пишутся.

не могу понять, в чём дело.

файл, регистрирующий события:

defined('B_PROLOG_INCLUDED') || die;

use Bitrix\Main\EventManager;
use Bitrix\Main\Loader;
use Ramapriya\Test;

Loader::registerAutoloadClasses(null, ['Ramapriya\\Test\\TestItem' => '/local/php_interface/test_item/testitem.php']);

$eventHandler = EventManager::getInstance();

$eventHandler->addEventHandler('socialnetwork', 'OnFillSocNetFeaturesList', ['Ramapriya\\Test\\TestItem','addFeature']);

$eventHandler->addEventHandlerCompatible('socialnetwork', 'OnFillSocNetMenu', ['Ramapriya\\Test\\TestItem','addSocNetMenu']);

$eventHandler->addEventHandlerCompatible('socialnetwork', 'OnParseSocNetComponentPath', ['Ramapriya\\Test\\TestItem','parseSocNetComponentPath']);


класс с обработчиками событий:

namespace Ramapriya\Test;


class TestItem {

    public static function addFeature(&$arSocNetFeaturesSettings) {
        $arSocNetFeaturesSettings['test_item'] = [
            'allowed' => [SONET_ENTITY_USER, SONET_ENTITY_GROUP],
            'operations' => [
                'write' => [
                    SONET_ENTITY_USER => SONET_RELATIONS_TYPE_NONE, 
                    SONET_ENTITY_GROUP => SONET_ROLES_MODERATOR
                ],
                'view' => [
                    SONET_ENTITY_USER => SONET_RELATIONS_TYPE_ALL,
                    SONET_ENTITY_GROUP => SONET_ROLES_USER
                ]
            ],
            'minoperation' => 'view'
        ];

        writeToLog(LOG_DIRECTORY . 'addFeature_' . date('d.m.Y_H.i.s.') . 'txt', $arSocNetFeaturesSettings, 'add new feature');
    }

    public static function addSocNetMenu(&$arResult) {

        $arResult['CanView']['test_item'] = true;
        $arResult['Urls']['test_item'] = \CComponentEngine::MakePathFromTemplate('/company/personal/user/#user_id#/test_item/', ['user_id' => $arResult['User']['ID']]);
        $arResult['Title']['test_item'] = 'Test Item';

        writeToLog(LOG_DIRECTORY . 'addSocNetMenu_' . date('d.m.Y_H.i.s.') . 'txt', $arResult, 'add socnet menu');

    }

    public static function parseSocNetComponentPath(&$arUrlTemplates, &$arCustomPagesPath) {

        $arUrlTemplates['test_item'] = 'user/#user_id#/test_item/';
        $arCustomPagesPath['test_item'] = '/local/php_interface/test_item/';

        writeToLog(LOG_DIRECTORY . 'parseSocNetComponentPath_' . date('d.m.Y_H.i.s.') . 'txt', [
            'url_templates' => $arUrlTemplates,
            'custom_pages_path' => $arCustomPagesPath
        ]);
    }

}


Подскажите, где я застрял?
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Когда готовили новую карточку пользователя (sidebar) механизм непосредственно выводящий ссылки в верхнее меню был изменен в связи с чем эта механика перестала работать.

Можете присоединиться к коллективному тикету (2623832) и писать что вам тоже нужна эта механика.
Для этого напишите ваше сообщение в техподдерку и укажите что подобная проблема поднималась уже поднималась (номер тикета в helpdesk битрикса).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы