Подумал, что нужно привести пример использования static_call для вашего случая в шаблоне. Я думаю пригодится.
Допустим у Вас есть модуль с именем custom и есть класс Api для выполнения функций Ваших. Соответственно в папке /modules/custom/model/api.inc.php

В этом классе предположим будет функция myDirUrl, которая возвращает нужные Вам данные. Мы их присвоим в шаблоне переменной $moyaperemennaya

В саму функцию myDirUrl мы передадим переменную содержащуй объект категории ($dir например)

Тогда вызов метода будет выглядеть так:

{* Вызов static_call *}
{static_call var=moyaperemennaya callback['\Custom\Model\Api','myDirUrl'] params=[$dir]}
{* Вывод значения присвоенного функцией *}
{$moyaperemennaya}

Ну а в самом классе Api:

<?php
namespace Custom\Model;

class Api{


   /**
   * Наша функция
   *
   * @param \Catalog\Model\Orm\Dir $dir - объект категории из шаблона
   */
   public static function myDirUrl($dir){
        //Наши действия
        //
        //
        return $moeznachenie; //Вернём результат обратно в шаблон
   }

}

Переопределения самих функций в других классах нет, но у нас появятся behavior расширения классов, и тогда можно будет дописывать из своего модуля функции классам. Пока этого нет. У нас сейчас возможно расширять систему и с помощью хуков в системе. Ну или можно вызывать статическую публичную функцию из шаблона при помощи нашего static_call плагина к smarty, в ней уже реализовать Ваши действия и вернуть значения. Туда можно и передать Ваш класс выполнив с ним манипуляции. Вот ссылка.
Ну и вот несколько ссылок для разработки:
http://readyscript.ru/text-blog/Kak-soz … adyScript/
http://readyscript.ru/text-blog/block-c … adyscript/
http://readyscript.ru/text-blog/razraba … nyy-modul/
http://readyscript.ru/text-blog/Kak-pra … adyScript/

Также вот документация для разработчиков.

Если нужны более конкретны примеры спрашивайте.

2,278

(3 ответов, оставленных в Вопросы по работе с системой)

Возникла задача - создать подарочный сертификат на определенную сумму.

Возможно ли это реализовать средствами систему или дополнительными модулями?

И возможно ли устанавливать скидку по промокоду в рублях, а не в процентах?

Готового пока нет.
В системе есть лицевой счёт который можно пополнять, пополнение с помощью сертификата пока не реализовано. Вы можете заказать данный модуль, либо у сторонних разработчиков, либо у нас.
Кстати расскажите как вы видите весь процесс данного сертификата и его функционал, интересно послушать Ваше мнение.
P.S. Возможно Вам пригодится ещё и такая вещь - модуль правила для корзины

Сделайте КОПИЮ файла с расширением .my.inc.php вместо .inc.php и спокойно правьте файл. Система подхватит именно Ваш файл.

\modules\catalog\model\orm\dir.my.inc.php

Нет, придётся из своего модуля получить, просто сделав какой либо маршрут, который будет отдавать такой json. Потому как мы при ajax запрос по маршруту в любом случае отдаём json, но уже в полем объекта в котором хранится готовый html для вставки на страницу.
Как мне видится, можно сделать обыкновенный front контроллер в своём модуле. Предположим, что это будет

/custom/controller/front/myfrontcontroller.inc.php

Тогда нам станет доступен запрос к url по следующему маршруту:

{$router->getUrl('custom-front-myfrontcontroller')} {* Получение url в шаблоне *}

 

Соответственно в самом классе, мы можем получить уже эти заказы. Ну например так:

$orders = \RS\Orm\Request::make()
                       ->from(new \Shop\Model\Orm\Order())
                       ->objects();

И соотвественно подготовить массив данных для возврата.

return $this->result->addSection('data', $myOrderArray);

Всё правильно, 1С по стандарту этого поля не поддерживает и не выгружает. И я думаю в ближайшем времени не будет. Т.е. в файлы import.xml и offers.xml. Соответственно мы, тоже данное поле не обрабатываем.
У нас  в системе данное поле есть у объекта товара. Это поле dateof.
Что можно сделать?
Если вы хотите его использовать, то придётся привлечь 1Сника, чтобы в файл import.xml к каждому товару дописывал соответствующий тег со значением.

После чего правим приёмку на нашей стороне.

Файл на нашей стороне, который за это отвечает это:
/modules/exchange/model/importers/catalogproduct.inc.php

Вам для его правки надо будет сделать его копию, но с расширением .my.inc.php
/modules/exchange/model/importers/catalogproduct.my.inc.php

Править надо метод import в получившимся файле.

Всё верно. Если нужен более конкретный пример, то напишите, какой именно Вас интересует момент.

Не за что smile

Так Вы на переменную подкатегории обратите внимание. Там то название переменной другое.

Категория это объект \Catalog\Model\Orm\Dir. У него есть поле itemcount.
Соответственно в Вашем блок контроллере можно получить данное поле так:

