UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: Scrobot от 20 Декабря 2011, 13:46:31

Название: Не могу отредактировать заголовок и текст на странице новостей
Отправлено: Scrobot от 20 Декабря 2011, 13:46:31
Мне нужно отредоктировать текст на этой странице http://ego-qwis.ru/news1/vnimanie_novogodnyaya_akciya/. Проблема заключается в том что этому заголовку и тектсу присвоен одни и теже классы что и в остальном контенте, то есть я поменял в таблице стилей у заголовка цвет на красный а у текста шрифт на 18 пикселей, и эти изменения затронули весь контент. Мне нужно при своить этим тегам  классы и прописать их в css. Я в первый раз сталкнулся с этим движком и не знаю где найти страницу с этим контентом. Подскажите пожалуйста хоть примерно в какой папке могут находиться файлы этой страницы
Название: Re:Не могу отредактировать заголовок и текс&#
Отправлено: Vladimir от 20 Декабря 2011, 16:52:42
Судя по адресу страница находится в разделе "новости", а судя по дате можно предположить, что она одна из последних добавленных. Т.е., если в в дереве страниц развернете раздел "Новости", то искомая будет в нижней части раскрывшегося списка.

Что касается стилей, то тут сложнее. Заголовок НЕ редактируется из визуального редактора, поэтому вы не сможете задать ему иной класс, не редактируя шаблон.
Узнать какой шаблон используется можно так: в дереве страниц клик правой кнопкой мыши на искомой странице, в контекстном меню пункт "шаблон дизайна", запомнить название.  Затем перейти в "настройки модуля" (справа вверху от дерева), найти в списке шаблонов нужный. В соседней колонке будет имя файла. В зависимости от шаблонизатора (tpl или xslt) шаблоны будут находиться в папках xsltTpls или tpls/content  (я думаю, у вас сайт был сделан до выхода 2.8.5).
Про xslt ничего не могу сказать, это лучше знает admin, а в tpl наверняка будет вызов макроса news view(), а если не будет, а будет только %content%, то, скорее всего, нужно смотреть шаблон /tpls/news/default.tpl  (папка news - потому что макрос news)
Однако, имейте в виду, что изменения в шаблоне также применятся ко всем новостям.

Вам можно  либо добавить через шаблоны данных поле, в котором можно указывать имя класса, обернуть заголовок и текст в  div, дла которго задавать class="вывод_из_вашего_поля", либо, как временное быстрое решение, class="news%pid%" . Здесь %pid% - это id редактируемой страницы. Вы можете его всегда узнать в админке подведя мышь в названию страницы и посмотрев в строку состояния - это последнее целочисленное значение.
Название: Re:Не могу отредактировать заголовок и текст на странице новостей
Отправлено: Scrobot от 20 Декабря 2011, 20:08:23
вся проблема в том что шаблон идет в расширении .xsl я нашел в таблице стилей селектор отечающий за стиль этого заголовка #main #page div.center h1, а вот где присвоить класс именно этому заголовку я найти не могу
Название: Re:Не могу отредактировать заголовок и текст на странице новостей
Отправлено: admin от 21 Декабря 2011, 20:11:06
судя по всему сайт делается на основе xslt шаблонов demodizzy (Интернет магазин современны).

Тогда, если я правильно понял что именно нужно найти в шаблонах, то вам нужно изменить 2 блока (см. прикрепленную картинку)

блок номер 1
скорее всего, формируется в файле /xsltTpls/modules/content/common.xsl блок вида
<xsl:template match="result[@pageId]" mode="header">
<h1 umi:element-id="{@pageId}" umi:field-name="h1" umi:empty="&empty-page-name;">
<xsl:value-of select="@header" />
</h1>
</xsl:template>

чтобы добавить свой уникальный стиль можно сделать так как советовал Владимир, то есть добавить класс который будет содержать id текущей страницы, в вашем случае это будет так:
<xsl:template match="result[@pageId]" mode="header">
<h1 class="myclass_{@pageId}" umi:element-id="{@pageId}" umi:field-name="h1" umi:empty="&empty-page-name;">
<xsl:value-of select="@header" />
</h1>
</xsl:template>

либо можно создать уточняющий шаблон для конкретно вашей страницы (http://ego-qwis.ru/news1/vnimanie_novogodnyaya_akciya/) вставив ниже 1 приведенного мною шаблона такой шаблон

<xsl:template match="result[@pageId and @pageId='560']" mode="header">
<h1 class="my_special_class" umi:element-id="{@pageId}" umi:field-name="h1" umi:empty="&empty-page-name;">
<xsl:value-of select="@header" />
</h1>
</xsl:template>
где 560 это id вашей страницы, можете посмотреть это в админке, как и советовал  Владимир. То есть вы создадите уточняющий шаблон для тсраницы с id =560.

блок номер 2
надо искать /xsltTpls/modules/news/news-item.xsl шаблон (в дефолтном варианте, хотя у вас он ,судя по виду, явно уже редактировался)
<xsl:template match="/result[@module = 'news'][@method = 'item']">
<div umi:element-id="{$document-page-id}" umi:field-name="content" umi:empty="&empty-page-content;">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
</div>

<xsl:apply-templates select="document('udata://news/related_links')" />

<a href="../">
<xsl:text>&news-back;</xsl:text>
</a>
<div class="social">
<div class="plusone">
<div class="g-plusone" data-size="small" data-count="true"></div>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){ jQuery.getScript('//yandex.st/share/share.js', function() {
new Ya.share({
'element': 'ya_share1',
'elementStyle':{
'type': 'button',
'linkIcon': true,
'border': false,
'quickServices': ['yaru', 'vkontakte', 'facebook', 'twitter', 'odnoklassniki', 'moimir', 'lj']
},
'popupStyle':{
'copyPasteField': true
}
});
});
});
</script>
<span id="ya_share1"></span>
</div>
</xsl:template>

тут такая же история, либо вы вставляете в нужном месте класс содержащий id текущей страницы
<xsl:template match="/result[@module = 'news'][@method = 'item']">
<div class="myclass_{$document-page-id}" umi:element-id="{$document-page-id}" umi:field-name="content" umi:empty="&empty-page-content;">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
</div>
.....
</xsl:template>

либо пониже делаете уточняющий шаблон
<xsl:template match="/result[@module = 'news' and @method = 'item' and @pageId='560']">
<div class="my_second_special_class" umi:element-id="{$document-page-id}" umi:field-name="content" umi:empty="&empty-page-content;">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
</div>
.....
</xsl:template>

вам выбирать и это конечно еще не все варианты, которые можно сделать на xslt, но самые быстрые
Название: Re:Не могу отредактировать заголовок и текст на странице новостей
Отправлено: Scrobot от 25 Декабря 2011, 16:22:09
спасибо большое! сейчас буду разбираться!