Skip to content

Instantly share code, notes, and snippets.

@model ArticleViewModel
@{
int counter = 0;
}
@foreach(var relatedLink in Model.RelatedLinks)
{
<div class="cd-list">
@Html.SiteEditField(Model.TridionComponent.Fields["hyperlinks"][counter])
<a href="@relatedLink.Url" title="@relatedLink.Title" class="cd-link-ext" target="_blank">
@Html.SiteEditField(Model.TridionComponent.Fields["Image"][0])
@albertromkes
albertromkes / gist:5187121
Last active December 15, 2015 02:29
ViewModel with separate XPM properties
@model ArticleViewModel
@foreach(var relatedLink in Model.RelatedLinks)
{
<div class="cd-list">
@relatedLink.XPMMarkUp
<a href="@relatedLink.Url" title="@relatedLink.Title" class="cd-link-ext" target="_blank">
@relatedLink.Image.XPMMarkUp
@Html.RenderImage(relatedLink)
</a>
@albertromkes
albertromkes / gist:5187530
Created March 18, 2013 14:28
ViewModel with XPM Attributes
[InlineEditable]
public class Article : IArticle
{
[InlineEditableField(FieldName="title")]
public string Title {get;set;}
[InlineEditableField(FieldName="short_intro")]
public string Summary {get;set;}
private IList<string> _relatedLinks = new List<string>();
public class ArticleBuilder : BuilderBase
{
private ComponentPresentation TridionComponentPresentation { get; set; }
public ArticleBuilder(ComponentPresentation componentPresentation)
{
TridionComponentPresentation = componentPresentation;
}
public Article Build()
@model ArticleViewModel
<div class="middleContent">
@XPM.StartInlineEditingZone()
<h2>@XPM.Editable(m => m.Title)</h2>
<div class="intro">
@XPM.Editable(m => m.Summary)
</div>
<div>
@XPM.MarkUp(m => m.ImageUrl)
<img src="@Model.ImageUrl" />
</div>
@model DD4T.ContentModel.IComponent
@foreach (IFieldSet fieldset in Model.Fields["RelatedLinks"].EmbeddedValues)
{
<div class="cd-list">@if (fieldset.ContainsKey("Link") || fieldset.ContainsKey("ExternalLink"))
{
<a class="cd-link-ext" title="" href="@fieldset[" target="_blank">
@Html.SiteEditField(Model, fieldset["Image"])
@fieldset["Image"].GetImage("img")
</a>
@model ArticleViewModel
@foreach(var relatedLink in Model.RelatedLinks)
{
<div class="cd-list">
<a class="cd-link-ext" title="@relatedLink.Title" href="@relatedLink.Url" target="_blank">
@Html.RenderImage(relatedLink)
</a>
</div>
}
Tridion.Configuration.ConfigurationSections tcmConfigSections = (Tridion.Configuration.ConfigurationSections)ConfigurationManager.GetSection(Tridion.Configuration.ConfigurationSections.SectionName);
var tcmSectionElem = tcmConfigSections.Sections.Cast<Tridion.Configuration.SectionElement>().FirstOrDefault(s => !string.IsNullOrEmpty(s.FilePath) && s.FilePath.EndsWith("tridion.contentmanager.config", StringComparison.InvariantCultureIgnoreCase));
if(tcmSectionElem != null)
{
var tcmConfigFilePath = tcmSectionElem.FilePath;
//load Tridion.ContentManager.config
ExeConfigurationFileMap map = new ExeConfigurationFileMap { ExeConfigFilename = tcmConfigFilePath };
var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
var myCustomResolverSettings = ((AppSettingsSection)config.GetSection("My.Tridion.CustomResolving")).Settings;
var schemaTitles = myCustomResolverSettings["schemaTitles"].Value.ToString();
[InlineEditable]
public class ArticleModel
{
[InlineEditableField(FieldName="title")]
public string Title { get; set; }
[InlineEditableField(FieldName="complink_to_article")]
public HyperLink LinkToFullArticle { get; set; }
[InlineEditableField(FieldName="related_articles")]