{$dir.fields.itemcount} {* Выводит в шаблоне количество товаров в категории *}

Посмореть все поля категории с их значениями можно так:

<pre>
{var_dump($dir.fields)}
</pre>

2,286

(14 ответов, оставленных в Вопросы по работе с системой)

Спасибо. в тот раз помогло. Сейчас новая проблема - сайт работает нормально, но не могу войти в админ панель - выдает ошибку
Fatal error: Namespace declaration statement has to be the very first statement in the script in /var/www/hk1333/data/www/xn----7sbabkcjwjawdptsdmv9j.xn--p1ai/modules/main/controller/admin/index.inc.php on line 17

Это говорит о том, что у вас перед записью namespace записана какая-то команда. Этого быть не должно, т.к. эта команда должна стоять первой. Предполагаю, что у Вас вирус на хостинге поразил файл, либо редактировали файл в редакторе windows и сохранили неправильно файл. Но скорее всего первое. Напишите нам на support@readyscript.ru доступы к FTP и в админку. Мы постараемся разобраться.

2,287

(6 ответов, оставленных в Вопросы по работе с системой)

Верно. Не за что.

2,288

(7 ответов, оставленных в Вопросы по созданию тем оформления)

Да. Но это на крайний случай wink

2,289

(6 ответов, оставленных в Вопросы по работе с системой)

Всё правильно.
Этот код:

<pre>
{var_dump($maindir)} {* Выводим объект нашего товара*}
</pre>

выводит весь объект категории, для того, чтобы Вы могли посмотреть, что содержит объект который Вы получаете.
Соответственно если Вам нужно получить название категории, то его можно вывести так:

{$maindir.name}

2,290

(7 ответов, оставленных в Вопросы по созданию тем оформления)

Здравствуйте
Вам надо добавить запись в layout.tpl Вашей темы оформления.

{$app->setAnyHeadData('Ваш необходимый код')|devnull}

2,291

(6 ответов, оставленных в Вопросы по работе с системой)

Товар является объектом \Catalog\Model\Orm\Dir, а значит ему доступны все методы класса Dir в файле /modules/catalog/model/orm/dir.inc.php

Вам нужен метод getMainDir()

{$maindir=$product->getMainDir()} {*Получаем категорию товара*}
<pre>
{var_dump($maindir)} {* Выводим объект нашего товара*}
</pre>

2,292

(2 ответов, оставленных в Предложения по улучшению системы)

Здравствуйте. Мы не выпускали обновление связанное с данной вещью, т.к. ещё не придумали правильную не ресурсоёмкую организацию решения данной проблемы. Там не всё так просто, т.к. Ваш код не все ситуации затрагивает. Мы выпустим обновление в будущем, но пока так.
Вы можете выложить на форуме решение и временно положить файл и изменения в тоже название и в той же категории. Только на конце не .inc.php, а сделать .my.inc.php

2,293

(14 ответов, оставленных в Вопросы по работе с системой)

я разобрался в чём дело. Благо отрыл доступы.
Так вот у Вас в разделе Управление->Сайты, Ваш сайт не был установлен как сайт по умолчанию и поэтому внутреннее содержимое не определялось. Ведь этот сайт у Вас один с одним доменом.
Я выставил флаг сайта по умолчанию и всё заработало.

2,294

(14 ответов, оставленных в Вопросы по работе с системой)

Ещё можно пройти данный курс
Создание собственной темы оформления
чтобы разбираться в шаблонах

2,295

(14 ответов, оставленных в Вопросы по работе с системой)

Веб-сайт->Настройка сайта->Поле Тема
Рекомендую
Руководство пользователя
и
Руководство для разработчиков

2,296

(14 ответов, оставленных в Вопросы по работе с системой)

Всё правильно у Вас в шаблонах.
Посмотрев исходный код страницы, я заметил, что у вас подключаются шаблоны из темы классической(default). У вас насколько я помню тема оформления другая. Это говорит о том, что вы переключились  на классическую тему и где там внутри закрыли вывод.
Переключитесь на Вашу тему оформления и всё должно заработать.

2,297

(14 ответов, оставленных в Вопросы по работе с системой)

index.tpl расширяется от body.tpl
Что у вас в Body.tpl?

2,298

(14 ответов, оставленных в Вопросы по работе с системой)

Забыл сказать

{$app->blocks->renderLayout()}

Должен быть в layout.tpl

2,299

(14 ответов, оставленных в Вопросы по работе с системой)

Может быть всё, что угодно, нужно смотреть более детельно. Но вероятнее всего удалили специальную конструкцию для вывода информации( {$app->blocks->renderLayout()} ), либо удалили или указали пустой шаблон главной странице.
Что у Вас содержит layout.tpl и шаблон отвечающий за главную страницу?
Также проверьте в Веб-сайт->Конструктор сайта какой шаблон назначен для главной страницы?

2,300

(3 ответов, оставленных в Вопросы по работе с системой)

Не за что)