Cyrax_02
С нами с 04 августа 2013; Место в рейтинге пользователей: #2502 часа назад
интересно, а не быстрее ли было бы перенести весь сайт с требуемым функционалом на пхп фреймворк…
врядли. gtsAPI 2000 строк. А весь сайт 20 компонент...
Плюсы и минусы Vue и gtsAPI 13
8 часов назад
ну тогда groupby и having«query» принимает все параметры pdoFetch и в нем есть и groupby и having. Пример навскидку:
"query":{
&quo...
Кейс gtsAPI. CRUD пользователей на фронте 2
Вчера в 20:31
Правильный вариант из текущей документации такой:
{set $condition = 1}
{switch $condition}
{case 0, 1, 2}
сработае...
Конструкция switch case без break в Fenom 6
Вчера в 13:39
Моя кофейная гуща говорит о том, что это код html и там есть смайлики, а кодировка бд не utf8mb4.
Modx Revo режет код HTML 2
23 ноября 2024, 11:51
Отличное дополнение, спасибо!
Подскажите, как организовать файл если стоит msOptionsPrice2 привязан к опции size там может быть много позиций с разн...
[YandexMarket2] интеграция с msOptionsPrice2 1
23 ноября 2024, 00:42
Еще снова вернулась проблемка, после выбора способа доставки почтой РФ — появляется стоимость доставки, но она «прилипает» и не исчезает после переклю...
Расчет стоимости доставки msRussianPost 11
22 ноября 2024, 21:57
Лучше деинсталировать и установить новую версию. Там полностью переписан JS.
ms_CDEK2 пропал? 5
22 ноября 2024, 20:33
Фильтрация как правило предполагает точное совпадения значений, а тебе нужен поиск.
mFilter2 фильтрация tv 1
22 ноября 2024, 19:55
Все исправилось, после замены на 'parents' => $_modx->resource.id
Помогите найти ошибку в шаблоне, теги 13
22 ноября 2024, 09:31
А кто подскажет, как в форму Создания/Редактирования ресурса, через ms2Form, добавить возможность выбирать несоклько параметров в одном TV?
Ну то-ест...
Создание ресурсов из фронтенда сайта, зарегистрированными пользователями. 4
А с помощью запроса (например, в myAdmin), всегда можно найти и перепривязать все «подвешенные» ресурсы после очистки корзины. Этот же запрос можно и на xPDO составить, а перепривязывать через процессор 'resource/update'.
Можно перегрузить процессор очистки корзины, чтобы все подчинённые ресурсы окончательно удаляемых ресурсов перемещались в определённое место (или к родителю окончательно удаляемого ресурса). Только для этого нужно будет где-то хитро подменить процессор.
Если файл с этим процессором имеет имя «sdelete.class.php» и лежит там же, где и все прочие стандартные процессоры modx, то вызов будет выглядеть так:
Если файл с процессором лежит в собственной папке PROC_PATH и имеет имя «sResourceDeleteProcessor.class.php», то вызов будет таким:
=============================================================================================
1.В данном примере реализовано опциональное отключение удаления дочерних ресурсов и очистки кэша. И реализовано это на базе те же самых свойств, которые передаются вторым параметром в метод modX::runProcessor().
2. Отключать очистку кэширования может быть полезно при пакетной обработке ресурсов для сокращения времени обработки. Аналогично можно отключить и логирование (перегрузкой метода modResourceDeleteProcessor::logManagerAction())
3.В процессорах «resource/create» и «resource/update» параметр «syncsite» уже обрабатывается (по умолчанию syncsite = true), тогда как стандартный процессор «resource/delete» кэш очищает всегда
4.При обработке ресурсов кэш очищается только в следующих разделах: 'db', 'auto_publish', 'context_settings' и 'resource'
а) запросы на чистом pdo
б) отказ от объектов
в) г) д) — в invokeEvent не используется
Парсер Василия, вроде, так и работает (это если вдруг кто-то захочет заминусовать меня за «отказ» от объектов).
Что касается вопроса изменения системных файлов и лучшего из предложенных вариантов — с вами полностью согласен — вариант 1 является наиболее корректным. А именно, в озвученных 4 файлах достаточно фрагмент
заменить на:
где smodx.class.php — файл с объявлением нашего класса smodX, наследующего стандартный класс modX.
И дело в шляпе…
2) Появляется возможность отслеживать время подключения классов, время инициализации, время выполнения запроса (modX::getRequest) и многих других операций, выполняемых modx, избавив себя от гаданий, почему modx «тормозит».
3) В момент инициализации modx (modX::initialize()) можно свободно подключать любые файлы (например, собственные библиотечные функции и классы), не обременяя себя строгой логикой пакетов. Эта возможность особенно актуальна, когда необходимо подключить все файлы из некоторой директории.
P.S. «Тайный поклонник» обязательно заминусует этот пост. Можно ставки делать ))
1) Минус с первого поста на 2-й перенёс модератор, посчитав его необоснованным
2) За первый пост кто-то поставил плюс, компенсировав тем самым минус «Тайного поклонника»
Очень напоминает
позупозицию Запада в отношении России.modX::sendForward
Forwards the request to another resource without changing the URL. If the ID provided does not exist, sends to a 404 Error page.
В вашем случае текущий URL и не нужен вообще, нужны только параметры.
Изменить (добавить) параметры при обработке текущего запроса можно 2 способами:
1) «Железный» вариант: на уровне .htaccess (директива redirect с использованием регулярных выражений)
2) В обработчике OnLoadWebDocument (с максимальным приоритетом = 0) добавить недостающие параметры (можно также удалить ненужные) в глобальные массивы:
а) при передаче данных методом POST: $_REQUEST + $_POST
б) при передаче данных методом GET: $_REQUEST + $_GET
И далее в любых сниппетах, функциях, классах, плагинах для получения параметров запроса использовать:
а) либо эти самые глобальные массивы
б) либо метод $modx->request->getParameters($keys, $type) (этот метод как раз и использует вышеуказанные глобальные массивы):
[correctMode = true] url формируется на основе текущего ресурса по правилам modx — «устойчивый» вариант
[correctMode = false] url формируется из строки запроса
А дальше добавить параметры — элементарно.
Как оказалось, время изменения файла, отображаемое на странице редактирования файла в modx, — это не серверное время и не локальное время админа. Это время, соответствующее php-настройке date.timezone (в моём случае оно совпадает с серверным временем). Т.е. modx просто считывает дату файла с помощью filemtime (все php-функции, работающие со временем, используют date.timezone) и отображает её в строковом виде. Никаких преобразований времени не производит.
Хотя логичнее было бы преобразовать это время сначала в UTC, затем в серверное, затем в локальное админское (с учётом server_offset_time) и только после этого отображать.
Аналогично modx поступает и с отображением даты публикации/создания/модификации ресурса — считывает из БД и отображает без всяких преобразований (этот факт делает нецелесообразным использование настройки date.timezone = UTC, которая в определённом смысле является более корректным вариантом).
Здесь возникает 2 вопроса:
1) Зачем нужна настройка server_offset_time?
2) Почему (и каким образом) при задании ненулевого server_offset_time время изменения файла, отображаемое в WinSCP, на server_offset_time превышает серверное время изменения файла?
Всё остальное (включая pdoResources, пагинация и т.д. и т.п.) реализовано на собственных функциях, классах, обвязках.
P.S. А теперь ждём конструктива от автора минуса…
Я сторонник конструктива — а Вы?
Исправлять логические ошибки.