SEQUEL.ONE

SEQUEL.ONE

С нами с 16 июня 2015; Место в рейтинге пользователей: #85
SEQUEL.ONE
01 марта 2019, 18:17
+1
Плюсы закончились в этом треде)
SEQUEL.ONE
01 марта 2019, 13:49
0
Спасибо за помощь. Мне удалось победить) Правда хотелось бы, чтобы процесс сохранения сопровождался анимацией. Не подскажете как мне её добавить?
SEQUEL.ONE
01 марта 2019, 12:13
0
Огромное спасибо. Я не заметил этих вкладок. Какой кошмар. Теперь я вижу ошибки:

<br />
<font size='1'><table class='xdebug-error xe-uncaught-exception' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught Error: Call to undefined method PayPanel::initialize() in /var/www/sequelone/data/www/sequel.one/core/components/paypanel/processors/mgr/domain/importapi.class.php on line <i>18</i></th></tr>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Error: Call to undefined method PayPanel::initialize() in /var/www/sequelone/data/www/sequel.one/core/components/paypanel/processors/mgr/domain/importapi.class.php on line <i>18</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0012</td><td bgcolor='#eeeeec' align='right'>381208</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='/var/www/sequelone/data/www/sequel.one/assets/components/paypanel/connector.php' bgcolor='#eeeeec'>.../connector.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0797</td><td bgcolor='#eeeeec' align='right'>2038360</td><td bgcolor='#eeeeec'>modConnectorRequest->handleRequest(  )</td><td title='/var/www/sequelone/data/www/sequel.one/assets/components/paypanel/connector.php' bgcolor='#eeeeec'>.../connector.php<b>:</b>28</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0799</td><td bgcolor='#eeeeec' align='right'>2039624</td><td bgcolor='#eeeeec'>modConnectorRequest->prepareResponse(  )</td><td title='/var/www/sequelone/data/www/sequel.one/core/model/modx/modconnectorrequest.class.php' bgcolor='#eeeeec'>.../modconnectorrequest.class.php<b>:</b>73</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.0806</td><td bgcolor='#eeeeec' align='right'>2087992</td><td bgcolor='#eeeeec'>modConnectorResponse->outputContent(  )</td><td title='/var/www/sequelone/data/www/sequel.one/core/model/modx/modconnectorrequest.class.php' bgcolor='#eeeeec'>.../modconnectorrequest.class.php<b>:</b>86</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.0807</td><td bgcolor='#eeeeec' align='right'>2088432</td><td bgcolor='#eeeeec'>modX->runProcessor(  )</td><td title='/var/www/sequelone/data/www/sequel.one/core/model/modx/modconnectorresponse.class.php' bgcolor='#eeeeec'>.../modconnectorresponse.class.php<b>:</b>144</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.0815</td><td bgcolor='#eeeeec' align='right'>2218368</td><td bgcolor='#eeeeec'>PayPanelImportApiProcessor->run(  )</td><td title='/var/www/sequelone/data/www/sequel.one/core/model/modx/modx.class.php' bgcolor='#eeeeec'>.../modx.class.php<b>:</b>1764</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.0815</td><td bgcolor='#eeeeec' align='right'>2218368</td><td bgcolor='#eeeeec'>PayPanelImportApiProcessor->initialize(  )</td><td title='/var/www/sequelone/data/www/sequel.one/core/model/modx/modprocessor.class.php' bgcolor='#eeeeec'>.../modprocessor.class.php<b>:</b>173</td></tr>
</table></font>
SEQUEL.ONE
01 марта 2019, 12:00
0
Включил. Компонент работает. Из консоли XHR пропала ошибка 500 на конектор. Теперь код 200. Я немного не въезжаю в ExtJS, мне всего лишь нужно при нажатии на кнопку запустить код процессора(((
SEQUEL.ONE
01 марта 2019, 10:50
0
Выдаёт вот такие ошибки в консоли:

Unchecked runtime.lastError: The message port closed before a response was received.
2VM369:1 Uncaught SyntaxError: Unexpected token <
    at doDecode (ext-all.js:1)
    at Object.decode (ext-all.js:1)
    at MODx.Ajax.success (modx.js?v=f2cb0b38:604)
    at Ext.data.Connection.handleResponse (ext-all.js:1)
    at f (ext-base.js:1)
    at m (ext-base.js:1)
    at ext-base.js:1
doDecode @ ext-all.js:1
(anonymous) @ ext-all.js:1
success @ modx.js?v=f2cb0b38:604
handleResponse @ ext-all.js:1
f @ ext-base.js:1
m @ ext-base.js:1
(anonymous) @ ext-base.js:1
setInterval (async)
n @ ext-base.js:1
i @ ext-base.js:1
request @ ext-base.js:1
request @ ext-all.js:1
request @ modx.js?v=f2cb0b38:637
setAction @ domains.grid.js:371
(anonymous) @ domains.grid.js:192
(anonymous) @ ext-base.js:1
setTimeout (async)
defer @ ext-base.js:1
callback @ ext-all.js:1
c @ ext-all.js:1
(anonymous) @ ext-base.js:1
onClick @ ext-all.js:1
I @ ext-all.js:1
SEQUEL.ONE
28 февраля 2019, 22:28
0
Залил на GitHub github.com/SequelONE/PayPanel

Пока не могу понять в чём дело(
SEQUEL.ONE
28 февраля 2019, 22:24
0
Вставил функцию setAction, теперь при клике на модальном окне кнопки Да, выдаёт 500ую ошибку и в консоли ругается на setAction.
SEQUEL.ONE
28 февраля 2019, 19:31
0
setAction: function(method, field, value) {
        var ids = this._getSelectedIds();
        if (!ids.length && (field !== 'false')) {
            return false;
        }
        MODx.Ajax.request({
            url: PayPanel.config.connector_url,
            params: {
                action: 'mgr/domain/importapi',
                method: method,
                field_name: field,
                field_value: value,
                ids: Ext.util.JSON.encode(ids)
            },
            listeners: {
                success: {
                    fn: function() {
                        this.refresh();
                    },
                    scope: this
                },
                failure: {
                    fn: function(response) {
                        MODx.msg.alert(_('error'), response.message);
                    },
                    scope: this
                }
            }
        })
    },
Я забыл её вставить. Домой приеду проверю, но похоже ещё нужно допилить.
SEQUEL.ONE
28 февраля 2019, 14:12
0
В консоли тишина. Похоже действие при клике на кнопку не исполняется.
SEQUEL.ONE
26 февраля 2019, 13:05
0
Всё получилось. Только вот не могу разобраться как можно сделать выборку по указаным категориям. Мне выводит все созданные, а хотелось бы чтобы выводило только указанные. Я так понимаю это здесь можно указать:

<?php

class PayPanelCategoryGetCatsProcessor extends modObjectGetListProcessor
{
    public $classKey = 'msCategory';
    public $defaultSortField = 'id';
    public $defaultSortDirection = 'ASC';
    protected $item_id = 0;


    /**
     * @return bool
     */
    public function initialize()
    {
        if ($this->getProperty('combo') && !$this->getProperty('limit') && $id = (int)$this->getProperty('id')) {
            $this->item_id = $id;
        }
        $this->setDefaultProperties(array(
            'start' => 0,
            'limit' => 20,
            'sort' => $this->defaultSortField,
            'dir' => $this->defaultSortDirection,
            'combo' => false,
            'query' => '',
        ));

        return true;
    }


    /**
     * @return array|string
     */
    public function process()
    {
        $beforeQuery = $this->beforeQuery();
        if ($beforeQuery !== true) {
            return $this->failure($beforeQuery);
        }
        $data = $this->getData();
        $list = $this->iterate($data);

        return $this->outputArray($list, $data['total']);
    }


    /**
     * @return array
     */
    public function getData()
    {
        $data = array();
        $limit = intval($this->getProperty('limit'));
        $start = intval($this->getProperty('start'));

        /* query for chunks */
        $c = $this->modx->newQuery($this->classKey);
        $c = $this->prepareQueryBeforeCount($c);
        $data['total'] = $this->modx->getCount($this->classKey, $c);
        $c = $this->prepareQueryAfterCount($c);

        $sortClassKey = $this->getSortClassKey();
        $sortKey = $this->modx->getSelectColumns($sortClassKey, $this->getProperty('sortAlias', $sortClassKey), '',
            array($this->getProperty('sort')));
        if (empty($sortKey)) {
            $sortKey = $this->getProperty('sort');
        }
        $c->sortby($sortKey, $this->getProperty('dir'));
        if ($limit > 0) {
            $c->limit($limit, $start);
        }

        if ($c->prepare() && $c->stmt->execute()) {
            $data['results'] = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
        }

        return $data;
    }


    /**
     * @param array $data
     *
     * @return array
     */
    public function iterate(array $data)
    {
        $list = array();
        $list = $this->beforeIteration($list);
        $this->currentIndex = 0;
        /** @var xPDOObject|modAccessibleObject $object */
        foreach ($data['results'] as $array) {
            $objectArray = $this->prepareResult($array);
            if (!empty($objectArray) && is_array($objectArray)) {
                $list[] = $objectArray;
                $this->currentIndex++;
            }
        }
        $list = $this->afterIteration($list);

        return $list;
    }


    /**
     * @param xPDOQuery $c
     *
     * @return xPDOQuery
     */
    public function prepareQueryBeforeCount(xPDOQuery $c)
    {
        $c->select('id,parent,pagetitle,context_key');
        $c->where(array(
            'class_key' => 'msCategory',
        ));

        if ($this->item_id) {
            $c->where(array('id' => $this->item_id));
        } elseif ($query = $this->getProperty('query')) {
            $c->where(array('pagetitle:LIKE' => "%$query%"));
        }

        return $c;
    }


    /**
     * @param array $resourceArray
     *
     * @return array
     */
    public function prepareResult(array $resourceArray)
    {
        $resourceArray['parents'] = array();
        $parents = $this->modx->getParentIds($resourceArray['id'], 2,
            array('context' => $resourceArray['context_key']));
        if ($parents[count($parents) - 1] == 0) {
            unset($parents[count($parents) - 1]);
        }
        if (!empty($parents) && is_array($parents)) {
            $q = $this->modx->newQuery('msCategory', array('id:IN' => $parents));
            $q->select('id,pagetitle');
            if ($q->prepare() && $q->stmt->execute()) {
                while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
                    $key = array_search($row['id'], $parents);
                    if ($key !== false) {
                        $parents[$key] = $row;
                    }
                }
            }
            $resourceArray['parents'] = array_reverse($parents);
        }

        return $resourceArray;
    }

}

return 'PayPanelCategoryGetCatsProcessor';
SEQUEL.ONE
26 февраля 2019, 11:53
0
А как правильно прописать путь для

mgr/category/getcats
По умолчанию он же будет искать в директории моего компонента или мне нужно будет создать у себя этот процессор?
SEQUEL.ONE
18 февраля 2019, 16:09
0
Спасибо огромное. Даже представить не могу как оно так получилось.
SEQUEL.ONE
24 декабря 2018, 15:47
0
Спасибо. Вот я слепошарый))) На этой странице тусовался)))
SEQUEL.ONE
29 ноября 2018, 20:50
0
Вы системные настройки правили для чпу?
SEQUEL.ONE
28 ноября 2018, 19:13
0
Классное обновления!

Я что-то пропустил?! Имеется в виду шаблонизатор ведь?
Update Smarty to 3.1.33 [#14126]
SEQUEL.ONE
16 ноября 2018, 23:14
0
'tpl'=>'@INLINE

Хоть минимальные знания английского должны быть. In Line значит в линию. Это первый момент. Зачем вы указываете limit 15000? О_о

Используйте чанки или @CODE, а вообще в документации написано docs.modx.pro/komponentyi/pdotools/parser#@INLINE-%D0%B8%D0%BB%D0%B8-@CODE

Вообще не понятно что вы хотите сделать, для вывода изображений в miniShop2 отвечает сниппет msGallery.
SEQUEL.ONE
14 ноября 2018, 22:26
0
Я сейчас что-то примерное делаю своим компонентом. Загрузка данных с фронта через FormIt, AjaxForm и свой хук. С письмом на почту после отправки.
SEQUEL.ONE
12 ноября 2018, 21:36
0
Данным компонентом еще не пользовался, но что-то подсказывает, что нужно изменить системные настройки компонента.