123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- <?php
- /* mnoGoSearch-php v.3.2.10
- * for mnoGoSearch ( formely known as UdmSearch ) free web search engine
- * (C) 2001 by Sergey Kartashoff <gluke@mail.ru>,
- * mnoGoSearch Developers Team <devel@mnogosearch.org>
- */
- if (!extension_loaded('mnogosearch')) {
- print "<b>This script requires PHP4.3.0+ with mnoGoSearch extension</b>";
- exit;
- }
- define("UDM_ENABLED", 1);
- define("UDM_DISABLED", 0);
- require ('./config.inc');
- require ('./common.inc');
- require ('./template.inc');
- require ('./init.inc');
- //api_block_anonymous_users();
- //require ('filter_user.functions.php');
- if ($lang_content_negotiation == 'yes') {
- // path to template file ($lang_content_negotiation = 'yes')
- // please refer to docs on this feature before using it.
- $template_file = preg_replace("/\.php\.*/", ".xml.php", basename($SCRIPT_FILENAME));
- $template_file = "./".$template_file;
- } else {
- // path to template file ($lang_content_negotiation = 'no')
- $template_file = './search.xml.php';
- }
- // -----------------------------------------------
- // M A I N
- // -----------------------------------------------
- if (!$cc) {
- $XMLOutput = 1;
- init();
- if (!$have_query_flag) {
- print_template('bottom');
- return;
- }
- elseif ($have_query_flag && ($q == '')) {
- print_template('noquery');
- print_template('bottom');
- return;
- }
- $res = udm_find($udm_agent, $q);
- if (!$res) {
- print_error_local(udm_error($udm_agent));
- } else {
- $found = udm_get_res_param($res, UDM_PARAM_FOUND);
- $rows = udm_get_res_param($res, UDM_PARAM_NUM_ROWS);
- //YW commented out because broke everything
- //if (udm_api_version() >= 30231) {
- // $wordinfo=Udm_Get_Agent_Param_Ex($udm_agent,'W');
- //} else {
- $wordinfo = udm_get_res_param($res, UDM_PARAM_WORDINFO_ALL);
- //}
- $searchtime = udm_get_res_param($res, UDM_PARAM_SEARCHTIME);
- $first_doc = udm_get_res_param($res, UDM_PARAM_FIRST_DOC);
- $last_doc = udm_get_res_param($res, UDM_PARAM_LAST_DOC);
- if (!$found) {
- $ws = '';
- if ((udm_api_version() >= 30233) && ($suggest == 'yes')) {
- $ws = udm_get_agent_param_ex($udm_agent, 'WS');
- }
- print_template('notfound');
- print_template('bottom');
- return;
- }
- $from = IntVal($np) * IntVal($ps);
- $to = IntVal($np +1) * IntVal($ps);
- if ($to > $found)
- $to = $found;
- if (($from + $ps) < $found)
- $isnext = 1;
- $nav = make_nav($query_orig);
- print_template('restop');
- $global_doc_res = $res;
- $my_skip = 0;
- for ($i = 0; $i < $rows; $i += 1) {
- $excerpt_flag = 0;
- $clonestr = '';
- $rec_id = udm_get_res_field($res, $i, UDM_FIELD_URLID);
- $global_res_position = $i;
- if (udm_api_version() >= 30207) {
- $origin_id = udm_get_res_field($res, $i, UDM_FIELD_ORIGINID);
- if ($origin_id)
- continue;
- else {
- for ($j = 0; $j < $rows; $j += 1) {
- $cl_origin_id = udm_get_res_field($res, $j, UDM_FIELD_ORIGINID);
- if (($cl_origin_id) && ($cl_origin_id == $rec_id)) {
- $url = udm_get_res_field($res, $j, UDM_FIELD_URL);
- //YW
- /*if (!access_check($url)) {
- $my_skip ++;
- continue;
- }*/
- //YW
- $contype = udm_get_res_field($res, $j, UDM_FIELD_CONTENT);
- $docsize = udm_get_res_field($res, $j, UDM_FIELD_SIZE);
- $lastmod = format_lastmod(udm_get_res_field($res, $j, UDM_FIELD_MODIFIED));
- if (udm_api_version() >= 30207) {
- $pop_rank = udm_get_res_field($res, $i, UDM_FIELD_POP_RANK);
- } else
- $pop_rank = '';
- $clonestr .= print_template('clone', 0)."\n";
- }
- }
- }
- }
- if (udm_api_version() >= 30204) {
- $excerpt_flag = udm_make_excerpt($udm_agent, $res, $i);
- }
- //YW
- /*
- $ndoc = udm_get_res_field($res, $i, UDM_FIELD_ORDER) - $my_skip;
- */
- //YW
- $rating = udm_get_res_field($res, $i, UDM_FIELD_RATING);
- $url = udm_get_res_field($res, $i, UDM_FIELD_URL);
- //YW
- /*
- if (!access_check($url)) {
- $my_skip ++;
- continue;
- }*/
- //YW
- $contype = udm_get_res_field($res, $i, UDM_FIELD_CONTENT);
- $docsize = udm_get_res_field($res, $i, UDM_FIELD_SIZE);
- $lastmod = format_lastmod(udm_get_res_field($res, $i, UDM_FIELD_MODIFIED));
- $title = udm_get_res_field($res, $i, UDM_FIELD_TITLE);
- $title = ($title) ? htmlspecialchars($title) : basename($url);
- $title = ParseDocText($title);
- $text = ParseDocText(htmlspecialchars(udm_get_res_field($res, $i, UDM_FIELD_TEXT)));
- //$text=ParseDocText(htmlspecialchars(udm_get_res_field_ex($res,$i,"Body")));
- $keyw = ParseDocText(htmlspecialchars(udm_get_res_field($res, $i, UDM_FIELD_KEYWORDS)));
- $desc = ParseDocText(htmlspecialchars(udm_get_res_field($res, $i, UDM_FIELD_DESC)));
- $crc = udm_get_res_field($res, $i, UDM_FIELD_CRC);
- if (udm_api_version() >= 30203) {
- $doclang = udm_get_res_field($res, $i, UDM_FIELD_LANG);
- $doccharset = udm_get_res_field($res, $i, UDM_FIELD_CHARSET);
- }
- if ($phpver >= 40006) {
- $category = udm_get_res_field($res, $i, UDM_FIELD_CATEGORY);
- } else {
- $category = '';
- }
- reset($alias_arr);
- $save_url = $url;
- while (list ($t_alias, $t_url) = each($alias_arr)) {
- $url = str_replace($t_alias, $t_url, $url);
- }
- if (udm_api_version() <= 30223) {
- if (udm_api_version() >= 30204) {
- if ($excerpt_flag) {
- if (udm_api_version() >= 30216) {
- if (udm_get_res_field_ex($res, $i, "CachedCopy") != '') {
- $stored_href = "$self?cc=1"."&url=".urlencode($save_url)."&q=".urlencode($query_orig);
- }
- }
- elseif (udm_api_version() >= 30211) {
- $stored_href = "$storedocurl?rec_id=".udm_hash32($udm_agent, $save_url)."&DM=".urlencode($lastmod)."&DS=$docsize"."&L=$doclang"."&CS=$doccharset"."&DU=".urlencode($save_url)."&CT=".urlencode($contype)."&q=".urlencode($query_orig);
- } else {
- $stored_href = "$storedocurl?rec_id=".udm_CRC32($udm_agent, $save_url)."&DM=".urlencode($lastmod)."&DS=$docsize"."&L=$doclang"."&CS=$doccharset"."&DU=".urlencode($save_url)."&CT=".urlencode($contype)."&q=".urlencode($query_orig);
- }
- if ($stored_href != '')
- $storedstr = print_template('stored', 0);
- } else
- $storedstr = '';
- } else
- $storedstr = '';
- } else {
- if (udm_get_res_field_ex($res, $i, "CachedCopy") != '') {
- if (udm_get_res_field_ex($res, $i, "dbnum") == '') {
- $stored_href = "$self?cc=1"."&url=".urlencode($save_url)."&q=".urlencode($query_orig);
- } else {
- $stored_href = "$self?cc=1"."&dbnum=".udm_get_res_field_ex($res, $i, "dbnum")."&url=".urlencode($save_url)."&q=".urlencode($query_orig);
- }
- $storedstr = print_template('stored', 0);
- }
- }
- $sitelimitstr = $persite = '';
- if ((udm_api_version() >= 30207) && ($groupbysite == 'yes')) {
- if (!$site) {
- $sitelimit_href = "$PHP_SELF?$QUERY_STRING";
- $sitelimit_href = preg_replace("/\&np=\d*/", '', $sitelimit_href);
- $sitelimit_href .= "&np=0&site=".udm_get_res_field($res, $i, UDM_FIELD_SITEID);
- $persite = udm_get_res_field_ex($res, $i, "PerSite");
- $sitelimitstr = print_template('site_limit', 0);
- }
- }
- if (udm_api_version() >= 30207) {
- $pop_rank = udm_get_res_field($res, $i, UDM_FIELD_POP_RANK);
- } else
- $pop_rank = '';
- if ((substr($url, 0, 6) == "ftp://") && ($templates['ftpres'][0] != '')) {
- print_template('ftpres');
- }
- elseif (((substr($url, 0, 7) == "http://") || (substr($url, 0, 8) == "https://")) && ($templates['httpres'][0] != '')) {
- print_template('httpres');
- } else {
- print_template('res');
- }
- }
- $global_doc_res = '';
- print_template('resbot');
- print_template('bottom');
- // Free result
- udm_free_res($res);
- }
- } else {
- /* show cached copy */
- init_cc();
- $res = udm_store_doc_cgi($udm_agent);
- $id = udm_get_agent_param_ex($udm_agent, 'ID');
- $last_modified = udm_get_agent_param_ex($udm_agent, 'Last-Modified');
- $content = udm_get_agent_param_ex($udm_agent, 'Content-Type');
- $length = udm_get_agent_param_ex($udm_agent, 'Content-Length');
- $charset = udm_get_agent_param_ex($udm_agent, 'Charset');
- Header("Content-Type: text/html; charset=$charset");
- print_template('storedoc_top');
- if ($res) {
- $document = ParseDocText(udm_get_agent_param_ex($udm_agent, 'document'));
- print_template('storedoc');
- }
- print_template('storedoc_bottom');
- }
- udm_free_agent($udm_agent);
- ?>
|