13 апреля 2023, 08:08 Смотрю содержимое $_SESSION и там нет параметра paymentstatus Если я просто на странице вызываю $_SESSION['paymentstatus'] = '1'; (без аякса), то параметр в сессию добавляется. Вопросы / Почему не меняется сессия через ajax? 3 0
25 ноября 2022, 14:07 Даже блокировка кнопки через js после отправки формы не спасает) А удаление дублей это заложено в модыкс? Где-то это контролируется? Вопросы / Дубли пользователей при регистрации 7 0
24 ноября 2022, 23:48 $user = $hook->getValue('register.user'); $user_id = $user->get('id'); $query_repact = $modx->prepare("INSERT INTO yn_schedule (user_id, type_task, chunk_name, date_execut, date_create) VALUES ($user_id, 1, 'lgnRepeatActivateEmailTpl', NOW() + INTERVAL 24 HOUR, NOW());"); $query_repact->execute(); $query_aftcon = $modx->prepare("INSERT INTO yn_schedule (user_id, type_task, chunk_name, date_execut, date_create) VALUES ($user_id, 1, 'afterConfirmEmailTpl', NOW() + INTERVAL 25 HOUR, NOW());"); $query_aftcon->execute(); //Добавляем запись в crm $url = 'https://**********.ru/crm/index.php?uid='.$user_id.'&type=regsuc'; $client = $modx->getService('rest', 'rest.modRest'); $response = $client->get($url); Вопросы / Дубли пользователей при регистрации 7 0
29 октября 2022, 15:36 Вроде сделал) Обновил информацию в посте Вопросы / Как повторно отправить письмо для подтверждения регистрации? [Решено] 10 0
29 октября 2022, 15:36 Спасибо! Обновил пост — добавил решение. Сделал франкенштейна из разных кусков :) Вопросы / Как повторно отправить письмо для подтверждения регистрации? [Решено] 10 0
28 октября 2022, 15:38 Да, имеется ввиду что в течении какого-то периода пользователь не подтвердил регистрацию и в этом случае нужно отправить повторно. Вопросы / Как повторно отправить письмо для подтверждения регистрации? [Решено] 10 0
28 октября 2022, 12:27 Основная проблема в формировании ссылки. Остальное не вызывает вопросов :) Нет понимания можно ли как-то повторно сгенерировать ссылку. Вопросы / Как повторно отправить письмо для подтверждения регистрации? [Решено] 10 0
07 июня 2022, 09:51 pdoPage пишет все свои параметры. Ладно бы если бы перезаписывал, так он пишет каждый раз новые просто через запятую. "pdoPage": { "74d3f15ea51296ccd42089fe1733fe399a4f8cc9": { "fastMode": false, "nestedChunkPrefix": "pdotools_", "offset": "", "checkPermissions": "", "loadModels": "", "prepareSnippet": "", "prepareTVs": "", "processTVs": "", "outputSeparator": "\n", "decodeJSON": true, "scheme": -1, "fenomSyntax": "#\\{(\\$|\\/|\\w+(\\s|\\(|\\|)|\\(|')#", "elementsPath": "/usr/share/nginx/html/core/elements/", "cachePath": "/usr/share/nginx/html/core/cache/default/pdotools", "plPrefix": "", "limit": "9", "maxLimit": "90", "page": "", "pageVarKey": "page", "totalVar": "page.total", "pageLimit": 5, "element": "pdoUsers", "pageNavVar": "page.nav", "pageCountVar": "pageCount", "pageLinkScheme": "", "tplPage": "@INLINE <li class=\"page-item\"><a class=\"page-link\" href=\"[[+href]]\">[[+pageNo]]</a></li>", "tplPageWrapper": "@INLINE <ul class=\"pagination\">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>", "tplPageActive": "@INLINE <li class=\"page-item active\"><a class=\"page-link\" href=\"[[+href]]\">[[+pageNo]]</a></li>", "tplPageFirst": "@INLINE <li class=\"page-item\"><a class=\"page-link\" href=\"[[+href]]\">[[%pdopage_first]]</a></li>", "tplPageLast": "@INLINE <li class=\"page-item\"><a class=\"page-link\" href=\"[[+href]]\">[[%pdopage_last]]</a></li>", "tplPagePrev": "@INLINE <li class=\"page-item\"><a class=\"page-link\" href=\"[[+href]]\">«</a></li>", "tplPageNext": "@INLINE <li class=\"page-item\"><a class=\"page-link\" href=\"[[+href]]\">»</a></li>", "tplPageSkip": "@INLINE <li class=\"page-item disabled\"><a class=\"page-link\" href=\"#\">...</a></li>", "tplPageFirstEmpty": "@INLINE <li class=\"page-item disabled\"><a class=\"page-link\" href=\"#\">[[%pdopage_first]]</a></li>", "tplPageLastEmpty": "@INLINE <li class=\"page-item disabled\"><a class=\"page-link\" href=\"#\">[[%pdopage_last]]</a></li>", "tplPagePrevEmpty": "@INLINE <li class=\"page-item disabled\"><a class=\"page-link\" href=\"#\">«</a></li>", "tplPageNextEmpty": "@INLINE <li class=\"page-item disabled\"><a class=\"page-link\" href=\"#\">»</a></li>", "cache": false, "cacheTime": 3600, "cacheAnonymous": false, "toPlaceholder": "", "ajax": 1, "ajaxMode": "scroll", "ajaxElemWrapper": "#pdopage", "ajaxElemRows": "#pdopage .rows", "ajaxElemPagination": "#pdopage .pagination", "ajaxElemLink": "#pdopage .pagination a", "ajaxElemMore": "#pdopage .btn-more", "ajaxTplMore": "@INLINE <button class=\"btn btn-primary btn-more\">[[%pdopage_more]]</button>", "ajaxHistory": "", "frontend_js": "[[+assetsUrl]]js/pdopage.min.js", "frontend_css": "[[+assetsUrl]]css/pdopage.min.css", "setMeta": true, "strictMode": true, "groups": "Users", "users": ",-8,-11,-12,-13,-15,-16,-17,-18,-20,-21,-46,-47", "tpl": "UsersFeedOtherTpl", "sortdir": "DESC", "useFenom": "1", "useFenomParser": "", "useFenomCache": "", "useFenomMODX": "", "useFenomPHP": "", "chunkExtensions": [ "html", "tpl" ] }Куки я собираюсь передавать в зашифрованном виде, поэтому, думаю, шанс взлома сокращается) Вопросы / pdoPage увеличивает размер куков с jwtsession 2 0
16 мая 2022, 18:22 Восклицательный знак в плейсхолдере [[!+photo:default=`/assets/photouser/default.jpg`]] оказался лишним. Без него работает. Но странно что так [[!+photo]] работает. Вопросы / Вывод изображения через pdoPage (ajax) 1 0
04 апреля 2022, 10:41 Оказалось что на хосте версия php 5.6. Обновление до 7.4. помогло устранить ошибку. Вопросы / Удаление всех изображений у товара (msGallery) 6 0
02 апреля 2022, 18:17 Большое спасибо! Фото товара удаляется и создается. Но в логах появилась ошибка: [2022-04-02 18:12:05] (ERROR @ /home/users/j/*************/domains/*************.ru/core/components/minishop2/model/minishop2/msproductfile.class.php : 190) [miniShop2] Could not generate thumbnail for "/assets/images/products/127/sp01rm.jpg". Array ( [0] => phpThumb() v1.7.16-202012161640 in file "phpthumb.class.php" on line 234 [1] => setCacheDirectory() starting with config_cache_directory = "/home/users/j/*************/domains/*************.ru/core/cache/phpthumb/" in file "phpthumb.class.php" on line 1048 [2] => setting config_cache_directory to $this->realPathSafe(/home/users/j/*************/domains/*************.ru/core/cache/phpthumb) = "/home/users/j/*************/domains/*************.ru/core/cache/phpthumb" in file "phpthumb.class.php" on line 1076 [3] => setSourceFilename(/home/users/j/*************/domains/*************.ru/ms_jmsg0U) set $this->sourceFilename to "/home/users/j/*************/domains/*************.ru/ms_jmsg0U" in file "phpthumb.class.php" on line 299 [4] => Addding ImageMagick formats to $AvailableImageOutputFormats (text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 1006 [5] => $AvailableImageOutputFormats = array(text;ico;bmp;wbmp;gif;png;jpeg;webp) in file "phpthumb.class.php" on line 1012 [6] => $this->thumbnailFormat set to $this->config_output_format "jpeg" in file "phpthumb.class.php" on line 1023 [7] => $this->thumbnailFormat set to $this->f "webp" in file "phpthumb.class.php" on line 1030 [8] => $this->thumbnailQuality set to "90" in file "phpthumb.class.php" on line 1040 [9] => $this->sourceFilename set to "/home/users/j/*************/domains/*************.ru/ms_jmsg0U" in file "phpthumb.class.php" on line 933 [10] => SetCacheFilename() _src set from md5($this->sourceFilename) "/home/users/j/*************/domains/*************.ru/ms_jmsg0U" = "5ec982fbf998889e03e617f327ec8b8d" in file "phpthumb.class.php" on line 3616 [11] => SetCacheFilename() _par set from md5(_bgffffff_farC_zc1_h400_w400_dpi150) in file "phpthumb.class.php" on line 3655 [12] => starting ExtractEXIFgetImageSize() in file "phpthumb.class.php" on line 3409 [13] => getimagesize(/home/users/j/*************/domains/*************.ru/ms_jmsg0U) says image is 800x800 in file "phpthumb.class.php" on line 3419 [14] => $this->useRawIMoutput=false because "bg" is set in file "phpthumb.class.php" on line 1649 [15] => $this->useRawIMoutput=false after checking $UnAllowedParameters in file "phpthumb.class.php" on line 1655 [16] => phpThumb_tempnam() returning "/home/users/j/*************/domains/*************.ru/core/cache/phpthumb/pThumbzm75H2" in file "phpthumb.class.php" on line 4498 [17] => ImageMagickSwitchAvailable(thumbnail) = 1 in file "phpthumb.class.php" on line 1581 [18] => getimagesize(/home/users/j/*************/domains/*************.ru/ms_jmsg0U) SUCCEEDED: Array ( [0] => 800 [1] => 800 [2] => 2 [3] => width="800" height="800" [bits] => 8 [channels] => 3 [mime] => image/jpeg ) in file "phpthumb.class.php" on line 1750 [19] => ImageMagickSwitchAvailable(density) = 1 in file "phpthumb.class.php" on line 1581 [20] => getimagesize(/home/users/j/*************/domains/*************.ru/ms_jmsg0U) returned [w=800;h=800;f=2] in file "phpthumb.class.php" on line 1765 [21] => source dimensions set to 800x800 in file "phpthumb.class.php" on line 1768 [22] => SetOrientationDependantWidthHeight() starting with "800"x"800" in file "phpthumb.class.php" on line 3388 [23] => SetOrientationDependantWidthHeight() setting w="400", h="400" in file "phpthumb.class.php" on line 3404 [24] => ImageMagickSwitchAvailable(repage) = 1 in file "phpthumb.class.php" on line 1581 [25] => Remaining $this->fltr after ImageMagick: (array(0) { } ) in file "phpthumb.class.php" on line 2316 [26] => ImageMagick called as (convert '/home/users/j/*************/domains/*************.ru/ms_jmsg0U[0]' -flatten -density '150' -thumbnail 'x400' -gravity center -crop '400x400+0+0' +repage png:'/home/users/j/*************/domains/*************.ru/core/cache/phpthumb/pThumbzm75H2' 2>&1) in file "phpthumb.class.php" on line 2334 [27] => getimagesize(/home/users/j/*************/domains/*************.ru/core/cache/phpthumb/pThumbzm75H2) returned [w=400;h=400;f=3] in file "phpthumb.class.php" on line 2351 [28] => ImageMagickThumbnailToGD::imagecreatefrompng() succeeded, $this->gdimg_source is now (400x400) in file "phpthumb.class.php" on line 2357 [29] => ImageMagickThumbnailToGD() returning $this->IMresizedData (102449 bytes) in file "phpthumb.class.php" on line 2358 [30] => deleting "/home/users/j/*************/domains/*************.ru/core/cache/phpthumb/pThumbzm75H2" in file "phpthumb.class.php" on line 2364 [31] => skipping SourceImageToGD() because $this->gdimg_source is already a resource (400x400) in file "phpthumb.class.php" on line 3778 [32] => CalculateThumbnailDimensions() starting with [W,H,sx,sy,sw,sh] initially set to [400,400,,,,] in file "phpthumb.class.php" on line 3260 [33] => CalculateThumbnailDimensions() starting with [x,y,w,h] initially set to [0,0,400,400] in file "phpthumb.class.php" on line 3275 [34] => CreateGDoutput() returning canvas "400x400" in file "phpthumb.class.php" on line 3383 [35] => ImageResizeFunction($o, $s, 0, 0, 0, 0, 400, 400, 400, 400) in file "phpthumb.class.php" on line 4473 [36] => memory_get_usage() after copy-resize = 27499336 in file "phpthumb.class.php" on line 433 [37] => memory_get_usage() after imagedestroy = 26672832 in file "phpthumb.class.php" on line 435 [38] => AntiOffsiteLinking() says this is allowed in file "phpthumb.class.php" on line 2578 [39] => skipping AlphaChannelFlatten() because ($this->thumbnailFormat == "webp") in file "phpthumb.class.php" on line 2642 [40] => GenerateThumbnail() completed successfully in file "phpthumb.class.php" on line 447 [41] => imageinterlace($this->gdimg_output, 1) in file "phpthumb.class.php" on line 483 [42] => RenderOutput() attempting imagewebp($this->gdimg_output) in file "phpthumb.class.php" on line 486 [43] => GD does not have required built-in support for WebP output in file "phpthumb.class.php" on line 552 )С чем она может быть связана? Проверил все права на папки все в норме. Так же выставил «phpthumb_allow_src_above_docroot» = «Да» Вопросы / Удаление всех изображений у товара (msGallery) 6 0
27 января 2022, 14:10 Вот еще вариант, если нужен будет полный url по ID страницы [[~[[*id]]? &scheme=`full`]][[~23? &scheme=`full`]] Вопросы / Ссылка на текущую страницу 5 0
26 января 2022, 21:03 Николай, спасибо за ответ! У меня получилось реализовать следующим образом: 1. В ноде получаю куку PHPSESSID req.headers.cookie2. С помощью пакета php-unserialize разбираю данные сессии и получаю user_id const PHPUnserialize = require('php-unserialize'); $dataarr = PHPUnserialize.unserializeSession(data[0].data); userid = $dataarr['modx.user.contextTokens']['web']; //или mgr3. Если в $dataarr['modx.user.contextTokens'] пусто, то перекидываю на страницу авторизации. Вопросы / Обращение к MODx через nodejs 3 0
22 октября 2021, 17:12 Прошу прощения за не полную информацию. Дополнил свой вопрос. Вопросы / Ajax возвращает error: Bad action 3 0
14 июня 2021, 00:48 Спасибо за предложение! Я в итоге увлекся и сделал сам :) Результат прикрепляю ниже. Может кому пригодится. На правильность метода не претендую, для меня это рабочий вариант) От прорисовки страницы до загрузки таблицы с 30000 строк = 2,1 сек. pdoPage сниппет. С ним одна проблема — он выводит результат на страницу, который нам не нужен. Пока не понял как его убрать — просто вывожу в скрытый div. <div style="display:none"> [[!pdoPage? &parents=`2` &ajaxMode=`default` &sortby=`[[!#GET.sortby:default=`Id`]]` &sortdir=`[[!#GET.sortdir:default=`desc`]]` &tvFilters=`SecondName==%[[!#GET.search:default=``]]%` &tpl=`patientListTpl` &includeTVs=`Id,SecondName,Note` &limit=`10` ]] </div> Комментарии: [[!#GET.sortby:default=`Id`]] — через GET из dataTable с помощью ajax передаем параметры для сортировки &tvFilters=`SecondName==%[[!#GET.search:default=``]]%` — точно так же передаем данные для поиска &tpl=`patientListTpl` — данные которые необходимо передать dataTable с целью отображения их в таблице. Формат данных: ["[[+tv.Id]]","[[+tv.SecondName]]","[[+tv.Note]]"], Каждое значение в кавычках соответсвует столбцам таблицы. В конце строки нужна запятая! Инициализация dataTable: $(function () { var orderparam = [0, "desc"]; //сортировка по дефолту по первому столбцу таблицы var columnparam = ["Id", "SecondName", "Note"]; //столбцы таблицы var table = $("#example1").DataTable({ "order": [orderparam], "lengthChange": false, "processing": true, "serverSide": true, //определяет в каком формате мы отправим данные для dataTable в callback "ajax": function (data, callback, settings) { var pageinfo = table.page.info(); //узнаем номер страницы для передачи в pdoPage var orderinfo = table.order(); //узнаем сортировку для pdoPage var searchinfo = table.search(); //данные поиска для pdoPage //перед заполнением таблицы запрашиваем данные у pdoPage с помощью get запроса $.ajax({ url: "kartoteka?page=" + (pageinfo.page + 1) + '&sortby=' + columnparam[orderinfo[0][0]] + '&sortdir=' + orderinfo[0][1] + '&search=' + searchinfo, }).then(function (json, textStatus, jqXHR) { var json = JSON.parse(json); //получаем JSON от pdoPage var output = json.output.replace(/,\s*$/, ""); //берем только нужные нам данные. Убираем лишнюю запятую. var dr = JSON.parse('{"data":[' + output + ']}'); //полученные нами данные - текст. Конвертируем его в JSON. //все что мы получили отдаем для заполнения таблицы callback({ draw: data.draw, //специальный счетчик обращений dataTable recordsTotal: json.total, //количество строк в ответе от pdoPage recordsFiltered: json.total, //количество строк в ответе от pdoPage data: dr.data //данные для заполнения }); }); }, //если вдруг нужны кнопки. Они отрисовываются после заполнения таблицы. Поэтому, кнопки добавляем с помощью initComplete "buttons": ["colvis"], "initComplete": function () { table.buttons().container().appendTo($('#example1_wrapper .col-md-6:eq(0)')); //обратите внимание не селекторы, у вас они могут отличаться } }); }); Вопросы / Быстрый AJAX поиск для pdoPage 4 0
12 июня 2021, 11:36 Спасибо за ответ. Если вас не затруднит — поделитесь, пожалуйста, ссылкой на пример или примером кода. Вопросы / Быстрый AJAX поиск для pdoPage 4 0
22 января 2020, 13:30 В итоге плагин сделал вот так: switch ($modx->event->name) { case 'OnBeforeDocFormSave': $id = $resource->get('id'); $parent = $modx->getParentIds($id, 10, array('context' => 'web')); $datestart = date("Ymd", strtotime($resource->tv17)); $dateend = date("Ymd", strtotime($resource->tv18)); if ($parent[0] == 2) { if ($datestart > $dateend) { $modx->event->output('Сообщение о ошибке'); } } break; }OnBeforeDocFormSave — плагин срабатывает до сохранения ресурса $modx->event->output() — выводит текст о ошибке в модальном окне и не сохраняет ресурс Вопросы / Сравнение дат в админке 8 0
22 января 2020, 11:55 Действительно, работает. Большое спасибо!) Может вам так же известно как подсветить поле красным и сфокусироваться на нем? Как это работает с стандартной валидацией полей в MODx при сохранении. Вопросы / Сравнение дат в админке 8 0
21 января 2020, 21:19 Спасибо! Разбираюсь с плагинами. Подскажите, как получить TV до сохранения ресурса. $resource->getTVValue('date') — таким образом берет уже существующее значение Событие использую OnBeforeDocFormSave. Или нужно другое событие? Вопросы / Сравнение дат в админке 8 0
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Если я просто на странице вызываю $_SESSION['paymentstatus'] = '1'; (без аякса), то параметр в сессию добавляется.
А удаление дублей это заложено в модыкс? Где-то это контролируется?
Обновил информацию в посте
Сделал франкенштейна из разных кусков :)
Нет понимания можно ли как-то повторно сгенерировать ссылку.
Куки я собираюсь передавать в зашифрованном виде, поэтому, думаю, шанс взлома сокращается)
Но странно что так [[!+photo]] работает.
Обновление до 7.4. помогло устранить ошибку.
Но в логах появилась ошибка:
С чем она может быть связана?
Проверил все права на папки все в норме.
Так же выставил «phpthumb_allow_src_above_docroot» = «Да»
У меня получилось реализовать следующим образом:
1. В ноде получаю куку PHPSESSID
2. С помощью пакета php-unserialize разбираю данные сессии и получаю user_id
3. Если в $dataarr['modx.user.contextTokens'] пусто, то перекидываю на страницу авторизации.
Результат прикрепляю ниже. Может кому пригодится.
На правильность метода не претендую, для меня это рабочий вариант) От прорисовки страницы до загрузки таблицы с 30000 строк = 2,1 сек.
pdoPage сниппет. С ним одна проблема — он выводит результат на страницу, который нам не нужен. Пока не понял как его убрать — просто вывожу в скрытый div.
Комментарии:
Инициализация dataTable:
Если вас не затруднит — поделитесь, пожалуйста, ссылкой на пример или примером кода.
OnBeforeDocFormSave — плагин срабатывает до сохранения ресурса
$modx->event->output() — выводит текст о ошибке в модальном окне и не сохраняет ресурс
Может вам так же известно как подсветить поле красным и сфокусироваться на нем?
Как это работает с стандартной валидацией полей в MODx при сохранении.
Разбираюсь с плагинами.
Подскажите, как получить TV до сохранения ресурса.
$resource->getTVValue('date') — таким образом берет уже существующее значение
Событие использую OnBeforeDocFormSave. Или нужно другое событие?