Ясно. Пока подключил старую версию. Буду ждать когда обновитесь

Не за что)

Нашел проблему. Для полноценной работы bootstrap помимо CSS необходимо подключить следующие JS скрипты:

<script src="http://code.jquery.com/jquery-1.11.3.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

Движок уже использует Jquery версии 1.8.2 который подключается в шаблоне по умолчанию.

{addjs file="jquery.min.js" name="jquery" basepath="common" unshift=true}

Дело в том что используемая версия 1.8.2 уже устарела и bootstrap ее не поддерживает. При попытке подключить версию 1.11.2 или 1.11.3 перестают работать слайдер для фото, очистка кеша и т.д.  Печаль (((

Задача: Нужно в карточке товара сделать Tab-вкладки для удобного распределения контента.

Сделал следующее:

1. В файле шаблона product.tpl прописал пути до файлов CSS и JS предварительно конечно же закинув их в соотвествующие директории

{addcss file="bootstrap/3.3.4/css/bootstrap.min.css"}
{addcss file="bootstrap/3.3.4/css/bootstrap-theme.min.css"}
{addjs file="jcarousel/jquery.jcarousel.min.js"}
{addjs file="bootstrap/3.3.4/js/bootstrap.min.js"}></script>

2. Добавил JS код предварительно обернув в конструкцию {literal}{/literal}

{literal}
<script type="text/javascript">
$(document).ready(function(){ 
    $("#myTab a").click(function(e){
        e.preventDefault();
        $(this).tab('show');
    });
});
</script>
<style type="text/css">
    .bs-example{
        margin: 20px;
    }
</style>
{/literal}

3. В нужном месте в тело шаблона для теста добавил следующий код:

<div class="bs-example">
    <ul class="nav nav-tabs" id="myTab">
        <li class="active"><a href="#sectionA">Section A</a></li>
        <li><a href="#sectionB">Section B</a></li>
        <li class="dropdown">
            <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <b class="caret"></b></a>
            <ul class="dropdown-menu">
                <li><a href="#dropdown1">Dropdown1</a></li>
                <li><a href="#dropdown2">Dropdown2</a></li>
            </ul>
        </li>
    </ul>
    <div class="tab-content">
        <div id="sectionA" class="tab-pane fade in active">
            <h3>Section A</h3>
            <p>Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui. Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth.</p>
        </div>
        <div id="sectionB" class="tab-pane fade">
            <h3>Section B</h3>
            <p>Vestibulum nec erat eu nulla rhoncus fringilla ut non neque. Vivamus nibh urna, ornare id gravida ut, mollis a magna. Aliquam porttitor condimentum nisi, eu viverra ipsum porta ut. Nam hendrerit bibendum turpis, sed molestie mi fermentum id. Aenean volutpat velit sem. Sed consequat ante in rutrum convallis. Nunc facilisis leo at faucibus adipiscing.</p>
        </div>
        <div id="dropdown1" class="tab-pane fade">
            <h3>Dropdown 1</h3>
            <p>WInteger convallis, nulla in sollicitudin placerat, ligula enim auctor lectus, in mollis diam dolor at lorem. Sed bibendum nibh sit amet dictum feugiat. Vivamus arcu sem, cursus a feugiat ut, iaculis at erat. Donec vehicula at ligula vitae venenatis. Sed nunc nulla, vehicula non porttitor in, pharetra et dolor. Fusce nec velit velit. Pellentesque consectetur eros.</p>
        </div>
        <div id="dropdown2" class="tab-pane fade">
            <h3>Dropdown 2</h3>
            <p>Donec vel placerat quam, ut euismod risus. Sed a mi suscipit, elementum sem a, hendrerit velit. Donec at erat magna. Sed dignissim orci nec eleifend egestas. Donec eget mi consequat massa vestibulum laoreet. Mauris et ultrices nulla, malesuada volutpat ante. Fusce ut orci lorem. Donec molestie libero in tempus imperdiet. Cum sociis natoque penatibus et magnis.</p>
        </div>
    </div>
</div>

После всего вышеописанного на выходе получаем прорисовку вкладок, однако переключение между ними не работает!

Прошу помочь разобраться в данной проблеме

<?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('Комментарий к магазину');
    }
    
    /**
    * Возвращает ссылку на объект в административной части
    * 
    * @return string
    */
    function getAdminUrl(\Comments\Model\Orm\Comment $comment)
    {
        return \RS\Router\Manager::obj()->getAdminUrl('edit', array('id' => $comment['aid']), 'shop-ctrl');
    }    
    
    /**
    * Возвращает id товара, к которому необходимо привязать комментарий
    * 
    * @return integer
    */
    function getLinkId()
    {
        $route = \RS\Router\Manager::obj()->getCurrentRoute();
        if ($route->getId() == 'shoplist-front-view') {
            if (isset($route->shop_id)) {
                return $route->shop_id;
            }
        }
        return false;
    }
    
        /**
    * Обновляет поле "рейтинг" у статьи
    * Вызывается при добавлении комментария
    */
    function onAdd(\Comments\Model\Orm\Comment $comment)
    {
        if ($comment['rate']) {
            $result = \RS\Orm\Request::make()
                ->select('SUM(rate) sum, COUNT(*) cnt')
                ->from($comment)
                ->where(array('aid' => $comment['aid'], 'type' => $comment['type']))
                ->exec()->fetchRow();
            
            $cnt = isset($result['cnt']) ? $result['cnt'] : 0;
            $rating = round( ($cnt>0) ? (isset($result['sum']) ? $result['sum'] : 0) / $cnt : 0 , 1);
            
            \RS\Orm\Request::make()
                ->update(new \Shoplist\Model\Orm\ShopItem())
                ->set(array(
                    'rating' => $rating,
                    'comments' => $cnt,
                ))
                ->where(array('id' => $comment['aid']))
                ->exec();
        }
        return true;
    }
}

Это код класса /modules/shoplist/model/commenttype/shop.inc.php

Добавил также рейтинг. Для этого класс "сеть магазинов" нужно расширить добавив 2 поля (raiting and comments). А также в ORM описании класса нужно прописать функции подсчета рейтинга.

        /**
    * Возвращает райтинг товара в процентах от 0 до 100
    * 
    * @return integer
    */
    function getRatingPercent()
    {
        return round($this['rating'] / self::MAX_RATING, 1) * 100;
    }

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

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

    /**
    * Возврщает количество комментариев
    * 
    * @return integer
    */
    function getCommentsNum()
    {
        return (int) $this['comments'];
    }

Разобрался, до этого не правильно указал путь маршрутизатору

Александр, спасибо за ответ!

Для статей все получилось. Через конструктор добавил и все заработало.

Для своего модуля как вы и описали создал класс комментарии и привязал его к модулю. В конструкторе сайта появился новый тип комментария, его можно выбрать и все корректно сохраняет. Однако блок комментариев не появляется на странице, в чем может быть дело?

Классическая

Подскажите пж-ста как прикрутить модуль «Комментарии» к новостям и брендам?

Спасибо, разобрался

Подскажите пж-ста как будет правильно клонировать класс "БРЕНДЫ" (BrandApi) сохранив весь существующий функционал.

Дело в том, что нужно создать идентичный  классу "Бренды"  класс  "Магазины" для разделения товаров по физическим магазинам одной организации. У каждого магазина как и у бренда будет краткое описание, фото, категории товаров и т.д.

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