globestar

Какой пользователь добавил товар?

Рекомендуемые сообщения

globestar    6

есть созданая группа пользователей, и в не й три пользователя, у каждого есть права добавления товара. Как вывести в карточке товара кто добавил товар?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    130

есть созданая группа пользователей, и в не й три пользователя, у каждого есть права добавления товара. Как вывести в карточке товара кто добавил товар?

 

Вам нужно связать пользователя с товаром, к примеру создав поле user_id в таблице product или вынести в отдельную таблицу создав в ней два поля product_id и user_id

 

Ну и, соответственно, небольшие "допилы" контроллера и модели, где бы вносилось id пользователя в созданное поле, при добавлении товара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
globestar    6

так давайте по порядку, может и еще кому то пригодиться.

1. создаем ALTER TABLE `product` ADD `user_id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `shipping`

2. admin/comtroller/catalog/product.php функция добавления продукта.

public function add() {
		$this->language->load('catalog/product');

		$this->document->setTitle($this->language->get('heading_title'));

		$this->load->model('catalog/product');

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
			$this->model_catalog_product->addProduct($this->request->post);

			$this->session->data['success'] = $this->language->get('text_success');

			$url = '';

			if (isset($this->request->get['filter_name'])) {
				$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
			}

			if (isset($this->request->get['filter_model'])) {
				$url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8'));
			}

			if (isset($this->request->get['filter_price'])) {
				$url .= '&filter_price=' . $this->request->get['filter_price'];
			}

			if (isset($this->request->get['filter_quantity'])) {
				$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];
			}

			if (isset($this->request->get['filter_status'])) {
				$url .= '&filter_status=' . $this->request->get['filter_status'];
			}

			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}

			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}

			$this->response->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));
		}

		$this->getForm();
	}

как мне определить юзера по id и добавить его в таблицу ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    130

так давайте по порядку, может и еще кому то пригодиться.

1. создаем ALTER TABLE `product` ADD `user_id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `shipping`

2. admin/comtroller/catalog/product.php функция добавления продукта.

как мне определить юзера по id и добавить его в таблицу ?

 

Поле user_id лучше сделать тип int размер 11

 

Можно сразу править модель, id пользователя берем из сессии - файл admin/model/catalog/product.php

 

В функцию addProduct, где идет вставка в таблицу product,  добавить

, user_id = '" . (int) $this->session->data['user_id'] . "'

product_user.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    979

$this->user->getID() - более верно

 

$this->session->data['user_id'] - это и верно и нет.

 

Кроме productAdd

 

есть еще  copy

 

так вот после copy нужно апдейтить user_id

 

Здесь еще есть одно замечание..

 

Как по мне лучше не user_id, а username

Это даст возможность не джойнить таблицу user

И в случае удаления user останется хоть какой-то читабельный след

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    130

Согласен, нюансов много. Посредственный вопрос - посредственный ответ.

 

Речь шла о добавлении товара и кто добавил.

 

username возможно и верно, но с точки зрения построения структуры БД, не совсем правильно.

 

PS а если имя пользователя изменилось?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    979

PS а если имя пользователя изменилось?

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

 

Но  для систем общего назначения увы..

 

И.. ну мне назовут магазины с 5 менеджерами? В две смены? а в сезон и три?

И там  где..

 

вот такой банер при логине в админку, с регистрацией события - "япрочитал"

 

Приступая к работе, я принимаю соглашение о своей ответственности за:

  • конфиденциальность информации, поступающей от клиентов,
  • точность внесения данных,
  • их сохранность,
  • исключение возможности доступа к ним и использования другими лицами;
толерантность - исключение возможности:
  • распространения не правдивой или непроверенной информации об организации, которую представляю,
  • использования ресурсов организации для размещения рекламы, пропаганды продукции других организаций или частных лиц,
  • умышленных манипуляций со скидками, акциями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    130

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

 

Опять же, что нужно в итоге владельцу сайта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    979

Я бы на критические события, такие как добавление, удаление, изменение ввел бы журнал действий пользователя

Тогшда бы отпала необходимость добавлять поля..

Потому что дальше захочется знать, а кто создал категорию, производителя, статью,

Или... КТО удалил и заказ?

 

Вот где необходим явный user_id, так это в заказах, а точнее в истории

 

Вот здесь, уже действительно есть где развернуться..

Учет работы менджеров

 

 

кстати, то что я здесь описываю, у меня есть реализованное, а не просто для "поговорить"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    130

Ну так может поделитесь с ТС платно/бесплатно для решения его проблемы, а то мы тут демагогию разводим :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    979

так я ж бесплатно сказал в каких местах

Указал точки входа

 

 

А платно.. Так случилось, что это накоплено за да года работы и учесть весь объем работы проблематично.  проще было все сразу в код писать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу