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/sear…
==============================================================================
---
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(a)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/sea…
==============================================================================
---
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>";
}
}