Давно не могу найти ответ этому вроде простому вопросу:
Как в разметке ВФ страницы получить базовый УРЛ орга?
нужен просто базовый УРЛ (к которому динамически приписывается /IDзаписи), и все это является текстом в аргументе линка вписанного в атрибут src
Вот так можно с апекса:
URL.getSalesforceBaseUrl().toExternalForm()
Можно загнать в стрингу, и использовать на странице.
Или попробуй $CurrentPage.URL.
Это все здорово, но не пракатывает в Email Templates. Там нужно использовать
<apex:variable var="rootLink" value="{!LEFT($Api.Partner_Server_URL_290, FIND('.com/',$Api.Partner_Server_URL_290)+3)}{!$Site.Prefix}"/>
спасибо всем.
{!$CurrentPage.URL} - так на странице получаем полный урл
{!LEFT($Api.Partner_Server_URL_290, FIND('.com/',$Api.Partner_Server_URL_290)+3)} - так получаем базовый в том числе в Email Templates.
{!LEFT($CurrentPage.URL, FIND('.com/',$CurrentPage.URL)+3)} - и так получаем базовый урл
продолжу тему:
может кто знает, как в АПЕКСе получить базовый урл какой-то коммунити?
есть код который отправляет письма с указание линка на запись как в пределах Орга, так и в коммунити. С первым все понятно, как получить второй?
хотя вроде он отличается от стандартного только фрагментом .../Portal/...
{!$site.url} or siteurl вроде так.
{!$Site.Prefix} - префиес сайта или коммкнити
Вообще посмотри здесь
// Gets community URL in format https://[domain]/[community prifix]
public static String getCummunityUrl(String communityName){
List<Domain> domains = [SELECT Id, Domain FROM Domain limit 1];
if (domains.isEmpty()){
throw new CustomException('Domain was not found.');
}
String domainStr = domains[0].Domain;
List<Network> communities = [
SELECT
Id, Name, Description, Status, UrlPathPrefix
FROM
Network
WHERE
Name = :communityName];
if (communities.isEmpty()){
throw new CustomException('Community was not found "' + communityName + '"');
}
String communityPrefixStr = communities[0].UrlPathPrefix;
return 'https://' + domainStr + '/' + communityPrefixStr;
}
Можно еще вот так:
String hostVal = ApexPages.currentPage().getHeaders().get('Host');
String urlVal = Apexpages.currentPage().getUrl();
String URLL = 'https://' + hostVal+ urlVal;надо попробовать, в СФ еще с хидерами не работал