N.542 Refactored the code so that query placeholders (current_contact->attcode or current_user->attcode) become available in template too.... BUT this will not work if the notifications are sent asynchronously (thus the logged in user is an account dedicated to the cron).

SVN:trunk[4747]
This commit is contained in:
Romain Quetiez
2017-05-22 14:57:03 +00:00
parent ba0a9709f4
commit c2c0221535

View File

@@ -2673,22 +2673,32 @@ abstract class MetaModel
}
}
}
$aScalarArgs = static::AddMagicPlaceholders($aScalarArgs);
return $aScalarArgs;
}
/**
* @param $aPlaceholders The array into which standard placeholders should be added
* @return array of placeholder (or name->object()) => value (or object)
*/
public static function AddMagicPlaceholders($aPlaceholders)
{
// Add standard magic arguments
//
$aScalarArgs['current_contact_id'] = UserRights::GetContactId(); // legacy
$aPlaceholders['current_contact_id'] = UserRights::GetContactId(); // legacy
$oUser = UserRights::GetUserObject();
if (!is_null($oUser))
{
$aScalarArgs['current_user->object()'] = $oUser;
$aPlaceholders['current_user->object()'] = $oUser;
$oContact = UserRights::GetContactObject();
if (!is_null($oContact))
{
$aScalarArgs['current_contact->object()'] = $oContact;
$aPlaceholders['current_contact->object()'] = $oContact;
}
}
return $aScalarArgs;
return $aPlaceholders;
}
public static function MakeModifierProperties($oFilter)
@@ -5085,6 +5095,8 @@ abstract class MetaModel
*/
static public function ApplyParams($sInput, $aParams)
{
$aParams = static::AddMagicPlaceholders($aParams);
// Declare magic parameters
$aParams['APP_URL'] = utils::GetAbsoluteUrlAppRoot();
$aParams['MODULES_URL'] = utils::GetAbsoluteUrlModulesRoot();