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
var rep = ServiceLocator.Current.GetInstance();
var newBlock = rep.GetDefault();
newBlock.YouProp = "Cool stuff";
rep.Save((IContent)newBlock, SaveAction.Publish)
writableClonePage.ContentArea.Items.Add(newBlock)
Just writing from memory here so could be a bug or two in there. But something like it. =)
Thanks Petter. But it seems ContentArea.Items.Add() expects a ContentAreaItem object?
clone.MainContentArea.Items.Add(new ContentAreaItem()
{
ContentLink = myReference
});
There is a forum post with similar code that you could use: http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=86474
Thanks a bunch!
Here's what I ended up with:
var writableClonePage = (LandingPage)CurrentPage.CreateWritableClone();
var rep = ServiceLocator.Current.GetInstance();
var newBlock = rep.GetDefault(ContentReference.GlobalBlockFolder);
newBlock.ButtonLink = "http://www.episerver.no";
newBlock.ButtonText = "My button text";
IContent icontentBlock = (IContent)newBlock;
icontentBlock.Name = "Some name";
var savedReference = rep.Save(icontentBlock, SaveAction.Publish, AccessLevel.NoAccess);
var myContentAreaItem = new ContentAreaItem();
myContentAreaItem.ContentLink = savedReference;
writableClonePage.MainContentArea.Items.Add(myContentAreaItem);
rep.Save(writableClonePage, SaveAction.Publish, AccessLevel.NoAccess);
NP.
In case you would rather use the "for this page" folder, you could simply add:
var contentAssetHelper = ServiceLocator.Current.GetInstance();
ContentAssetFolder folder = contentAssetHelper.GetOrCreateAssetFolder(myPage.ContentLink);
var newBlock = contentRepository.GetDefault(folder.ContentLink);
Is it possible to programmatically add blocks to a page?
I would assume that you would have to to something like this