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

Сергей Карпович
03 февраля 2023, 17:55
0
присутствует:
<input type="hidden" name="room[]" value="" data-afl-required="room"/>
Артур Шевченко
03 февраля 2023, 17:53
0
Предположу, что разметка неверная. Не вижу контрольного поля и атрибута data-afl-required
Сергей Карпович
03 февраля 2023, 17:47
0
если использую просто room:required — то все равно ошибка в консоли вылетает, как только валидатор по этому полю убираю — форма работатет
Сергей Карпович
03 февраля 2023, 17:34
0
Подскажите как правильно прописать проверку заполненности множественного поля checkbox?
Вот мое поле из формы:
<div class="pole pole-checkbox">
            <div class="pole-label">Тип помещения <span class="error_floor">[[+fi.error.room]]</span></div>
            <input type="hidden" name="room[]" value="" data-afl-required="room"/>
            <div class="pole-checkbox-item">
                <input id="room_1" type="radio" name="room[]" value="Квартира" [[!+fi.room:FormItIsChecked=`Квартира`]] >
                <label for="room_1">Квартира</label>
            </div>
            <div class="pole-checkbox-item">
                <input id="room_2" type="radio" name="room[]" value="Частный дом" [[!+fi.room:FormItIsChecked=`Частный дом`]]>
                <label for="room_2">Частный дом</label>
            </div>
            <div class="pole-checkbox-item">
                <input id="room_3" type="radio" name="room[]" value="Гостиница" [[!+fi.room:FormItIsChecked=`Гостиница`]]>
                <label for="room_3">Гостиница</label>
            </div>
            <div class="pole-checkbox-item">
                <input id="room_4" type="radio" name="room[]" value="Коммерческое помещение" [[!+fi.room:FormItIsChecked=`Коммерческое помещение`]]>
                <label for="room_4">Коммерческое помещение</label>
            </div>
        </div>
в стиппете указываю валидатор:
'validate' => 'room:minValue=^1^',
'room.vTextMinValue' => 'Выберите значение.'
На выходе валидация не работает, при отправке формы ошибки в консоли
Alexey
03 февраля 2023, 17:20
0
Привет!

Я не разбирался в сессиях компонента, если честно. Но у mSync есть событие mSyncAfterImport, по которому принимается массив выгруженных товаров: новых и обновленных. На мой взгляд, проще написать плагин на это событие, в котором будут прилетать выгруженные товары. И потом их сравнить с существующими на сайте.

Вот пример плагина, который публикует товары, которые были в выгрузке (перед импортом весь каталог снимается с публикации, но это в другом плагине):

if ($modx->event->name == 'mSyncAfterImport') {
    $good_ids = $importResources['product']['updated'];
    $good_ids = array_unique(array_merge($good_ids, $importResources['product']['created']));
    $query = $modx->newQuery('modResource');
    $query->command('update');
    $query->where(array('class_key' => 'msProduct', 'published' => 0, 'id:IN' => $good_ids));
    $query->set(array(
        'published' => 1
    ));
    $query->prepare();
    $query->stmt->execute(); 
    $modx->cacheManager->refresh();
}

