Изменение меню на пользовательском портале


#1

Всем привет!
Мне необходимо добавить на портале кнопку в меню, в которой находится ссылка на сторонний ресурс.
Если я верно понял документацию (https://wiki.openitop.org/doku.php?id=2_3_0:customization:portal_overview), то при кастомизации портала с помощью xml, нужно оперировать готовыми brick’ами. Существует ли какой-нибудь простой способ добавить обычную ссылку в меню?


#2

Добрый день.
Например:

<menu id="ReportOverview:MyReport" xsi:type="WebPageMenuNode" _delta="define">
	<rank>40</rank>
	<parent>ReportOverview</parent>
	<url>$/report/</url>
</menu>

ссылка на свой отчет, размещенный в папке itop/report


#3

Добрый день. А можете подсказать куда этот кусок вставить?
Я попробовал создать в extensions каталог new-button, в нем создал datamodel.new-button.xml:

<?xml version="1.0" encoding="UTF-8"?> <itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <menus> <menu id="new-button" xsi:type="WebPageMenuNode" _delta="define"> <rank>40</rank> <parent>new-button</parent> <url>$$maps.ya.ru/</url> </menu> </menus> </itop_design>

В таком случае ломается back-user office interface с ошибкой в error.log nginx’a
"FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: new-button in …/env-production/new-button/model.new-button.php on line 22"
Если прописать в menu id=“new-button:maps” к примеру, то при установке вываливается ошибка:
"Notice: Undefined index: new-button in …/setup/compiler.class.inc.php on line 289"
Также я пытался добавить кусок с в уже созданный модуль, после <itop_design…>, но проблемы были те же самые.
Ну и насколько я понимаю, если я просто добавляю menu, то он меняет меню не на пользовательском портале, а в back-user office interface.


#4

Как вставить пункт меню в портал пользователя не знаю.
Вставить ссылку перед меню портала можно так:
Открываешь itop/portal/index.php
В // Main program находишь строку

$oP->SetWelcomeMessage(Dict::Format(‘Portal:WelcomeUserOrg’, UserRights::GetUserFriendlyName(), $oUserOrg->GetName()));

перед ней пишешь примерно следующее:

> $oP->add("<div align=\"right\">\n");
> $oP->add("<td><a href=\"http://sd.kr.loc/doc/rukovodstvo_polzovatelya_portala.php\" target=\"_blank\">Руководство пользователя Портала</a></td>\n");
> $oP->add("</div>\n");

href меняешь на свой.


#5

Ок, попробуем поковырять php, спасибо.