Интеграция с панелью ISPConfig

Запрос улучшений, интеграции с различными системами и т.д.
Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Интеграция с панелью ISPConfig

Сообщение Alex Keda » 2015-02-17 18:11:48

а его никак не найти потом чтоли?
по логину, например?
--
в KVMmanager тоже идентификаторы юзаются
обошёлся поиском по логину и вытаскиванием идентификатора
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Интеграция с панелью ISPConfig

Сообщение alezhen » 2015-02-17 20:38:44

Можно по логину запросить. Но потом парсить XML с кучей параметров нужно. Да и лишняя нагрузка получается. Было-бы неплохо добавить переменную в заказ. Но если никак, то буду парсить.

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="/remote/index.php" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:client_get_by_usernameResponse><return xsi:type="ns2:Map"><item><key xsi:type="xsd:string">userid</key><value xsi:type="xsd:string">36</value></item><item><key xsi:type="xsd:string">sys_userid</key><value xsi:type="xsd:string">1</value></item><item><key xsi:type="xsd:string">sys_groupid</key><value xsi:type="xsd:string">1</value></item><item><key xsi:type="xsd:string">sys_perm_user</key><value xsi:type="xsd:string">riud</value></item><item><key xsi:type="xsd:string">sys_perm_group</key><value xsi:type="xsd:string">riud</value></item><item><key xsi:type="xsd:string">sys_perm_other</key><value xsi:type="xsd:string"></value></item><item><key xsi:type="xsd:string">username</key><value xsi:type="xsd:string">tester</value></item><item><key xsi:type="xsd:string">passwort</key><value xsi:type="xsd:string">бла-бла-бла</value></item><item><key xsi:type="xsd:string">modules</key><value xsi:type="xsd:string">dashboard,mail,sites,dns,tools,help</value></item><item><key xsi:type="xsd:string">startmodule</key><value xsi:type="xsd:string">dashboard</value></item><item><key xsi:type="xsd:string">app_theme</key><value xsi:type="xsd:string">default</value></item><item><key xsi:type="xsd:string">typ</key><value xsi:type="xsd:string">user</value></item><item><key xsi:type="xsd:string">active</key><value xsi:type="xsd:string">1</value></item><item><key xsi:type="xsd:string">language</key><value xsi:type="xsd:string">ru</value></item><item><key xsi:type="xsd:string">groups</key><value xsi:type="xsd:string">36</value></item><item><key xsi:type="xsd:string">default_group</key><value xsi:type="xsd:string">36</value></item><item><key xsi:type="xsd:string">client_id</key><value xsi:type="xsd:string">35</value></item><item><key xsi:type="xsd:string">id_rsa</key><value xsi:type="xsd:string"></value></item><item><key xsi:type="xsd:string">ssh_rsa</key><value xsi:type="xsd:string"></value></item></return></ns1:client_get_by_usernameResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>


Отправлено спустя 1 час 45 минут 26 секунд:
Может тогда подскажете, как мне получить ИД отсюда:

Код: Выделить всё

<return xsi:type="ns2:Map"><item><key xsi:type="xsd:string">userid</key><value xsi:type="xsd:string">36</value></item>

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Интеграция с панелью ISPConfig

Сообщение Alex Keda » 2015-02-17 20:45:23

парсинг xml в библиотеках ISPmanager есть
с его серверами, общение как раз по xml и идёт

Код: Выделить всё

cat /tmp/a.txt | xmllint --format - 
........... 
        <item>
          <key xsi:type="xsd:string">default_group</key>
          <value xsi:type="xsd:string">36</value>
        </item>
        <item>
          <key xsi:type="xsd:string">client_id</key>
          <value xsi:type="xsd:string">35</value>
        </item>
        <item>
          <key xsi:type="xsd:string">id_rsa</key>
          <value xsi:type="xsd:string"/>
        </item>
........... 

вам надо чё-то про

Код: Выделить всё

$XML = $XML->ToArray('item');
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Интеграция с панелью ISPConfig

