| 1 |
/* |
/* |
| 2 |
$Revision$ |
$Revision$ |
| 3 |
VPAL: Visiome Platform Abstract Layer |
XNPAL: XooNiPs Platform Abstract Layer |
| 4 |
|
|
| 5 |
zend_parse_parametersはphp4.1.0が必要 |
zend_parse_parametersはphp4.1.0が必要 |
| 6 |
.soファイルは外から見えない場所に置くべき。 |
.soファイルは外から見えない場所に置くべき。 |
| 15 |
#include "session.h" |
#include "session.h" |
| 16 |
#include "group.h" |
#include "group.h" |
| 17 |
#include "account.h" |
#include "account.h" |
| 18 |
#include "vpal.h" |
#include "xnpal.h" |
| 19 |
|
|
| 20 |
// for inet_aton |
// for inet_aton |
| 21 |
#include <sys/socket.h> |
#include <sys/socket.h> |
| 24 |
|
|
| 25 |
// global variables |
// global variables |
| 26 |
|
|
| 27 |
PHP_MSHUTDOWN_FUNCTION(vpalmod) |
PHP_MSHUTDOWN_FUNCTION(xnpalmod) |
| 28 |
{ |
{ |
| 29 |
uninitializeDB(); |
uninitializeDB(); |
| 30 |
return SUCCESS; |
return SUCCESS; |
| 33 |
/* declaration of functions to be exported */ |
/* declaration of functions to be exported */ |
| 34 |
extern "C" { |
extern "C" { |
| 35 |
ZEND_FUNCTION(first_module ); |
ZEND_FUNCTION(first_module ); |
| 36 |
ZEND_FUNCTION(vp_initialize_db ); |
ZEND_FUNCTION(xnp_initialize_db ); |
| 37 |
ZEND_FUNCTION(vp_login_user ); |
ZEND_FUNCTION(xnp_login_user ); |
| 38 |
ZEND_FUNCTION(vp_logout_user ); |
ZEND_FUNCTION(xnp_logout_user ); |
| 39 |
ZEND_FUNCTION(vp_create_session ); |
ZEND_FUNCTION(xnp_create_session ); |
| 40 |
ZEND_FUNCTION(vp_get_session ); |
ZEND_FUNCTION(xnp_get_session ); |
| 41 |
ZEND_FUNCTION(vp_is_activated ); |
ZEND_FUNCTION(xnp_is_activated ); |
| 42 |
ZEND_FUNCTION(vp_activate ); |
ZEND_FUNCTION(xnp_activate ); |
| 43 |
ZEND_FUNCTION(vp_get_account_count ); |
ZEND_FUNCTION(xnp_get_account_count ); |
| 44 |
ZEND_FUNCTION(vp_delete_account ); |
ZEND_FUNCTION(xnp_delete_account ); |
| 45 |
ZEND_FUNCTION(vp_get_account ); |
ZEND_FUNCTION(xnp_get_account ); |
| 46 |
ZEND_FUNCTION(vp_get_accounts ); |
ZEND_FUNCTION(xnp_get_accounts ); |
| 47 |
ZEND_FUNCTION(vp_insert_account ); |
ZEND_FUNCTION(xnp_insert_account ); |
| 48 |
ZEND_FUNCTION(vp_update_account ); |
ZEND_FUNCTION(xnp_update_account ); |
| 49 |
ZEND_FUNCTION(vp_dump_uids ); |
ZEND_FUNCTION(xnp_dump_uids ); |
| 50 |
ZEND_FUNCTION(vp_get_group_count ); |
ZEND_FUNCTION(xnp_get_group_count ); |
| 51 |
ZEND_FUNCTION(vp_get_groups_by_uid ); |
ZEND_FUNCTION(xnp_get_groups_by_uid ); |
| 52 |
ZEND_FUNCTION(vp_is_group_admin ); |
ZEND_FUNCTION(xnp_is_group_admin ); |
| 53 |
ZEND_FUNCTION(vp_dump_gids ); |
ZEND_FUNCTION(xnp_dump_gids ); |
| 54 |
ZEND_FUNCTION(vp_dump_group_admins ); |
ZEND_FUNCTION(xnp_dump_group_admins ); |
| 55 |
ZEND_FUNCTION(vp_delete_member ); |
ZEND_FUNCTION(xnp_delete_member ); |
| 56 |
ZEND_FUNCTION(vp_insert_member ); |
ZEND_FUNCTION(xnp_insert_member ); |
| 57 |
ZEND_FUNCTION(vp_get_members ); |
ZEND_FUNCTION(xnp_get_members ); |
| 58 |
ZEND_FUNCTION(vp_delete_group ); |
ZEND_FUNCTION(xnp_delete_group ); |
| 59 |
ZEND_FUNCTION(vp_insert_group ); |
ZEND_FUNCTION(xnp_insert_group ); |
| 60 |
ZEND_FUNCTION(vp_update_group ); |
ZEND_FUNCTION(xnp_update_group ); |
| 61 |
ZEND_FUNCTION(vp_get_group ); |
ZEND_FUNCTION(xnp_get_group ); |
| 62 |
ZEND_FUNCTION(vp_get_groups ); |
ZEND_FUNCTION(xnp_get_groups ); |
| 63 |
ZEND_FUNCTION(vp_is_moderator ); |
ZEND_FUNCTION(xnp_is_moderator ); |
| 64 |
ZEND_FUNCTION(vp_get_uid ); |
ZEND_FUNCTION(xnp_get_uid ); |
| 65 |
|
|
| 66 |
ZEND_FUNCTION(vp_is_valid_session_id ); |
ZEND_FUNCTION(xnp_is_valid_session_id ); |
| 67 |
ZEND_FUNCTION(vp_get_last_error_string ); |
ZEND_FUNCTION(xnp_get_last_error_string ); |
| 68 |
|
|
| 69 |
ZEND_FUNCTION(vp_test_criteria ); |
ZEND_FUNCTION(xnp_test_criteria ); |
| 70 |
ZEND_FUNCTION(vp_test_uids ); |
ZEND_FUNCTION(xnp_test_uids ); |
| 71 |
}; |
}; |
| 72 |
/* compiled function list so Zend knows what's in this module */ |
/* compiled function list so Zend knows what's in this module */ |
| 73 |
zend_function_entry vpalmod_functions[] = |
zend_function_entry xnpalmod_functions[] = |
| 74 |
{ |
{ |
| 75 |
ZEND_FE(first_module ,NULL) |
ZEND_FE(first_module ,NULL) |
| 76 |
ZEND_FE(vp_initialize_db ,NULL) |
ZEND_FE(xnp_initialize_db ,NULL) |
| 77 |
ZEND_FE(vp_login_user ,NULL) |
ZEND_FE(xnp_login_user ,NULL) |
| 78 |
ZEND_FE(vp_logout_user ,NULL) |
ZEND_FE(xnp_logout_user ,NULL) |
| 79 |
ZEND_FE(vp_create_session ,NULL) |
ZEND_FE(xnp_create_session ,NULL) |
| 80 |
ZEND_FE(vp_get_session ,NULL) |
ZEND_FE(xnp_get_session ,NULL) |
| 81 |
ZEND_FE(vp_is_activated ,NULL) |
ZEND_FE(xnp_is_activated ,NULL) |
| 82 |
ZEND_FE(vp_activate ,NULL) |
ZEND_FE(xnp_activate ,NULL) |
| 83 |
ZEND_FE(vp_get_account_count ,NULL) |
ZEND_FE(xnp_get_account_count ,NULL) |
| 84 |
ZEND_FE(vp_delete_account ,NULL) |
ZEND_FE(xnp_delete_account ,NULL) |
| 85 |
ZEND_FE(vp_get_account ,NULL) |
ZEND_FE(xnp_get_account ,NULL) |
| 86 |
ZEND_FE(vp_get_accounts ,NULL) |
ZEND_FE(xnp_get_accounts ,NULL) |
| 87 |
ZEND_FE(vp_insert_account ,NULL) |
ZEND_FE(xnp_insert_account ,NULL) |
| 88 |
ZEND_FE(vp_update_account ,NULL) |
ZEND_FE(xnp_update_account ,NULL) |
| 89 |
ZEND_FE(vp_dump_uids ,NULL) |
ZEND_FE(xnp_dump_uids ,NULL) |
| 90 |
ZEND_FE(vp_get_group_count ,NULL) |
ZEND_FE(xnp_get_group_count ,NULL) |
| 91 |
ZEND_FE(vp_get_groups_by_uid ,NULL) |
ZEND_FE(xnp_get_groups_by_uid ,NULL) |
| 92 |
ZEND_FE(vp_is_group_admin ,NULL) |
ZEND_FE(xnp_is_group_admin ,NULL) |
| 93 |
ZEND_FE(vp_dump_gids ,NULL) |
ZEND_FE(xnp_dump_gids ,NULL) |
| 94 |
ZEND_FE(vp_dump_group_admins ,NULL) |
ZEND_FE(xnp_dump_group_admins ,NULL) |
| 95 |
ZEND_FE(vp_delete_member ,NULL) |
ZEND_FE(xnp_delete_member ,NULL) |
| 96 |
ZEND_FE(vp_insert_member ,NULL) |
ZEND_FE(xnp_insert_member ,NULL) |
| 97 |
ZEND_FE(vp_get_members ,NULL) |
ZEND_FE(xnp_get_members ,NULL) |
| 98 |
ZEND_FE(vp_delete_group ,NULL) |
ZEND_FE(xnp_delete_group ,NULL) |
| 99 |
ZEND_FE(vp_insert_group ,NULL) |
ZEND_FE(xnp_insert_group ,NULL) |
| 100 |
ZEND_FE(vp_update_group ,NULL) |
ZEND_FE(xnp_update_group ,NULL) |
| 101 |
ZEND_FE(vp_get_group ,NULL) |
ZEND_FE(xnp_get_group ,NULL) |
| 102 |
ZEND_FE(vp_get_groups ,NULL) |
ZEND_FE(xnp_get_groups ,NULL) |
| 103 |
ZEND_FE(vp_is_moderator ,NULL) |
ZEND_FE(xnp_is_moderator ,NULL) |
| 104 |
ZEND_FE(vp_get_uid ,NULL) |
ZEND_FE(xnp_get_uid ,NULL) |
| 105 |
ZEND_FE(vp_is_valid_session_id ,NULL) |
ZEND_FE(xnp_is_valid_session_id ,NULL) |
| 106 |
ZEND_FE(vp_get_last_error_string ,NULL) |
ZEND_FE(xnp_get_last_error_string ,NULL) |
| 107 |
ZEND_FE(vp_test_criteria ,NULL) |
ZEND_FE(xnp_test_criteria ,NULL) |
| 108 |
ZEND_FE(vp_test_uids ,NULL) |
ZEND_FE(xnp_test_uids ,NULL) |
| 109 |
{NULL, NULL, NULL} |
{NULL, NULL, NULL} |
| 110 |
}; |
}; |
| 111 |
|
|
| 112 |
/* compiled module information */ |
/* compiled module information */ |
| 113 |
zend_module_entry vpalmod_module_entry = |
zend_module_entry xnpalmod_module_entry = |
| 114 |
{ |
{ |
| 115 |
STANDARD_MODULE_HEADER, |
STANDARD_MODULE_HEADER, |
| 116 |
"Visiome Platform Abstract Layer", |
"Visiome Platform Abstract Layer", |
| 117 |
vpalmod_functions, |
xnpalmod_functions, |
| 118 |
NULL, |
NULL, |
| 119 |
PHP_MSHUTDOWN(vpalmod), |
PHP_MSHUTDOWN(xnpalmod), |
| 120 |
NULL, |
NULL, |
| 121 |
NULL, |
NULL, |
| 122 |
NULL, |
NULL, |
| 127 |
/* implement standard "stub" routine to introduce ourselves to Zend */ |
/* implement standard "stub" routine to introduce ourselves to Zend */ |
| 128 |
#if COMPILE_DL_FIRST_MODULE |
#if COMPILE_DL_FIRST_MODULE |
| 129 |
BEGIN_EXTERN_C() |
BEGIN_EXTERN_C() |
| 130 |
ZEND_GET_MODULE(vpalmod) |
ZEND_GET_MODULE(xnpalmod) |
| 131 |
END_EXTERN_C() |
END_EXTERN_C() |
| 132 |
#endif |
#endif |
| 133 |
|
|
| 733 |
|
|
| 734 |
|
|
| 735 |
/** 指定したグループの情報を得る<br> |
/** 指定したグループの情報を得る<br> |
| 736 |
int vp_get_group( int sid, int gid, array group ); |
int xnp_get_group( int sid, int gid, array group ); |
| 737 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 738 |
@param gid VP の group_id |
@param gid XNP の group_id |
| 739 |
@param group 結果を受け取る配列 |
@param group 結果を受け取る配列 |
| 740 |
@return 0 success <br> |
@return 0 success <br> |
| 741 |
*/ |
*/ |
| 742 |
ZEND_FUNCTION(vp_get_group) |
ZEND_FUNCTION(xnp_get_group) |
| 743 |
{ |
{ |
| 744 |
long sid, gid; |
long sid, gid; |
| 745 |
zval *zgroup; |
zval *zgroup; |
| 761 |
|
|
| 762 |
|
|
| 763 |
/** 指定したグループ(複数)の情報を得る<br> |
/** 指定したグループ(複数)の情報を得る<br> |
| 764 |
vp_get_groups( int sid, array gids, array criteria, array groups ); |
xnp_get_groups( int sid, array gids, array criteria, array groups ); |
| 765 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 766 |
@param gids VP の group_id の配列 |
@param gids XNP の group_id の配列 |
| 767 |
@param criteria 条件 |
@param criteria 条件 |
| 768 |
@param groups 結果を受け取る配列の配列 |
@param groups 結果を受け取る配列の配列 |
| 769 |
@return 0 success <br> |
@return 0 success <br> |
| 770 |
*/ |
*/ |
| 771 |
ZEND_FUNCTION(vp_get_groups) |
ZEND_FUNCTION(xnp_get_groups) |
| 772 |
{ |
{ |
| 773 |
result_t result; |
result_t result; |
| 774 |
long sid, uid; |
long sid, uid; |
| 815 |
|
|
| 816 |
|
|
| 817 |
/** 指定したユーザがモデレータかどうかを調べる<br> |
/** 指定したユーザがモデレータかどうかを調べる<br> |
| 818 |
int vp_is_moderator(int sid, int uid) |
int xnp_is_moderator(int sid, int uid) |
| 819 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 820 |
@param uid xoops の uid (xoops_users.uid) |
@param uid xoops の uid (xoops_users.uid) |
| 821 |
@return true モデレータである <br> |
@return true モデレータである <br> |
| 822 |
*/ |
*/ |
| 823 |
ZEND_FUNCTION(vp_is_moderator) |
ZEND_FUNCTION(xnp_is_moderator) |
| 824 |
{ |
{ |
| 825 |
long vpSessionID; |
long xnpSessionID; |
| 826 |
userid_t uid; |
userid_t uid; |
| 827 |
|
|
| 828 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", |
| 829 |
&vpSessionID, &uid) == FAILURE) { |
&xnpSessionID, &uid) == FAILURE) { |
| 830 |
return; |
return; |
| 831 |
} |
} |
| 832 |
|
|
| 833 |
bool result = isModerator( (sessionid_t)vpSessionID, uid ); |
bool result = isModerator( (sessionid_t)xnpSessionID, uid ); |
| 834 |
RETURN_BOOL(result) |
RETURN_BOOL(result) |
| 835 |
} |
} |
| 836 |
|
|
| 837 |
/** ユーザ名からuidを調べる<br> |
/** ユーザ名からuidを調べる<br> |
| 838 |
int vp_get_uid(string uname,int &uid) |
int xnp_get_uid(string uname,int &uid) |
| 839 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 840 |
@param uname xoops の uname (xoops_users.uname) |
@param uname xoops の uname (xoops_users.uname) |
| 841 |
@param uid xoops の uid (xoops_users.uid) を受け取る変数 |
@param uid xoops の uid (xoops_users.uid) を受け取る変数 |
| 842 |
@return 0 success |
@return 0 success |
| 843 |
*/ |
*/ |
| 844 |
ZEND_FUNCTION(vp_get_uid) |
ZEND_FUNCTION(xnp_get_uid) |
| 845 |
{ |
{ |
| 846 |
char *uname; |
char *uname; |
| 847 |
int unameLen; |
int unameLen; |
| 864 |
RETURN_LONG((long)result); |
RETURN_LONG((long)result); |
| 865 |
} |
} |
| 866 |
|
|
| 867 |
ZEND_FUNCTION(vp_test_criteria) |
ZEND_FUNCTION(xnp_test_criteria) |
| 868 |
{ |
{ |
| 869 |
zval *z; |
zval *z; |
| 870 |
|
|
| 878 |
RETURN_FALSE |
RETURN_FALSE |
| 879 |
} |
} |
| 880 |
|
|
| 881 |
ZEND_FUNCTION(vp_test_uids) |
ZEND_FUNCTION(xnp_test_uids) |
| 882 |
{ |
{ |
| 883 |
zval *z; |
zval *z; |
| 884 |
|
|
| 903 |
@param prefix XOOPS DB のprefix。 |
@param prefix XOOPS DB のprefix。 |
| 904 |
@return 0 success <br> |
@return 0 success <br> |
| 905 |
*/ |
*/ |
| 906 |
ZEND_FUNCTION(vp_initialize_db) |
ZEND_FUNCTION(xnp_initialize_db) |
| 907 |
{ |
{ |
| 908 |
zval **parameters[5]; |
zval **parameters[5]; |
| 909 |
char *host; |
char *host; |
| 942 |
} |
} |
| 943 |
|
|
| 944 |
/** ログインする。<br> |
/** ログインする。<br> |
| 945 |
int vp_login_user(string uname, string password, int &session_id) |
int xnp_login_user(string uname, string password, int &session_id) |
| 946 |
@param uname ユーザ名(xoops_users.uname) |
@param uname ユーザ名(xoops_users.uname) |
| 947 |
@param password パスワード(md5(password)=xoops_users.pass) |
@param password パスワード(md5(password)=xoops_users.pass) |
| 948 |
@return 0 success |
@return 0 success |
| 949 |
*/ |
*/ |
| 950 |
ZEND_FUNCTION(vp_login_user) |
ZEND_FUNCTION(xnp_login_user) |
| 951 |
{ |
{ |
| 952 |
char *uname; |
char *uname; |
| 953 |
int unameLen; |
int unameLen; |
| 954 |
char *passwd; |
char *passwd; |
| 955 |
int passwdLen; |
int passwdLen; |
| 956 |
zval *zVPSessionID; |
zval *zXNPSessionID; |
| 957 |
|
|
| 958 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssz", |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssz", |
| 959 |
&uname, &unameLen, &passwd, &passwdLen, &zVPSessionID) == FAILURE) { |
&uname, &unameLen, &passwd, &passwdLen, &zXNPSessionID) == FAILURE) { |
| 960 |
return; |
return; |
| 961 |
} |
} |
| 962 |
|
|
| 963 |
if (!PZVAL_IS_REF(zVPSessionID)) { |
if (!PZVAL_IS_REF(zXNPSessionID)) { |
| 964 |
zend_error(E_WARNING, "3rd parameter wasn't passed by reference"); |
zend_error(E_WARNING, "3rd parameter wasn't passed by reference"); |
| 965 |
RETURN_LONG(RES_PHP_NONREF); |
RETURN_LONG(RES_PHP_NONREF); |
| 966 |
} |
} |
| 967 |
|
|
| 968 |
sessionid_t vpSessionID; |
sessionid_t xnpSessionID; |
| 969 |
result_t result = loginUser( uname, passwd, &vpSessionID ); |
result_t result = loginUser( uname, passwd, &xnpSessionID ); |
| 970 |
if ( result == RES_OK ) |
if ( result == RES_OK ) |
| 971 |
ZVAL_LONG(zVPSessionID, (long)vpSessionID); |
ZVAL_LONG(zXNPSessionID, (long)xnpSessionID); |
| 972 |
RETURN_LONG((long)result); |
RETURN_LONG((long)result); |
| 973 |
} |
} |
| 974 |
|
|
| 975 |
/** ログアウトする。<br> |
/** ログアウトする。<br> |
| 976 |
void vp_logout_user(int vp_session_id) |
void xnp_logout_user(int xnp_session_id) |
| 977 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 978 |
@return なし |
@return なし |
| 979 |
*/ |
*/ |
| 980 |
ZEND_FUNCTION(vp_logout_user) |
ZEND_FUNCTION(xnp_logout_user) |
| 981 |
{ |
{ |
| 982 |
long vpSessionID; |
long xnpSessionID; |
| 983 |
|
|
| 984 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &vpSessionID) == FAILURE) { |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &xnpSessionID) == FAILURE) { |
| 985 |
return; |
return; |
| 986 |
} |
} |
| 987 |
logoutUser( (sessionid_t)vpSessionID ); |
logoutUser( (sessionid_t)xnpSessionID ); |
| 988 |
|
|
| 989 |
RETURN_NULL(); |
RETURN_NULL(); |
| 990 |
} |
} |
| 991 |
|
|
| 992 |
/** VPのセッションID 作成<br> |
/** XNPのセッションID 作成<br> |
| 993 |
int vp_create_session( string xoops_sess_id, int uid, int &session ) |
int xnp_create_session( string xoops_sess_id, int uid, int &session ) |
| 994 |
@param xoops_sess_id xoopsのセッションID |
@param xoops_sess_id xoopsのセッションID |
| 995 |
@param uid xoops の uid (xoops_users.uid) |
@param uid xoops の uid (xoops_users.uid) |
| 996 |
@param session 作成したVPのsessionを受け取る変数 |
@param session 作成したXNPのsessionを受け取る変数 |
| 997 |
@return 0 成功 |
@return 0 成功 |
| 998 |
*/ |
*/ |
| 999 |
ZEND_FUNCTION(vp_create_session) |
ZEND_FUNCTION(xnp_create_session) |
| 1000 |
{ |
{ |
| 1001 |
char *xoopsSessionID; |
char *xoopsSessionID; |
| 1002 |
int xoopsSessionIDLen; |
int xoopsSessionIDLen; |
| 1003 |
long uid; |
long uid; |
| 1004 |
zval *zVPSessionID; |
zval *zXNPSessionID; |
| 1005 |
|
|
| 1006 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "slz", |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "slz", |
| 1007 |
&xoopsSessionID, &xoopsSessionIDLen, &uid, &zVPSessionID) == FAILURE) { |
&xoopsSessionID, &xoopsSessionIDLen, &uid, &zXNPSessionID) == FAILURE) { |
| 1008 |
return; |
return; |
| 1009 |
} |
} |
| 1010 |
|
|
| 1011 |
if (!PZVAL_IS_REF(zVPSessionID)) { |
if (!PZVAL_IS_REF(zXNPSessionID)) { |
| 1012 |
zend_error(E_WARNING, "3rd parameter wasn't passed by reference"); |
zend_error(E_WARNING, "3rd parameter wasn't passed by reference"); |
| 1013 |
RETURN_LONG(RES_PHP_NONREF); |
RETURN_LONG(RES_PHP_NONREF); |
| 1014 |
} |
} |
| 1015 |
|
|
| 1016 |
sessionid_t vpSessionID = 0; |
sessionid_t xnpSessionID = 0; |
| 1017 |
result_t result = createSession( xoopsSessionID, (userid_t)uid, &vpSessionID ); |
result_t result = createSession( xoopsSessionID, (userid_t)uid, &xnpSessionID ); |
| 1018 |
if ( result == RES_OK ) |
if ( result == RES_OK ) |
| 1019 |
ZVAL_LONG(zVPSessionID, (long)vpSessionID); |
ZVAL_LONG(zXNPSessionID, (long)xnpSessionID); |
| 1020 |
RETURN_LONG((long)result); |
RETURN_LONG((long)result); |
| 1021 |
} |
} |
| 1022 |
|
|
| 1023 |
/** VP の session の詳細情報を得る<br> |
/** XNP の session の詳細情報を得る<br> |
| 1024 |
int vp_get_session( int vp_session_id, array session_info ) |
int xnp_get_session( int xnp_session_id, array session_info ) |
| 1025 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1026 |
@param session_info 結果を受け取る配列 |
@param session_info 結果を受け取る配列 |
| 1027 |
@return 0 success |
@return 0 success |
| 1028 |
*/ |
*/ |
| 1029 |
ZEND_FUNCTION(vp_get_session) |
ZEND_FUNCTION(xnp_get_session) |
| 1030 |
{ |
{ |
| 1031 |
long vpSessionID; |
long xnpSessionID; |
| 1032 |
zval *sessionInfo; |
zval *sessionInfo; |
| 1033 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "la", |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "la", |
| 1034 |
&vpSessionID, &sessionInfo) == FAILURE) { |
&xnpSessionID, &sessionInfo) == FAILURE) { |
| 1035 |
return; |
return; |
| 1036 |
} |
} |
| 1037 |
const session_t *session = 0; |
const session_t *session = 0; |
| 1038 |
result_t result = getSession( (sessionid_t)vpSessionID, &session ); |
result_t result = getSession( (sessionid_t)xnpSessionID, &session ); |
| 1039 |
if ( result == RES_OK ){ |
if ( result == RES_OK ){ |
| 1040 |
sessionToZval( session, sessionInfo ); |
sessionToZval( session, sessionInfo ); |
| 1041 |
freeSession( session ); |
freeSession( session ); |
| 1045 |
} |
} |
| 1046 |
|
|
| 1047 |
/** ユーザのactivate状態を取得する<br> |
/** ユーザのactivate状態を取得する<br> |
| 1048 |
bool vp_is_activated( int vp_session_id, int user_id ) |
bool xnp_is_activated( int xnp_session_id, int user_id ) |
| 1049 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1050 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1051 |
@return 0 success |
@return 0 success |
| 1052 |
*/ |
*/ |
| 1053 |
ZEND_FUNCTION(vp_is_activated) |
ZEND_FUNCTION(xnp_is_activated) |
| 1054 |
{ |
{ |
| 1055 |
long sid, uid; |
long sid, uid; |
| 1056 |
|
|
| 1064 |
} |
} |
| 1065 |
|
|
| 1066 |
/** activateする。<br> |
/** activateする。<br> |
| 1067 |
bool vp_activate( int vp_session_id, int user_id, bool activated ) |
bool xnp_activate( int xnp_session_id, int user_id, bool activated ) |
| 1068 |
@param vp_session_id vp の session id |
@param xnp_session_id xnp の session id |
| 1069 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1070 |
@param activated true:activate, false:inactivate |
@param activated true:activate, false:inactivate |
| 1071 |
@return 0 success |
@return 0 success |
| 1072 |
*/ |
*/ |
| 1073 |
ZEND_FUNCTION(vp_activate) |
ZEND_FUNCTION(xnp_activate) |
| 1074 |
{ |
{ |
| 1075 |
long sid, uid; |
long sid, uid; |
| 1076 |
bool activated; |
bool activated; |
| 1085 |
RETURN_LONG(result); |
RETURN_LONG(result); |
| 1086 |
} |
} |
| 1087 |
|
|
| 1088 |
/** VPのアカウント数を得る。<br> |
/** XNPのアカウント数を得る。<br> |
| 1089 |
int vp_get_account_count( int vp_session_id ) |
int xnp_get_account_count( int xnp_session_id ) |
| 1090 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1091 |
@return 0 success |
@return 0 success |
| 1092 |
*/ |
*/ |
| 1093 |
ZEND_FUNCTION(vp_get_account_count) |
ZEND_FUNCTION(xnp_get_account_count) |
| 1094 |
{ |
{ |
| 1095 |
long sid; |
long sid; |
| 1096 |
|
|
| 1104 |
} |
} |
| 1105 |
|
|
| 1106 |
/** アカウントを削除する。<br> |
/** アカウントを削除する。<br> |
| 1107 |
bool vp_delete_account( int vp_session_id, int user_id ) |
bool xnp_delete_account( int xnp_session_id, int user_id ) |
| 1108 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1109 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1110 |
@return 0 success |
@return 0 success |
| 1111 |
*/ |
*/ |
| 1112 |
ZEND_FUNCTION(vp_delete_account) |
ZEND_FUNCTION(xnp_delete_account) |
| 1113 |
{ |
{ |
| 1114 |
long sid, uid; |
long sid, uid; |
| 1115 |
|
|
| 1124 |
} |
} |
| 1125 |
|
|
| 1126 |
/** アカウント情報を得る。<br> |
/** アカウント情報を得る。<br> |
| 1127 |
int vp_get_account( int vp_session_id, int user_id, array account_info ) |
int xnp_get_account( int xnp_session_id, int user_id, array account_info ) |
| 1128 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1129 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1130 |
@param account_info アカウント情報を受け取る連想配列 |
@param account_info アカウント情報を受け取る連想配列 |
| 1131 |
@return 0 success |
@return 0 success |
| 1132 |
*/ |
*/ |
| 1133 |
ZEND_FUNCTION(vp_get_account) |
ZEND_FUNCTION(xnp_get_account) |
| 1134 |
{ |
{ |
| 1135 |
long sid, uid; |
long sid, uid; |
| 1136 |
zval *zaccount; |
zval *zaccount; |
| 1152 |
} |
} |
| 1153 |
|
|
| 1154 |
/** 条件に一致するアカウントの情報を得る。<br> |
/** 条件に一致するアカウントの情報を得る。<br> |
| 1155 |
int vp_get_accoutns( int sid, array uids, array criteria, array accounts ); |
int xnp_get_accoutns( int sid, array uids, array criteria, array accounts ); |
| 1156 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1157 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1158 |
@param criteria 取得範囲・ソート順を表す配列 |
@param criteria 取得範囲・ソート順を表す配列 |
| 1159 |
@param account_info アカウント情報を受け取る連想配列 |
@param account_info アカウント情報を受け取る連想配列 |
| 1160 |
@return 0 success |
@return 0 success |
| 1161 |
*/ |
*/ |
| 1162 |
ZEND_FUNCTION(vp_get_accounts) |
ZEND_FUNCTION(xnp_get_accounts) |
| 1163 |
{ |
{ |
| 1164 |
result_t result; |
result_t result; |
| 1165 |
long sid; |
long sid; |
| 1194 |
} |
} |
| 1195 |
|
|
| 1196 |
/** アカウント情報を記録する。<br> |
/** アカウント情報を記録する。<br> |
| 1197 |
int vp_insert_account( int sid, array account_info, int &user_id ); |
int xnp_insert_account( int sid, array account_info, int &user_id ); |
| 1198 |
@param vp_session_id vp の session id |
@param xnp_session_id xnp の session id |
| 1199 |
@param account_info 記録したいアカウントの情報 |
@param account_info 記録したいアカウントの情報 |
| 1200 |
@param user_id ユーザID(xoops_users.uid)を書き込むリファレンス |
@param user_id ユーザID(xoops_users.uid)を書き込むリファレンス |
| 1201 |
@return 0 success |
@return 0 success |
| 1202 |
*/ |
*/ |
| 1203 |
ZEND_FUNCTION(vp_insert_account) |
ZEND_FUNCTION(xnp_insert_account) |
| 1204 |
{ |
{ |
| 1205 |
result_t result; |
result_t result; |
| 1206 |
long sid; |
long sid; |
| 1224 |
} |
} |
| 1225 |
|
|
| 1226 |
/** アカウント情報を更新する。<br> |
/** アカウント情報を更新する。<br> |
| 1227 |
int vp_update_account( int sid, array account ); |
int xnp_update_account( int sid, array account ); |
| 1228 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1229 |
@param account_info 書き込むべきアカウント情報を表す連想配列 |
@param account_info 書き込むべきアカウント情報を表す連想配列 |
| 1230 |
@return 0 success |
@return 0 success |
| 1231 |
*/ |
*/ |
| 1232 |
ZEND_FUNCTION(vp_update_account) |
ZEND_FUNCTION(xnp_update_account) |
| 1233 |
{ |
{ |
| 1234 |
result_t result; |
result_t result; |
| 1235 |
long sid; |
long sid; |
| 1250 |
} |
} |
| 1251 |
|
|
| 1252 |
/** 条件に合うアカウントのuidの一覧を得る。<br> |
/** 条件に合うアカウントのuidの一覧を得る。<br> |
| 1253 |
int vp_dump_uids( int vp_session_id, array criteria, array uids ); |
int xnp_dump_uids( int xnp_session_id, array criteria, array uids ); |
| 1254 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1255 |
@param criteria 取得範囲・ソート順を表す配列 |
@param criteria 取得範囲・ソート順を表す配列 |
| 1256 |
@param uids uidを受け取る配列 |
@param uids uidを受け取る配列 |
| 1257 |
@return 0 success |
@return 0 success |
| 1258 |
*/ |
*/ |
| 1259 |
ZEND_FUNCTION(vp_dump_uids) |
ZEND_FUNCTION(xnp_dump_uids) |
| 1260 |
{ |
{ |
| 1261 |
result_t result; |
result_t result; |
| 1262 |
long sid; |
long sid; |
| 1283 |
RETURN_LONG(result); |
RETURN_LONG(result); |
| 1284 |
} |
} |
| 1285 |
|
|
| 1286 |
/** VPのグループの数を得る<br> |
/** XNPのグループの数を得る<br> |
| 1287 |
int vp_get_group_count( int vp_session_id ); |
int xnp_get_group_count( int xnp_session_id ); |
| 1288 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1289 |
@return グループ数 |
@return グループ数 |
| 1290 |
*/ |
*/ |
| 1291 |
ZEND_FUNCTION(vp_get_group_count) |
ZEND_FUNCTION(xnp_get_group_count) |
| 1292 |
{ |
{ |
| 1293 |
result_t result; |
result_t result; |
| 1294 |
long sid; |
long sid; |
| 1304 |
} |
} |
| 1305 |
|
|
| 1306 |
/** uidで指定したユーザが属すグループで、かつ条件に一致するグループのgidを得る<br> |
/** uidで指定したユーザが属すグループで、かつ条件に一致するグループのgidを得る<br> |
| 1307 |
int vp_get_group_by_uid( int vp_session_id, int uid, array criteria, array gids ); |
int xnp_get_group_by_uid( int xnp_session_id, int uid, array criteria, array gids ); |
| 1308 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1309 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1310 |
@param criteria 取得範囲・ソート順を表す配列 |
@param criteria 取得範囲・ソート順を表す配列 |
| 1311 |
@param gids gidを受け取る配列 |
@param gids gidを受け取る配列 |
| 1312 |
@return 0 success |
@return 0 success |
| 1313 |
*/ |
*/ |
| 1314 |
ZEND_FUNCTION(vp_get_groups_by_uid) |
ZEND_FUNCTION(xnp_get_groups_by_uid) |
| 1315 |
{ |
{ |
| 1316 |
result_t result; |
result_t result; |
| 1317 |
long sid, uid; |
long sid, uid; |
| 1341 |
|
|
| 1342 |
|
|
| 1343 |
/** uidで指定したユーザがgidで指定したグループのグループ管理者かどうかを得る<br> |
/** uidで指定したユーザがgidで指定したグループのグループ管理者かどうかを得る<br> |
| 1344 |
int vp_is_group_admin( int sid, int gid, int uid ); |
int xnp_is_group_admin( int sid, int gid, int uid ); |
| 1345 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1346 |
@param group_id VPのグループID |
@param group_id XNPのグループID |
| 1347 |
@param user_id xoops_users.uid |
@param user_id xoops_users.uid |
| 1348 |
@return true: グループ管理者である。 |
@return true: グループ管理者である。 |
| 1349 |
@return false: グループ管理者でない。あるいはエラーである。 |
@return false: グループ管理者でない。あるいはエラーである。 |
| 1350 |
*/ |
*/ |
| 1351 |
ZEND_FUNCTION(vp_is_group_admin) |
ZEND_FUNCTION(xnp_is_group_admin) |
| 1352 |
{ |
{ |
| 1353 |
result_t result; |
result_t result; |
| 1354 |
long sid, gid, uid; |
long sid, gid, uid; |
| 1364 |
} |
} |
| 1365 |
|
|
| 1366 |
/** 条件に一致するグループのgidの一覧を得る。<br> |
/** 条件に一致するグループのgidの一覧を得る。<br> |
| 1367 |
int vp_dump_gids( int sid, array criteria, array gids ); |
int xnp_dump_gids( int sid, array criteria, array gids ); |
| 1368 |
@param vp_session_id VPのセッションID |
@param xnp_session_id XNPのセッションID |
| 1369 |
@param criteria 取得範囲・ソート順を表す配列 |
@param criteria 取得範囲・ソート順を表す配列 |
| 1370 |
@param gids gidを受け取る配列 |
@param gids gidを受け取る配列 |
| 1371 |
@return 0 success |
@return 0 success |
| 1372 |
*/ |
*/ |
| 1373 |
ZEND_FUNCTION(vp_dump_gids) |
ZEND_FUNCTION(xnp_dump_gids) |
| 1374 |
{ |
{ |
| 1375 |
result_t result; |
result_t result; |
| 1376 |
long sid; |
long sid; |
| 1398 |
} |
} |
| 1399 |
|
|
| 1400 |
/** gidで指定したグループの管理者で、かつ条件に一致するグループ管理者のuidの一覧を得る。<br> |
/** gidで指定したグループの管理者で、かつ条件に一致するグループ管理者のuidの一覧を得る。<br> |
| 1401 |
int vp_dump_group_admins(int sid, int group_id, array criteria, array uids ) |
int xnp_dump_group_admins(int sid, int group_id, array criteria, array uids ) |
| 1402 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1403 |
@param group_id VPのグループID |
@param group_id XNPのグループID |
| 1404 |
@param criteria 条件 |
@param criteria 条件 |
| 1405 |
@param uids uidの一覧を受け取る配列 |
@param uids uidの一覧を受け取る配列 |
| 1406 |
@return 0 success |
@return 0 success |
| 1407 |
*/ |
*/ |
| 1408 |
|
|
| 1409 |
ZEND_FUNCTION(vp_dump_group_admins) |
ZEND_FUNCTION(xnp_dump_group_admins) |
| 1410 |
{ |
{ |
| 1411 |
long sid, gid; |
long sid, gid; |
| 1412 |
zval *zcriteria; |
zval *zcriteria; |
| 1432 |
} |
} |
| 1433 |
|
|
| 1434 |
/** グループからメンバーを削除する。<br> |
/** グループからメンバーを削除する。<br> |
| 1435 |
int vp_delete_member(int sid, int group_id, int user_id ) |
int xnp_delete_member(int sid, int group_id, int user_id ) |
| 1436 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1437 |
@param group_id VPのグループID |
@param group_id XNPのグループID |
| 1438 |
@param user_id ユーザID |
@param user_id ユーザID |
| 1439 |
@return 0 success |
@return 0 success |
| 1440 |
*/ |
*/ |
| 1441 |
|
|
| 1442 |
ZEND_FUNCTION(vp_delete_member) |
ZEND_FUNCTION(xnp_delete_member) |
| 1443 |
{ |
{ |
| 1444 |
long sid, gid, uid; |
long sid, gid, uid; |
| 1445 |
|
|
| 1453 |
} |
} |
| 1454 |
|
|
| 1455 |
/** グループにメンバーを追加する<br> |
/** グループにメンバーを追加する<br> |
| 1456 |
int vp_insert_member(int sid, int group_id, int user_id, bool admin ) |
int xnp_insert_member(int sid, int group_id, int user_id, bool admin ) |
| 1457 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1458 |
@param group_id VPのグループID |
@param group_id XNPのグループID |
| 1459 |
@param user_id ユーザID |
@param user_id ユーザID |
| 1460 |
@param admin グループ管理者ならtrue |
@param admin グループ管理者ならtrue |
| 1461 |
@return 0 success |
@return 0 success |
| 1462 |
*/ |
*/ |
| 1463 |
|
|
| 1464 |
ZEND_FUNCTION(vp_insert_member) |
ZEND_FUNCTION(xnp_insert_member) |
| 1465 |
{ |
{ |
| 1466 |
long sid, gid, uid; |
long sid, gid, uid; |
| 1467 |
zend_bool admin; |
zend_bool admin; |
| 1476 |
} |
} |
| 1477 |
|
|
| 1478 |
/** gidで指定したグループのメンバーのuidの一覧を得る<br> |
/** gidで指定したグループのメンバーのuidの一覧を得る<br> |
| 1479 |
int vp_get_members(int sid, int group_id, array criteria, array uids ) |
int xnp_get_members(int sid, int group_id, array criteria, array uids ) |
| 1480 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1481 |
@param group_id VPのグループID |
@param group_id XNPのグループID |
| 1482 |
@param criteria 条件 |
@param criteria 条件 |
| 1483 |
@param uids uidの一覧を受け取る配列 |
@param uids uidの一覧を受け取る配列 |
| 1484 |
@return 0 success |
@return 0 success |
| 1485 |
*/ |
*/ |
| 1486 |
|
|
| 1487 |
ZEND_FUNCTION(vp_get_members) |
ZEND_FUNCTION(xnp_get_members) |
| 1488 |
{ |
{ |
| 1489 |
long sid, gid; |
long sid, gid; |
| 1490 |
zval *zcriteria; |
zval *zcriteria; |
| 1510 |
} |
} |
| 1511 |
|
|
| 1512 |
/** グループ情報を変更する。<br> |
/** グループ情報を変更する。<br> |
| 1513 |
int vp_update_group(int sid, array group ) |
int xnp_update_group(int sid, array group ) |
| 1514 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1515 |
@param group グループ情報の連想配列 |
@param group グループ情報の連想配列 |
| 1516 |
@return 0 success |
@return 0 success |
| 1517 |
*/ |
*/ |
| 1518 |
ZEND_FUNCTION(vp_update_group) |
ZEND_FUNCTION(xnp_update_group) |
| 1519 |
{ |
{ |
| 1520 |
long sid; |
long sid; |
| 1521 |
zval *zgroup; |
zval *zgroup; |
| 1532 |
} |
} |
| 1533 |
|
|
| 1534 |
/** グループ情報を追加する。<br> |
/** グループ情報を追加する。<br> |
| 1535 |
int vp_insert_group( int sid, array group, int &gid ) |
int xnp_insert_group( int sid, array group, int &gid ) |
| 1536 |
@param sid セッションID |
@param sid セッションID |
| 1537 |
@param group グループ情報の連想配列 |
@param group グループ情報の連想配列 |
| 1538 |
@param gid 対応するグループIDを書き込むリファレンス |
@param gid 対応するグループIDを書き込むリファレンス |
| 1541 |
@return RES_NO_SUCH_SESSION |
@return RES_NO_SUCH_SESSION |
| 1542 |
@return RES_DB_QUERY_ERROR |
@return RES_DB_QUERY_ERROR |
| 1543 |
*/ |
*/ |
| 1544 |
ZEND_FUNCTION(vp_insert_group) |
ZEND_FUNCTION(xnp_insert_group) |
| 1545 |
{ |
{ |
| 1546 |
long sid; |
long sid; |
| 1547 |
zval *zgroup; |
zval *zgroup; |
| 1563 |
|
|
| 1564 |
|
|
| 1565 |
/** グループ情報を削除する。<br> |
/** グループ情報を削除する。<br> |
| 1566 |
int vp_delete_group( int sid, int gid ) |
int xnp_delete_group( int sid, int gid ) |
| 1567 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1568 |
@param gid 削除したいグループのID |
@param gid 削除したいグループのID |
| 1569 |
@return RES_OK |
@return RES_OK |
| 1570 |
@return RES_DB_QUERY_ERROR |
@return RES_DB_QUERY_ERROR |
| 1571 |
@return RES_NO_SUCH_SESSION |
@return RES_NO_SUCH_SESSION |
| 1572 |
@return RES_DB_NOT_INITIALIZED |
@return RES_DB_NOT_INITIALIZED |
| 1573 |
*/ |
*/ |
| 1574 |
ZEND_FUNCTION(vp_delete_group) |
ZEND_FUNCTION(xnp_delete_group) |
| 1575 |
{ |
{ |
| 1576 |
long sid; |
long sid; |
| 1577 |
long gid; |
long gid; |
| 1584 |
} |
} |
| 1585 |
|
|
| 1586 |
/** グループの管理者を取得。<br> |
/** グループの管理者を取得。<br> |
| 1587 |
int vp_dump_group_admins( int sid, int gid, array criteria, array uids ) |
int xnp_dump_group_admins( int sid, int gid, array criteria, array uids ) |
| 1588 |
@param sid VPのセッションID |
@param sid XNPのセッションID |
| 1589 |
@param gid VPグループのID |
@param gid XNPグループのID |
| 1590 |
@param criteria uidsに書き込むときのソート条件,範囲の指定 |
@param criteria uidsに書き込むときのソート条件,範囲の指定 |
| 1591 |
@param uids 管理者のUIDを書き込む配列 |
@param uids 管理者のUIDを書き込む配列 |
| 1592 |
@return RES_OK |
@return RES_OK |
| 1595 |
@return RES_DB_NOT_INITIALIZED |
@return RES_DB_NOT_INITIALIZED |
| 1596 |
*/ |
*/ |
| 1597 |
/* |
/* |
| 1598 |
ZEND_FUNCTION(vp_dump_group_admins) |
ZEND_FUNCTION(xnp_dump_group_admins) |
| 1599 |
{ |
{ |
| 1600 |
long sid; |
long sid; |
| 1601 |
long gid; |
long gid; |
| 1625 |
} |
} |
| 1626 |
*/ |
*/ |
| 1627 |
|
|
| 1628 |
/** VPのsession_idの正当性チェック<br> |
/** XNPのsession_idの正当性チェック<br> |
| 1629 |
bool vp_is_valid_session_id( int vp_session_id) |
bool xnp_is_valid_session_id( int xnp_session_id) |
| 1630 |
@return true 有効なVPのsession_idである<br> |
@return true 有効なXNPのsession_idである<br> |
| 1631 |
@return false 無効なsession_idまたはエラー |
@return false 無効なsession_idまたはエラー |
| 1632 |
*/ |
*/ |
| 1633 |
ZEND_FUNCTION(vp_is_valid_session_id) |
ZEND_FUNCTION(xnp_is_valid_session_id) |
| 1634 |
{ |
{ |
| 1635 |
long sid; |
long sid; |
| 1636 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &sid ) == FAILURE) { |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &sid ) == FAILURE) { |
| 1641 |
} |
} |
| 1642 |
|
|
| 1643 |
/** エラー文字列を得る<br> |
/** エラー文字列を得る<br> |
| 1644 |
string vp_get_last_error_string() |
string xnp_get_last_error_string() |
| 1645 |
@return 0 success |
@return 0 success |
| 1646 |
*/ |
*/ |
| 1647 |
ZEND_FUNCTION(vp_get_last_error_string) |
ZEND_FUNCTION(xnp_get_last_error_string) |
| 1648 |
{ |
{ |
| 1649 |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "" ) == FAILURE) { |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "" ) == FAILURE) { |
| 1650 |
return; |
return; |