<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Вывод название категории статей]]></title>
	<link rel="self" href="http://forum.readyscript.ru/feed/atom/topic/437/" />
	<updated>2016-04-15T08:18:09Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.readyscript.ru/topic/437/vyvod-nazvanie-kategorii-statei/</id>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3049/#p3049" />
			<content type="html"><![CDATA[<p>Конечный вариант:</p><p>Может кому-то будет нужно:</p><div class="codebox"><pre><code>{$route_id=$router-&gt;getCurrentRoute()-&gt;getId()}
{if $route_id==&quot;catalog-front-product&quot;}
[b]
{* Здесь то, что нужно вывести на странице товара *}[/b]
{$product=$router-&gt;getCurrentRoute()-&gt;product}
{var_dump($product)}

{elseif $route_id==&quot;catalog-front-listproducts&quot;}

[b]{* Здесь то, что нужно вывести на странице категории *}[/b]
{$category_alias=$this_controller-&gt;request(&#039;category&#039;,&#039;string&#039;)} 
{static_call var=category callback=[&#039;\Catalog\Model\Orm\Dir&#039;, &#039;loadByWhere&#039;] params=[[&#039;alias&#039;=&gt;$category_alias]]} 
{var_dump($category)}

{else}
[b]
{* Здесь то, что нужно вывести на других страницах *}[/b]
&lt;p&gt;Это не страница товара или каталога&lt;/p&gt;

{/if}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>http://forum.readyscript.ru/user/299/</uri>
			</author>
			<updated>2016-04-15T08:18:09Z</updated>
			<id>http://forum.readyscript.ru/post/3049/#p3049</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3046/#p3046" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>{$category=$router-&gt;getCurrentRoute()-&gt;category}<br />{$category=$router-&gt;getCurrentRoute()-&gt;listproducts}<br />{$category=$router-&gt;getCurrentRoute()-&gt;catalog}</p></blockquote></div><p>Так у Вас ничего не получится, т.к. во фронт контроллере категории товара этот объект не записывается в объект текущего маршрута, я поэтому ничего и не писал по этому поводу.<br />Надобности в записи объекта этого не было поэтому, мы его и не добавляли.</p><p><strong>{$category}</strong> должен быть доступен т.к. поскольку первым отрабатывае фронт контроллер который рендерит результат, а уже потом к &quot;Середине&quot; оборачивается внешняя оболочка. И в шаблоны внешние также уходят переменные из фронт конроллера и там же доступны. У Вас не получилось видимо потому, что в каком-то блок контроллере видимо <strong>$category</strong> переназначается. Тогда можно сделать так:<br /></p><div class="codebox"><pre><code>{$category_alias=$this_controller-&gt;request(&#039;category&#039;,&#039;string&#039;)} {* Получает alias категории из запроса *}
{static_call var=category callback=[&#039;\Catalog\Model\Orm\Dir&#039;, &#039;loadByWhere&#039;] params=[[&#039;alias&#039;=&gt;$category_alias]]} {* Подгрузим категории *}
{var_dump($category)}</code></pre></div><p>Я думаю должно получиться.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-04-15T07:46:50Z</updated>
			<id>http://forum.readyscript.ru/post/3046/#p3046</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3045/#p3045" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Андрей пишет:</cite><blockquote><p>Теперь... Объект товара содержится в самом роутере <br /></p><div class="codebox"><pre><code>{$product=$router-&gt;getCurrentRoute()-&gt;product}</code></pre></div><p>СПАСИБО! Вот этих строчек мне не хватало, не нашёл в документации</p></blockquote></div><p>Этого в документации нет и не будет, т.к. это результат отработки фронт контроллера /modules/catalog/controller/front/product.inc.php (страница товара). Там в объект текущего маршрута заносится сам объект товара. Вот через эту строчку:<br /></p><div class="codebox"><pre><code>$this-&gt;router-&gt;getCurrentRoute()-&gt;product = $item; //Прикрепляем к маршруту загруженный объект товара</code></pre></div><p>А <strong>$this-&gt;router</strong> доступен уже во всех шаблонах в качестве переменной <strong>$router</strong></p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-04-15T07:37:29Z</updated>
			<id>http://forum.readyscript.ru/post/3045/#p3045</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3042/#p3042" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А категорию можно получить так:<br /></p><div class="codebox"><pre><code>{$category}</code></pre></div></blockquote></div><p>Можно подробнее<br />Откуда возьмутся данные в переменной $category</p><p>Пробовал так:<br /></p><div class="codebox"><pre><code>{$category=$router-&gt;getCurrentRoute()-&gt;category}
{$category=$router-&gt;getCurrentRoute()-&gt;listproducts}
{$category=$router-&gt;getCurrentRoute()-&gt;catalog}</code></pre></div><p>Каждый раз </p><div class="codebox"><pre><code>{$category|print_r}</code></pre></div><p>Выводит </p><div class="codebox"><pre><code>1</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>http://forum.readyscript.ru/user/299/</uri>
			</author>
			<updated>2016-04-15T05:36:09Z</updated>
			<id>http://forum.readyscript.ru/post/3042/#p3042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3041/#p3041" />
			<content type="html"><![CDATA[<p>Теперь... Объект товара содержится в самом роутере <br /></p><div class="codebox"><pre><code>{$product=$router-&gt;getCurrentRoute()-&gt;product}</code></pre></div><p>СПАСИБО! Вот этих строчек мне не хватало, не нашёл в документации</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>http://forum.readyscript.ru/user/299/</uri>
			</author>
			<updated>2016-04-15T03:59:54Z</updated>
			<id>http://forum.readyscript.ru/post/3041/#p3041</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3038/#p3038" />
			<content type="html"><![CDATA[<p>Ну в шаблоне доступен объект роутера, и у каждого типа страницы, есть свой&nbsp; идентификатор маршрута. Вы можете посмотреть маршруты в <br /><strong>/modules/catalog/config/handlers.inc.php</strong> в методе <strong>getRoute</strong></p><p>У категории это <strong>catalog-front-listproducts</strong><br />У товара это <strong>catalog-front-product</strong></p><p>Соответственно в шаблоне мы можем проверить:<br /></p><div class="codebox"><pre><code>{$route_id=$router-&gt;getCurrentRoute()-&gt;getId()}
{if $route_id==&quot;catalog-front-product&quot;}
    //Мы на странице товара
{/if}</code></pre></div><p>Аналогично с каталогом.<br />Теперь... Объект товара содержится в самом роутере <br /></p><div class="codebox"><pre><code>{$product=$router-&gt;getCurrentRoute()-&gt;product}</code></pre></div><p>А категорию можно получить так:<br /></p><div class="codebox"><pre><code>{$category}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-04-14T13:13:28Z</updated>
			<id>http://forum.readyscript.ru/post/3038/#p3038</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3021/#p3021" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><div class="quotebox"><cite>Андрей пишет:</cite><blockquote><div class="quotebox"><cite>Александр пишет:</cite><blockquote><p>Всё просто:) Обращение к полям, как к массиву.<br /></p><div class="codebox"><pre><code>{$dir.title}</code></pre></div></blockquote></div><p>Подскажите как получить значение &quot;Заголовка категории&quot; в блоке, который не имеет соответствующей переменной?</p></blockquote></div><p>Что это за блок и на какой странице?</p></blockquote></div><p>Предположим хочу вывести в блоке<br /><strong>/moduleview/main/blocks/logo/logo.tpl (Тема: Молодёжная)</strong><br />Имя текущей категории товаров (<strong>для страниц каталога</strong>) или название товара (<strong>для страницы товара</strong>)<br />Сейчас реализовали то, что должно получиться, но как говорится КОСТЫЛЁМ (см. исходник страницы)<br /><a href="http://55opt.org/catalog/suvenirnaya-produkciya/">http://55opt.org/catalog/suvenirnaya-produkciya/</a><br /><a href="http://55opt.org/product/arlayn-golovka-lotosa-plastikovaya-48125/">http://55opt.org/product/arlayn-golovka … aya-48125/</a><br />А хотелось бы по нормальному вывести.</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>http://forum.readyscript.ru/user/299/</uri>
			</author>
			<updated>2016-04-12T08:39:56Z</updated>
			<id>http://forum.readyscript.ru/post/3021/#p3021</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3018/#p3018" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Андрей пишет:</cite><blockquote><div class="quotebox"><cite>Александр пишет:</cite><blockquote><p>Всё просто:) Обращение к полям, как к массиву.<br /></p><div class="codebox"><pre><code>{$dir.title}</code></pre></div></blockquote></div><p>Подскажите как получить значение &quot;Заголовка категории&quot; в блоке, который не имеет соответствующей переменной?</p></blockquote></div><p>Что это за блок и на какой странице?</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-04-12T07:29:41Z</updated>
			<id>http://forum.readyscript.ru/post/3018/#p3018</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/3015/#p3015" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр пишет:</cite><blockquote><p>Всё просто:) Обращение к полям, как к массиву.<br /></p><div class="codebox"><pre><code>{$dir.title}</code></pre></div></blockquote></div><p>Подскажите как получить значение &quot;Заголовка категории&quot; в блоке, который не имеет соответствующей переменной?</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>http://forum.readyscript.ru/user/299/</uri>
			</author>
			<updated>2016-04-12T06:37:26Z</updated>
			<id>http://forum.readyscript.ru/post/3015/#p3015</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1721/#p1721" />
			<content type="html"><![CDATA[<p>Вот блин на 16 секунд быстрее)</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-08-17T12:37:50Z</updated>
			<id>http://forum.readyscript.ru/post/1721/#p1721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1720/#p1720" />
			<content type="html"><![CDATA[<p>Всё просто:) Обращение к полям, как к массиву.<br /></p><div class="codebox"><pre><code>{$dir.title}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-08-17T12:36:30Z</updated>
			<id>http://forum.readyscript.ru/post/1720/#p1720</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1719/#p1719" />
			<content type="html"><![CDATA[<p>БИНГО!</p><div class="codebox"><pre><code>&lt;h1 class=&quot;newsTitle&quot;&gt;{$dir.title}&lt;/h1&gt;</code></pre></div><p>Спасибо за подсказки)</p>]]></content>
			<author>
				<name><![CDATA[Николай]]></name>
				<uri>http://forum.readyscript.ru/user/192/</uri>
			</author>
			<updated>2015-08-17T12:36:14Z</updated>
			<id>http://forum.readyscript.ru/post/1719/#p1719</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1717/#p1717" />
			<content type="html"><![CDATA[<p>В переменной такой массив <br /></p><div class="codebox"><pre><code>OBJECT(ARTICLE\MODEL\ORM\CATEGORY)#313 (3) {
  [&quot;_VALUES&quot;:PROTECTED]=&gt;
  ARRAY(11) {
    [&quot;ID&quot;]=&gt;
    STRING(1) &quot;3&quot;
    [&quot;SITE_ID&quot;]=&gt;
    STRING(1) &quot;1&quot;
    [&quot;TITLE&quot;]=&gt;
    STRING(12) &quot;СТАТЬИ&quot;
    [&quot;ALIAS&quot;]=&gt;
    STRING(7) &quot;ARTICLE&quot;
    [&quot;PARENT&quot;]=&gt;
    STRING(1) &quot;0&quot;
    [&quot;PUBLIC&quot;]=&gt;
    STRING(1) &quot;1&quot;
    [&quot;SORTN&quot;]=&gt;
    STRING(1) &quot;3&quot;
    [&quot;USE_IN_SITEMAP&quot;]=&gt;
    STRING(1) &quot;0&quot;
    [&quot;META_TITLE&quot;]=&gt;
    STRING(0) &quot;&quot;
    [&quot;META_KEYWORDS&quot;]=&gt;
    STRING(0) &quot;&quot;
    [&quot;META_DESCRIPTION&quot;]=&gt;
    STRING(0) &quot;&quot;
  }
  [&quot;_SELF_CLASS&quot;:PROTECTED]=&gt;
  STRING(26) &quot;ARTICLE\MODEL\ORM\CATEGORY&quot;
  [&quot;_LOCAL_ID&quot;:PROTECTED]=&gt;
  INT(35)
}</code></pre></div><p>Вот не могу доехать, как с него вытащить ключ &quot;TITLE&quot;</p>]]></content>
			<author>
				<name><![CDATA[Николай]]></name>
				<uri>http://forum.readyscript.ru/user/192/</uri>
			</author>
			<updated>2015-08-17T12:31:52Z</updated>
			<id>http://forum.readyscript.ru/post/1717/#p1717</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1709/#p1709" />
			<content type="html"><![CDATA[<p>За вывод статей на странице с постраничной навигацией отвечает front контроллер <strong>\Article\Front\PreviewList</strong>, который соответственно находится в <strong>/modules/article/controller/front/previewlist.inc.php</strong>. В самом низу данного файла, если его открыть идёт передача переменных в шаблон. Начиная с <strong>$this-&gt;view-&gt;assign</strong><br />И там как раз видно, что за текущую категорию отвечает переменная <strong>$dir</strong>, которая и означает текущую категорию.</p><p>А дальше просто посмотрим, что в ней в шаблоне:<br /></p><div class="codebox"><pre><code>&lt;pre&gt;
{var_dump($dir)}
&lt;/pre&gt;</code></pre></div><br /><div class="quotebox"><blockquote><p>И на данный момент в адресной строке страница вывода статей выглядит так сайт.ру/text-article/ и сайт.ру/text-news. Можно ли привести аддрес к виду сайт.ру/article сайт.ру/news</p></blockquote></div><p>Нет. Дело в том, что в система строится на маршрутах (масках адреса url), которые конкретно говорят ей, что нужно обрабатывать соответствующий фронт контроллер. Ваш адрес красивый, но не однозначный, что касается сео, то изменений с нашим или Вашим адресом вы не почувствуйте. Поисковики нормально кушают их. Маршруты в системе задаются в папках конфига каждого модуля, в файле <strong>handlers.inc.php</strong>, метод <strong>getRoute</strong>.<br />Маршрут можно конечно и перегрузить своим именно для Вашего случая, но всё станет намного хуже в плане обработки и дальнейшей поддержки.<br />Подробнее о маршрутах у нас в <a href="http://readyscript.ru/dev-manual/dev_routing.html">документации</a>.</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-08-17T07:13:32Z</updated>
			<id>http://forum.readyscript.ru/post/1709/#p1709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Вывод название категории статей]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/1703/#p1703" />
			<content type="html"><![CDATA[<p>При добавлении на сайте нескольких категорий статей (Новости, статьи, акции), при выводе списка всех статей в заголовке выводится &quot;Новости&quot; даже для статей и акций.</p><p>Прописано это в файле preview_list.tpl</p><div class="codebox"><pre><code>&lt;div class=&quot;newsPage&quot;&gt;

    &lt;h1 class=&quot;newsTitle&quot;&gt;Новости&lt;/h1&gt;

    &lt;ul class=&quot;news&quot;&gt;
        {foreach $list as $item}</code></pre></div><p>Какой переменной выводить в заголовки название именно той категории, которая подгружается?</p><p>И на данный момент в адресной строке страница вывода статей выглядит так сайт.ру/text-article/ и сайт.ру/text-news. Можно ли привести аддрес к виду сайт.ру/article сайт.ру/news</p>]]></content>
			<author>
				<name><![CDATA[Николай]]></name>
				<uri>http://forum.readyscript.ru/user/192/</uri>
			</author>
			<updated>2015-08-15T00:41:12Z</updated>
			<id>http://forum.readyscript.ru/post/1703/#p1703</id>
		</entry>
</feed>
