Пустая админка.

Добрый день, уже долгое время вожусь с проблемой. Установил себе modx, всё успешно, всё хорошо. Захожу в админку, заходит. Но в ней ничего нельзя добавить, убрать, корректировать и т.д. Просто переходить и то не везде. В чем мб причина? Уже не знаю куда копать. Сам сайт через фастпанел создавал, потом просто по инструкции всё делал. Стартовая страница сайта тоже работает, там приветствие от modx. В админке он и её не видит…
Lemon
26 февраля 2025, 22:05
modx.pro
2 057
0

Tickets не работают комментарии

Замутил на modx revo 2.8.7 сайт, решил к статьям сделать комментирование, установил tickets и вывел стандартную форму комментирования. Форма без заполнения работает, т.е. при пустой форме можно нажать на кнопку «Предпросмотр» и она работает, нажать кнопку «Написать» и отрабатывается валидация, но когда заполняю форму, то кнопки не работают и в консоле выскакивает /assets/components/tickets/action.php 500 (Internal Server Error). Поискал варианты решения в инете, но так и не нашел. Попробовал изменить права на папки, тоже не сработало. Jquery установлен. Может кто сталкивался с такой проблемой. Сайт лежин на хостинге бегет
Илья
27 февраля 2025, 17:08
modx.pro
952
0

Сайт мнгопрофильного медицинского центра на minishop2

Всем привет!
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.

У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).

Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер

yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml
Arthur
06 марта 2025, 09:39
modx.pro
935
0

Как сделать загрузку изображения с фронтенда в tv поле

Всем привет, сделал форму добавления записи с фронтенда, поля название, содержание и tv поле изображение
<form action="[[~[[*id]]]]" method="post" enctype="multipart/form-data">
    <label for="title">Название записи:</label>
    <input type="text" name="title" id="title" required>

    <label for="content">Содержание записи:</label>
    <textarea name="content" id="content" rows="4" required></textarea>

    <label for="img">Загрузите изображение (JPEG, PNG, GIF):</label>
    <input type="file" name="img" id="img" accept="image/jpeg, image/png, image/gif" required>

    <input type="submit" value="Добавить запись">
</form>

[[!AddPost]]
Содержание сниппета
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Получаем данные
    $title = trim($_POST['title']);
    $content = trim($_POST['content']);
    $img = $_POST['img-post'];
    
    // Проверяем и загружаем изображение
    $uploadDir = $modx->getOption('base_path') . 'assets/image/post-img/'; // Папка для загрузки изображений
    if (!is_dir($uploadDir)) {
        mkdir($uploadDir, 0755, true);
    }

    $fileTmpImg = $_FILES['img']['tmp_name'];
    $fileMimeTypeImg = mime_content_type($fileTmpImg);
    $allowedImageMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];

    if (in_array($fileMimeTypeImg, $allowedImageMimeTypes)) {
        $fileNameImg = uniqid() . '.' . pathinfo($_FILES['img']['name'], PATHINFO_EXTENSION);
        $fileFullPathImg = $uploadDir . $fileNameImg;

        if (move_uploaded_file($fileTmpImg, $fileFullPathImg)) {
            // Создание нового ресурса в MODX
            $newResource = $modx->newObject('modResource');
            $newResource->fromArray([
                'pagetitle' => $title,
                'content' => $content,
                'template' => 3, // Укажите ID шаблона,
                'published' => 1,
                'createdby' => $modx->user->get('id'),
                // Добавьте необходимые поля
            ], '', true, true);
            
            $newResource->setTVValue('img-post', $fileFullPathImg);

            // Сохранение ресурса
            if ($newResource->save() === false) {
                echo "Ошибка при сохранении записи.";
            } else {
                // Успешно сохранено, выводим изображение
                echo "<h2>Запись добавлена!</h2>";
                echo "<h3>{$title}</h3>";
                echo "<p>{$content}</p>";
                echo "<img src='/assets/image/post-img/{$fileNameImg}' alt='Uploaded Image' />";
            }
        } else {
            echo "Ошибка при загрузке изображения.";
        }
    } else {
        echo "Недопустимый формат изображения. Пожалуйста, загрузите JPEG, PNG или GIF.";
    }
}
Страница создается все поля подтягиваются, кроме tv поля изображение. Как подтянуть изображение, чтобы оно отображалось в админке в tv поле? Можете кидаться камнями по поводу кода, так как недавно познакомился с modx.
Илья
07 марта 2025, 19:21
modx.pro
581
0

Какие права доступа нужно давать пользователям для удаление своих записей

