Всего 123 803 комментария

Артур Шевченко
26 ноября 2022, 23:55
0
На сервере может быть запрет на отправку писем через функцию mail(), тогда надо настраивать SMTP. Ещё может быть запрет на отправку с рандомного ящика, но это как правило только на тех хостингах где чтобы отправлялись письма, нужно создавать почту на хостинге. Ещё отправитель может быть просто не указан или не указана тема письма. Ещё могут быть хуки, которые что-то ломают. Некорректная разметка. Ещё может быть поле указано в параметре validate, но не передаётся на сервер, так как его нет в форме.
Рушан
26 ноября 2022, 21:04
0
Здравствуйте!
А как вы решили эту проблему, что изменили на сервере?
У меня сейчас такая же проблема не проходит валидацию.
Артур Шевченко
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
А если два плюса в последней строке убрать?