<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
		<link>http://forum.readyscript.ru/topic/376/kak-prikrutit-modul-kommentarii-k-novostyam-i-brendam/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/376/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как прикрутить модуль «Комментарии» к новостям и брендам?».]]></description>
		<lastBuildDate>Fri, 05 Jun 2015 12:21:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1455/#p1455</link>
			<description><![CDATA[<p>Не за что)</p>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Fri, 05 Jun 2015 12:21:30 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1455/#p1455</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1453/#p1453</link>
			<description><![CDATA[<p>тоже +<br />Спасибо - человеческое.</p>]]></description>
			<author><![CDATA[null@example.com (Oleg)]]></author>
			<pubDate>Fri, 05 Jun 2015 09:14:11 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1453/#p1453</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1448/#p1448</link>
			<description><![CDATA[<p>Большое спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Thu, 04 Jun 2015 15:01:07 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1448/#p1448</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1446/#p1446</link>
			<description><![CDATA[<div class="codebox"><pre><code>&lt;?php
/**
* ReadyScript (http://readyscript.ru)
*
* @copyright Copyright (c) ReadyScript lab. (http://readyscript.ru)
* @license http://readyscript.ru/licenseAgreement/
*/
namespace Shoplist\Model\CommentType;

/**
* Тип комментария - коментарий к статье
* @ingroup Article
*/
class Shop extends \Comments\Model\Abstracttype
{
    /**
    * Возвращает тип комментария
    */
    function getTitle()
    {
        return t(&#039;Комментарий к магазину&#039;);
    }
    
    /**
    * Возвращает ссылку на объект в административной части
    * 
    * @return string
    */
    function getAdminUrl(\Comments\Model\Orm\Comment $comment)
    {
        return \RS\Router\Manager::obj()-&gt;getAdminUrl(&#039;edit&#039;, array(&#039;id&#039; =&gt; $comment[&#039;aid&#039;]), &#039;shop-ctrl&#039;);
    }    
    
    /**
    * Возвращает id товара, к которому необходимо привязать комментарий
    * 
    * @return integer
    */
    function getLinkId()
    {
        $route = \RS\Router\Manager::obj()-&gt;getCurrentRoute();
        if ($route-&gt;getId() == &#039;shoplist-front-view&#039;) {
            if (isset($route-&gt;shop_id)) {
                return $route-&gt;shop_id;
            }
        }
        return false;
    }
    
        /**
    * Обновляет поле &quot;рейтинг&quot; у статьи
    * Вызывается при добавлении комментария
    */
    function onAdd(\Comments\Model\Orm\Comment $comment)
    {
        if ($comment[&#039;rate&#039;]) {
            $result = \RS\Orm\Request::make()
                -&gt;select(&#039;SUM(rate) sum, COUNT(*) cnt&#039;)
                -&gt;from($comment)
                -&gt;where(array(&#039;aid&#039; =&gt; $comment[&#039;aid&#039;], &#039;type&#039; =&gt; $comment[&#039;type&#039;]))
                -&gt;exec()-&gt;fetchRow();
            
            $cnt = isset($result[&#039;cnt&#039;]) ? $result[&#039;cnt&#039;] : 0;
            $rating = round( ($cnt&gt;0) ? (isset($result[&#039;sum&#039;]) ? $result[&#039;sum&#039;] : 0) / $cnt : 0 , 1);
            
            \RS\Orm\Request::make()
                -&gt;update(new \Shoplist\Model\Orm\ShopItem())
                -&gt;set(array(
                    &#039;rating&#039; =&gt; $rating,
                    &#039;comments&#039; =&gt; $cnt,
                ))
                -&gt;where(array(&#039;id&#039; =&gt; $comment[&#039;aid&#039;]))
                -&gt;exec();
        }
        return true;
    }
}</code></pre></div><p>Это код класса /modules/shoplist/model/commenttype/shop.inc.php</p><p>Добавил также рейтинг. Для этого класс &quot;сеть магазинов&quot; нужно расширить добавив 2 поля (raiting and comments). А также в ORM описании класса нужно прописать функции подсчета рейтинга.</p><div class="codebox"><pre><code>        /**
    * Возвращает райтинг товара в процентах от 0 до 100
    * 
    * @return integer
    */
    function getRatingPercent()
    {
        return round($this[&#039;rating&#039;] / self::MAX_RATING, 1) * 100;
    }

    /**
    * Возвращает средний балл товара
    * 
    * @return float
    */
    function getRatingBall()
    {
        return round(self::MAX_RATING * ($this-&gt;getRatingPercent() / 100), 2);
    }

    /**
    * Возвращает максимальное количество баллов, которое можно поставить данному товару
    * 
    * @return integer
    */
    function getMaxBall()
    {
        return self::MAX_RATING;
    }

    /**
    * Возврщает количество комментариев
    * 
    * @return integer
    */
    function getCommentsNum()
    {
        return (int) $this[&#039;comments&#039;];
    }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Thu, 04 Jun 2015 10:56:51 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1446/#p1446</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1440/#p1440</link>
			<description><![CDATA[<p>Ну отлично! Киньте пожалуйста текст с примерами файлов. Может кому пригодится, если не жалко.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Tue, 02 Jun 2015 12:34:37 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1440/#p1440</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1439/#p1439</link>
			<description><![CDATA[<p>Разобрался, до этого не правильно указал путь маршрутизатору</p>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Tue, 02 Jun 2015 12:21:50 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1439/#p1439</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1438/#p1438</link>
			<description><![CDATA[<p>Александр, спасибо за ответ!</p><p>Для статей все получилось. Через конструктор добавил и все заработало.</p><p>Для своего модуля как вы и описали создал класс комментарии и привязал его к модулю. В конструкторе сайта появился новый тип комментария, его можно выбрать и все корректно сохраняет. Однако блок комментариев не появляется на странице, в чем может быть дело?</p>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Tue, 02 Jun 2015 11:49:01 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1438/#p1438</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1412/#p1412</link>
			<description><![CDATA[<p>Разобрались?</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Wed, 27 May 2015 07:45:20 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1412/#p1412</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1411/#p1411</link>
			<description><![CDATA[<p>Классическая тема адаптивная, поэтому для страницы просмотра товара, вы можете через &quot;Веб-сайт&quot; -&gt; &quot;Конструктор сайта&quot; добавить блок с отображением комментариев к статьям, выбрав в этом блоке в настройках нужный тип комментария.. Для привязки комментариев используется свой тип комментария. Для этого нужно сделать свой модуль в котором будет класс определяющий <strong>тип комментария</strong> для брендов.</p><p>Например Вы можете посмотреть на класс: <br /><strong>/modules/article/model/commenttype/article.inc.php</strong> - отвечает за тип комментария к статье.<br />Соответственно такой класс должен быть и в Вашем модуле, только переделанный под вас.</p><p>//Классе который обрабатывает бренды id бренда записывается в следующий роут<br /><strong>$this-&gt;router-&gt;getCurrentRoute()-&gt;brand_id</strong><br />(Посмотреть можно в файле класса /modules/catalog/front/brand.inc.php)</p><p>Соответственно маршрут должен быть <strong>catalog-front-brand</strong> для вашего класса.</p><p>Для собственного модуля почитайте вот эту статью <a href="http://readyscript.ru/text-blog/razrabatyvaem-sobstvennyy-modul/">Создаём собственный модуль</a>.<br />Но по большому счёту Вам надо скопировать и переделать под себя класс типа комментария.</p><p>Попробуйте разобраться, если что-то не получится пишите.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Tue, 26 May 2015 11:30:09 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1411/#p1411</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1410/#p1410</link>
			<description><![CDATA[<p>Классическая</p>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Tue, 26 May 2015 08:44:10 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1410/#p1410</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1409/#p1409</link>
			<description><![CDATA[<p>Вам для какой темы оформления?</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Tue, 26 May 2015 08:24:28 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1409/#p1409</guid>
		</item>
		<item>
			<title><![CDATA[Как прикрутить модуль «Комментарии» к новостям и брендам?]]></title>
			<link>http://forum.readyscript.ru/post/1408/#p1408</link>
			<description><![CDATA[<p>Подскажите пж-ста как прикрутить модуль «Комментарии» к новостям и брендам?</p>]]></description>
			<author><![CDATA[null@example.com (Amigo)]]></author>
			<pubDate>Tue, 26 May 2015 05:08:34 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1408/#p1408</guid>
		</item>
	</channel>
</rss>