Сообщение alezhen » 2015-02-18 21:07:03

как вывести результат в debug или в лог? например результат разбора этого

Код: Выделить всё

$XML = $XML->ToArray('item');

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Интеграция с панелью ISPConfig

Сообщение Alex Keda » 2015-02-18 21:19:36

открываем многострадальную ./hosts/hosting/system/libs/IspManager5.php
и в строкке 58 видим такое

Код: Выделить всё

#Debug(SPrintF('[system/libs/IspManager5.php]: Resellers = %s',print_r($Resellers,true)));

вопросы? замечания? предложения? =)
--
строки можно просто выводить, а вот массивы через print_r(...,true)

Отправлено спустя 1 минуту 5 секунд:
какбы не просто так говорил про то что с нуля писать не стоит...
там почти везде есть отладка, в либах, и далеко не вся она закомметирована...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Интеграция с панелью ISPConfig

Сообщение alezhen » 2015-02-18 23:48:43

Код: Выделить всё

String_XML_Parse($Response);

может иметь параметры? в IspManager не нашел. а то она мне отдает в массив только последнее item

Код: Выделить всё

Array
(
    [SOAP-ENV:Envelope] => Array
        (
            [SOAP-ENV:Body] => Array
                (
                    [ns1:client_get_by_usernameResponse] => Array
                        (
                            [return] => Array
                                (
                                    [item] => Array
                                        (
                                            [key] => ssh_rsa
                                            [value] =>
                                        )

                                )

                        )

                )

        )

)

из всего полученного выше постом xml

Отправлено спустя 9 минут 23 секунды:
В каком файле она вообще лежит?

Код: Выделить всё

String_XML_Parse();


Отправлено спустя 18 минут 29 секунд:
все, нашел ее. там кроме установки кеширования ничего нет

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Интеграция с панелью ISPConfig

Сообщение alezhen » 2015-02-19 8:45:02

Все вопрос снят. Обошелся без String_XML_Parse();
Сделал своими силами:

Код: Выделить всё

$p = xml_parser_create();
xml_parse_into_struct($p, $Response, $vals);
xml_parser_free($p);
echo $vals[6][value];

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Интеграция с панелью ISPConfig

Сообщение Alex Keda » 2015-02-19 9:11:28

alezhen писал(а):Источник цитаты $XML = $XML->ToArray('item');

Не работает чтоли?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Интеграция с панелью ISPConfig

Сообщение alezhen » 2015-02-19 10:07:06

Alex Keda писал(а):
alezhen писал(а):Источник цитаты $XML = $XML->ToArray('item');

Не работает чтоли?

переменная в массив!
а переменная откуда? сначала парсим xml. а при парсинге отдает только последний item
выше уже описал-же проблему.
в любом случае, проблема решена.

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Интеграция с панелью ISPConfig

Сообщение Alex Keda » 2015-02-19 13:38:04

открываем многострадальную ./hosts/hosting/system/libs/IspManager5.php .....
и буквально на десяток строк выше, чем в предыдущей отсылке к ней же, видим

Код: Выделить всё

        $Response = Trim($Response['Body']);
        #-----------------------------------------------------------------------------
        $XML = String_XML_Parse($Response);
        if(Is_Exception($XML))
                return new gException('WRONG_SERVER_ANSWER',$Response,$XML);
        #-----------------------------------------------------------------------------
        $XML = $XML->ToArray('elem');

что не понятного в этом коде?
распарсили XML, получили объект.
объект преобразовали в массив, с разборкой по параметру elem

вам требовалось сделать тоже самое, только по параметру item

===
могу в четвёртый, помоему, раз, повториться - не надо изобретать с нуля велосипед с квадратными колёсами.
берёте готовую либу и просто подправляете функции под свои нужды.

елси у вас есть сервер где тестить - на день-два работы, вместе с вылизыванием кода.
Убей их всех! Бог потом рассортирует...


Вернуться в «Запрос улучшений»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя