gluke Sun Nov 24 14:36:46 2002 EDT Modified files: /php4/ext/mnogosearch php_mnogo.c Log: @- A new functions have been added: udm_set_agent_param_ex and udm_get_res_field_ex - A new functions have been added: udm_set_agent_param_ex and udm_get_res_field_ex Index: php4/ext/mnogosearch/php_mnogo.c diff -u php4/ext/mnogosearch/php_mnogo.c:1.66 php4/ext/mnogosearch/php_mnogo.c:1.67 --- php4/ext/mnogosearch/php_mnogo.c:1.66 Sat Sep 28 13:52:06 2002 +++ php4/ext/mnogosearch/php_mnogo.c Sun Nov 24 14:36:45 2002 @@ -1,5 +1,5 @@ /* $Source: /usr/repository/php4/ext/mnogosearch/php_mnogo.c,v $ */ -/* $Id: php_mnogo.c,v 1.66 2002/09/28 17:52:06 gluke Exp $ */ +/* $Id: php_mnogo.c,v 1.67 2002/11/24 19:36:45 gluke Exp $ */ /* +----------------------------------------------------------------------+ @@ -163,6 +163,8 @@ #if UDM_VERSION_ID >= 30204 PHP_FE(udm_parse_query_string, NULL) PHP_FE(udm_make_excerpt, NULL) + PHP_FE(udm_set_agent_param_ex, NULL) + PHP_FE(udm_get_res_field_ex, NULL) #endif #endif @@ -1663,6 +1665,104 @@ } RETURN_TRUE; +} +/* }}} */ + +/* {{{ proto int udm_set_agent_param_ex(int agent, string var, string val) + Set mnoGoSearch agent session parameters extended */ +DLEXPORT PHP_FUNCTION(udm_set_agent_param_ex) +{ + pval **yyagent, **yyvar, **yyval; + char *val, *var; + UDM_AGENT * Agent; + + switch(ZEND_NUM_ARGS()){ + + case 3: + if(zend_get_parameters_ex(3,&yyagent,&yyvar,&yyval)==FAILURE){ + RETURN_FALSE; + } + convert_to_string_ex(yyvar); + convert_to_string_ex(yyval); + ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, +"mnoGoSearch-agent", le_link); + var = Z_STRVAL_PP(yyvar); + val = Z_STRVAL_PP(yyval); + + break; + + default: + WRONG_PARAM_COUNT; + break; + } + + UdmVarListReplaceStr(&Agent->Conf->Vars,var,val); + + if (!strcasecmp(var,"LocalCharset")) { + const char * +charset=UdmVarListFindStr(&Agent->Conf->Vars,"LocalCharset","iso-8859-1"); + Agent->Conf->lcs=UdmGetCharSet(charset); + } else if (!strcasecmp(var,"BrowserCharset")) { + const char * +charset=UdmVarListFindStr(&Agent->Conf->Vars,"BrowserCharset","iso-8859-1"); + Agent->Conf->bcs=UdmGetCharSet(charset); + } else if (!strcasecmp(var,"Synonym")) { + if (UdmSynonymListLoad(Agent->Conf,val)) { + php_error(E_WARNING, "%s(): %s", +get_active_function_name(TSRMLS_C),Agent->Conf->errstr); + RETURN_FALSE; + } else UdmSynonymListSort(&(Agent->Conf->Synonyms)); + } else if (!strcasecmp(var,"Stopwordfile")) { + if (UdmStopListLoad(Agent->Conf,val)) { + php_error(E_WARNING, "%s(): %s", Agent->Conf->errstr, +get_active_function_name(TSRMLS_C)); + RETURN_FALSE; + } + } else if (!strcasecmp(var,"MinWordLen")) { + Agent->Conf->WordParam.min_word_len=atoi(val); + } else if (!strcasecmp(var,"MaxWordLen")) { + Agent->Conf->WordParam.max_word_len=atoi(val); + } else if (!strcasecmp(var,"VarDir")) { + +snprintf(Agent->Conf->vardir,sizeof(Agent->Conf->vardir)-1,"%s%s",val,UDMSLASHSTR); + } + + RETURN_TRUE; +} + +/* {{{ proto string udm_get_res_field_ex(int res, int row, string field) + Fetch mnoGoSearch result field */ +DLEXPORT PHP_FUNCTION(udm_get_res_field_ex) +{ + pval **yyres, **yyrow_num, **yyfield_name; + + UDM_RESULT * Res; + int row; + char *field; + + switch(ZEND_NUM_ARGS()){ + case 3: { + if (zend_get_parameters_ex(3, +&yyres,&yyrow_num,&yyfield_name)==FAILURE){ + RETURN_FALSE; + } + convert_to_string_ex(yyrow_num); + convert_to_string_ex(yyfield_name); + field = Z_STRVAL_PP(yyfield_name); + row = atoi(Z_STRVAL_PP(yyrow_num)); + } + break; + default: + WRONG_PARAM_COUNT; + break; + } + + ZEND_FETCH_RESOURCE(Res, UDM_RESULT *, yyres, -1, "mnoGoSearch-Result", +le_res); + if(row<Res->num_rows){ + if (!strcasecmp(field,"URL")) { + char *al; + al = (char *)MyRemoveHiLightDup((const char +*)(UdmVarListFindStr(&(Res->Doc[row].Sections), field, ""))); + UdmVarListReplaceStr(&Res->Doc[row].Sections,field,al); + free(al); + } + RETURN_STRING((char +*)UdmVarListFindStr(&Res->Doc[row].Sections,field,""),1); + } else { + php_error(E_WARNING,"%s(): row number too large", +get_active_function_name(TSRMLS_C)); + RETURN_FALSE; + } } /* }}} */ #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php