Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

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

Александр Туниеков
Александр Туниеков
Сделаю примерно без проверки кода. Для MODX2.8
[[!pdoSurname?
&parents=`65,20`
&tpl=`myTpl`
]]
$pdo = $modx->getService('pdoFetch');
$pdo->setConfig([
    'parents'=>$parents,
    'limit'=>0,
    'return'=>'data'
]);
$ress = $pdo->run();
foreach($ress as $k=>$res){
    $new_array = explode("br" , $res['pagetitle']);
    $ress[$k]['surname'] = end($new_array);
}
function querySort ($x, $y) {
     return strcasecmp($x['surname'], $y['surname']);
}
usort($ress, 'querySort');
$pdo->getChunk($tpl,['ress'=>$ress]);
myTpl
{foreach $ress as $res}
    <p> {$id} {$surname}</p>
{/foreach}
Код не проверял. Возможно мелкие ошибки. И strcasecmp не знаю понимает ли юникод…
Александр Туниеков
Александр Туниеков
В primeVue в дереве нельзя перемещать узлы. Пробую для дерева другой компонент не из primeVue. И там у меня задумки для дерева. Сделать может и быстрее сделаю, а пока мечусь толи так толи так. И поле загрузки файлов это вообще не файл менеджер. Думаю еще как делать. Толи файл-менеджер как в админке модекс, толи как в msGalery.
Серый
Серый
Либо еще вариант — это написать сниппет, которому отдаем список родителей, а он из них делает список id отсортированный по фамилиям, то есть той части pagetitle, которая идёт после тега br.
Но сам не сдюжу, прошу помочь.
Даниил
Даниил
Забыл написать версия modx 3.0.5
И сама форма
<form data-si-form="FormSlider" data-si-preset="slider_form" data-si-event="submit" data-si-nosave>
    <label>
        <input type="text" name="name" placeholder="Полное имя">
        <p data-si-error="name"></p>
    </label>
    <label>
        <input type="text" name="email" placeholder="Email">
        <p data-si-error="email"></p>
    </label>
    <label>
        <input type="tel" name="phone" placeholder="+7(">
        <p data-si-error="phone"></p>
    </label>
    <label for="politics">
        <input type="checkbox" name="politics" id="politics">
        Я на всё согласен!
    </label>
    <button type="submit">Отправить</button>
</form>






Я на всё согласен!

Отправить
Даниил
Даниил
Аналогичная проблема пишет «Невалидный токен»
Версия бд
Apache:
2.4.55
Панель управления Beget MySQL:
5.7.21-20-beget
Панель управления Beget Nginx:
1.21.1
Панель управления Beget Perl:
5.14.2
Панель управления Beget PHP:
8.3
Панель управления Beget Python:
2.7.3

Вот что в консоли
{"success":false,"message":"\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d.","data":{"successMessage":"\u0424\u043e\u0440\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430!","hooks":"FormItSaveForm,email","emailTpl":"siDefaultEmail","emailFrom":"noreply@complab59.ru","formName":"SimpleForm","emailSubject":"\u041f\u0438\u0441\u044c\u043c\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 complab59.ru","validate":"email:email:required,name:required,politics:required","sendGoal":"0","counterId":""}}
{success: false, message: "Невалидный токен.",…}
data
: 
{successMessage: "Форма отправлена!", hooks: "FormItSaveForm,email", emailTpl: "siDefaultEmail",…}
counterId
: 
""
emailFrom
: 
"noreply@complab59.ru"
emailSubject
: 
"Письмо с сайта complab59.ru"
emailTpl
: 
"siDefaultEmail"
formName
: 
"SimpleForm"
hooks
: 
"FormItSaveForm,email"
sendGoal
: 
"0"
successMessage
: 
"Форма отправлена!"
validate
: 
"email:email:required,name:required,politics:required"
message
: 
"Невалидный токен."
success
: 
false
Вот чанк

{'RenderForm' | snippet: [
'tpl' => 'FormSlider',
'presetName' => 'slider_form',
'extends' => 'default',
'hooks' => 'FormItSaveForm,email',
'redirectTo' => 0,
'redirectTimeout' => 3000,
'clearFieldsOnSuccess' => 1,
'fieldNames' => 'name==Имя,phone==Телефон,email==Почта',
'validate' => 'phone:required,age:required,name:required,email:email:required,politics:checkbox:required',
'successMessage' => 'Форма отправлена!',
'validationErrorMessage' => 'Исправьте ошибки!'
]}

вот форма







Я на всё согласен!

Отправить
Александр Туниеков
Александр Туниеков
также, раз используется библиотека primeVue нужно посмотреть, компоненты из этой библиотеки грузятся в приложение все или только те что используются
Какие указал те и грузятся вроде. И ядро primeVue. Ладно это сейчас не интересно. Думаю то что нужно то и грузится.
ну тут скорее проблема в том, что данный подход пытается добавить в изначально устаревший подход разработки с modx чтото новое и удобное, изза этого и выходят трудности о необходимости пересборки, ошибок и тд.
Трудности есть везде. Например в Nuxt модуль Auth еще на стадии бета. А с авторизацией не хочется возится. Вроде и базовая вещь, но правильно спрограмировать сложно. Авторизация, группы MODX вполне устраивают.
Алексей Соин
Алексей Соин
ну тут скорее проблема в том, что данный подход пытается добавить в изначально устаревший подход разработки с modx чтото новое и удобное, изза этого и выходят трудности о необходимости пересборки, ошибок и тд.

А зачем вообще разбивают на чанки? В SPA все равно же все грузиться сразу или я что-то еще не разобрался…
во вью можно делать
отложенные импорты компонентов, допустим у тебя модальное окно редактирования вызывается только после нажатия на кнопку редактирования, то и нет смысла его грузить заранее, а лучше это делать по мере надобности.

также например у тебя spa, ты находишься на странице списка элементов, то компоненты для детальной страницы не должны грузиться одним бандлом, логичнее их грузить чанками по мере надобности

также, раз используется библиотека primeVue нужно посмотреть, компоненты из этой библиотеки грузятся в приложение все или только те что используются, это тоже увеличивает бандл

Ачто там есть АПИ в первый раз слышу.
modzone.ru/blog/2021/02/04/zoomx-2.0-controllers-resful-api/