powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
4 сообщений из 4, страница 1 из 1
Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
    #33536705
Nick K. Ivanoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, отдаю для общественного пользования.
...
Рейтинг: 0 / 0
Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
    #33537189
Sergo Gromov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну хоть бы малейшее описалово было !
...
Рейтинг: 0 / 0
Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
    #33537494
Nick K. Ivanoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, но это классический MSM-activate. :-) Прямой доступ к глобалам.
Все комментарии на месте - в стиле PHP-DOC.
Функция example перечисляет все, что он может.
Кстати, сам example тоже из классического MSM-activate.
...
Рейтинг: 0 / 0
Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
    #33537692
Nick K. Ivanoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из MSM очень удобно возвращать в PHP данные сразу в виде массива во внутреннем представлении PHP, для подстановки в функцию unserialize().
Для этого были написаны пара макросов и пара функций на M:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#Define Tab $C( 9 )
#Define CrLf $C( 13 , 10 )
#Define Quot(%s) $C( 34 )_%s_$C( 34 )

#Define SerializeS(%s) "s:"_$l(%s)_":"_$$$Quot(%s)_";"
#Define SerializeI(%s) "i:"_%s_";"
.
Serialize(l) n c,i,t
 s c="a:"_$ll(l)_":{"
 f i= 1 : 1 :$ll(l) d
 . s c=c_$$$SerializeI((i- 1 )),t=$lg(l,i)
 . i t? 1 "a"1":"1.9N1":"1"{".E  s c=c_t
 . e  s c=c_$$$SerializeS($lg(l,i))
 q c_"}"
.
SerializeN(l,n) n c,i,t
 s c="a:"_$ll(l)_":{"
 f i= 1 : 1 :$ll(l) d
 . s c=c_$$$SerializeS($lg(n,i)),t=$lg(l,i)
 . i t? 1 "a"1":"1.9N1":"1"{".E  s c=c_t
 . e  s c=c_$$$SerializeS($lg(l,i))
 q c_"}"

Макрос SerializeS() возвращает string во внутреннем представлении PHP
Макрос SerializeI() возвращает integer во внутреннем представлении PHP
Функция Serialize() принимает на вход лист (lb) и возвращает массив для PHP
Функция SerializeN() принимает на вход два листа и возвращает ассоциативный массив, где первый лист - значения, а второй - ключи этих значений

Например:
Код: plaintext
1.
2.
3.
4.
5.
KontrAGget(c) n l,n,i
 s n=$lb("NAME","ADDRESS","INN")
 s l=$lb(^KontrAG(c,"NAME"),^KontrAG(c,"ADDRESS"),^KontrAG(c,"INN"))
 w $$SerializeN(l,n)
 q

Тогда в PHP выполняем:
Код: plaintext
1.
2.
$inp_KontrAG='12'; // Т.е. ключ первого уровня
$Agent=unserialize($msm->execute('d KontrAGget^ManyMaker('.$inp_KontrAG.')'));
И получаем $Agent['NAME'], $Agent['ADDRESS'], $Agent['INN']
с которыми дальше и работаем.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Отдам в хорошие руки: PHP-класс для работы с MSM-activate.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]