Всем привет, сделал добавление и изменения записей со стороны фронтенда и хотел сделать еще удаление записей, но проблема в том, что у админа удаление работает, а у пользователей нет. В журнале ошибок выскакивает ошибка, что у пользователя нет прав на удаление. Когда пользователь нажимает на ссылку «Удалить», то появляется просто текст Array. Сейчас стоит web, member-9999, load,list and view, но пробовал ставить разные политики доступа, ничего не меняется.
Код сниппета
<?php
if (!empty($_GET['action']) && $_GET['action'] === 'delete' && !empty($_GET['resourceId'])) {
    $resourceId = intval($_GET['resourceId']);
    $resource = $modx->getObject('modResource', $resourceId);

    // Проверка, существует ли ресурс
    if (!$resource) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Ресурс с ID ' . $resourceId . ' не найден.');
        return $modx->error->failure('Ресурс не найден.');
    }

    // Проверка прав доступа
    if (!$modx->hasPermission('delete_document')) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: У пользователя нет прав на удаление ресурса с ID ' . $resourceId);
        return $modx->error->failure('У вас нет прав на удаление этого ресурса.');
    }

    // Проверка, является ли текущий пользователь создателем ресурса
    $userId = $modx->user->get('id');
    if ($resource->get('createdby') != $userId) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Пользователь с ID ' . $userId . ' пытался удалить чужой ресурс с ID ' . $resourceId);
        return $modx->error->failure('Вы можете удалять только свои записи.');
    }

    // Удаление ресурса
    if ($resource->remove()) {
        $modx->log(modX::LOG_LEVEL_INFO, 'Ресурс с ID ' . $resourceId . ' успешно удален пользователем с ID ' . $userId);
        // Перенаправление после успешного удаления
        $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'), '', '', 'full'));
    } else {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Не удалось удалить ресурс с ID ' . $resourceId);
        return $modx->error->failure('Не удалось удалить ресурс.');
    }
}
Ссылка на удаление
a href="[[~[[*id]]]]?action=delete&resourceId=[[+id]]" onclick="return confirm('Вы уверены, что хотите удалить этот ресурс?');">Удалить ресурс</a>
Может кто в курсе какие права доступа вставлять или может я вообще неправильно все делаю.
Илья
18 марта 2025, 11:58
modx.pro
463
0

В миникорзине msMCD обновляется цена и счетчик на лету, а pagetitle и изображение только при обновлении

Вопрос оказался в заголовке. Как исправить такую ситуацию?

upd — На своём скриншоте увидел что еще и {$item.sum} не показываетт
Павлик Мышкин
24 марта 2025, 13:54
modx.pro
450
0

MODX/AI Hackathon Part 2 (27 марта)

Дорогие друзья MODX,

Простите за мой ужасный русский – мне приходится полагаться на такие инструменты, как ChatGPT и Google Translate. 😅 Но несмотря на это, я хочу пригласить вас на MODX-мероприятие на следующей неделе!

Присутствовать лично может быть непросто, но, как и наши коллеги из России и Сербии, вы сможете присоединиться онлайн.

Ниже – перевод на русский, а затем оригинальный английский текст. Если перевод получился ужасным, у вас хотя бы есть исходник. 😉

Привет из Нидерландов!

Henk Everts
19 марта 2025, 10:39
modx.pro
416
+12

MODX RSC | Telegram Karma Bot

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

🤖 Telegram-бот для управления кармой пользователей в чате. Бот добавляет или убирает карму, банит пользователей за рекламу и отображает топ пользователей по карме.



Бот создаёт и управляет пользователями в MODX.
Не стал особо придумывать велосипедов, но если вам будет нужно как то иначе его подстроить под сайт, думаю разберётесь.

А так же я интегрировал в бота OpenAI GPT-3.5



Что бы он ответил, при написании вопроса в любом порядке пишем «ИИ ответь тоже»

Все подробности на Github
Денис Усманов
16 марта 2025, 00:30
modx.pro
316
+11

Обновление Impex и Impex3

Всем привет.
Вышли версии 1.0.4 обоих пакетов с новыми полезными функциями. 
  • Добавлена возможность копирования существующей конфигурации.
  • Добавлена возможность удаления файлов по отдельности (конфигураций, файлов импорта/экспорта, бэкапов).
  • Добавлено системное событие OnImpexBeforeSetParentProduct, вызываемое перед обработкой родительской категории.
  • Добавлено системное событие OnImpexBeforeFieldImport, вызываемое перед импортом конкретного поля.
  • Во все события плагинов добавлена переменная $config_name — имя файла конфигурации.
  • Добавлен плагин Impex с примерами.
  • В конфигурации добавлен параметр category_id_field для указания поля категории, содержащее её уникальный идентификатор.
  • В конфигурации добавлен параметр skip_new, для пропуска при импорте отсутствующих на сайте позиций (только обновление существующих).
  • В плагине на событие OnImpexAfterResourceImport (после импорта ресурса) теперь доступен массив $data со всеми загруженными данными.
  • Исправлены небольшие ошибки + добавилась проверка версии PHP и MODX при установке.

Павел Романов
13 марта 2025, 09:40
modx.pro
298
+3

Создание товаров через ЛК из контекста web

Задача — дать пользователям возможность создавать товары через ЛК из контекста web.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor

Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.

Если кто сталкивался, подскажите в сторону каких прав копать.
Dima
08 марта 2025, 16:17
modx.pro
276
0