Как реализовать личную панель пользователя со страницей выполненных заданий?
Всем привет.
Имеется готовы сайт на MODX Revo.
Появилась задача, чтобы примерно 15 организаций заходили на сайт под своим логином в личную админпанель на данном сайте (1 логин на 1 организацию) и могли отмечать выполненные задания галочкой, затем нажимать на кнопку Сохранить.
Для админа должна быть создана страничка для контроля выполненных заданий этими организациями.
Я не очень опытен в подобных проектах, поэтому прошу совета как это можно реализовать и какими компонентами.
Прошу хотя бы 2-3 предложения, чтобы было понятно в какую сторону двигаться.
У меня есть идея, но из-за недостатка опыта опасаюсь навелосипедить код, с которым будет трудно работать.
Идея такая:
создаем в дереве ресурсов папку/коллекцию «Задания»
в ней создаем странички с названием организации и шаблоном, который отобразит задачи в виде списка задач, которые надо отмечать галочками
к каждой странице даем соответствующий доступ пользователя одноименной организации
Примерно так? Как сохранять страницы с выполненными задачами? Вот это не понимаю.
Буду очень рад советам!
Имеется готовы сайт на MODX Revo.
Появилась задача, чтобы примерно 15 организаций заходили на сайт под своим логином в личную админпанель на данном сайте (1 логин на 1 организацию) и могли отмечать выполненные задания галочкой, затем нажимать на кнопку Сохранить.
Я не очень опытен в подобных проектах, поэтому прошу совета как это можно реализовать и какими компонентами.
Прошу хотя бы 2-3 предложения, чтобы было понятно в какую сторону двигаться.
У меня есть идея, но из-за недостатка опыта опасаюсь навелосипедить код, с которым будет трудно работать.
Идея такая:
создаем в дереве ресурсов папку/коллекцию «Задания»
в ней создаем странички с названием организации и шаблоном, который отобразит задачи в виде списка задач, которые надо отмечать галочками
к каждой странице даем соответствующий доступ пользователя одноименной организации
Примерно так? Как сохранять страницы с выполненными задачами? Вот это не понимаю.
Буду очень рад советам!
Комментарии: 5
Организации должны отмечать выполненные задания на фронте или в админке?
Привет,
Нет, только на фронте.
Нет, только на фронте.
Вариант 1. Выводить на фронте список задач в виде формы с чекбоксами и через FormIt отправлять админу, а он заходит в адмику и ручками в нужном ресурсе дублирует отметки. Из плюсов этого варианта могу отметить его простоту.
Вариант 2. Все тоже самое, но использовать в место FormIt свой сниппет (в заметке есть пример вызова), который будет делать следующее
P.S. Код не тестировал, написал прям тут, так что может где-то сбоить.
Вариант 2. Все тоже самое, но использовать в место FormIt свой сниппет (в заметке есть пример вызова), который будет делать следующее
$resource = $modx->getObject('modResource', $_POST['id']); // получать ресурс со списком заданий.
// задания ты будешь вероятно хранить в migx поэтому
$tasks = json_decode($resource->getTVValue('taskList'),1);
foreach($_POST['tasks'] as $key => $value){
$tasks[$key]['on'] = $value;
}
На фронте соответственно форма с полями<form class="ajax_form" method="post">
<label>
Задача 1
<input type="checkbox" name="tasks[]" value="1">
</label>
<label>
Задача 2
<input type="checkbox" name="tasks[]" value="1">
</label>
<label>
Задача 3
<input type="checkbox" name="tasks[]" value="1">
</label>
</form>
И в конфигурации migx должны быть как минимум два поляВкладки формы
[
{
"caption": "Заголовок",
"fields": [
{
"field": "task",
"caption": "Задание",
"inputTVtype": "text"
},
{
"field": "on",
"caption": "Выполнено?",
"inputTVtype": "checkbox",
"inputOptionValues": "Да==1"
}
]
}
]
Разметка колонок
[{
"header": "Задание",
"dataIndex": "task"
},{
"header": "Выполнено?",
"dataIndex": "on"
}]
Вариант 3. Добавить к варианту два возможность для организаций самостоятельно регистрироваться.P.S. Код не тестировал, написал прям тут, так что может где-то сбоить.
Артур, Большое Тебе Спасибо за подсказку и помощь!
Со всем этим справлюсь самостоятельно. Просто не понимал как всё склеить вместе.
Со всем этим справлюсь самостоятельно. Просто не понимал как всё склеить вместе.
Рад что помог, удачи.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.