Всего 123 801 комментарий

Артур Шевченко
26 ноября 2022, 12:13
0
miniShop2.Callbacks.add — это функция добавления твоего колбэка в массив колбэков. Ты можешь добавить свой коллбэк на событие Cart.add.before. И в этом коллбэке ты можешь проверять есть ли в куках id добавляемого товара, если нет записывать. Либо ты можешь слать запрос на сервер и там проверять что есть в корзине.
Сергей
26 ноября 2022, 11:55
0
А админке и в базе сделал, но не смог найти как сделать вывод с учетом отступов (с новой строки).

easyComm.plugin.myplugin = {
      getFields: function(config) {
            return {
                  field1: {xtype: 'textarea', fieldLabel: _('ec_message_field1'), anchor: '99%'},
                  field2: {xtype: 'textarea', fieldLabel: _('ec_message_field2'), anchor: '99%'},
            }
      }
      ,getColumns: function() {
            return {
                  field1: {width:50, sortable:true, name: 'field1'},
                  field2: {width:50, sortable:true, name: 'field2'}
            }
      }
};
И тут изменил
<?php
return array(
   'fields' => array(
        'field1' => NULL,
        'field2' => NULL,
    )
   ,'fieldMeta' => array(
        'field1' => array(
            'dbtype' => 'text'
            ,'precision' => '50'
            ,'phptype' => 'string'
            ,'null' => true
            ,'default' => NULL
        ),
        'field2' => array(
            'dbtype' => 'text'
            ,'precision' => '50'
            ,'phptype' => 'string'
            ,'null' => true
            ,'default' => NULL
        )
    )
    ,'indexes' => array(

    )
);
Сергей
26 ноября 2022, 10:41
0
Добрый день!
весь форум перечитал, но не нашел ответа.
Как сделать дополнительные поля в админке не imput а textarea?
Ввод сделать в виде textarea, но пробелы и табы не учитывается и текст слепляется. Думаю все из-за imput
Роман
26 ноября 2022, 10:02
0
Если коротко (а то запутанно мне кажется я описал), то я хочу при нажатии на кнопку проверять асинхронно, что есть в корзине и уже в зависимости от ответа через JS делать определенные действия.
Вот :)
Илья Александрович
26 ноября 2022, 00:03
1
+1
вот решение:
{'!mFilter2' | snippet : [
                            'class' => 'msProduct',
                            'element' => 'msProducts',
                            'loadModels' => 'msTopProducts',
                            'parents' => $_modx->resource.id,
                            'showHidden' => '0',
                            'showUnpublished' => '0',
                            'hideContainers' => '0',
                            'showLog' => '0',
                            'suggestions' => '1',
                            'ajaxMode' => 'default',
                            
                            'includeThumbs' => 'medium,480x576',
                            'tpls'  => 'tpl.product.block,tpl.product.row',
                            
                            'tplOuter' => 'tpl.mFilter2.outer',
                            'tplFilter.outer.default' => 'tpl.mFilter2.filter.outer',
                            'tplFilter.row.default' => 'tpl.mFilter2.filter.checkbox',
                            
                            'filters' => '
                                resource|parent:parents,
                            ',
    
                            'leftJoin'=>'{
                                "P1": {
                                    "class": "msProductOption",
                                    "on": "P1.key = \'p1\' and P1.product_id = msProduct.id"
                                },
                                "P2": {
                                    "class": "msProductOption",
                                    "on": "P2.key = \'p2\' and P2.product_id = msProduct.id"
                                },
                            	"msTopProduct" : {
                            		"class" : "msTopProduct",
                            		"alias" : "msTopProduct",
                            		"on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = ' ~ $_modx->resource.id ~ ' "]
                            	}
                            }',   
                        
                            'sortAliases' => '{"p1":"P1","p2":"P2"}',
                            'aliases' => 'p1|value==p1,p2|value==p2',
                            
                            'sortby' => '{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}',
                            
                            'limit' => '9',
                            'pageLimit' => '7',
                            
                            'tplPage' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>',
                            'tplPageWrapper' => '@INLINE <div class="col-12 pagination justify-content-center"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>',
                            'tplPageActive' => '@INLINE <li class="page-item active"><span class="page-link">[[+pageNo]]</span></li>',
                            'tplPageFirst' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-left"></i></a></li>',
                            'tplPageLast' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-right"></i></a></li>',
                            'tplPagePrev' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-left"></i></a></li>',
                            'tplPageNext' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-right"></i></a></li>',
                            'tplPageSkip' => '@INLINE <li class="page-item disabled"><span>...</span></li>',
                            'tplPageFirstEmpty' => '@INLINE ',
                            'tplPageLastEmpty' => '@INLINE ',
                            'tplPagePrevEmpty' => '@INLINE ',
                            'tplPageNextEmpty' => '@INLINE ',
                            'ajaxTplMore' => '@INLINE <button class="btn btn-outline-danger rounded-0 my-3 btn-more">Загрузить ещё</button>',
                        ]}
