Получить id модуля доставки, не обращаясь к БД

Здравствуйте, я разрабатываю модуль доставки и возникла необходимость получить id своего модуля в другом классе, а не в shipping. Но shipping класс нельзя отнаследовать и получить как-то номер, поэтому я обратился в БД. Оказалось, что это неправильно. Можете подсказать, как получить id модуля доставки (номер) по его названию к примеру. Мне это необходимо, чтобы получить логин и пароль из настроек и использовать их в отдельном классе.

Спасибо

8 ответов

  • 0
    Михаил Ушенин Webasyst 3 апреля 2014 03:40 #
    Что вы понимаете под "модулем доставки": настроенный в магазине способ доставки?
  • 0
    Vladimir Vladimir 3 апреля 2014 06:23 #
    Необходимо получить id моего плагина в другом классе. В том (другом) классе я делаю запрос курлом на авторизацию. Для авторизации мне необходимы логин и пароль, которые указываются в настройках моего модуля. Т.е. план такой: определяю id модуля, по id модуля получаю из настроек логин и пароль, с полученными данными делаю запрос курлом - получаю ответ. Не хотелось бы логику всех этих отправлений/получений делать в основном классе ---Shipping, а в отдельном
    • 0
      Михаил Ушенин Михаил Ушенин Webasyst 3 апреля 2014 07:01 #
      А зачем id плагина вообще "получать"? Он ведь всегда одинаковым будет? Разве нельзя его просто указать в коде вашего дополнительного класса в виде строки?
  • 0
    Vladimir Vladimir 4 апреля 2014 02:17 #
    Простите, что все таки отвлекаю вас, но никак не могу понять один момент основной: как получить в отдельном классе доступ к настройкам плагина, которые указывает клиент при установке. Т.е. у меня есть, к примеру, класс MyClass, в котором есть метод получения ответа от сторонней системы и в этом методе стороннего класса мне необходимо получить настройки, которые заполняются в конфигурации моего плагина. Я был бы безмерно благодарен за пример получения этих настроек моего плагина в стороннем классе.

    вот так примерно


    class MyClass{

    function getData(){

    $login = $this->login; //$this->login - это как я получил бы из класса shippingClass
    $password = $this->password; //$this->password - это как я получил бы из класса shippingClass

    $response = $this->sendRequest($login, $password);

    return $response;

    }

    }

    Так вот логин и пароль в данном классе из настроек получить я не могу. Поэтому я обратился к БД, прошелся по массиву подключенных модулей доставки и по совпадению со своим получил id, по id я смог получить настройки (к примеру id был 3).
    • 0
      Михаил Ушенин Михаил Ушенин Webasyst 4 апреля 2014 03:29 #
      Подозреваю, что неправильным оказалось обращение к настройкам плагина доставки в конкретном приложении (Shop-Script 5), тогда как плагин доставки является системным и может использоваться разными приложениями. Прежде чем получать параметры настройки плагина, нужно знать, каким приложением в данный момент задействуется плагин. Если это не магазин (теоретически, хотя таких других приложений в магазине Webasyst пока нет), то пытаться искать настройки плагина именно в таблице магазина некорректно.

      Заодно возникает вопрос: если пользовательские данные настройки плагина уже доступны вам в основном классе плагина, то почему не передавать их в качестве параметра в методы дополнительного класса?
      • 0
        Vladimir Vladimir Vladimir Vladimir 4 апреля 2014 09:30 #
        С вашей помощью и с помощью из вашего сапорта все получилось! Спасибо. Проблема решена

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите