Новости на всех страницах сайта

16 views
Skip to first unread message

Supme

unread,
Oct 22, 2009, 3:05:12 AM10/22/09
to Energine content management framework
Вобчем делаю новый шаблон (test.ufsin.ru для наглядности)
Хочется в правой колонке выводить новости везде, влепил их в
energine.xslt, а они показываются там только когда заходим в раздел
новостей. Куда что влепить чтоб всегда показывалось?

Pavel Dubenko

unread,
Oct 22, 2009, 4:06:14 AM10/22/09
to ener...@googlegroups.com
Нужно добавить компонент новостей в лэйаут
читай мануалы здесь

http://groups.google.com/group/energine/web?hl=ru


2009/10/22 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 22, 2009, 4:37:34 AM10/22/09
to Energine content management framework
Мануалы вроде просты, но все так сложно...

вобчем скопировал default.layout.xml в site/templates/layout/
добавил в него строчку
<component name="newsFeed" module="share" class="NewsFeed"></
component>
не помогает. запустил линкер (кстати в последней версии в сетапе нет
сцылочки на ниго) не помогло
добавил эту строчку в дефаулт аж в самый дефаултовый дефаулт который в
templates/layout/ ни помогло...

Pavel Dubenko

unread,
Oct 22, 2009, 4:53:12 AM10/22/09
to ener...@googlegroups.com
2009/10/22 Supme <su...@ngs.ru>:

> Мануалы вроде просты, но все так сложно...
>
> вобчем скопировал default.layout.xml в site/templates/layout/
> добавил в него строчку
>        <component name="newsFeed" module="share" class="NewsFeed"></
> component>
> не помогает. запустил линкер (кстати в последней версии в сетапе нет
> сцылочки на ниго) не помогло
> добавил эту строчку в дефаулт аж в самый дефаултовый дефаулт который в
> templates/layout/ ни помогло...
Вот это - зря :)

из всего сказанного можно сделать вывод
что либо страница сформирована не по дефолтному лейауту(проверить
можно в дебаг режиме узел layout аттрибут file)
и соответственно ничего не выводится
либо в xml все попадает но ты его неправильно в xslt выводишь
(проверить опять таки в дебаг режиме поискать компонент с именем newsFeed)

насчет сетапа - посмотрю - мне кажется что то ты путаешь

> On 22 окт, 12:06, Pavel Dubenko <d.pa...@gmail.com> wrote:
>> Нужно добавить компонент новостей в лэйаут
>> читай мануалы здесь
>>
>> http://groups.google.com/group/energine/web?hl=ru
>>
>> 2009/10/22 Supme <su...@ngs.ru>:
>>
>> > Вобчем делаю новый шаблон (test.ufsin.ru для наглядности)
>> > Хочется в правой колонке выводить новости везде, влепил их в
>> > energine.xslt, а они показываются там только когда заходим в раздел
>> > новостей. Куда что влепить чтоб всегда показывалось?
>>
>> --
>> Pavka, web-developer
> >
>

--
Pavka, web-developer

Pavel Dubenko

unread,
Oct 22, 2009, 4:54:33 AM10/22/09
to ener...@googlegroups.com
в сетапе - линкер на месте

2009/10/22 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 22, 2009, 5:37:43 AM10/22/09
to Energine content management framework
Сори, ссылка на линкер есть... это чет я. Ну да ладно в адресной
строке набирал.


В xml все попадает, дефолтный лейаут есть и ньюсфид есть.

в xslt строчки

<div id="right">
<!-- <xsl:apply-templates select="$COMPONENTS
[@class='LangSwitcher']" /> -->
<xsl:apply-templates select="$COMPONENTS[@class='NewsFeed']" />
</div>

Pavel Dubenko

unread,
Oct 22, 2009, 5:55:24 AM10/22/09
to ener...@googlegroups.com
ААА
так чувак
ты ж посмотри
у тебя новостной recordset то пустой
выводить на первой странице - нечего

долго обяснять почему так
просто в лейаут внутрь описания компонента нужно добавить параметр

<component ....>
<params>
<param name="id">327</param>
</params>
</component>

подумай - почему так :))


2009/10/22 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 22, 2009, 8:15:17 AM10/22/09
to Energine content management framework
О... Огромное спасиба!
Примерно догадался почему так, но вопрос в догонку, а как сам
догадался что айди 327 оножеш в базе вроде как, или гдето еще пишется
в дебуге?

> Pavka, web-developer- Скрыть цитируемый текст -
>
> - Показать цитируемый текст -

Supme

unread,
Oct 22, 2009, 8:24:42 AM10/22/09
to Energine content management framework
И теперича новости не редактируются...

Supme

unread,
Oct 22, 2009, 8:31:05 AM10/22/09
to Energine content management framework
Точнее редактируются, но только на странице новостей и дублем внизу...

On 22 окт, 16:24, Supme <su...@ngs.ru> wrote:
> И теперича новости не редактируются...

Pavel Dubenko

unread,
Oct 22, 2009, 8:41:32 AM10/22/09
to ener...@googlegroups.com
в дебаг режиме
document/properties/property@name='ID'

2009/10/22 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 23, 2009, 4:36:03 AM10/23/09
to Energine content management framework
Как сделать чтобы новости, которые на всех страницах, редактировались?

Pavel Dubenko

unread,
Oct 23, 2009, 5:03:02 AM10/23/09
to ener...@googlegroups.com
Нужно добавить компонент NewsEditor на страницу новостей

пример того как это сделать можно посмотреть в news.content.xml

2009/10/23 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 23, 2009, 6:17:05 AM10/23/09
to Energine content management framework
вставил в default.layout.xml так:

<?xml version="1.0" encoding="UTF-8"?>
<page>


