Umbraco 4.7.0 Макрос не рендерится при вставке через редактор Richtext - PullRequest
3 голосов
/ 03 мая 2011

Я использую umbraco v4.7.0.Я создал макрос для Usercontrol.ascx и добавил его обычным способом, отметив опцию «Использовать в редакторе».

Он отлично отрисовывается в RTE, но затем при просмотре страницы не загружаетсямакрос.

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

Я что-то упускаю здесь?Это работало нормально в предыдущих версиях.

Ответы [ 4 ]

5 голосов
/ 05 июля 2011

Получил ответ окончательно ........ на главной странице шаблона используйте:

<umbraco:Item field="bodyContent" runat="server"></umbraco:Item> 

вместо чего-то вроде

@Model.bodyContent

Так что макрос (тотдобавленный через RTE) сам по себе не добавляется другим макросом (в данном случае тем, в котором отображается поле «bodyContent»).

5 голосов
/ 07 сентября 2011

Если, как объяснено в первоначальном вопросе, то, что вы видите в своем HTML-файле, выглядит как

<?UMBRACO_MACRO macroAlias="macroNameHere" />

... и вы не видите ничего визуализированного.Тогда это решение для вас:

Внутри XSLT (макроса), который обрабатывает ваш тип документа, у вас может быть что-то вроде этого:

<xsl:value-of select="$currentPage/bodyText" />

Измените его на:

<xsl:value-of select="umbraco.library:Item($currentPage/@id,'bodyText')" />

Это сделает макрос, содержащийся в вашем bodyText.

Обратите внимание, что umbraco создаст DIV вокруг вывода макроса.Чтобы избавиться от этого DIV, вам нужно либо изменить исходный код umbraco, либо выполнить, например, поиск и замену jQuery, чтобы избавиться от него.

1 голос
/ 03 мая 2011

Ваш пользовательский контроль, вероятно, требует <form runat="server">

Попробуйте вместо этого вставить его в шаблон - это создало для меня ошибку сервера, и я обнаружил проблему!

Примерно так:

<form runat="server">
                      <asp:ContentPlaceHolder ID="mainContent" runat="server" />
</form>

Где Вы помещаете свой пользовательский контроль в заполнитель.

0 голосов
/ 02 июня 2013

Для использования макроса в Richtext

необходимо установить флажок «Использовать в редакторе» на вкладке «Свойства макроса».

enter image description here

И в XSLT при печати значения макроса для вывода значения макроса используется следующее

<xsl:value-of select="umbraco.library:Item(@id,'bodyContent')" /> 

.

Вместо

<xsl:value-of select="bodyContent" /> 
...