Настройка содержимого в Orchard CMS - PullRequest
1 голос
/ 21 июля 2011

В настоящее время я пытаюсь понять немного больше о том, как Orchard обрабатывает списки пользовательских типов контента, и я столкнулся с небольшой проблемой.

Я создал тип контента с именем Story , который состоит из следующих частей:

  • Кузов
  • Общее
  • Containable
  • Маршрут

Я создал список, содержащий эти элементы, и все, что я пытаюсь сделать, это оформить их таким образом:

Story Title
Story Description (Basically a truncated version of the body?)

Однако я не могу понять, как сделать следующее:

  1. Получить название, которое действительно появляется ( В настоящее время все, что появляется, это тело и дополнительная ссылка )
  2. Удалите ссылку "more" ( и измените ее на фактическое название )

Я изучил вопрос об изменении Placement.info и попытался выяснить, где в каждом из элементов добавлена ​​ссылка «еще». Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Мне, наконец, удалось это выяснить - благодаря Модульному инструментальному средству , благодаря которому стало очень просто смотреть, что происходит за кулисами во время генерации страниц.

По сути - все, что было необходимо для этого, - это внести небольшие изменения в файл Parts.Common.Body.Summary.cshtml . ( найдено через ../Core/Common/Views/)

Что изначально напоминает следующее:

@{     

[~.ContentItem] contentItem = Model.ContentPart.ContentItem;
string bodyHtml = Model.Html.ToString();
var body = new HtmlString(Html.Excerpt(bodyHtml, 200).ToString()
               .Replace(Environment.NewLine,"</p>"+Environment.NewLine+"<p>")); 

}

<p>@body @Html.ItemDisplayLink(T("more").ToString(), contentItem)</p>

однако, сделав несколько изменений (с помощью инструментов дизайнера), я изменил его на следующее:

@{ 

[~.ContentItem] contentItem = Model.ContentPart.ContentItem;
string bodyHtml = Model.Html.ToString();
string title = Model.ContentPart.ContentItem.RoutePart.Title;
string summary = Html.Excerpt(bodyHtml, 100) + "...";

}

<div class='story'>
    <p>
    @Html.ItemDisplayLink(title, contentItem)
    </p>
    <summary>
    @summary
    </summary>
</div>

Несмотря на то, что его можно было бы немного укоротить - он значительно облегчает управление стилем. В любом случае - надеюсь, это поможет:)

2 голосов
/ 22 июля 2011

В качестве альтернативы вы можете использовать файл place.info в вашей теме, назначая различные поля для ваших представлений Сводка и Деталь.Это намного проще.

http://orchardproject.net/docs/Understanding-placement-info.ashx

Но я использовал тот же метод, что и вы, пока не обнаружил файл .info.Это работает и дает вам хорошее представление о том, как работает система, но файл place.info кажется более простым.

Кроме того, вы, вероятно, не хотите редактировать файлы представления в Core.Я думаю, что вы хотели переопределить представления в каталоге вашей темы.

...