removing old search system

This commit is contained in:
JT Smith 2004-02-29 14:37:13 +00:00
parent aa59f59f7a
commit 6cae343978
9 changed files with 17 additions and 104 deletions

View file

@ -87,4 +87,8 @@ webgui.
- Added a variation on Len's Advanced Search wobject. Thanks to Len
Kranendonk for creating the original version for the WebGUI community
contest.
- Removed the old realtime search subsystem in favor of the new search
wobject.

View file

@ -50,6 +50,10 @@ save you many hours of grief.
the new configurable navigation system. See migration.txt
for additional details.
* The old realtime search subsystem has been replaced with the new
indexed search wobject. As such we've removed the ^?; macro.
If you were using the ^?; macro then you'll need to set up
a search wobject to replace it.
5.5.0

View file

@ -510,6 +510,7 @@ foreach my $macro (keys %{$macros}) {
|| $macros->{$macro} eq "SpecificDropMenu"
|| $macros->{$macro} eq "TopDropMenu"
|| $macros->{$macro} eq "Synopsis"
|| $macros->{$macro} eq "Question_search"
) {
$newMacros{$macro} = $macros->{$macro};
}
@ -571,6 +572,8 @@ unlink("../../lib/WebGUI/Macro/rootmenuHorizontal.pm");
unlink("../../lib/WebGUI/Macro/RootTab.pm");
unlink("../../lib/WebGUI/Macro/SpecificDropMenu.pm");
unlink("../../lib/WebGUI/Macro/TopDropMenu.pm");
unlink("../../lib/WebGUI/Macro/Question_search.pm");
unlink("../../lib/WebGUI/Operation/Search.pm");
rmtree("../../lib/WebGUI/Authentication");
rmtree("../../www/extras/toolbar/default");

View file

