Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
AI OnAI Off
Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
// Only brain compiled - put it into PageLoad
PageDataCollection langVersions = Global.EPDataFactory.GetLanguageBranches(CurrentPage.PageLink);
PageDataCollection pagesWithPdfLinks = new PageDataCollection();
foreach (PageData page in langVersions)
{
// Check that it is not the same lang as the currently loaded one
// Also check that the page has a value for the pdf link
if (CurrentPage.LanguageBranch != page.LanguageBranch &&
page["varFilePath"] != null)
{
// We have a language version of the page
pagesWithPdfLinks.Add(page);
}
}
lstPdfLinks.DataSource = pagesWithPdfLinks;
lstPdfLinks.DataBind();
Now you have a collection of page language versions that have a value for the pdf link. It does not contain the currently showing language version. It has been bound to a PageList control, which could look like this:
Also available in:
]]>
and you need the GetLanguageDisplayName method in your code behind file:
protected string GetLanguageDisplayName(string languageBranch)
{
return LanguageBranch.Load(languageBranch).Name;
}
I think this should do the trick, at least it should give you some pointers on how to solve it.
/Steve
]]>" runat="server">
<%#ContainerPage(Container.CurrentPage)%>
<%----%>
<%# GetLanguageDisplayName(Container.CurrentPage.LanguageBranch) %>
<%----%>
And the following in the cs:
public PageDataCollection pagesWithPdfLinks = new PageDataCollection();
public PageDataCollection langVersions;
protected EPiServer.WebControls.PageList lstPdfLinks;
public void ContainerPage(PageData pr)
{
langVersions = Global.EPDataFactory.GetLanguageBranches(pr.PageLink);
foreach (PageData page in langVersions)
{
// We have a language version of the page
pagesWithPdfLinks.Add(page);
}
lstPdfLinks.DataSource = pagesWithPdfLinks;
lstPdfLinks.DataBind();
}
protected static string GetLanguageDisplayName(string languageBranch)
{
if (LanguageBranch.Load(languageBranch).Name == "Default")
return "English";
else
return LanguageBranch.Load(languageBranch).Name;
}
Needless to say, it doesn't work as smoothly as the one you suggested.
Any advice?
public string GetPDFLink() { //private PageData langPage; This is declared elsewhere. LanguageBranch lb = LanguageBranch.Load(DocumentPage.LanguageBranch); string _getPDFLink = ""; if (lb.Name == "Default") { _getPDFLink = (string)DocumentPage["varFilePath"]; } else if (lb.Name == "FR") { EPiServer.Core.LanguageSelector selectorFR = new EPiServer.Core.LanguageSelector("FR"); langPage = EPiServer.Global.EPDataFactory.GetPage(DocumentPage.PageLink, selectorFR); _getPDFLink = (string)langPage["varFilePath"]; // This should be the value from the French version of the page } else if (lb.Name == "ES") { EPiServer.Core.LanguageSelector selectorES = new EPiServer.Core.LanguageSelector("ES"); langPage = EPiServer.Global.EPDataFactory.GetPage(DocumentPage.PageLink, selectorES); _getPDFLink = (string)langPage["varFilePath"]; // This should be the value from the Spanish version of the page } return _getPDFLink; }