<component name="newsFeed" module="share" class="NewsFeed">

<params>
<param name="id">327</param>
</params>
</component>

<component name="newsEditor" module="share" class="NewsEditor">
<params>
<param name="rights">1</param>
<param name="linkTo">news</param>
</params>
</component>

<component name="langSwitcher" module="share" class="LangSwitcher"></
component>
<component name="menu" module="share" class="MainMenu"></component>
<component name="loginForm" module="user" class="LoginForm" />
<component name="FooterTextBlock" module="share" class="TextBlock">
<params>
<param name="num">FooterTextBlock</param>
</params>
</component>
</page>


пишет
Fatal error: Call to a member function getFilter() on a non-object in /
home/ufsinru/test/core/modules/share/components/FeedEditor.class.php
on line 108

Pavel Dubenko

unread,
Oct 23, 2009, 6:20:33 AM10/23/09
to ener...@googlegroups.com
стоп
суть в другом

есть страница новостей - на ней новости редактируются

новости выводящиеся на всех остальных страницах будут просто выводиться
поэтому нет никакого смысла вставлять редактор в лейаут


2009/10/23 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 23, 2009, 6:47:00 AM10/23/09
to Energine content management framework
Ладно, тогда как сделать чтоб на странице новостей эти новости,
которые выводятся у меня в правой колонке на всех страницах сайта, на
странице новостей не дублировались три раза и редактировался этот
третий раз, а тот один единственный?
Сумбурненько спросил...

Pavel Dubenko

unread,
Oct 23, 2009, 7:06:30 AM10/23/09
to ener...@googlegroups.com
Ничего не понял

но догадываюсь
что ты хочешь спросить

все очень просто на самом деле
у тебя есть лейаут в котором есть компонент для вывода новостей
если тебе нужно выводить только несколько последних используй параметр limit

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

а дублирование у тебя происходит по той простой причине что ты
вызываешь кмпонент новостей принудительно через
$COMPONENTS[@class='newsFeed']
а под это условие попадает и компонент новостей находящийся в
контентной части сайта

для того чтоб этого избежать мы обычно вызываем лейаутные компоненты
по имени $COMPONENTS[@name='имя компонента']
самом собой что имя компонента в лейауте в таком случае должно
отличаться от имени компонента в контенте

2009/10/23 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Supme

unread,
Oct 23, 2009, 7:25:21 AM10/23/09
to Energine content management framework
О! да да да... это мы и хотели спросить :)

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

Pavel Dubenko

unread,
Oct 23, 2009, 7:27:51 AM10/23/09
to ener...@googlegroups.com
это баг на самом деле
в СВН версии он исправлен

а вообще
нужно просто убрать в feed.xslt констуркцию свитча проверющего на
наличие аттрибута has_text
сейчас все по другому принципу работает


2009/10/23 Supme <su...@ngs.ru>:

--
Pavka, web-developer

Alexei Zharinov

unread,
Jan 26, 2012, 5:19:07 PM1/26/12
to ener...@googlegroups.com
Хотелось бы продолжить тему. Спасибо кстати за неё, всё сразу стало понятно.))
в feed.xslt у меня сейчас такая конструкция, которая выводит заголовок новости со ссылкой на фуллтекст:

<a href="{$BASE}{$LANG_ABBR}{../../@template}{translate(field[@name='news_date'], '/', '-')}/"><xsl:value-of select="field[@name='news_title']"/></a>

Но когда новость выводится в правой колонке на каждой странице (у меня в левой, но не суть), то {$BASE} равен адресу текущей страницы. А надо, чтобы был равен /news/. Для этого я модифицировал строчку, сделав условие:

<xsl:choose>
<xsl:when test="$DOC_PROPS[@name='ID'] = 327"> <a href="{$BASE}{$LANG_ABBR}{../../@template}{translate(field[@name='news_date'], '/', '-')}/">
<xsl:value-of select="field[@name='news_title']"/></a> </xsl:when> <xsl:otherwise> <xsl:value-of select="{Здесь видимо нужно вставить выражение XPath, которое находит в MainMenu поле field, содержащее путь к странице новостей. Или каким-то другим образом извлечь путь к странице новостей? Вопрос - как это сделать?}"/>
</xsl:otherwise> </xsl:choose>

Собственно, вопрос находится в листинге выше ))
Message has been deleted

Alexei Zharinov

unread,
Jan 27, 2012, 5:11:52 AM1/27/12
to ener...@googlegroups.com
У меня еще вопрос. Не стоит же редактировать feed.xslt в ядре, да? Я сделал кастомный, поместил в /site/transformers/feed.xslt потом линкер запустил, но не работает. В чем может быть причина?

Pavel Dubenko

unread,
Feb 10, 2012, 4:54:49 AM2/10/12
to ener...@googlegroups.com
2012/1/27 Alexei Zharinov <azha...@gmail.com>:

> У меня еще вопрос. Не стоит же редактировать feed.xslt в ядре, да?

Верно


>Я сделал
> кастомный, поместил в /site/transformers/feed.xslt потом линкер запустил, но
> не работает. В чем может быть причина?

В том что не подключили его в site/transformers/include.xslt

> --
> Вы получили это сообщение, поскольку подписаны на группу Energine content
> management framework.
> Просмотреть это обсуждение в Сети можно по адресу
> https://groups.google.com/d/msg/energine/-/jTOyUIfWw2sJ.
>
> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> ener...@googlegroups.com.
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> energine+u...@googlegroups.com.
> О дополнительных функциях можно узнать в группе по адресу
> http://groups.google.com/group/energine?hl=ru.

--
Pavel Dubenko, web-developer

Reply all
Reply to author
Forward
0 new messages