@ -661,4 +661,6 @@ INSERT INTO international VALUES (29,'IndexedSearch',1,'Search template',1070202
INSERT INTO template VALUES (2,'Advanced Search','<tmpl_if displayTitle>\r\n <h1><tmpl_var title></h1>\r\n</tmpl_if>\r\n\r\n<tmpl_if description>\r\n <tmpl_var description><p />\r\n</tmpl_if>\r\n\r\n<table class=\"tableMenu\" width=\"100%\">\r\n <tbody>\r\n <tr>\r\n <form method=\"post\" encType=\"multipart/form-data\">\r\n<input type=\"hidden\" name=\"func\" value=\"view\">\r\n<input type=\"hidden\" name=\"wid\" value=\"<tmpl_var wid>\">\r\n<td vAlign=\"top\" align=\"middle\">\r\n <table>\r\n <tbody>\r\n <tr>\r\n<td class=\"tableData\"><b>Search for:</b></td>\r\n<td class=\"tableData\"><input maxLength=\"255\" size=\"25\" value=\'<tmpl_var query>\' name=\"query\"></td>\r\n<td class=\"tableData\">in</td>\r\n<td class=\"tableData\">\r\n <select size=\"1\" name=\"namespaces\">\r\n <tmpl_loop namespaces>\r\n <option value=\"<tmpl_var value>\" <tmpl_if selected>selected</tmpl_if>><tmpl_var name></option>\r\n </tmpl_loop>\r\n </select>\r\n \r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"tableData\" valign=top><b>Content in language:</b></td>\r\n <td class=\"tableData\" valign=top>\r\n <tmpl_loop languages>\r\n <input type=\"checkbox\" name=\"languages\" value=\"<tmpl_var value>\" \r\n <tmpl_if selected>checked=\"1\"</tmpl_if> ><tmpl_var name><br>\r\n </tmpl_loop>\r\n </td>\r\n <td class=\"tableData\" valign=top><b>Created by:</b></td>\r\n <td class=\"tableData\" valign=top>\r\n <select size=\"1\" name=\"users\">\r\n <tmpl_loop users>\r\n <option value=\"<tmpl_var value>\" <tmpl_if selected>selected</tmpl_if>><tmpl_var name></option>\r\n </tmpl_loop>\r\n </select>\r\n </td>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"tableData\"><b>Type of content:</b></td>\r\n <td class=\"tableData\">\r\n <select size=\"1\" name=\"contentTypes\">\r\n <tmpl_loop contentTypes>\r\n <option value=\"<tmpl_var value>\" <tmpl_if selected>selected</tmpl_if>><tmpl_var name></option>\r\n </tmpl_loop>\r\n </select>\r\n </td>\r\n<td class=\"tableData\"><b>Number of Results:</b></td>\r\n<td class=\"tableData\">\r\n <select size=\"1\" name=\"paginateAfter\">\r\n <option <tmpl_var select_10> >10</option>\r\n <option <tmpl_var select_25> >25</option>\r\n <option <tmpl_var select_50> >50</option>\r\n <option <tmpl_var select_100 >>100</option>\r\n </select>\r\n</td>\r\n </tr>\r\n <tr>\r\n <td class=\"tableData\"></td>\r\n <td class=\"tableData\"></td>\r\n<td class=\"tableData\"></td>\r\n<td class=\"tableData\"><input onclick=\"this.value=\'Please wait...\'\" type=\"submit\" value=\"search\"></td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n</td>\r\n<td></td>\r\n </form>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<p/>\r\n<tmpl_if numberOfResults>\r\n <p>Results <tmpl_var startNr> - <tmpl_var endNr> of about <tmpl_var numberOfResults> \r\n containing <b>\"<tmpl_var queryHighlighted>\"</b>. Search took <b><tmpl_var duration></b> seconds.</p>\r\n</tmpl_if>\r\n<ol style=\"Margin-Top: 0px; Margin-Bottom: 0px;\" start=\"<tmpl_var startNr>\">\r\n\r\n<tmpl_loop resultsLoop>\r\n <li>\r\n <a href=\"<tmpl_var location>\">\r\n <tmpl_if header><tmpl_var header><tmpl_else>No Title</tmpl_if></a>\r\n <tmpl_if username>\r\n by <a href=\"<tmpl_var userProfile>\"><tmpl_var username></a>\r\n </tmpl_if>\r\n <div>\r\n <tmpl_if \"body\">\r\n <span class=\"preview\"><tmpl_var \"body\"></span><br/>\r\n </tmpl_if>\r\n <span style=\"color:#666666;\"><tmpl_var location></span>\r\n <br/>\r\n <br/>\r\n </div>\r\n </li>\r\n</tmpl_loop>\r\n\r\n</ol>\r\n\n\n\n<tmpl_if pagination.pageCount.isMultiple>\n <div class=\"pagination\">\n <tmpl_var pagination.previousPage> &middot; <tmpl_var pagination.pageList.upTo20> &middot; <tmpl_var pagination.nextPage>\n </div>\n</tmpl_if>\n','IndexedSearch');
INSERT INTO template VALUES (3,'Search in Help','<tmpl_if displayTitle>\r\n <h1><tmpl_var title></h1>\r\n</tmpl_if>\r\n\r\n<tmpl_if description>\r\n <tmpl_var description><p />\r\n</tmpl_if>\r\n\r\n<table class=\"tableMenu\" width=\"100%\">\r\n <tbody>\r\n <tr>\r\n <td align=\"center\" width=\"15%\">\r\n <h1><tmpl_var int.search></h1>\r\n </td>\r\n <td vAlign=\"top\" align=\"middle\">\r\n <table>\r\n <form method=\"post\">\r\n <input type=\"hidden\" name=\"contentTypes\" value=\"help\">\r\n <input type=\"hidden\" name=\"func\" value=\"view\">\r\n <input type=\"hidden\" name=\"wid\" value=\"<tmpl_var wid>\">\r\n <tbody>\r\n <tr>\r\n <td align=center class=\"tableData\">\r\n <input maxLength=\"255\" size=\"30\" value=\'<tmpl_var query>\' name=\"query\">\r\n </td>\r\n <td class=\"tableData\"><tmpl_var submit></td>\r\n </tr>\r\n <tr>\r\n <td align=center class=\"tableData\" valign=\"top\"><b>In namespace: </b>\r\n <select size=\"1\" name=\"namespaces\">\r\n <tmpl_loop namespaces>\r\n <option value=\"<tmpl_var value>\" <tmpl_if selected>selected</tmpl_if>><tmpl_var name></option>\r\n </tmpl_loop>\r\n </select>\r\n </td>\r\n </tbody>\r\n </table>\r\n </td>\r\n </form>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<p/>\r\n<tmpl_if numberOfResults>\r\n <p>Results <tmpl_var startNr> - <tmpl_var endNr> of about <tmpl_var numberOfResults> \r\n containing <b>\"<tmpl_var queryHighlighted>\"</b>. Search took <b><tmpl_var duration></b> seconds.</p>\r\n</tmpl_if>\r\n<ol style=\"Margin-Top: 0px; Margin-Bottom: 0px;\" start=\"<tmpl_var startNr>\">\r\n\r\n<tmpl_loop resultsLoop>\r\n <li>\r\n <a href=\"<tmpl_var location>\">\r\n <tmpl_if header><tmpl_var header><tmpl_else>No Title</tmpl_if></a>\r\n <div>\r\n <tmpl_if \"body\">\r\n <span class=\"preview\"><tmpl_var \"body\"></span><br/>\r\n </tmpl_if>\r\n <span style=\"color:#666666;\">Namespace: <tmpl_var namespace></span>\r\n <br/>\r\n <br/>\r\n </div>\r\n </li>\r\n</tmpl_loop>\r\n\r\n</ol>\r\n\n\n\n<tmpl_if pagination.pageCount.isMultiple>\n <div class=\"pagination\">\n <tmpl_var pagination.previousPage> &middot; <tmpl_var pagination.pageList.upTo20> &middot; <tmpl_var pagination.nextPage>\n </div>\n</tmpl_if>\n','IndexedSearch');
INSERT INTO template VALUES (1,'Default Search','<tmpl_if displayTitle>\r\n <h1><tmpl_var title></h1>\r\n</tmpl_if>\r\n\r\n<tmpl_if description>\r\n <tmpl_var description><p />\r\n</tmpl_if>\r\n\r\n<table class=\"tableMenu\" width=\"100%\">\r\n <tbody>\r\n <tr>\r\n <td align=\"center\" width=\"15%\">\r\n <h1><tmpl_var int.search></h1>\r\n </td>\r\n <td vAlign=\"top\" align=\"middle\">\r\n <table>\r\n <form method=\"post\">\r\n <input type=\"hidden\" name=\"func\" value=\"view\">\r\n <input type=\"hidden\" name=\"wid\" value=\"<tmpl_var wid>\">\r\n <tbody>\r\n <tr>\r\n <td colspan=\"2\" class=\"tableData\">\r\n <input maxLength=\"255\" size=\"30\" value=\'<tmpl_var query>\' name=\"query\">\r\n </td>\r\n <td class=\"tableData\"><tmpl_var submit></td>\r\n </tr>\r\n <tr>\r\n <td class=\"tableData\" valign=\"top\">\r\n <tmpl_loop languages>\r\n <input type=\"radio\" name=\"languages\" value=\"<tmpl_var value>\" \r\n <tmpl_if __FIRST__>\r\n <tmpl_if query>\r\n <tmpl_if selected>\r\n checked=\"1\"\r\n </tmpl_if>\r\n <tmpl_else>\r\n checked=\"1\"\r\n </tmpl_if>\r\n <tmpl_else>\r\n <tmpl_if selected>checked=\"1\"</tmpl_if>\r\n </tmpl_if>\r\n ><tmpl_var name>\r\n <br>\r\n </tmpl_loop>\r\n </td>\r\n <td class=\"tableData\" valign=\"top\">\r\n <tmpl_loop contentTypesSimple>\r\n <tmpl_unless __FIRST__>\r\n <input type=\"checkbox\" name=\"contentTypes\" value=\"<tmpl_var value>\"\r\n <tmpl_if type_content>\r\n <tmpl_if query>\r\n <tmpl_if selected>\r\n checked=\"1\"\r\n </tmpl_if>\r\n <tmpl_else>\r\n checked=\"1\"\r\n </tmpl_if>\r\n <tmpl_else>\r\n <tmpl_if selected>checked=\"1\"</tmpl_if>\r\n </tmpl_if>\r\n ><tmpl_var name>\r\n <br>\r\n </tmpl_unless>\r\n </tmpl_loop>\r\n </td>\r\n <td></td>\r\n </tbody>\r\n </form>\r\n </table>\r\n </td> \r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<p/>\r\n<tmpl_if numberOfResults>\r\n <p>Results <tmpl_var startNr> - <tmpl_var endNr> of about <tmpl_var numberOfResults> \r\n containing <b>\"<tmpl_var queryHighlighted>\"</b>. Search took <b><tmpl_var duration></b> seconds.</p>\r\n <ol style=\"Margin-Top: 0px; Margin-Bottom: 0px;\" start=\"<tmpl_var startNr>\">\r\n <tmpl_loop resultsLoop>\r\n <li>\r\n <a href=\"<tmpl_var location>\">\r\n <tmpl_if header><tmpl_var header><tmpl_else>No Title</tmpl_if></a>\r\n <div>\r\n <tmpl_if \"body\">\r\n <span class=\"preview\"><tmpl_var \"body\"></span><br/>\r\n </tmpl_if>\r\n <span style=\"color:#666666;\">Location: <tmpl_var crumbTrail></span>\r\n <br/>\r\n <br/>\r\n </div>\r\n </li>\r\n </tmpl_loop>\r\n </ol>\r\n</tmpl_if> \n\n\n<tmpl_if pagination.pageCount.isMultiple>\n <div class=\"pagination\">\n <tmpl_var pagination.previousPage> &middot; <tmpl_var pagination.pageList.upTo20> &middot; <tmpl_var pagination.nextPage>\n </div>\n</tmpl_if>\n','IndexedSearch');
delete from international where internationalId=365 and namespace='WebGUI';
delete from international where internationalId=366 and namespace='WebGUI';

View file

@ -1,30 +0,0 @@
package WebGUI::Macro::Question_search;
#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2003 Plain Black LLC.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use strict;
use WebGUI::HTMLForm;
use WebGUI::International;
use WebGUI::Session;
use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my ($f);
$f = WebGUI::HTMLForm->new(1);
$f->hidden("op","search");
$f->text("atLeastOne",'',$session{form}{atLeastOne});
$f->submit(WebGUI::International::get(364));
return $f->print;
}
1;

