Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
03 декабря 2020, 12:11
+1
Вариант 1. Выводить на фронте список задач в виде формы с чекбоксами и через FormIt отправлять админу, а он заходит в адмику и ручками в нужном ресурсе дублирует отметки. Из плюсов этого варианта могу отметить его простоту.
Вариант 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. Код не тестировал, написал прям тут, так что может где-то сбоить.
03 декабря 2020, 11:11
0
Организации должны отмечать выполненные задания на фронте или в админке?
02 декабря 2020, 14:35
0
Ну и отлично
02 декабря 2020, 14:32
0
{($total.cost | replace: ' ' : '') - ($total.weight | number: '0' : '.' : '')}
02 декабря 2020, 14:30
0
возможно, getCountRes считает все.
02 декабря 2020, 13:19
0
{($total.cost | replace: ' ' : '') - $total.weight}
02 декабря 2020, 12:56
0
$total.count вот общее количество, а вот $total.weight общий вес. Откуда $total.cart_cost и $total.cart_weight?
02 декабря 2020, 12:42
0
Откуда в массиве $total взялись cart_cost и cart_weight?
02 декабря 2020, 12:07
0
{$total.cart_cost - $total.cart_weight}
это ваши переменные?
02 декабря 2020, 11:41
0
{set $total = $_modx->runSnippet('pdoResources', ['parents'=>'2', 'setTotal' => '1', 'tpl' => 'tpl.pdo-more'])}
Это не работает, не знаю почему, проще написать свой модификатор, который будет возвращать количество дочерних элементов типа такого назовем его getCountRes
return count($modx->getCollection('modResource', array('parent' => $parent)));
В шаблоне
{set $total = $_modx->runSnippet('getCountRes', ['parent'=>'2'])}
{if $_modx->resource.menuindex < $total - 3}
{set $offset = $_modx->resource.menuindex}
{else}
{set $offset = 0}
{/if}
{'!pdoResources' | snippet:[
'parents'=>2,
'limit'=>3,
'depth'=>10,
'tpl'=>'tpl.pdo-more',
'includeTVs'=>'global-video,img',
'resources'=>'-'~$_modx->resource.id,
'sortby'=>'publishedon',
'sortdir'=>'DESC',
'offset'=>$offset
]}
02 декабря 2020, 11:16
0
обычный вызов не понимает что ты ему переменную передаешь.
02 декабря 2020, 11:16
0
Это логично, надо через fenom вызывать.
02 декабря 2020, 11:15
0
Я только что всё проверил всё работает. Ты плагин создавал в админке на вкладке элементы? Вот тут галочку поставил yadi.sk/i/xsqoAy8g1mG2LA?
02 декабря 2020, 11:05
0
Отдельно total и offset пробовал выводить?
02 декабря 2020, 11:02
0
Пардон, туплю
02 декабря 2020, 10:50
0
С телефона неудобно писать код, так что за опечатки сорри
02 декабря 2020, 10:45
0
switch ($modx->event->name) {
        case 'msOnChangeInCart':
            $modx->log(1, print_r($_POST,1));
            $tmp = $cart->get();
            $modx->log(1, print_r($tmp,1)); 
            $tmp[$key]['price'] = $_POST['price'];
            $cart->set($tmp);
         break;
}
02 декабря 2020, 10:23
0
В плагине напиши $modx->log(1, print_r($_POST,1) только журнал ошибок почисть сначала, потом посмотр что приходит. Так же $tmp распечатай, посмотри что там. Ну да, ты же в настройках плагина галочку поставил напротив события msOnChangeInCart?
02 декабря 2020, 10:09
0
Странно. На фронте поле для ввода цены добавил? name какой? В плагине $_post смотрел? Вообще дебаг какой-то проводил или просто код скопировал и он не сработал?