Управление кнопками /добавление новых кнопок


#21

Может помочь такая директива в конфиге:

// shortcut_actions: Actions that are available as direct buttons next to the "Actions" menu
//	default: 'UI:Menu:Modify,UI:Menu:New'
'shortcut_actions' => 'UI:Menu:Modify,ev_assign,ev_reassign,ev_wait_for_approval,ev_approve,ev_reject,ev_pending,ev_resolve,ev_close,ev_reopen,ev_validate,ev_plan,ev_replan,ev_notapprove,ev_implement,ev_monitor,ev_finish,ev_dispatch,ev_redispatch',

В моём случае все кнопки действий вынесены наружу, а в меню только “удалить” и “новый”.


#22

По логике понятно, но у меня не получается правильно написать код:
<![CDATA[ public function AssignMe($sStimulusCode)
{

$iContactId = UserRights::GetContactId();
$iTeamId = “SELECT lnkPersonToTeam WHERE person_id = $iContactId”;
$this->Set(‘team_id’,$iTeamId->Get(‘team_id’));
$this->Set(‘agent_id’,$iContactId);
}]]>
В итоге я получаю ошибку при нажатии кнопки:
Fatal error: Call to a member function Get() on string...


#23

Так просто? Это первое, что я пробовал, но как я только не указывал: UI:Menu:ev_assign и UI:Menu:stimulus&stimulus=ev_assign, и UI:ev_assign, короче как только не делал, но только не так как нужно.

Спасибо большое :slight_smile:


#24

Ну тут всё не так просто)
“SELECT lnkPersonToTeam WHERE person_id = $iContactId – это только строка запроса, его нужно выполнить, получить список объектов, взять первый объект из списка и только затем взять у него id. Если ты с php не очень знаком, то объяснить будет непросто.


#25

Как-то так примерно это выглядит:

// Формируем объект поиска из OQL-запроса
$sOql = "SELECT Team AS t JOIN lnkPersonToTeam AS lnk ON lnk.team_id = t.id WHERE lnk.person_id = $iContactId";
$oSearch = DBObjectSearch::FromOQL($sOql);
// Получаем набор объектов Team из объекта поиска
$oTeamSet = new DBObjectSet($oSearch);
if ($oTeamSet->Count() > 0) {
	// Если у пользователя есть команды, берем первую попавшуюся
	$oTeam = $oTeamSet->Fetch();
	// и затем получаем id команды
	$iTeamId = $oTeam->GetKey();
	// дальше делаем с ним, что хотим
} else {
	// У пользователя нет команд
}

#26

Ну конечно же все работает, как всегда спасибо)


#27

А по поводу двойного нажатия на кнопку это реализуемо? хотя бы какая должна быть логика кода?
Как мне кажется, я еще должен добавить:

$this->ApplyStimulus('ev_assign_to_me');

Но это не приносит результата.