View file

@ -27,7 +27,6 @@ use WebGUI::Operation::ProfileSettings;
use WebGUI::Operation::Replacements;
use WebGUI::Operation::Root;
use WebGUI::Operation::Scratch;
use WebGUI::Operation::Search;
use WebGUI::Operation::Settings;
use WebGUI::Operation::Statistics;
use WebGUI::Operation::Style;

View file

@ -1,66 +0,0 @@
package WebGUI::Operation::Search;
#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2003 Plain Black LLC.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use Exporter;
use strict;
use WebGUI::HTMLForm;
use WebGUI::International;
use WebGUI::Paginator;
use WebGUI::Privilege;
use WebGUI::Search;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::URL;
our @ISA = qw(Exporter);
our @EXPORT = qw(&www_search);
#-------------------------------------------------------------------
sub www_search {
my ($constraints, $p, $output, %page, $sth, @row, $i, $url);
$url = WebGUI::URL::page('op=search');
$url = WebGUI::URL::append($url,'all='.$session{form}{all}) if ($session{form}{all} ne "");
$url = WebGUI::URL::append($url,'exactPhrase='.$session{form}{exactPhrase}) if ($session{form}{exactPhrase} ne "");
$url = WebGUI::URL::append($url,'atLeastOne='.$session{form}{atLeastOne}) if ($session{form}{atLeastOne} ne "");
$url = WebGUI::URL::append($url,'without='.$session{form}{without}) if ($session{form}{without} ne "");
$output = WebGUI::Search::form({op=>'search'});
$constraints = WebGUI::Search::buildConstraints([qw(page.synopsis page.title page.menuTitle page.metaTags
page.urlizedTitle wobject.description wobject.title wobject.namespace)]);
if ($constraints ne "") {
tie %page, 'Tie::CPHash';
$sth = WebGUI::SQL->read("select page.urlizedTitle,page.title,wobject.wobjectId,page.pageId from page,wobject where $constraints
and page.pageId=wobject.pageId and (page.pageId > 999 or page.pageId<=1)
and page.pageId<>$session{page}{pageId} order by lastEdited");
while (%page = $sth->hash) {
if (WebGUI::Privilege::canViewPage($page{pageId})) {
$row[$i] = '<li><a href="'.WebGUI::URL::gateway($page{urlizedTitle}).'#'.$page{wobjectId}.'">'.$page{title}.'</a>';
$i++;
}
}
$sth->finish;
}
if ($row[0] ne "") {
$p = WebGUI::Paginator->new($url,$session{scratch}{numResults});
$p->setDataByArrayRef(\@row);
$output .= '<p/>'.WebGUI::International::get(365).'<p><ul>';
$output .= $p->getPage($session{form}{pn});
$output .= '</ul>'.$p->getBarTraditional($session{form}{pn});
} elsif ($session{form}{exactPhrase} ne "" || $session{form}{all} ne "" || $session{form}{without} ne "" || $session{form}{atLeastOne} ne "") {
$output .= '<p/>'.WebGUI::International::get(366).'<p/>';
}
return $output;
}
1;

View file

@ -101,6 +101,7 @@ use WebGUI::Operation::Group ();
use WebGUI::Operation::Help ();
use WebGUI::Operation::International ();
use WebGUI::Operation::MessageLog ();
use WebGUI::Operation::Navigation ();
use WebGUI::Operation::Package ();
use WebGUI::Operation::Page ();
use WebGUI::Operation::Profile ();
@ -108,7 +109,6 @@ use WebGUI::Operation::ProfileSettings ();
use WebGUI::Operation::Replacements ();
use WebGUI::Operation::Root ();
use WebGUI::Operation::Scratch ();
use WebGUI::Operation::Search ();
use WebGUI::Operation::Settings ();
use WebGUI::Operation::Shared ();
use WebGUI::Operation::Statistics ();

View file

@ -46,7 +46,6 @@ function returnSelected(in_values) {
<option value='^Navigation(SpecificMenuVertical);'>Specific SubMenu (Vertical)</option>
<option value='^Navigation(SpecificMenuHorizontal);'>Specific SubMenu (Horizontal)</option>
<option value='^Navigation(SpecificDropMenu);'>Specific Dropdown Menu</option>
<option value='^Synopsis;'>Synopsis Menu</option>
<option value='^Navigation(TopLevelMenuVertical);'>Top Level Menu (Vertical)</option>
<option value='^Navigation(TopLevelMenuHorizontal);'>Top Level Menu (Horizontal)</option>
<option value='^Navigation(TopDropMenu);'>Top Dropdown Menu</option>
@ -64,8 +63,8 @@ function returnSelected(in_values) {
<option value='^a("Account Info");'>My Account Link</option>
<option value='^CanEditText("You can edit this page.");'>Can Edit Page Message</option>
<option value='^AdminText("You are in admin mode!");'>Admin Mode Message</option>
<option value='GroupAdd("Newsletter","Click here to join our newsletter.");
<option value='GroupDelete("Newsletter","Click here to unsubscribe from our newsletter.");
<option value='^GroupAdd("Newsletter","Click here to join our newsletter.");'>Join Group</option>
<option value='^GroupDelete("Newsletter","Click here to unsubscribe from our newsletter.");'>Leave Group</option>
<option value='^GroupText("Visitors","You need an account to do anything cool on this site!");'>Group Message</option>
<option value='^EditableToggle;'>Page Editable Toggle</option>
<option value='^AdminToggle;'>Admin Toggle</option>
@ -84,10 +83,8 @@ function returnSelected(in_values) {
<option value='^PageTitle;'>Page Title</option>
<option value='^r;'>Make Page Printable</option>
<option value='^RootTitle;'>Root Title</option>
<option value='^?;'>Search Box</option>
<option value='^Extras;'>Extras Folder</option>
<option value='^AdminBar;'>Admin Bar</option>
<option value='^-;'>Separator</option>
<option value='^AdminBar(2);'>Admin Bar</option>
</select>