| 53 |
ZEND_FUNCTION(vp_get_members ); |
ZEND_FUNCTION(vp_get_members ); |
| 54 |
ZEND_FUNCTION(vp_delete_group ); |
ZEND_FUNCTION(vp_delete_group ); |
| 55 |
ZEND_FUNCTION(vp_insert_group ); |
ZEND_FUNCTION(vp_insert_group ); |
|
ZEND_FUNCTION(vp_update_group ); |
|
| 56 |
*/ |
*/ |
| 57 |
|
ZEND_FUNCTION(vp_update_group ); |
| 58 |
ZEND_FUNCTION(vp_get_group ); |
ZEND_FUNCTION(vp_get_group ); |
| 59 |
ZEND_FUNCTION(vp_get_groups ); |
ZEND_FUNCTION(vp_get_groups ); |
| 60 |
ZEND_FUNCTION(vp_is_moderator ); |
ZEND_FUNCTION(vp_is_moderator ); |
| 92 |
ZEND_FE(vp_get_members ,NULL) |
ZEND_FE(vp_get_members ,NULL) |
| 93 |
ZEND_FE(vp_delete_group ,NULL) |
ZEND_FE(vp_delete_group ,NULL) |
| 94 |
ZEND_FE(vp_insert_group ,NULL) |
ZEND_FE(vp_insert_group ,NULL) |
|
ZEND_FE(vp_update_group ,NULL) |
|
| 95 |
*/ |
*/ |
| 96 |
|
ZEND_FE(vp_update_group ,NULL) |
| 97 |
ZEND_FE(vp_get_group ,NULL) |
ZEND_FE(vp_get_group ,NULL) |
| 98 |
ZEND_FE(vp_get_groups ,NULL) |
ZEND_FE(vp_get_groups ,NULL) |
| 99 |
ZEND_FE(vp_is_moderator ,NULL) |
ZEND_FE(vp_is_moderator ,NULL) |
| 416 |
{ |
{ |
| 417 |
zend_hash_clean( z -> value.ht ); |
zend_hash_clean( z -> value.ht ); |
| 418 |
|
|
| 419 |
if( add_assoc_long( z, "uid", pAccount -> getUID( ) ) != SUCCESS ){ |
add_assoc_long( z, "uid", pAccount -> getUID( ) ); |
|
fprintf( stderr, "aaaaaaaaaaaaaaaa" ); |
|
|
abort( ); |
|
|
} |
|
| 420 |
add_assoc_string( z, "uname", ( char* )pAccount -> getUname( ), 1 ); |
add_assoc_string( z, "uname", ( char* )pAccount -> getUname( ), 1 ); |
| 421 |
add_assoc_string( z, "name", ( char* )pAccount -> getName( ), 1 ); |
add_assoc_string( z, "name", ( char* )pAccount -> getName( ), 1 ); |
| 422 |
add_assoc_string( z, "email", ( char* )pAccount -> getEmail( ), 1 ); |
add_assoc_string( z, "email", ( char* )pAccount -> getEmail( ), 1 ); |
| 509 |
return RES_OK; |
return RES_OK; |
| 510 |
} |
} |
| 511 |
|
|
| 512 |
/** group → zval |
/** |
| 513 |
*/ |
* |
| 514 |
result_t groupToZval( const group_t *pGroup, int groupLen, zval *z ) |
* group_tの内容をPHPの連想配列に変換する |
| 515 |
|
* |
| 516 |
|
* @param pGroup 変換もとのグループ情報 |
| 517 |
|
* @param z 変換結果を書き込む連想配列(初期化済みであること) |
| 518 |
|
* @return RES_OK |
| 519 |
|
* |
| 520 |
|
*/ |
| 521 |
|
result_t groupToZval( const group_t *pGroup, zval *z ) |
| 522 |
{ |
{ |
| 523 |
zend_hash_clean( z -> value.ht ); |
zend_hash_clean( z -> value.ht ); |
| 524 |
add_assoc_long( z, "gid", pGroup -> getGID( ) ); |
add_assoc_long( z, "gid", pGroup -> getGID( ) ); |
| 527 |
return RES_OK; |
return RES_OK; |
| 528 |
} |
} |
| 529 |
|
|
| 530 |
|
/** zval → group |
| 531 |
|
*/ |
| 532 |
|
result_t zvalToGroup( zval *z, group_t *pGroup ) |
| 533 |
|
{ |
| 534 |
|
zval **tmp; |
| 535 |
|
HashPosition pos; |
| 536 |
|
int i = 0; |
| 537 |
|
char* key = 0; |
| 538 |
|
|
| 539 |
|
key = "gid"; |
| 540 |
|
zend_hash_find( z -> value.ht, key, strlen( key ) + 1, ( void** )&tmp ); |
| 541 |
|
convert_to_long_ex( tmp ) ; |
| 542 |
|
pGroup -> setGID( (*tmp) -> value.lval ); |
| 543 |
|
|
| 544 |
|
key = "gname"; |
| 545 |
|
zend_hash_find( z -> value.ht, key, strlen( key ) + 1, ( void** )&tmp ); |
| 546 |
|
convert_to_string_ex( tmp ) ; |
| 547 |
|
pGroup -> setGname( (*tmp) -> value.str.val ); |
| 548 |
|
|
| 549 |
|
key = "gdesc"; |
| 550 |
|
zend_hash_find( z -> value.ht, key, strlen( key ) + 1, ( void** )&tmp ); |
| 551 |
|
convert_to_string_ex( tmp ) ; |
| 552 |
|
pGroup -> setDesc( (*tmp) -> value.str.val ); |
| 553 |
|
|
| 554 |
|
return RES_OK; |
| 555 |
|
} |
| 556 |
|
|
| 557 |
|
|
| 558 |
// int vp_get_group( int sid, int gid, array group ); |
// int vp_get_group( int sid, int gid, array group ); |
| 559 |
ZEND_FUNCTION(vp_get_group) |
ZEND_FUNCTION(vp_get_group) |
| 560 |
{ |
{ |
| 569 |
const group_t *pgroup; |
const group_t *pgroup; |
| 570 |
result_t result = getGroup( (sessionid_t)sid, (groupid_t)gid, &pgroup ); |
result_t result = getGroup( (sessionid_t)sid, (groupid_t)gid, &pgroup ); |
| 571 |
if ( RES_OK == result ){ |
if ( RES_OK == result ){ |
| 572 |
//groupToZval( pgroup, zgroup ); |
groupToZval( pgroup, zgroup ); |
| 573 |
freeResult( pgroup ); |
freeResult( pgroup ); |
| 574 |
} |
} |
| 575 |
|
|
| 1203 |
|
|
| 1204 |
RETURN_LONG(result); |
RETURN_LONG(result); |
| 1205 |
} |
} |
| 1206 |
|
|
| 1207 |
|
/** グループ情報を変更する。<br> |
| 1208 |
|
int vp_update_group(int sid, array group ) |
| 1209 |
|
@param sid セッションID |
| 1210 |
|
@param group グループ情報の連想配列 |
| 1211 |
|
@return 0 success |
| 1212 |
|
*/ |
| 1213 |
|
ZEND_FUNCTION(vp_update_group) |
| 1214 |
|
{ |
| 1215 |
|
long sid; |
| 1216 |
|
zval *zgroup; |
| 1217 |
|
group_t group; |
| 1218 |
|
|
| 1219 |
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "la", |
| 1220 |
|
&sid, &zgroup) == FAILURE) { |
| 1221 |
|
return; |
| 1222 |
|
} |
| 1223 |
|
|
| 1224 |
|
zvalToGroup( zgroup, &group ); |
| 1225 |
|
result_t result = updateGroup( sid, &group ); |
| 1226 |
|
RETURN_LONG( result ); |
| 1227 |
|
} |
| 1228 |
|
|