<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Движок сайтов S2 — Как сделать новости на главной?]]></title>
	<link rel="self" href="https://s2cms.ru/forum/feed/atom/topic/124/"/>
	<updated>2012-10-11T07:39:01Z</updated>
	<generator>PunBB</generator>
	<id>https://s2cms.ru/forum/topic/124/</id>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/609/#p609"/>
			<content type="html"><![CDATA[<p>Так не охота другую cms искать только из-за новостей.</p><p>Возможно, я идентификатор ключевого слова не могу правильный подобрать. Как посмотреть какой id у какого тега?</p><p>На мой взгляд, по названию, было бы удобнее чем по id указывать тег, или чтоб вообще по-умолчанию этот тег «новости» назывался.</p>]]></content>
			<author>
				<name><![CDATA[@GlebVelikanov]]></name>
				<uri>https://s2cms.ru/forum/user/68/</uri>
			</author>
			<updated>2012-10-11T07:39:01Z</updated>
			<id>https://s2cms.ru/forum/post/609/#p609</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/608/#p608"/>
			<content type="html"><![CDATA[<p>Можете сделать аккаунт для меня и прислать логин и пароль по почте или в личных сообщениях? Я сам попробую разобраться.</p>]]></content>
			<author>
				<name><![CDATA[Роман]]></name>
				<uri>https://s2cms.ru/forum/user/2/</uri>
			</author>
			<updated>2012-10-11T06:48:28Z</updated>
			<id>https://s2cms.ru/forum/post/608/#p608</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/607/#p607"/>
			<content type="html"><![CDATA[<p>Ни ошибок, ни работы — никаких симптомов не вижу. Про лог ошибок веб-сервера, не слышал.</p><p>Метка точно правильно. Удалял, устанавливал заново — не помогает.</p>]]></content>
			<author>
				<name><![CDATA[@GlebVelikanov]]></name>
				<uri>https://s2cms.ru/forum/user/68/</uri>
			</author>
			<updated>2012-10-11T06:30:04Z</updated>
			<id>https://s2cms.ru/forum/post/607/#p607</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/606/#p606"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Роман]]></name>
				<uri>https://s2cms.ru/forum/user/2/</uri>
			</author>
			<updated>2012-10-09T07:50:18Z</updated>
			<id>https://s2cms.ru/forum/post/606/#p606</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/605/#p605"/>
			<content type="html"><![CDATA[<p>Круто, но что-то не работает.</p>]]></content>
			<author>
				<name><![CDATA[@GlebVelikanov]]></name>
				<uri>https://s2cms.ru/forum/user/68/</uri>
			</author>
			<updated>2012-10-09T03:03:25Z</updated>
			<id>https://s2cms.ru/forum/post/605/#p605</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/604/#p604"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Роман]]></name>
				<uri>https://s2cms.ru/forum/user/2/</uri>
			</author>
			<updated>2012-10-08T15:44:03Z</updated>
			<id>https://s2cms.ru/forum/post/604/#p604</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/603/#p603"/>
			<content type="html"><![CDATA[<p>Я бы и сам лучше апишку Твиттера туда засунул, но заказчик требует. </p><p>Было бы здоровою, такой код увидеть.</p>]]></content>
			<author>
				<name><![CDATA[@GlebVelikanov]]></name>
				<uri>https://s2cms.ru/forum/user/68/</uri>
			</author>
			<updated>2012-10-08T03:51:41Z</updated>
			<id>https://s2cms.ru/forum/post/603/#p603</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/602/#p602"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Роман]]></name>
				<uri>https://s2cms.ru/forum/user/2/</uri>
			</author>
			<updated>2012-10-07T16:01:26Z</updated>
			<id>https://s2cms.ru/forum/post/602/#p602</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Как сделать новости на главной?]]></title>
			<link rel="alternate" href="https://s2cms.ru/forum/post/601/#p601"/>
			<content type="html"><![CDATA[<p>Как лучше реализовать «новости» на главной сайта?</p><p>Пробовал сделать чтобы на главной отображались последние 3-5 постов из блога по тегу «Новости», но тоже не разобрался как.</p>]]></content>
			<author>
				<name><![CDATA[@GlebVelikanov]]></name>
				<uri>https://s2cms.ru/forum/user/68/</uri>
			</author>
			<updated>2012-10-07T08:17:15Z</updated>
			<id>https://s2cms.ru/forum/post/601/#p601</id>
		</entry>
</feed>
