Пустая админка.
Добрый день, уже долгое время вожусь с проблемой. Установил себе modx, всё успешно, всё хорошо. Захожу в админку, заходит. Но в ней ничего нельзя добавить, убрать, корректировать и т.д. Просто переходить и то не везде. В чем мб причина? Уже не знаю куда копать. Сам сайт через фастпанел создавал, потом просто по инструкции всё делал. Стартовая страница сайта тоже работает, там приветствие от modx. В админке он и её не видит…
Tickets не работают комментарии
Замутил на modx revo 2.8.7 сайт, решил к статьям сделать комментирование, установил tickets и вывел стандартную форму комментирования. Форма без заполнения работает, т.е. при пустой форме можно нажать на кнопку «Предпросмотр» и она работает, нажать кнопку «Написать» и отрабатывается валидация, но когда заполняю форму, то кнопки не работают и в консоле выскакивает /assets/components/tickets/action.php 500 (Internal Server Error). Поискал варианты решения в инете, но так и не нашел. Попробовал изменить права на папки, тоже не сработало. Jquery установлен. Может кто сталкивался с такой проблемой. Сайт лежин на хостинге бегет
Сайт мнгопрофильного медицинского центра на minishop2
Всем привет!
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.
У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).
Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер
yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.
У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).
Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер
yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml
Как сделать загрузку изображения с фронтенда в 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. Какие права доступа нужно давать пользователям для удаление своих записей
Всем привет, сделал добавление и изменения записей со стороны фронтенда и хотел сделать еще удаление записей, но проблема в том, что у админа удаление работает, а у пользователей нет. В журнале ошибок выскакивает ошибка, что у пользователя нет прав на удаление. Когда пользователь нажимает на ссылку «Удалить», то появляется просто текст 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>
Может кто в курсе какие права доступа вставлять или может я вообще неправильно все делаю. В миникорзине msMCD обновляется цена и счетчик на лету, а pagetitle и изображение только при обновлении
Вопрос оказался в заголовке. Как исправить такую ситуацию?

upd — На своём скриншоте увидел что еще и {$item.sum} не показываетт

upd — На своём скриншоте увидел что еще и {$item.sum} не показываетт
MODX/AI Hackathon Part 2 (27 марта)
Дорогие друзья MODX,
Простите за мой ужасный русский – мне приходится полагаться на такие инструменты, как ChatGPT и Google Translate. 😅 Но несмотря на это, я хочу пригласить вас на MODX-мероприятие на следующей неделе!
Присутствовать лично может быть непросто, но, как и наши коллеги из России и Сербии, вы сможете присоединиться онлайн.
Ниже – перевод на русский, а затем оригинальный английский текст. Если перевод получился ужасным, у вас хотя бы есть исходник. 😉
Привет из Нидерландов!
Простите за мой ужасный русский – мне приходится полагаться на такие инструменты, как ChatGPT и Google Translate. 😅 Но несмотря на это, я хочу пригласить вас на MODX-мероприятие на следующей неделе!
Присутствовать лично может быть непросто, но, как и наши коллеги из России и Сербии, вы сможете присоединиться онлайн.
Ниже – перевод на русский, а затем оригинальный английский текст. Если перевод получился ужасным, у вас хотя бы есть исходник. 😉
Привет из Нидерландов!
MODX RSC | Telegram Karma Bot
Всем привет, хочу поделиться телеграм ботом, который был разработан для нашего основного чата.
🤖 Telegram-бот для управления кармой пользователей в чате. Бот добавляет или убирает карму, банит пользователей за рекламу и отображает топ пользователей по карме.

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

Что бы он ответил, при написании вопроса в любом порядке пишем «ИИ ответь тоже»
Все подробности на Github
🤖 Telegram-бот для управления кармой пользователей в чате. Бот добавляет или убирает карму, банит пользователей за рекламу и отображает топ пользователей по карме.

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

Что бы он ответил, при написании вопроса в любом порядке пишем «ИИ ответь тоже»
Все подробности на Github
Обновление Impex и Impex3
Всем привет.
Вышли версии 1.0.4 обоих пакетов с новыми полезными функциями.
Вышли версии 1.0.4 обоих пакетов с новыми полезными функциями.
- Добавлена возможность копирования существующей конфигурации.
- Добавлена возможность удаления файлов по отдельности (конфигураций, файлов импорта/экспорта, бэкапов).
- Добавлено системное событие OnImpexBeforeSetParentProduct, вызываемое перед обработкой родительской категории.
- Добавлено системное событие OnImpexBeforeFieldImport, вызываемое перед импортом конкретного поля.
- Во все события плагинов добавлена переменная $config_name — имя файла конфигурации.
- Добавлен плагин Impex с примерами.
- В конфигурации добавлен параметр category_id_field для указания поля категории, содержащее её уникальный идентификатор.
- В конфигурации добавлен параметр skip_new, для пропуска при импорте отсутствующих на сайте позиций (только обновление существующих).
- В плагине на событие OnImpexAfterResourceImport (после импорта ресурса) теперь доступен массив $data со всеми загруженными данными.
- Исправлены небольшие ошибки + добавилась проверка версии PHP и MODX при установке.
Создание товаров через ЛК из контекста web
Задача — дать пользователям возможность создавать товары через ЛК из контекста web.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.