2008-10-02 8 views
2

J'ai une application qui crée un nouvel élément dans Sitecore puis ouvre l'éditeur de contenu à cet élément, il se charge bien mais chaque fois que j'essaie d'ouvrir l'éditeur html je reçois une 'NullReferenceException'. Cela ne se produit que lorsque je lance l'application dans cette méthode.Lancer l'éditeur de contenu à partir du code

Code Source:

[Serializable] 
public class PushToCMS : Command 
{ 
    public override void Execute(CommandContext context) 
    { 
     //Context.ClientPage.Start(this, "Action_PushToCMS"); 

     Database dbCore = Sitecore.Configuration.Factory.GetDatabase("core"); 
     Item contentEditor = dbCore.GetItem(new ID("{7EADA46B-11E2-4EC1-8C44-BE75784FF105}")); 

     Database dbMaster = Sitecore.Configuration.Factory.GetDatabase("master"); 
     DatabaseEngines engine = new DatabaseEngines(dbMaster); 

     Item parentItem = dbMaster.GetItem("/sitecore/content/Home/Events/Parent/"); 

     // Load existing related item if it exists 
     Event evt = new Event(new Guid(HttpContext.Current.Items["id"].ToString())); 
     Item item = dbMaster.SelectSingleItem("/sitecore/content/Home/Events/Parent/Item"); 

     if (item == null) 
      item = CreateNewEvent(engine.DataEngine, parentItem, evt); 

     Sitecore.Text.UrlString parameters = new Sitecore.Text.UrlString(); 
     parameters.Add("id", item.ID.ToString()); 
     parameters.Add("fo", item.ID.ToString()); 
     Sitecore.Shell.Framework.Windows.RunApplication(contentEditor, contentEditor.Appearance.Icon, contentEditor.DisplayName, parameters.ToString()); 
    } 

La seule différence que je peux dire dans le chargement des deux méthodes est l'URL pour l'éditeur html, mais je ne sais pas où cela est défini ou comment je peux le contrôler .

Lancé par la méthode normale: http://xxxx/sitecore/shell/default.aspx?xmlcontrol=RichTextEditor&da=core&id=%7bDD4372AC-5D37-4C9E-BBFA-C4E3E2A27722%7d&ed=F27055570&vs&la=en&fld=%7b60D10DBB-7CD5-4341-A960-C7AB10347A2C%7d&so&di=0&hdl=H27055699&us=%7b83D34C8A-4CC4-4CD9-A209-600D51B26AAE%7d&mo

Lancé par RunApplication: http://xxxx/layouts/xmlcontrol.aspx?xmlcontrol=RichTextEditor&da=core&id=%7bDD4372AC-5D37-4C9E-BBFA-C4E3E2A27722%7d&ed=F27055196&vs&la=en&fld=%7b60D10DBB-7CD5-4341-A960-C7AB10347A2C%7d&so&di=0&hdl=H27055325&us=%7b83D34C8A-4CC4-4CD9-A209-600D51B26AAE%7d&mo

toute aide à ce sujet serait grandement apprécié.

Répondre

2

Phil,

S'il est trop tard pour la réponse ... :) Il pourrait être le cas que vous exécutez ce code sans les autorisations pour lire la base de données de base. Dans ce cas, lorsque vous essayez d'appeler contentEditor. vous obtiendrez NullReference. Je vous recommande d'utiliser un autre format d'exécuter l'application - utiliser une autre méthode:

Sitecore.Shell.Framework.Windows.RunApplication("Content Editor", parameters.ToString()); 

Si cela ne fonctionne pas, s'il vous plaît attacher la trace de la pile de l'exception que vous obtenez.

Espérons que cela aide.

Questions connexes