From 9a109425fe8c74efd28ca87ba82f931fa12244ed Mon Sep 17 00:00:00 2001 From: Sergey Kartashoff Date: Thu, 1 Mar 2001 14:51:12 +0000 Subject: [PATCH] UDM_PARAM_CROSS_WORDS mnoGoSearch extension session parameter has been added to use crosswords available since version 3.1.11 of mnogosearch. Example updated. --- ext/mnogosearch/php_mnogo.c | 36 ++++++++++++++++++++++++++++++++++++ ext/mnogosearch/test.php | 4 ++++ 2 files changed, 40 insertions(+) diff --git a/ext/mnogosearch/php_mnogo.c b/ext/mnogosearch/php_mnogo.c index f609ccac06..cdc4c72d8f 100644 --- a/ext/mnogosearch/php_mnogo.c +++ b/ext/mnogosearch/php_mnogo.c @@ -58,6 +58,7 @@ #define UDM_PARAM_MIN_WORD_LEN 12 #define UDM_PARAM_MAX_WORD_LEN 13 #define UDM_PARAM_ISPELL_PREFIXES 14 +#define UDM_PARAM_CROSS_WORDS 15 /* udm_add_search_limit constants */ #define UDM_LIMIT_URL 1 @@ -78,6 +79,10 @@ #define UDM_PREFIXES_ENABLED 1 #define UDM_PREFIXES_DISABLED 0 +/* crosswords modes */ +#define UDM_CROSS_WORDS_ENABLED 1 +#define UDM_CROSS_WORDS_DISABLED 0 + /* udm_get_res_param constants */ #define UDM_PARAM_NUM_ROWS 256 #define UDM_PARAM_FOUND 257 @@ -205,6 +210,9 @@ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch) REGISTER_LONG_CONSTANT("UDM_PARAM_PREFIXES", UDM_PARAM_ISPELL_PREFIXES,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_PREFIX", UDM_PARAM_ISPELL_PREFIXES,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_CROSS_WORDS", UDM_PARAM_CROSS_WORDS,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_PARAM_CROSSWORDS", UDM_PARAM_CROSS_WORDS,CONST_CS | CONST_PERSISTENT); + /* udm_add_search_limit constants */ REGISTER_LONG_CONSTANT("UDM_LIMIT_CAT", UDM_LIMIT_CAT,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_LIMIT_URL", UDM_LIMIT_URL,CONST_CS | CONST_PERSISTENT); @@ -240,6 +248,12 @@ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch) REGISTER_LONG_CONSTANT("UDM_PHRASE_ENABLED", UDM_PHRASE_ENABLED,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PHRASE_DISABLED", UDM_PHRASE_DISABLED,CONST_CS | CONST_PERSISTENT); + /* crosswords mode params */ + REGISTER_LONG_CONSTANT("UDM_CROSS_WORDS_ENABLED",UDM_CROSS_WORDS_ENABLED,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_CROSSWORDS_ENABLED",UDM_CROSS_WORDS_ENABLED,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_CROSS_WORDS_DISABLED",UDM_CROSS_WORDS_DISABLED,CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("UDM_CROSSWORDS_DISABLED",UDM_CROSS_WORDS_DISABLED,CONST_CS | CONST_PERSISTENT); + /* prefixes mode params */ REGISTER_LONG_CONSTANT("UDM_PREFIXES_ENABLED", UDM_PREFIXES_ENABLED,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PREFIX_ENABLED", UDM_PREFIXES_ENABLED,CONST_CS | CONST_PERSISTENT); @@ -552,6 +566,28 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param) break; +#if UDM_VERSION_ID > 30110 + + case UDM_PARAM_CROSS_WORDS: + switch (atoi(val)){ + case UDM_CROSS_WORDS_ENABLED: + Agent->Conf->use_crossword=UDM_CROSS_WORDS_ENABLED; + break; + + case UDM_CROSS_WORDS_DISABLED: + Agent->Conf->use_crossword=UDM_CROSS_WORDS_DISABLED; + break; + + default: + php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown crosswords mode"); + RETURN_FALSE; + break; + } + + break; + +#endif + default: php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown agent session parameter"); RETURN_FALSE; diff --git a/ext/mnogosearch/test.php b/ext/mnogosearch/test.php index 94ff006c1a..57e01be95c 100644 --- a/ext/mnogosearch/test.php +++ b/ext/mnogosearch/test.php @@ -47,6 +47,10 @@ Udm_Set_Agent_Param($udm,UDM_PARAM_MIN_WORD_LEN,2); Udm_Set_Agent_Param($udm,UDM_PARAM_MAX_WORD_LEN,16); Udm_Set_Agent_Param($udm,UDM_PARAM_PREFIX,UDM_PREFIX_DISABLED); + + if (Udm_Api_Version() >= 30111) { + Udm_Set_Agent_Param($udm,UDM_PARAM_CROSS_WORDS,UDM_CROSS_WORDS_DISABLED); + } // if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_DB,'','',1)) { // printf("Error #%d: '%s'\n",Udm_Errno($udm),Udm_Error($udm)); -- 2.50.1