Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Задумались, как пускать в админку сторонних людей (редакторов)

22 октября 2011 г. Ruslan Brest Просмотров: 7319 RSS 6
За кулисами текущих проектов » OpenCart

Появилась потребность и желание воспользоваться для наполнения каталога услугами людей. Которые не всегда могут быть хорошо технически подкованы - то есть вероятность ошибок, будем считать, велика. И рисковать уже имеющимся контентом не хочется, даже если человек -- полный зайка и ничего такого не хотел. Допустим, не так понял или считал, что будет лучше по-другому.

В Opencart возможность ограничения доступа базовые: можно разрешить/запретить просмотр и редактирование разных сущностей группе пользователей. Но если человеку доступно редактирование товаров, то он может удалить или внести изменения в том числе и старые. И это ограничить нельзя.

Пока додумались до варианта продублировать админки и базы, чтобы редакторам были доступны только их товары. И периодически эти товары будут переноситься в основную базу, а дополнительная -- очищаться.

Проблемы видны, но пока кажутся вполне нормально решаемыми:

  • в новой базе надо продублировать информацию о категориях, производителях, атрибутах и опциях из старой (с сохранением тех же ID);
  • мы и в основной базе убрали возможность вносить новые атрибуты и опции - они под жёстким контролем и впустую не заводятся. На новой базе аналогично. Но простым редакторам помимо прав на изменение товаров и файл-менеджер даны ещё права на изменение категорий (чтобы могли добавлять новые и оформлять их описанием и картинкой);
  • перенос категорий - ну что ж, придётся сравнивать дампы этой таблицы до и после. И новые вставлять в основную базу с теми же идентификаторами категорий. А изменённые - исправлять вручную;
  • дальше перенос товаров (таблиц product и product_description). Пока кажется, что всё должно пройти без приключений (контроля и конвертирования идентификаторов).

Надеюсь, что я не очень просчитался в прогнозах :)

Интересно было бы также узнать, есть ли что-то у Даниэля в планах по этому поводу. Потому что если придуманный перенос кроме потенциальной опасности ошибиться будет ещё и неудобен, придётся что-то делать с дополнительными ограничениями и оставаться в пределах одной базы.

P.S. Платные модули:

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Более 1000 готовых шаблонов Opencart для интернет-магазинов
Комментариев: 6
  1. Tonchi

    А что если сделать как в Data Lif, пользователь может добавлять и редактировать только свои товары. Только вот как это реализовать? ... пока идей ноль.

  2. Кстати не поможете кое-что исправить?. Никак не получается, с движком с недавнего времени.

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

    П.С. просто есть некий баг, колонка валюты лезет в корзину покупок.

    Спасибо за помощь.

  3. 2011-10-22 в 07:42:26 | Ruslan Brest

    Примерно так:

    в 155 строке catalog/view/theme/default/stylesheet/stylesheet.css

    #currency {

    color: rgb(153, 153, 153);

    left: 335px;

    line-height: 17px;

    position: absolute;

    top: 55px;

    width: 75px;

    }

    Пару отступов (left и top) надо изменить.

  4. Спасибо, Вы мне очень помогли!

  5. Ну как получилось что-то у вас с этой затеей? я облазил весь гугл и ничего полезного, кроме того модуля за 60$ не нашел. Еще есть русский за 200 руб, но в англ. версии он стоит 10 долларом, но там только запрет на удаление, а редактировать можно...

    у меня много магазинов в нете, но avto7.com.ua первый на опенкарте, и никак не могу реализовать такую фичу, на вордпрессе проще

    2011 год))) думаю должен быть какой то прогресс) поможете чем-либо?

  6. 2014-10-20 в 18:15:55 | Ruslan Brest

    В тот раз сделали примерно так, как написано в статье, но этот метод никому не посоветую - там как сапёр по минному полю, предельно аккуратно надо всё делать. Для реальных применений - не вариант.

    Как раз вчера вспоминал эту проблему - может модуль сделаем.

    Готовых решений не знаю, не искал с тех пор.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)