Добрый день.
При обмене сайта с 1с, комплектации выгружаются в формате: Наименование Характеристика (например, Обувь Адидас (цвет черный) (43 р-р)).
Как сделать что бы в комплектации выгружалась только характеристика без названия? (Только размер)

2

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

сработал такой вариант

/usr/bin/php71 -f /storage/home/юзер/сайт/core/cron/cron.php

3

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

Запускал через url. Все работает задачи выполняются, в настройках системы меняется время запуска, а дальше автоматически не запускается.

4

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

Добрый день.
На хостинге создал правило запуска скрипта каждую минуту. У тех поддержки уточнил отвели "задание добавлено правильно и выполняется".
Но в настройках системы смотрю задание не выполняется. К примеру, товары с сайта в ВК не выгружаются.
В чем может быть проблема? Может быть кто-то сталкивался.

Создал собственное меню для сайта нужно подключить js скрипт.
Подключаю {addjs file="newmenu.js"}
После обновления кэша сайта меню работает. Как только обнавляют сайт через ф5 меню перестает работать. Смотрю в коде скрипта нет. В чем может быть проблема?

    function actionIndex()
    {
        $api = new \Comments\Model\Api();
        $comment_id = $this->url->request('id', TYPE_INTEGER);
        $help = $this->url->request('help', TYPE_STRING);
        $api->markHelpful($comment_id, $help);
        $this->result->setSuccess(true)->addSection('count', $api->getUsefulCount($comment_id));
        return $this->result;
        
    }

COUNT передать получилось. Значение useful выводится.
Теперь мучаюсь передать значение help. Форма не подхватывает value у submit'a.
Почему {$this_controller->myBlockIdInput()} выводит одинаковый block_id для каждой формы?

В ответ приходит

{html: null}
html: null

Код фронт-контроллера

    function actionIndex()
    {

        if ($this->isMyPost()){
            $id = $this->url->request('id', TYPE_INTEGER);
            $help = $this->url->request('help', TYPE_STRING);
            if (!empty($id)) {
                $api = new \Comments\Model\Api();
                $api->markHelpful($id, $help);
                
            }
            if ($this->url->isAjax()) {
                $this->result->checkAjaxOutput(true); // Форсим AJAX
                $this->result->addSection('count', $this->$api->getUsefulCount());
            }
        }
        

        return $this->result;

    }

Код шаблона tpl

{addjs file="%comments%/vote.js"}
{foreach $commentlist as $comment}
<li {$comment->getDebugAttributes()}>
    <div class="info">
        <p class="starsSection"><span class="stars" title="{$comment->getRateText()}"><i class="mark{$comment.rate}"></i></span></p>
        <p class="date">{$comment.dateof|dateformat:"@date @time"}</p>
        <p class="name">{$comment.user_name}</p>
    </div>
<div class="comment">
        <i class="corner"></i>
        <p>{$comment.message|nl2br}</p>
            <div id="VoteMode">
                {if $success}
                    {$success}
                {/if}
                {if $error}
                    {$error}
                {/if}
    <form action="{$router->getUrl('comments-front-help')}" method="POST" class="formStyle">
        {$this_controller->myBlockIdInput()}
        <input type="hidden" name="id" value="{$comment.id}">
        <input type="submit" name="help" value="yes"/>    
        <input type="submit" name="help" value="no"/>            
    </form>
        <div id="useful">
        {$comment.useful}
        </div>
    </div>
</div>
</li>
{/foreach}

Код JS

$(function() {
    $("body").on('submit', '#VoteMode form', function(){
        var $_this = $("#VoteMode");
        var data   = $(this).serialize();
        $.ajax({
            type : 'POST',
            url : $(this).attr('action'),
            data : data,
            dataType : 'json',
            beforeSend: function() {
                        $('#useful').html('<i class="fa fa-spinner fa-spin fa-fw"></i>');
            },
            success : function(response){
                $('#useful').html(response);
            }
        });
        return false;
    });
});

