Author: frik85 Date: Sun Jun 25 00:22:53 2006 New Revision: 22584
URL: http://svn.reactos.org/svn/reactos?rev=22584&view=rev Log: RSDB: * add more options to the AJAX search script
RosCMS: * add AJAX website content search script
Added: trunk/web/reactos.org/htdocs/roscms/search.php Modified: trunk/web/reactos.org/htdocs/support/search.js
Added: trunk/web/reactos.org/htdocs/roscms/search.php URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/roscms/searc... ============================================================================== --- trunk/web/reactos.org/htdocs/roscms/search.php (added) +++ trunk/web/reactos.org/htdocs/roscms/search.php Sun Jun 25 00:22:53 2006 @@ -1,0 +1,82 @@ +<?php + /* + RosCMS - Search Function + Copyright (C) 2005-2006 Klemens Friedl <frik85@reactos.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + + require_once("connect.db.php"); + + $RSDB_SET_search=""; // Search string + $RSDB_SET_search_lang=""; // Search language + if (array_key_exists("search", $_GET)) $RSDB_SET_search=htmlspecialchars($_GET["search"]); + if (array_key_exists("searchlang", $_GET)) $RSDB_SET_search_lang=htmlspecialchars($_GET["searchlang"]); + if ($RSDB_SET_search_lang == "en") { + $RSDB_SET_search_lang = "all"; + } + + $query_count_groups=mysql_query("SELECT COUNT(content_id) + FROM `content`, `pages` + WHERE content_active = '1' + AND + ( content_name LIKE '%" . mysql_real_escape_string($RSDB_SET_search) . "%' + OR content_text LIKE '%" . mysql_real_escape_string($RSDB_SET_search) . "%' + ) + AND content_name = page_name + AND page_active = '1' + AND content_lang = '". mysql_real_escape_string($RSDB_SET_search_lang) ."' + ORDER BY `page_name` ASC + LIMIT 0 , 20 ;"); + $result_count_groups = mysql_fetch_row($query_count_groups); + +header( 'Content-type: text/xml' ); +echo '<?xml version="1.0" encoding="UTF-8"?> +<root> +'; + + if (!$result_count_groups[0]) { + echo " #none#\n"; + } + else { + echo " ".$result_count_groups[0]."\n"; + } + +if ($RSDB_SET_search != "" || strlen($RSDB_SET_search) > 1) { + + $query_page = mysql_query("SELECT content.content_name, content.content_id, pages.page_title + FROM `content`, `pages` + WHERE content_active = '1' + AND + ( content_name LIKE '%" . mysql_real_escape_string($RSDB_SET_search) . "%' + OR content_text LIKE '%" . mysql_real_escape_string($RSDB_SET_search) . "%' + ) + AND content_name = page_name + AND page_active = '1' + AND content_lang = '". mysql_real_escape_string($RSDB_SET_search_lang) ."' + GROUP BY page_name, content_name + ORDER BY `content_id` DESC + LIMIT 0 , 15 ;"); + while($result_page = mysql_fetch_array($query_page)) { // Pages +?> + <dbentry> + <content id="<?php echo $result_page['page_title']; ?>"><?php echo $result_page['content_name']; ?></content> + </dbentry> +<? + } +} +?> +</root>
Modified: trunk/web/reactos.org/htdocs/support/search.js URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/support/sear... ============================================================================== --- trunk/web/reactos.org/htdocs/support/search.js (original) +++ trunk/web/reactos.org/htdocs/support/search.js Sun Jun 25 00:22:53 2006 @@ -11,8 +11,10 @@ var tWhere = ""; var tPicAnimation = ""; var tResults = ""; - var twebsite = "http://localhost/reactos.org/support/index.php"; - //var twebsite = "http://www.reactos.org/support/index.php"; + //var twebsite = "http://localhost/reactos.org/support/index.php"; + //var twebsite2 = "http://localhost/reactos.org/"; + var twebsite = "http://www.reactos.org/support/index.php"; + var twebsite2 = "http://www.reactos.org/";
function writeItemList_style_header() { @@ -58,6 +60,12 @@ return tempb; }
+ function write_rosweb_entry(itemname, itemid) { + var tempb = ""; + tempb += "<a href=""+twebsite2+"?page=" + itemid + "">• " + itemname + "</a>\n"; + return tempb; + } + function write_compsubmit_header() { var tempa = ""; @@ -137,32 +145,37 @@ if (asearch.length > 1) { document.getElementById(tResults).style.display = "block"; document.getElementById(tPicAnimation).style.display = "inline"; - if (asearch != "") { - setCursor('wait'); - if (http_request && (http_request.readyState == 2 || http_request.readyState == 3)) { - http_request.abort(); // stop running request - } - - if (tWhere == "comp") { - makeRequest(twebsite+'?page=dat&export=grplst&search='+asearch); - } - else if (tWhere == "vendor") { - //alert("vendor"); - makeRequest(twebsite+'?page=dat&export=vdrlst&search='+asearch); - } - } - } - else { + if (asearch != "") { + setCursor('wait'); + if (http_request && (http_request.readyState == 2 || http_request.readyState == 3)) { + http_request.abort(); // stop running request + } + + + if (tWhere == "comp") { + makeRequest(twebsite+'?page=dat&export=grplst&search='+asearch); + } + else if (tWhere == "vendor") { + //alert("vendor"); + makeRequest(twebsite+'?page=dat&export=vdrlst&search='+asearch); + } + else if (tWhere.substr(0, 6) == "roscms") { + //alert("vendor"); + makeRequest(twebsite2+'roscms/search.php?search='+asearch+'&searchlang='+tWhere.substr(7, 2)); + } + } + } + else { document.getElementById(tResults).style.display = "none"; document.getElementById(tPicAnimation).style.display = "none"; deleteItemList(); - } + } } function setCursor(mode) { - var pageBody = document.getElementsByTagName("body")[0]; - pageBody.style.cursor = mode; + var pageBody = document.getElementsByTagName("body")[0]; + pageBody.style.cursor = mode; } @@ -230,7 +243,10 @@ var vendo = http_request.responseXML.getElementsByTagName("vendor"); var vendurl = http_request.responseXML.getElementsByTagName("url"); } - + else if (tWhere.substr(0, 6) == "roscms") { + var webcontent = http_request.responseXML.getElementsByTagName("content"); + } + // Colors: var colorcur=""; var color1="#E2E2E2"; @@ -245,7 +261,10 @@ else if (tWhere == "vendor") { xmllength = vendo.length; } - + else if (tWhere.substr(0, 6) == "roscms") { + xmllength = webcontent.length; + } + // XML-Loop: for (var i = 0; i < xmllength; i++) { // Table colors: @@ -271,6 +290,10 @@ else if (tView == "submit_vendor") { lstData += write_vendorsubmit_entry(vendo[i].getAttributeNode("id").value, vendo[i].firstChild.data, vendurl[i].firstChild.data, colorcur); } + else if (tView == "rosweb") { + lstData += write_rosweb_entry(webcontent[i].getAttributeNode("id").value, webcontent[i].firstChild.data); + } + } // Table footer: @@ -307,6 +330,9 @@ } else if (tView == "submit_vendor") { document.getElementById(tResults).innerHTML = "<p>Your search - " + tSearch + " - did not match any database entries.</p><p>Choose a vendor from the <b><a href="javascript://" onclick="SelectVendor()">vendor list</a></b> or <b><a href="javascript://" onclick="AddVendor()">submit a new vendor</a></b> to the database.</p>"; + } + else if (tView == "rosweb") { + document.getElementById(tResults).innerHTML = "<center>no entries found</center>"; } }