· Directly edit the VariationsRootLanding.ascx file.
This is the quickest way to edit the logic. Edit the logic in the VariationsRootLanding.ascx file as needed, on the front-end Web server file system.
· Navigate to the path “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES” here you will find the VariationsRootLanding.ascx file open the file and to edit.
To modify the root landing logic to detect when a functioning Web site is present
1. In the GetRedirectUrl() section, find this line of code.
2. Replace the line of code in Step 1 with the following code.
Note:
That I'm redirecting to my source Variation label with the index of "0".
// Customization for handling matchedUrl not valid.
// (For example, a content deployed target site collection,
// without source hierarchy.)
matchedUrl = (string.IsNullOrEmpty(matchedUrl) ? sourceLabelUrl : matchedUrl);
using (SPSite site = new SPSite(matchedUrl))
using (SPWeb web = site.OpenWeb())
{
// If matchedUrl is the same as the URL of the Web
// that you just opened, then matchedUrl is valid.
if (string.Compare(matchedUrl, web.Url, StringComparison.OrdinalIgnoreCase) == 0 && web.DoesUserHavePermissions(SPBasePermissions.Open))
{
//Target URL is valid; return it.
//return matchedUrl;
SPSite Site = new SPSite(http://win-1eppeqik472/sites/Publishing);
SPWeb Web = Site.RootWeb;
Guid varListId = new Guid(Web.AllProperties["_VarLabelsListId"] as string);
SPList varList = Web.Lists[varListId];
String URL = varList.Items[0].Web.Url;
URL += "/" + varList.Items[0].Name + "/Pages/default.aspx";
return URL;
}
SPWeb Web = Site.RootWeb;
Guid varListId = new Guid(Web.AllProperties["_VarLabelsListId"] as string);
SPList varList = Web.Lists[varListId];
String URL = varList.Items[0].Web.Url;
URL += "/" + varList.Items[0].Name + "/Pages/default.aspx";
return URL;
}
else
{
//Target URL was NOT valid; the variation label is missing.
//Perform logic here to redirect the user appropriately.
//If nothing is done here, then this function returns null
//and the landing behavior reverts to the
//VariationsRootLandingRunTime control.
//This control displays a simple error message that
//indicates that it could not find an appropriate subsite to
//redirect to.
return "http://win-1eppeqik472/sites/Publishing/Arabic/Pages/default.aspx";
}
}
#endregion
and here is some Important Links:
and here is some Important Links:
No comments:
Post a Comment