Чутка доработать его и всё норм будет)
Артур Шевченко
03 февраля 2023, 16:30
0
Да, там ещё кое-что надо изменить. После
$.post(config['connectorUrl'], params, function (response) {
вставить
if(response.page != response.pages){
            $(config['more']).find('button').attr('disabled', false);
        }else{
            $(config['more']).find('button').attr('disabled', true);
        }
И закомментировать или удалить
if (config['mode'] == 'button') {
                    if (response['pages'] == response['page']) {
                        $(config['more']).hide();
                    }
                    else {
                        $(config['more']).show();
                    }
                }
kudesia
03 февраля 2023, 15:40
0
и вот

joxi.ru/1A5qe74uwwPg9A

из поля не убрались лишние

preg_replace("/[^0-9\/+]/"
или
preg_replace("/[^0-9+]/"

может надо?
Константин Ильин
03 февраля 2023, 14:06
0
а, у вас с другого сайта берется все… понял. Я то полагал, что контекст создан в одной и той же админке и к тому же «сайту» обращаетесь, только домены разные.
Тогда Вам выше подсказали, или гугл. Тут даже дело не в модх.
Алексей
03 февраля 2023, 13:44
0
Добавил в вызов 'frontend_js'=>'[[+assetsUrl]]js/pdopage.js', все заработало. Единственное если кнопкой подгружаешь до последней страницы, то кнопка пропадает, а при возврате при помощи пагинации не появляется.
vit
vit
03 февраля 2023, 13:18
0
Так лежат то они в site.ru/assets/….
Если я с сайта 1.site.ru обращусь к шрифту он его вообще не найдет(
alex87.ru
03 февраля 2023, 13:16
0
И сейчас работает, только конкретно в ресурсе выводится не через +, а через *: [[*createdby:userinfo=`fullname`]]
Алексей
03 февраля 2023, 12:53
0
<div id="pdopage" class="items-product">
								<div class="row rows row-flex">
									{'!pdoPage' | snippet : [
										'element'=>'msProducts',
										'parents'=>$modx->resource->id,
										'depth'=>10,
										'tpl' =>'product.tpl',
										'limit' =>4,
										'maxLimit'=>200,
										'pageLimit'=>10,
										'ajax'=>1,
										'ajaxHistory'=>1,
										'ajaxMode'=>'button',
										'tplPage' =>'@INLINE <a href="{$href}" class="but">{$pageNo}</a>',
										'tplPageActive'=>'@INLINE <a href="{$href}" class="but active">{$pageNo}</a>',
										'tplPageWrapper'=>'@INLINE <div class="pagination">{$pages}</div>',
										'tplPagePrev' =>'@INLINE <li class="control"><a href="{$href}"><</a></li>',
										'tplPageNext'=>'@INLINE <li class="control"><a href="{$href}">></a></li>',
										'tplPageSkip'=>'@INLINE <span>...</span',
										'tplPagePrevEmpty'=>'@INLINE <li class="disabled"><span><<</span></li>',
										'tplPageNextEmpty'=>'@INLINE <li class="disabled"><span>>></span></li>',
										'sortby'=>'{"menuindex":"DESC"}',
										'where'=>'{"template":"6"}'
									]}
								</div>
								<div class="pages">
									[[!+page.nav]]
								</div>
							</div>
Алексей
03 февраля 2023, 12:52
0
Выставил параметр ajaxHistory=1, сейчас пагинации не присваивается класс display: none, то есть отображается и кнопка и постраничная разбивка, но попрежнему работает не корректно
Константин Ильин
03 февраля 2023, 12:50
0
Может все проще, заменить все вызовы
https://site.ru/assets/fonts/Linearicons-Free.woff2
на
/assets/fonts/Linearicons-Free.woff2
т.е. без явного указания домена и абсолютный путь.
Алексей
03 февраля 2023, 12:17
0
Я правильно понял, что надо поменять этот код в файле assets/components/pdotools/js/pdopage.js? Поменял, но ничего не произошло, пагинации присваивается класс display:none; не могу понять где. Но даже если присвоить через css display: block !important; то работает не корректно, если пользуешься кнопкой, а потом пагинацией, то перебрасывает по такой ссылке site.ru/?page=1&pageId=17&hash=caba36b7635ec52390b81ac85612a759468b600c на несуществующую страницу.
vit
vit
03 февраля 2023, 11:28
0
Если вы об этом
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
То это не помогло и в ядре пробывал его вписать и в корне
Николай Савин
03 февраля 2023, 11:28
0
Добавляете в PHP код, к которому обращаетесь специальные заголовки через headers.
По идее вот такая запись разрешает доступ из другого домена
Access-Control-Allow-Origin: https://domain.xyz
В некоторых случаях нужно еще добавить правило в конфиг сервера.
Артур Шевченко
03 февраля 2023, 11:12
0
Этого я не знаю, но знают Яндекс и Гугл, спросите там.