diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/mnogosearch/README | 3 | ||||
| -rw-r--r-- | ext/mnogosearch/config.m4 | 2 | ||||
| -rw-r--r-- | ext/mnogosearch/php_mnogo.c | 70 | ||||
| -rw-r--r-- | ext/mnogosearch/php_mnogo.h | 6 | ||||
| -rw-r--r-- | ext/mnogosearch/test.php | 17 |
5 files changed, 76 insertions, 22 deletions
diff --git a/ext/mnogosearch/README b/ext/mnogosearch/README index 699774ebe1..e240cea91f 100644 --- a/ext/mnogosearch/README +++ b/ext/mnogosearch/README @@ -1,3 +1,6 @@ +$Source$ +$Id$ + mnoGoSearch extension module version 0.3 for PHP4. Basic mnoGoSearch function implementation. diff --git a/ext/mnogosearch/config.m4 b/ext/mnogosearch/config.m4 index ab32e2befe..0be9b34758 100644 --- a/ext/mnogosearch/config.m4 +++ b/ext/mnogosearch/config.m4 @@ -1,6 +1,6 @@ +dnl $Source$ dnl $Id$ - PHP_ARG_WITH(mnogosearch,for mnoGoSearch support, [ --with-mnogosearch[=DIR] Include mnoGoSearch support. DIR is the mnoGoSearch base install directory, defaults to /usr/local/udmsearch.]) diff --git a/ext/mnogosearch/php_mnogo.c b/ext/mnogosearch/php_mnogo.c index b51346ea83..8a413ff9e5 100644 --- a/ext/mnogosearch/php_mnogo.c +++ b/ext/mnogosearch/php_mnogo.c @@ -1,3 +1,6 @@ +/* $Source$ */ +/* $Id$ */ + /* +----------------------------------------------------------------------+ | PHP version 4.0 | @@ -18,8 +21,6 @@ | Further development by Sergey Kartashoff <gluke@biosys.net> | +----------------------------------------------------------------------+ */ - -/* $Id: php_mnogo.c,v 0.3 2001/01/27 15:30:00 */ #include "php.h" #include "php_mnogo.h" @@ -40,12 +41,19 @@ #define UDM_FIELD_SCORE 256 #define UDM_FIELD_MODIFIED 512 +/* udm_set_agent_param constants */ #define UDM_PARAM_PAGE_SIZE 1 #define UDM_PARAM_PAGE_NUM 2 -#define UDM_PARAM_SEARCH_MODE 4 -#define UDM_PARAM_CHARSET 8 -#define UDM_PARAM_NUM_ROWS 16 -#define UDM_PARAM_FOUND 32 +#define UDM_PARAM_SEARCH_MODE 3 +#define UDM_PARAM_CACHE_MODE 4 +#define UDM_PARAM_TRACK_MODE 5 + +#define UDM_TRACK_ENABLED 1 +#define UDM_TRACK_DISABLED 0 + +/* udm_get_res_param constants */ +#define UDM_PARAM_NUM_ROWS 256 +#define UDM_PARAM_FOUND 257 /* True globals, no need for thread safety */ static int le_link,le_res; @@ -112,18 +120,30 @@ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch) REGISTER_LONG_CONSTANT("UDM_FIELD_SCORE", UDM_FIELD_SCORE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_MODIFIED",UDM_FIELD_MODIFIED,CONST_CS | CONST_PERSISTENT); + /* udm_set_agent_param constants */ REGISTER_LONG_CONSTANT("UDM_PARAM_PAGE_SIZE",UDM_PARAM_PAGE_SIZE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_PAGE_NUM",UDM_PARAM_PAGE_NUM,CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCH_MODE",UDM_PARAM_SEARCH_MODE,CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("UDM_PARAM_CHARSET",UDM_PARAM_CHARSET,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCH_MODE",UDM_PARAM_SEARCH_MODE,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_CACHE_MODE",UDM_PARAM_CACHE_MODE,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_TRACK_MODE",UDM_PARAM_TRACK_MODE,CONST_CS | CONST_PERSISTENT); + + /* udm_get_res_param constants */ REGISTER_LONG_CONSTANT("UDM_PARAM_FOUND",UDM_PARAM_FOUND,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_NUM_ROWS",UDM_PARAM_NUM_ROWS,CONST_CS | CONST_PERSISTENT); - + /* search modes */ REGISTER_LONG_CONSTANT("UDM_MODE_ALL",UDM_MODE_ALL,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_MODE_ANY",UDM_MODE_ANY,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_MODE_BOOL",UDM_MODE_BOOL,CONST_CS | CONST_PERSISTENT); + /* search cache params */ + REGISTER_LONG_CONSTANT("UDM_CACHE_ENABLED",UDM_CACHE_ENABLED,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_CACHE_DISABLED",UDM_CACHE_DISABLED,CONST_CS | CONST_PERSISTENT); + + /* track mode params */ + REGISTER_LONG_CONSTANT("UDM_TRACK_ENABLED",UDM_TRACK_ENABLED,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_TRACK_DISABLED",UDM_TRACK_DISABLED,CONST_CS | CONST_PERSISTENT); + return SUCCESS; } @@ -246,8 +266,8 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param) if(Agent->page_number<0)Agent->page_number=0; } break; - case UDM_PARAM_SEARCH_MODE: { - switch (atoi(val)){ + case UDM_PARAM_SEARCH_MODE: + switch (atoi(val)){ case UDM_MODE_ALL: Agent->search_mode=UDM_MODE_ALL; break; @@ -260,7 +280,33 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param) default: RETURN_STRING("<Udm_Set_Agent_Param: Unknown search mode>",1); break; - } + } + break; + case UDM_PARAM_CACHE_MODE: + switch (atoi(val)){ + case UDM_CACHE_ENABLED: + Agent->cache_mode=UDM_CACHE_ENABLED; + break; + case UDM_CACHE_DISABLED: + Agent->cache_mode=UDM_CACHE_DISABLED; + break; + default: + Agent->cache_mode=UDM_CACHE_DISABLED; + RETURN_STRING("<Udm_Set_Agent_Param: Unknown cache mode>",1); + break; + } + break; + case UDM_PARAM_TRACK_MODE: + switch (atoi(val)){ + case UDM_TRACK_ENABLED: + Agent->track_mode|=UDM_TRACK_QUERIES; + break; + case UDM_TRACK_DISABLED: + Agent->track_mode &= ~(UDM_TRACK_QUERIES); + break; + default: + RETURN_STRING("<Udm_Set_Agent_Param: Unknown track_mode>",1); + break; } break; default: diff --git a/ext/mnogosearch/php_mnogo.h b/ext/mnogosearch/php_mnogo.h index f1638db884..6def9dce20 100644 --- a/ext/mnogosearch/php_mnogo.h +++ b/ext/mnogosearch/php_mnogo.h @@ -1,3 +1,6 @@ +/* $Source$ */ +/* $Id$ */ + /* +----------------------------------------------------------------------+ | PHP HTML Embedded Scripting Language Version 3.0 | @@ -30,9 +33,6 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mnogo.h,v 0.3 2001/01/27 15:30:00 */ - - #ifndef _PHP_MNOGO_H #define _PHP_MNOGO_H diff --git a/ext/mnogosearch/test.php b/ext/mnogosearch/test.php index 736eac727f..7dc0b0e365 100644 --- a/ext/mnogosearch/test.php +++ b/ext/mnogosearch/test.php @@ -1,3 +1,8 @@ +<!-- + $Source$ + $Id$ +--> + <html> <body> @@ -23,14 +28,13 @@ $page_size=10; $page_number=0; - $search_mode=UDM_MODE_BOOL; - $first=$page_size*$page_number+1; - + Udm_Set_Agent_Param($udm,UDM_PARAM_PAGE_SIZE,$page_size); Udm_Set_Agent_Param($udm,UDM_PARAM_PAGE_NUM,$page_number); - Udm_Set_Agent_Param($udm,UDM_PARAM_SEARCH_MODE,$search_mode); + Udm_Set_Agent_Param($udm,UDM_PARAM_SEARCH_MODE,UDM_MODE_BOOL); + Udm_Set_Agent_Param($udm,UDM_PARAM_CACHE_MODE,UDM_PARAM_CACHE_DISABLED); + Udm_Set_Agent_Param($udm,UDM_PARAM_TRACK_MODE,UDM_TRACK_DISABLED); - // Stage 3: perform search $res=Udm_Find($udm,$q); @@ -42,7 +46,8 @@ // Display error message printf("Error #%d: '%s'\n",$errno,Udm_Error($udm)); }else{ - + $first=$page_size*$page_number+1; + // Get result parameters $total=Udm_Get_Res_Param($res,UDM_PARAM_FOUND); $rows=Udm_Get_Res_Param($res,UDM_PARAM_NUM_ROWS); |
