Напишите нам в support@readyscript.ru мы добавим.
2,476 10.06.2015 13:16:03
Re: В товарном чеке не отображаются комплектации (2 ответов, оставленных в Вопросы по работе с системой)
2,477 10.06.2015 13:14:58
Re: Добавление неразрывного пробела в название категории (7 ответов, оставленных в Вопросы по работе с системой)
Вы хотите, чтобы у вас просто не переходил текст на следующую строку в шаблоне? я так понял речь идёт о вместо пробелов?
2,478 10.06.2015 13:11:46
Re: Вопрос по отзывам (4 ответов, оставленных в Вопросы по работе с системой)
1. Наверное да. Но это только лишь догадки. Правду знает лишь поисковик.
2. " это кавычки в кодировке после htmlspecialchars, просто в html & перевёлся в &. Соответственно Ваш надо просто раскодировать строку.
Например так:
{$item|htmlspecialchars_decode}
2,479 07.06.2015 15:27:43
Тема: Как сделать Ajax запрос блок контроллеру в Readyscript? (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Вопрос:
Как сделать Ajax запрос блок контроллеру в Readyscript?
Ответ:
Дело в том, что каждый блок контроллер в системе обладает своим уникальным идентификатором. Заботится о нём не надо, т.к. как только вы его вставляете на страницу, то тут же у него генерируется уникальный номер. Это нужно для того, чтобы можно было вставить несколько таких же блок контроллеров или же разных, но чтобы именно тот который Вам нужно отработал.
Соответственно когда вы посылаете запрос, то надо передавать уникальный идентификатор блока в параметре с именем "_block_id".
Т.е. например
?_block_id=-345345431
Как его получить?
В шаблоне доступна переменная $this_controller у которой есть метод getBlockId, его то и можно использовать, например так
/путь к блок контроллеру/?_block_id={$this_controller->getBlockId()}
Если вы реализуете форму, то есть метод, который вернёт скрытый input с прописанным id блока, который будет учитываться при отправке формы.
<form>
{$this_controller->myBlockIdInput()}
....
</form>
Т.е. в общем виде, если мы в блок контроллере реализуем пагинацию, то урл в шаблоне можно получить так:
{$router->getUrl('catalog-block-sidefilters', ['_block_id'=>$this_controller->getBlockId(), 'p'=>2])}
Т.е. используя объект $router. В данном примере это страница со списком товаров, и где-то там наш блок контроллер.
И тогда получится адрес примерно такой:
/catalog-block-sidefilters/?_block_id=-342342345&p=2
Ну хорошо, вот мы отправили запрос.
Как понять на стороне контроллера, какому контроллеру пришёл запрос и сделать обработку этого запроса?
Всё просто. В нашем блок контроллере пишем...
Для POST запроса:
if ($this->isMyPost()){
//Мой POST запрос
}
Для GET запроса:
if ($this->myGet()){
//Мой GET запрос
}
Если есть вопросы, задавайте.
2,480 06.06.2015 17:31:08
Тема: Как понять в шаблоне Ajax запрос произошел или нет? (0 ответов, оставленных в Вопросы по разработке модулей и API системы)
Вопрос:
Как понять в шаблоне Ajax запрос произошел или нет?
Ответ:
Система сама понимает, когда произошёл AJAX запрос и выдает шаблон обрезанный без обёртки в случает если используется Front контроллер. Однако всё же бывают случаи когда надо узнать это аякс или нет прямо в шаблоне...
В шаблоне доступна переменная $url (объект класса \RS\Http\Request, путь к файлу /core/rs/request.inc.php) у которой есть метод isAjax().
Поэтому проверка будет такая:
{if $url->isAjax()}
//Это аякс запрос
{/if}
2,481 05.06.2015 13:41:12
Re: Проблема с подключением Bootstrap (4 ответов, оставленных в Вопросы по разработке модулей и API системы)
Нашел проблему. Для полноценной работы 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 перестают работать слайдер для фото, очистка кеша и т.д. Печаль (((
Да, мы позднее обновим эту версию. Но есть возможность как не использовать старую версию, которая конфликтует. В Управление->Настройки системы есть галочка которая отвечает за, то что показывать панель администратора или нет. Если отключить, то конфликта не будет.
2,482 04.06.2015 19:09:11
Re: Проблема с подключением Bootstrap (4 ответов, оставленных в Вопросы по разработке модулей и API системы)
Скрипты и css вы правильно подключили. Главное проверить, а подключилась ли у Вас JS бутсрапа. Т.е. тот ли вы путь указали.
Проверьте в FireBug консоли есть ли ошибки.
{literal} для css можно не использовать.
для JS в вашем случае тоже.
2,483 04.06.2015 19:01:07
Re: Как прикрутить модуль «Комментарии» к новостям и брендам? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Большое спасибо!
2,484 03.06.2015 16:08:16
Re: Как выгрузить только определенную категорию товаров? (3 ответов, оставленных в Вопросы по работе с системой)
Не за что
2,485 03.06.2015 11:26:19
Re: Как выгрузить только определенную категорию товаров? (3 ответов, оставленных в Вопросы по работе с системой)
В обычном экспорте выгружается всё. Но если переключится на категорию в Каталоге товаров и выбрать "Расширенный экспорт товаров". То товары будут выгружены только из той категории которую вы выбрали.
2,486 02.06.2015 16:34:37
Re: Как прикрутить модуль «Комментарии» к новостям и брендам? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Ну отлично! Киньте пожалуйста текст с примерами файлов. Может кому пригодится, если не жалко.
2,487 28.05.2015 11:54:14
Re: При регистрации на сайте юр.лица в заказе в админке не хватает данных. (2 ответов, оставленных в Вопросы по работе с системой)
Напишите нам в пожелания в helpdesk.readyscript.ru. Мы рассмотрим.
2,488 27.05.2015 11:45:20
Re: Как прикрутить модуль «Комментарии» к новостям и брендам? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Разобрались?
2,489 26.05.2015 15:30:09
Re: Как прикрутить модуль «Комментарии» к новостям и брендам? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Классическая тема адаптивная, поэтому для страницы просмотра товара, вы можете через "Веб-сайт" -> "Конструктор сайта" добавить блок с отображением комментариев к статьям, выбрав в этом блоке в настройках нужный тип комментария.. Для привязки комментариев используется свой тип комментария. Для этого нужно сделать свой модуль в котором будет класс определяющий тип комментария для брендов.
Например Вы можете посмотреть на класс:
/modules/article/model/commenttype/article.inc.php - отвечает за тип комментария к статье.
Соответственно такой класс должен быть и в Вашем модуле, только переделанный под вас.
//Классе который обрабатывает бренды id бренда записывается в следующий роут
$this->router->getCurrentRoute()->brand_id
(Посмотреть можно в файле класса /modules/catalog/front/brand.inc.php)
Соответственно маршрут должен быть catalog-front-brand для вашего класса.
Для собственного модуля почитайте вот эту статью Создаём собственный модуль.
Но по большому счёту Вам надо скопировать и переделать под себя класс типа комментария.
Попробуйте разобраться, если что-то не получится пишите.
2,490 26.05.2015 12:24:28
Re: Как прикрутить модуль «Комментарии» к новостям и брендам? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Вам для какой темы оформления?
2,491 24.05.2015 14:53:15
Re: Сервер вернул некорректные данные. Пожалуйста, обратитесь к разработчи (5 ответов, оставленных в Вопросы по работе с системой)
Подобная проблема, не могу установить систему на хостинг ru-centr
Не могу найти модуль filer в панели управления хостингом, может они обновление сделали...
А вы им прозвоните, пусть включат.
2,492 22.05.2015 16:29:35
Re: Возможно ли как-то победить неправильную сортировку комплектаций (12 ответов, оставленных в Вопросы по работе с системой)
Нет, не будут. Пробелы вначале и в конце убираются специально. По другому пока никак.
2,493 22.05.2015 16:27:55
Re: Как клонировать класс "БРЕНДЫ"? (2 ответов, оставленных в Вопросы по разработке модулей и API системы)
Во первых надо включить отображение ошибок на период разработки:
Включение отображения ошибок
Все файлы и классы в системе обладают своим namespace в самом начале файла. Если вы укажите свой namespace то они не пересекутся. Т.е. для своей папки используется свой уникальный namespace.
В формате:
Папка модуля\путь к файлу
Также там прописаны маршруты обрабатываемых страниц для брендов. Они находятся в файле handlers.inc.php в методе getRoute. Их надо либо убрать, либо заменить на свои.
Документацию по маршрутам можно взять здесь:
Маршруты в ReadyScript
Следующий шаг. Нужно классы, которые отвечают за ORM объекты(записи в БД) изменить таким образом, чтобы они использовали другие таблицы, чтобы они не пересекались. Они находятся в папках /modules/НУЖНЫЙ МОДУЛЬ/model/orm/.
Например в объекте брендов это будет строка:
protected static
$table = 'brand'; //Имя таблицы в БД
Вот описание ORM объектов в системе.
А вот, то что я приводил на форуме по полям ORM объектов.
Описание по полям
Если останутся вопросы, то говорите.
2,494 22.05.2015 12:10:42
Re: Возможно ли как-то победить неправильную сортировку комплектаций (12 ответов, оставленных в Вопросы по работе с системой)
Ну вообще сортировка становится в таком порядке в котором её отдала 1Ска. Можно например у этого товара переставить комплектации в админке и всё будет нормально. Но для одного товара это понятно.
Если у вас пачка товаров, то лучше выгрузить в CSV. Задать им порядок(индекс сортировки) и загрузить обратно.
Обратите внимание, что у каждого товара есть и должна быть 0(нулевая) комплектация. Она отвечает за сам товар.
Остальные комплектации идут на увеличение.
Т.е. для одного товара должно быть
0 комплектация
1 комплектация
и т.д.
2,495 19.05.2015 19:12:33
Re: Отображение комплектаций в списке товаров (14 ответов, оставленных в Вопросы по работе с системой)
Не за что. Надеюсь, Вам это пригодится.
2,496 19.05.2015 13:35:50
Re: Подскажите как реализовать (4 ответов, оставленных в Вопросы по работе с системой)
Попробовал, работает, класс добавляется. Вопрос в следующем, а как сделать условие, если не больше нуля, а равно нулю? Если я добавляю вот так, то не работает.
{if $product.num=0} мой класс {/if}
Всё правильно. В php =(равно) является равно. Т.е. вы присвоили 0. Если Вам надо проверить на ноль, то нужно писать двойное равно(==):
{if $product.num==0}
мой класс
{/if}
2,497 19.05.2015 11:56:03
Re: Подскажите как реализовать (4 ответов, оставленных в Вопросы по работе с системой)
Всё просто.
Если вы посмотрите в файл /modules/catalog/model/orm/product.inc.php
То там есть описание полей класса \Catalog\Model\Orm\Product, который является объектом товара.
Общее количество товара хранится в поле num. Т.е. нам нужно просто проверить положительное значение этого поля.
{if $product.num>0}
//Ваш класс
{/if}
Пробуйте.
2,498 18.05.2015 20:10:13
Re: Отображение комплектаций в списке товаров (14 ответов, оставленных в Вопросы по работе с системой)
Подскажите, пожалуйста, а как быть с многомерными комплектациями?
Пробовал по аналогии с кодом из файла product.tpl, вывод по var_dump показал, что у $product нет multioffers.
Многомерные комплектации используются, в корзине выбор есть, в карточке товара аналогично.p.s. Подсмотрел в контроллере: $product->fillMultiOffers()
Вы всё верно подсмотрели. Дело в том, что мы не подгружаем к товару многомерки сразу, т.к. они не требуются в списке, а нужны лишь на странице товара.
Для того, чтобы подгрузить к одному товару многомерки используется конструкция
{$product->fillMultiOffers()}
После этого к товару будут дописаны многомерки если они есть и проверить это можно так:
{if $product->isMultiOffersUse()}
//Многомерки используются
{else}
//Иначе
{/if}
После того как добавятся многомерки, то они будут ключе массива объекта \Catalog\Model\Orm\Product. А именно в
<pre>
{var_dump($product.multioffers)}
</pre>
Т.е. перебрать многомерки можно как в карточке товара
{foreach $product.multioffers.levels as $level}
{/foreach}
Следующим шагом, нужно добавить информацию о комплектациях, которые соответствуют одной из выбранных многомерных комплектаций.
{if $product->isOffersUse()}
{foreach from=$product.offers.items key=key item=offer name=offers}
<input value="{$key}" type="hidden" name="hidden_offers" class="hidden_offers" {if $smarty.foreach.offers.first}checked{/if} id="offer_{$key}" data-info='{$offer->getPropertiesJson()}' {if $check_quantity}data-num="{$offer.num}"{/if} {if $catalog_config.use_offer_unit}data-unit="{$offer->getUnit()->stitle}"{/if} data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'/>
{/foreach}
<input type="hidden" name="offer" value="0"/>
{/if}
Соответственно нужно обеспечить выбор нужной комплектации которая соответствует выбраной многомерной комплектации. Если посмотреть на input'ы, то там видно, что подгружаются сведения о многомерках в data-info.
Т.е. нужно javascript.
Посмотреть как взять нужную комплектацию можно в /templates/ВАША ТЕМА/resourse/js/jquery.changeoffer.js, в методе changeMultiOffer.
Для javascript просмотра используйте firebug и console.log(переменная);
В этом методе смотрится, что выбрана многомерка, смотрится соотвествие комплектациям, и если такая есть, то в input с name="offer" ставится нужная комплектация.
При нажатии на кнопку купить. Скрипт смотрит что у нас находится в этом input в рамках контейнера который обёрнут с data-id="id товара", как приведено выше.
По идее, Вам надо просто добавить скрипт jquery.changeoffer.js на эту страницу и он сам поймёт всю структуру. И при смене многомерки будет выбиратся нужная комплектация. Главное чтобы была обёртка с data-id (как было описано в предыдущем посте).
Есть ещё другой момент. Вы работаете со списком товаров, а каждый раз подгружать многомерки накладно. Поэтому вместо:
{$product->fillMultiOffers()}
Вам нужно использовать конструкцию
{$list=$this_controller->api->addProductsMultiOffers($list)}
Подробнее данный метод можно посмотреть в файле /modules/catalog/model/api.inc.php. Данный метод позволит подгрузить многомерки сразу многим товарам.
Пробуйте.
2,499 14.05.2015 11:55:51
Re: Баги (9 ответов, оставленных в Предложения по улучшению системы)
Так же не совсем понятно как именно работает подсчет остатков в таблицах - при просмотре категории в админке.
Поясните пожалуйста, что конкретнее Вам пояснить? Ато не совсем понятен вопрос.
2,500 13.05.2015 11:33:25
Re: Товар со скидкой (16 ответов, оставленных в Вопросы по работе с системой)
Дело в том, что Вы можете добавлять сколько угодно цен в систему но, в шаблоне прописано отображение, только основной цены и зачеркнутой. Если надо больше, то можно и больше в шаблонах прописать. Вот и всё.
Прописывается это всё помощью такой конструкции.
{$product->getCost()}
и
{$product->getCost('Зачеркнутая цена')}
Т.е.
{$product->getCost('Название нужной цены')}