overload the cms2002 console
that's what i have done, in the following class :
#region CARTOUCHE
/*
///<cartouche>
/// <copyright>(c) 2004 - PSA Peugeot Citroen </copyright>
/// <project>French Site & Web Services - Psa.Cw3.ContentManagement</project>
/// <class>CustomSwitchToEdit.cs
/// <summary>
/// Custom Cms Mode switching classes
/// Keeps html parameters when switching
/// </summary>
/// </class>
/// <author>
/// <name>Stéphane Palluet</name>
/// <company>Microsoft</company>
/// <ID>E204965</ID>
/// </author>
/// <author>
/// <name>Vincent GUERCI</name>
/// <company>CapGemini</company>
/// <ID>E219330</ID>
/// </author>
/// <author>
/// <name>Frédéric GUIGUI</name>
/// <company>CapGemini</company>
/// <ID>E209219</ID>
/// </author>
/// <version information>
/// <version number="1.0" date="03/09/2004" author="SPA">
/// <summary>Base version</summary>
/// </version>
/// <version number="1.1" date="06/09/2004" author="VGU">
/// <summary>Front office integration</summary>
/// </version>
/// <version number="1.1" date="08/10/2004" author="fGU">
/// <summary>Front office integration, fixing bug</summary>
/// </version>
/// </version information>
///</cartouche>
*/
#endregion
#region Usings
using System;
using System.Collections.Specialized;
using System.Web.UI;
using Microsoft.ContentManagement.WebControls.ConsoleCon trols;
using Microsoft.ContentManagement.Publishing;
using Microsoft.ContentManagement.WebControls.ConsoleCon trols;
#endregion
namespace Psa.Cw3.ContentManagement.WebAuthor
{
/// <summary>
/// Summary description for CustomConsoleAction.
/// </summary>
public class CustomConsoleAction
{
public static string privateUrl;
public CustomConsoleAction()
{
//
// TODO: Add constructor logic here
//
}
}
public class CustomSwitchToEdit : SwitchToPresentationUnpublishedAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomSwitchToLive : SwitchToPresentationPublishedAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomSwitchToAuthoringReeditAction :
SwitchToAuthoringReeditAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomPresentationPreviewAction : PresentationPreviewAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomAuthoringPreviewAction : AuthoringPreviewAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomAuthoringSaveNewAction : AuthoringSaveNewAction
{
private string refParametersList;
private string parametersList
{
get
{
if (refParametersList == null)
{
Parser p = new Parser();
refParametersList = p.BuildParametersList(Page.Request.QueryString);
}
return refParametersList;
}
}
/* public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
*/
public override string UrlSaveNewPageWindow
{
get
{
string url = base.UrlSaveNewPageWindow+ parametersList;
return url;
}
set
{
base.UrlSaveNewPageWindow = value;
}
}
public override string UrlPostback
{
get
{
string url = base.UrlPostback+ parametersList;
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomAuthoringReeditSaveAction : AuthoringReeditSaveAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomAuthoringReeditSaveAndExitAction :
AuthoringReeditSaveAndExitAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
public override string UrlPostbackForExit
{
get
{
Parser p = new Parser();
string url = base.UrlPostbackForExit +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostbackForExit = value;
}
}
}
public class CustomAuthoringExitAction : AuthoringExitAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomApproveAction : ApproveAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomSubmitAction : SubmitAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomProductionManagerAction : ProductionManagerAction
{
/* public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
*/
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomApprovalAssistantAction : ApprovalAssistantAction
{
/* public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
*/
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomResourceManagerAction : ResourceManagerAction
{
/* public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
*/
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomGoToConnectedAction : GoToConnectedAction
{
/* public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
*/
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomCreateNewPageAction : CreateNewPageAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomCreateConnectedPageAction : CreateConnectedPageAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomDeleteAction : DeleteAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomCopyAction : CopyAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomMoveAction : MoveAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomDeclineAction : DeclineAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomPagePropertiesAction : PagePropertiesAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomRevisionHistoryAction : RevisionHistoryAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomViewRevisionByDateAction : ViewRevisionByDateAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomChannelPropertiesAction : ChannelPropertiesAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
/* public class CustomPostingStatus : PostingStatus
{
public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
}
public class CustomPostingVersionInfo : PostingVersionInfo
{
public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
}
public class CustomPostingLockingInfo : PostingLockingInfo
{
public override string ActionJavascript
{
get
{
Parser p = new Parser();
return p.BuildCustomizedUrl(base.ActionJavascript,
Page.Request.QueryString);
}
}
}
*/
public class CustomBackToAuthoringAction : BackToAuthoringAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomExitErrorAction : ExitErrorAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomSaveRegardlessOverlapAction : SaveRegardlessOverlapAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomViewLatestAfterOverlapSaveAction :
ViewLatestAfterOverlapSaveAction
{
public override string UrlNewWindow
{
get
{
Parser p = new Parser();
string url = base.UrlNewWindow +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlNewWindow = value;
}
}
}
public class CustomReattemptSaveAction : ReattemptSaveAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
public override string UrlPostbackForExit
{
get
{
Parser p = new Parser();
string url = base.UrlPostbackForExit +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostbackForExit = value;
}
}
}
public class CustomReattemptSubmitAction : ReattemptSubmitAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomReattemptApproveAction : ReattemptApproveAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomReattemptDeclineAction : ReattemptDeclineAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CustomReattemptDeleteAction : ReattemptDeleteAction
{
public override string UrlPostback
{
get
{
Parser p = new Parser();
string url = base.UrlPostback +
p.BuildParametersList(Page.Request.QueryString);
return url;
}
set
{
base.UrlPostback = value;
}
}
}
public class CmsUrlParameters
{
public static StringCollection LoadCmsUrlParameters()
{
StringCollection scCmsParameters = new StringCollection();
scCmsParameters.Add("NRMODE");
scCmsParameters.Add("NRCHANNELGUID");
scCmsParameters.Add("NRORIGINALURL");
scCmsParameters.Add("FRAMELESS");
scCmsParameters.Add("NRNODEGUID");
scCmsParameters.Add("NRCACHEHINT");
scCmsParameters.Add("WBCMODE");
scCmsParameters.Add("wbc_purpose");
scCmsParameters.Add("NRTEMPLATEVERSION");
scCmsParameters.Add("wbc_phname");
scCmsParameters.Add("wbc_phtype");
scCmsParameters.Add("wbc_deskres");
scCmsParameters.Add("wbc_attachicon");
scCmsParameters.Add("wbc_video");
scCmsParameters.Add("nr_emit");
scCmsParameters.Add("FreshTree");
return scCmsParameters;
}
}
public class Parser
{
public Parser()
{
}
public string BuildCustomizedUrl(string standardCMSUrl,
NameValueCollection QuerystringCollection)
{
StringCollection scCmsParameters;
string[] arr1;
string myPostBackString = "";
string myPostBackStringFollowing = "";
scCmsParameters = CmsUrlParameters.LoadCmsUrlParameters();
// Get names of all keys into a string array.
arr1 = QuerystringCollection.AllKeys;
string workStr = standardCMSUrl;
int pos = workStr.IndexOf("')");
if (pos > -1)
{
myPostBackStringFollowing = workStr.Substring(pos + 2, workStr.Length -
pos - 2);
myPostBackString = workStr.Substring(0, pos);
for (int loop1 = 0; loop1 < arr1.Length; loop1++)
{
if (!scCmsParameters.Contains(arr1[loop1]))
{
myPostBackString += "&" + QuerystringCollection.GetKey(loop1)+ "="+
QuerystringCollection.GetValues(loop1)[0];
}
}
myPostBackString += "')" + myPostBackStringFollowing;
}
else
{
myPostBackString = standardCMSUrl;
}
return myPostBackString;
}
public string BuildParametersList(NameValueCollection QuerystringCollection)
{
StringCollection scCmsParameters = CmsUrlParameters.LoadCmsUrlParameters();
string[] arr1 = QuerystringCollection.AllKeys;
string workStr = "";
for (int loop1 = 0; loop1 < arr1.Length; loop1++)
{
if (!scCmsParameters.Contains(arr1[loop1]))
{
workStr += "&" + QuerystringCollection.GetKey(loop1)+ "="+
QuerystringCollection.GetValues(loop1)[0];
}
}
return workStr;
}
}
}
But it's not working in every case !
If you have any idea !
Thank you for your help.
Best regards
|