Добрый день!
Некоторое время назад удалось добавить пункт меню в группе Битрикс по
данному материалу
Сейчас потребовалось добавить аналогичный пункт в меню карточки пользователя.
Делаю всё то же самое - не работает. Причём если перехожу по адресу, ссылка на который должна быть в меню, страница открывается, ошибок нет.
Добавил запись в лог - логи пишутся.
не могу понять, в чём дело.
файл, регистрирующий события:
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
]);
}
}
Подскажите, где я застрял?