<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Движок сайтов S2 — Как сделать новости на главной?]]></title>
		<link>https://s2cms.ru/forum/topic/124/</link>
		<description><![CDATA[Недавние сообщения в теме «Как сделать новости на главной?».]]></description>
		<lastBuildDate>Thu, 11 Oct 2012 07:39:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/609/#p609</link>
			<description><![CDATA[<p>Так не охота другую cms искать только из-за новостей.</p><p>Возможно, я идентификатор ключевого слова не могу правильный подобрать. Как посмотреть какой id у какого тега?</p><p>На мой взгляд, по названию, было бы удобнее чем по id указывать тег, или чтоб вообще по-умолчанию этот тег «новости» назывался.</p>]]></description>
			<author><![CDATA[null@example.com (@GlebVelikanov)]]></author>
			<pubDate>Thu, 11 Oct 2012 07:39:01 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/609/#p609</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/608/#p608</link>
			<description><![CDATA[<p>Можете сделать аккаунт для меня и прислать логин и пароль по почте или в личных сообщениях? Я сам попробую разобраться.</p>]]></description>
			<author><![CDATA[null@example.com (Роман)]]></author>
			<pubDate>Thu, 11 Oct 2012 06:48:28 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/608/#p608</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/607/#p607</link>
			<description><![CDATA[<p>Ни ошибок, ни работы — никаких симптомов не вижу. Про лог ошибок веб-сервера, не слышал.</p><p>Метка точно правильно. Удалял, устанавливал заново — не помогает.</p>]]></description>
			<author><![CDATA[null@example.com (@GlebVelikanov)]]></author>
			<pubDate>Thu, 11 Oct 2012 06:30:04 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/607/#p607</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/606/#p606</link>
			<description><![CDATA[<p>Вы хоть симптомы напишите, я же не обладаю телепатическими способностями :)</p><p>Есть какие-нибудь сообщения об ошибках (возможно, в логе ошибок веб-сервера)?</p><p>Точно метка в шаблонах написана именно так, без лишних пробелов?<br /></p><div class="codebox"><pre><code>&lt;!-- s2_blog_news --&gt;</code></pre></div><p>Очевидно, если хотите новости на главной, нужно эту метку добавить в шаблон mainpage.php.</p><p>Посмотрите последний абзац про отладку: <a href="http://s2cms.ru/docs/extensions">http://s2cms.ru/docs/extensions</a><br />Вы удаляли и заново устанавливали это расширение s2_blog_news после изменений в манифесте?</p>]]></description>
			<author><![CDATA[null@example.com (Роман)]]></author>
			<pubDate>Tue, 09 Oct 2012 07:50:18 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/606/#p606</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/605/#p605</link>
			<description><![CDATA[<p>Круто, но что-то не работает.</p>]]></description>
			<author><![CDATA[null@example.com (@GlebVelikanov)]]></author>
			<pubDate>Tue, 09 Oct 2012 03:03:25 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/605/#p605</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/604/#p604</link>
			<description><![CDATA[<p>Сначала вам нужно взять самую свежую версию расширения s2_blog (я там один запрос подправил): <a href="http://s2cms.ru/downloads/development/extensions/">http://s2cms.ru/downloads/development/extensions/</a></p><p>Я сделал расширение из одного манифеста, которое добавляет метку &lt;!-- s2_blog_news --&gt;. Поместите ее в шаблоны. Вам осталось подобрать правильный идентификатор ключевого слова (в строчке &#039; AND pt.tag_id = 1&#039;) и количество последних постов в вызове s2_blog_news_last(5).</p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!DOCTYPE extension SYSTEM &quot;ext-1.0.dtd&quot;&gt;
&lt;!--
/**
 * Blog News
 *
 * @copyright (C) 2012 Roman Parpalak
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package s2_blog_news
 */
--&gt;

&lt;extension for=&quot;S2&quot; engine=&quot;1.0&quot;&gt;
    &lt;id&gt;s2_blog_news&lt;/id&gt;
    &lt;title&gt;Blog news&lt;/title&gt;
    &lt;version&gt;1.0a&lt;/version&gt;
    &lt;description&gt;Adds a placeholder for blog posts with a tag specified.&lt;/description&gt;
    &lt;author&gt;Roman Parpalak&lt;/author&gt;

    &lt;minversion&gt;1.0b3&lt;/minversion&gt;
    &lt;maxtestedon&gt;1.0b3&lt;/maxtestedon&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;s2_blog&lt;/dependency&gt;
    &lt;/dependencies&gt;

    &lt;hooks&gt;
        &lt;hook id=&quot;fn_s2_blog_last_posts_array_pre_get_ids_qr&quot;&gt;&lt;![CDATA[
if (isset($GLOBALS[&#039;s2_blog_news_enabled&#039;]) &amp;&amp; $GLOBALS[&#039;s2_blog_news_enabled&#039;])
{
    $query[&#039;WHERE&#039;] .= &#039; AND pt.tag_id = 1&#039;;
    $query[&#039;JOINS&#039;] =  array(
        array(
            &#039;INNER JOIN&#039;    =&gt; &#039;s2_blog_post_tag AS pt&#039;,
            &#039;ON&#039;            =&gt; &#039;pt.post_id = p.id&#039;
        )
    );
}
        ]]&gt;&lt;/hook&gt;

        &lt;hook id=&quot;idx_pre_get_queries&quot;&gt;&lt;![CDATA[
if (strpos($template, &#039;&lt;!-- s2_blog_news --&gt;&#039;) !== false)
{
    if (!defined(&#039;S2_BLOG_FUNCTIONS_LOADED&#039;))
        include $ext_info[&#039;path&#039;].&#039;/../s2_blog/blog_functions.php&#039;;

    function s2_blog_news_last ($num_post)
    {
        $posts = s2_blog_last_posts_array($num_post);
        if (!count($posts))
            return &#039;&#039;;

        $html = &#039;&lt;h2 class=&quot;preview&quot;&gt;%1$s&lt;a href=&quot;%2$s&quot;&gt;%3$s&lt;/a&gt;&lt;/h2&gt;&#039;.&quot;\n&quot;.
            &#039;&lt;div class=&quot;preview time&quot;&gt;%5$s&lt;/div&gt;&#039;.&quot;\n&quot;.
            &#039;&lt;div class=&quot;post body&quot;&gt;%6$s&lt;/div&gt;&#039;.&quot;\n&quot;;

        ($hook = s2_hook(&#039;fn_s2_blog_news_last_start&#039;)) ? eval($hook) : null;

        $output = &#039;&#039;;
        foreach ($posts as $post)
        {
            $link = S2_BLOG_PATH.date(&#039;Y/m/d/&#039;, $post[&#039;create_time&#039;]).urlencode($post[&#039;url&#039;]);
            $tag_prefix = $post[&#039;tags&#039;] ? &#039;&lt;small&gt;&#039;.str_replace(&#039;&lt;a &#039;, &#039;&lt;a class=&quot;preview_section&quot; &#039;, $post[&#039;tags&#039;]).&#039; &amp;rarr;&lt;/small&gt; &#039; : &#039;&#039;;

            ($hook = s2_hook(&#039;fn_s2_blog_last_post_pre_post_merge&#039;)) ? eval($hook) : null;

            $output .= sprintf($html,
                $tag_prefix,
                $link,
                s2_htmlencode($post[&#039;title&#039;]),
                s2_date($post[&#039;create_time&#039;]),
                s2_date_time($post[&#039;create_time&#039;]),
                $post[&#039;text&#039;]
            );
        }

        return $output;
    }

    $GLOBALS[&#039;s2_blog_news_enabled&#039;] = true;
    $replace[&#039;&lt;!-- s2_blog_news --&gt;&#039;] = s2_blog_news_last(5);
    $GLOBALS[&#039;s2_blog_news_enabled&#039;] = false;
}
        ]]&gt;&lt;/hook&gt;

    &lt;/hooks&gt;
&lt;/extension&gt;</code></pre></div><p>Этот код нужно поместить в файл _extensions/s2_blog_news/manifest.xml (в кодировке UTF-8 без метки порядка байт, BOM), потом установить это расширение.</p><p>Про разработку расширений я написал в документации: <a href="http://s2cms.ru/docs/extensions">http://s2cms.ru/docs/extensions</a></p>]]></description>
			<author><![CDATA[null@example.com (Роман)]]></author>
			<pubDate>Mon, 08 Oct 2012 15:44:03 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/604/#p604</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/603/#p603</link>
			<description><![CDATA[<p>Я бы и сам лучше апишку Твиттера туда засунул, но заказчик требует. </p><p>Было бы здоровою, такой код увидеть.</p>]]></description>
			<author><![CDATA[null@example.com (@GlebVelikanov)]]></author>
			<pubDate>Mon, 08 Oct 2012 03:51:41 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/603/#p603</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/602/#p602</link>
			<description><![CDATA[<p>Я специально не делал ничего похожего на новости, потому что это не очень хорошая практика:<br /><a href="http://www.artlebedev.ru/kovodstvo/sections/129/">http://www.artlebedev.ru/kovodstvo/sections/129/</a></p><p>Если новости всё же нужны, их лучше всего делать вручную, вдумчиво удаляя неактуальные записи (а не по принципу «выводим последние N записей»).</p><p>Для вставки последнего поста блога есть метка &lt;!-- s2_blog_last_post --&gt;. Могу сделать что-то похожее для вставки нескольких постов подряд. Специально делать метку для вывода постов с некоторым ключевым словом считаю избыточным. Тем не менее, если нужна именно такая функциональность, могу привести соответствующий код.</p>]]></description>
			<author><![CDATA[null@example.com (Роман)]]></author>
			<pubDate>Sun, 07 Oct 2012 16:01:26 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/602/#p602</guid>
		</item>
		<item>
			<title><![CDATA[Как сделать новости на главной?]]></title>
			<link>https://s2cms.ru/forum/post/601/#p601</link>
			<description><![CDATA[<p>Как лучше реализовать «новости» на главной сайта?</p><p>Пробовал сделать чтобы на главной отображались последние 3-5 постов из блога по тегу «Новости», но тоже не разобрался как.</p>]]></description>
			<author><![CDATA[null@example.com (@GlebVelikanov)]]></author>
			<pubDate>Sun, 07 Oct 2012 08:17:15 +0000</pubDate>
			<guid>https://s2cms.ru/forum/post/601/#p601</guid>
		</item>
	</channel>
</rss>
