Всем привет у нас есть инпуты где хотим поставить профили пользователей. Пока там видны все администраторы. Есть 3 вида пользоватлей как я понимаю: V-vendor C-покупатель и A-admin Где находится схема этих пользователей? И в каком файле добавить вид пользователя, например K-курьер S- складовщик?
Как я понимаю сначало нужно создать схему для определения пользователя. Потом уже привязать к $usergroups и написать функцию выполнения задач.
Отдельной схемы для типов пользователей нет. Просто буква (значение для колонки user_type) и в коде все условия по этому параметру
Жаль. Не удобно так то. Тогда, чтобы создать определенную группу пользователей. Нам нужно просто указать в функциях и в контроллеру определенную букву и назвать его? Потом каждый раз в других функциях и контроллерах определять этого юзера?
Да. Если правильно помню, по умолчанию у такого пользователя будет функционал обычного покупателя. И модулем уже расширять его нужно
Спасибо за ответ! Посмотрел что да как, все функции пользователя и определение вендора и админа находится в fn.multivendor.php прочитав получил несколько седых волос
Подумываю вывести только админа как курьера. Потому что будет сложно не ошибившись написать другого user_type
А почему не сделать через user_group?
User_type - это к какой части пользователь имеет доступ: админка, фронт, админка вендора в мульти вендоре. То есть по идее, ваш функционал больше имеет отношения именно к user_group
А вот это интересно! Нужно будет посмотреть, какие данные она в себе имеет. Потом по ним ориентироваться в функционале. А вы пробовали так делать?
Сейчас почти сделал так чтобы вместо issuer_id в бд она сохраняла courier_id благодаря этому она должна поставить админа на курьерах и появится возможность выбрать курьера. Вообще я ее сделал. Данные сохраняются т.е id админа сохранятся в таблице но при сохранении она исчезает из picker
На picker не видится пользователь при сохранении order.details сбрасывается. Хотя в БД сохраняется. Как сделать так чтобы не сбрасывалась? Сижу над этим уже 2 час
А все получилось тупил на одной функции
Сейчас работаю над поиском этих пользователей.
Получаю ошибку: Unknown column ‘issuers.firstname’ in ‘field list’
Дополнил свой fn.cart.php. Так же проверил на не заполненность формы, типо там нет такого админа и все нормально выводит.
Нашел где ошибается:
if (in_array('issuers', $params['extra'], true )) {
$fields[] = "CONCAT(issuers.firstname, ' ', issuers.lastname) as issuer_name";
$fields[] = 'issuers.email as issuer_email';
}
if (in_array('couriers', $params['extra'], true)) {
$fields[] = "CONCAT(couriers.firstname, ' ', couriers.lastname) as courier_name";
$fields[] = 'couriers.email as courier_email';
}
if (in_array('warehousemans', $params['extra'], true)) {
$fields[] = "CONCAT(warehousemans.firstname, ' ', warehousemans.lastname) as warehouseman_name";
$fields[] = 'warehousemans.email as warehouseman_email';
}
Изначально в экста добавил данные:
$default_params = [
'page' => 1,
'items_per_page' => $items_per_page,
'extra' => ['issuers', 'invoice_docs', 'memo_docs', 'couriers', 'warehousemans'],
];
``` и
if (!empty($params[‘issuer’]) && !in_array(‘issuers’, $params[‘extra’], true)) {
$params[‘extra’][] = ‘issuers’;
}
if (!empty($params['courier']) && !in_array('couriers', $params['extra'], true)) {
$params['extra'][] = 'couriers';
}
if (!empty($params['warehouseman']) && !in_array('warehousemans', $params['extra'], true)) {
$params['extra'][] = 'warehousemans';
}
Потом еще добавил:
if (isset($params[‘issuer’]) && fn_string_not_empty($params[‘issuer’])) {
$issuer_name = fn_explode(’ ', $params[‘issuer’]);
$issuer_name = array_filter($issuer_name, “fn_string_not_empty”);
if (sizeof($issuer_name) == 2) {
$_condition .= db_quote(" $union_condition (issuers.firstname LIKE ?l AND issuers.lastname LIKE ?l)“, array_shift($issuer_name) . “%”, “%” . array_shift($issuer_name) . “%”);
} else {
$issuer_name = array_shift($issuer_name);
$_condition .= db_quote(” $union_condition (issuers.firstname LIKE ?l OR issuers.lastname LIKE ?l)", $issuer_name . “%”, “%” . $issuer_name . “%”);
}
}
if (isset($params['courier']) && fn_string_not_empty($params['courier'])) {
$courier_name = fn_explode(' ', $params['courier']);
$courier_name = array_filter($courier_name, "fn_string_not_empty");
if (sizeof($courier_name) == 2) {
$_condition .= db_quote(" $union_condition (couriers.firstname LIKE ?l AND couriers.lastname LIKE ?l)", array_shift($courier_name) . "%", "%" . array_shift($courier_name) . "%");
} else {
$courier_name = array_shift($courier_name);
$_condition .= db_quote(" $union_condition (couriers.firstname LIKE ?l OR couriers.lastname LIKE ?l)", $courier_name . "%", "%" . $courier_name . "%");
}
}
if (isset($params['warehouseman']) && fn_string_not_empty($params['warehouseman'])) {
$warehouseman_name = fn_explode(' ', $params['warehouseman']);
$warehouseman_name = array_filter($warehouseman_name, "fn_string_not_empty");
if (sizeof($warehouseman_name) == 2) {
$_condition .= db_quote(" $union_condition (warehousemans.firstname LIKE ?l AND warehousemans.lastname LIKE ?l)", array_shift($warehouseman_name) . "%", "%" . array_shift($warehouseman_name) . "%");
} else {
$warehouseman_name = array_shift($warehouseman_name);
$_condition .= db_quote(" $union_condition (warehousemans.firstname LIKE ?l OR warehousemans.lastname LIKE ?l)", $warehouseman_name . "%", "%" . $warehouseman_name . "%");
}
}
Может кто нибудь знает как решить эту проблему?
Могу скинуть полный код fn.cart.php