Артур Шевченко
25 ноября 2022, 23:34
0
Наверное он доку открыл и понял, что leftJoin тут не нужен.
Hiiragi
25 ноября 2022, 23:21
0
как-то решилась проблема?
Руслан
25 ноября 2022, 23:09
0
Если включить премодерацию, то дополнительные поля не сработают. Вроде бы так писали. Премодерацию нужно будет делать после размещения отзыва.
Руслан
25 ноября 2022, 23:03
0
Решение нашёл. В файле /assets/components/tickets/js/mgr/comment/comment.window.js добавляете дополнительное поле

, {
		  xtype: 'displayfield',
		  fieldLabel: 'Комментарий',
		  html: config.record.properties['comment-plus'],
		  anchor: '99%',
		}
config.record.properties['comment-plus'] вместо comment-plus любой объект из поля properties в БД.
Руслан
25 ноября 2022, 23:02
0
Решение нашёл. В файле /assets/components/tickets/js/mgr/comment/comment.window.js добавляете дополнительное поле

, {
		  xtype: 'displayfield',
		  fieldLabel: 'Комментарий',
		  html: config.record.properties['comment-plus'],
		  anchor: '99%',
		}
config.record.properties['comment-plus'] вместо comment-plus любой объект из поля properties в БД.
Руслан
25 ноября 2022, 22:48
0
Решение нашёл. В файле /assets/components/tickets/js/mgr/comment/comment.window.js добавляете дополнительное поле

, {
		  xtype: 'displayfield',
		  fieldLabel: 'Комментарий',
		  html: config.record.properties['comment-plus'],
		  anchor: '99%',
		}
config.record.properties['comment-plus'] вместо comment-plus любой объект из поля properties в БД.
Алексей Смирнов
25 ноября 2022, 22:42
0
Приведите код который пытается отсортировать, то как вы делаете.
Тк не очень понятно в чем трудность.
Алексей Смирнов
25 ноября 2022, 22:36
0
На странице ресурса вкладка — комментарии:
joxi.ru/brR5VP7H7jbzzA
Или все комментарии вы увидите в админке в меню ПАКЕТЫ --> Тикеты
vectorserver
25 ноября 2022, 21:00
0
тогда подготовь массив таким образом чтобы выводились только published! и не е*и мозг!
Группируй массив по ключу
{var $plus = $_modx->resource.field_plus | fromJSON  | groupBypublished }
Сниппет groupBypublished:
<?php
function _group_by($array, $key) {
    $return = array();
    foreach($array as $val) {
        $return[$val[$key]][] = $val;
    }
    return $return;
}
return _group_by($input, 'published');
vectorserver
25 ноября 2022, 20:58
1
0
без итераций никак!
{var $count_pub = 0}
{var $plus = $_modx->resource.field_plus | fromJSON}
{if $plus}
    {foreach $plus as $idx => $item}
        {if $item.published ==1}
        {$count_pub++}
    {/foreach}
    RETURN COUNT: {$count_pub}
{/if}
Роман
25 ноября 2022, 20:43
0
Он считает итерации, толку от этого нет, а мне нужно из массива достать параметр published и посчитать сколько таких параметров равны 1
Alexey
25 ноября 2022, 20:35
0
А если два плюса в последней строке убрать?
Alexey
25 ноября 2022, 20:31
0
Поддерживаю! Техподдержка с понедельника молчит.
Роман
25 ноября 2022, 20:01
0
Не могу получить количество $item.published равных 1 таким способом