Функция в API

    function getUsefulCount() {
        
        $comment = new \Comments\Model\Orm\Comment();
        $res = \RS\Orm\Request::make()
                        ->select('useful AS count')
                        ->from($comment)
                        ->where(array('id' => $id))
                        ->exec()->fetchRow(); 

        return $res['count'];
    }

Если без ajax при переходе на следующую страницу выводит значение useful. Но если подключаю ajax значение просто пропадает. Голову сломал не пойму что делаю не так.

Как реализовать эту функцию я понял.
Создал Фронт контроллер и там задействовал функцию.
Теперь не могу понять как сделать что бы при нажатии на кнопку не переходило на другую страницу
Код шаблона:

        <form action="{$router->getUrl('comments-front-del')}" method="POST" class="formStyle">
            <input type="hidden" name="id" value="{$comment.id}">
            <input type="submit" name="help" value="yes"/>
        </form>

Код фронт-контроллера

  function actionIndex()
    {
       $id = $this->url->request('id', TYPE_INTEGER);
       $help = $this->url->request('help', TYPE_INTEGER);
        if (!empty($id)) {
            $comment = new \Comments\Model\Api();
            $comment->markHelpful($id, $help);
        }
        
        if (!$this->url->request('dialogMode', TYPE_INTEGER)) {
            $this->result->setAjaxWindowRedirect($this->url->getSavedUrl($this->controller_name.'index'));
        }
        
        return $this->result->setTemplate( 'activate.tpl' );
    }

Да, вопрос аналогичный как у Валентина. Но и с другой стороны хочется понять как обращаться к функции из шаблона.

Это надо контроллер дописывать или как то через шаблон использовать?
Извините, не силен, только учусь.

Добрый день.
Увидел в коде для реализации комментирования, что есть голосование.

  function markHelpful($comment_id, $help)
    {
        $help = ($help == 'yes') ? 1 : -1;
        
        $vote = new Orm\Vote();
        $vote['ip'] = $_SERVER['REMOTE_ADDR'];
        $vote['comment_id'] = $comment_id;
        $vote['help'] = $help;
        $vote->replace();
        
        //Пересчитываем количество положительных и отрицательных оценок у комментария
        \RS\Orm\Request::make()
            ->update($this->obj_instance)
            ->set("help_yes = (SELECT COUNT(*) FROM ".$vote->_getTable()." WHERE comment_id = id AND help=1)")
            ->set("help_no = (SELECT COUNT(*) FROM ".$vote->_getTable()." WHERE comment_id = id AND help='-1')")
            ->set("useful = (SELECT SUM(help) FROM ".$vote->_getTable()." WHERE comment_id = id)")
            ->where(array('id' => $comment_id))
            ->exec();
    }

Как обратиться к этой функции ?

Спасибо. Мне помогло немножко по другому, почитал в документации.
$имя_orm_объекта.__image->getLink(true)

Спасибо.
А как получить полный url c адресом сайта?
Просто хочу уполучить размеры картинки
Ипользую код - {assign var=size  value=GetImageSize($имя_orm_объекта.__image->getLink())}
Но я так понимаю что там нужен полный адрес начиная с http и далее.

Добрый день.
Что бы получить url миниатюры нуже код - $имя_модуля.__image->getUrl(значение width, значение height)
А как получить url на оригинал изображения?

16

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

Помогите сформировать правильный запрос для авторизации

http://localhost/site1/exchange/?AUTH_FORM=Y&TYPE=AUTH&USER_LOGIN=ИМЯ_Пользователя&USER_PASSWORD=Пароль_пользователя

Пытался таким, но success так и не получил.

Добрый день.
При добавлении двух модулей корзины в макет (вторая корзина нужна для мобильной версии сайта) обновляется количество без перезагрузки страницы только в одной. Никак не могу понять куда копать. Подскажите пожалуйста как это исправить.