mirror of
https://github.com/php/web-php.git
synced 2026-03-24 07:12:16 +01:00
181 lines
5.8 KiB
PHP
181 lines
5.8 KiB
PHP
<?php // vim: et
|
|
// $Id$
|
|
$_SERVER['BASE_PAGE'] = 'search.php';
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/prepend.inc';
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// Convert POST -> GET for dumping the user onto a mirror
|
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
$_FORM = &$_POST;
|
|
$_SERVER['REQUEST_URI'] = "/search.php?";
|
|
$vars = array("show", "pattern", "lang");
|
|
foreach ($vars as $varname) {
|
|
if (!empty($_POST[$varname])) {
|
|
$_SERVER['REQUEST_URI'] .= "$varname=" . urlencode($_POST[$varname]) . "&";
|
|
}
|
|
}
|
|
} else {
|
|
$_FORM = &$_GET;
|
|
}
|
|
|
|
// Drive load to mirror sites when searching
|
|
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/loadavg.inc';
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// If PHP added some slashes to quotes, get rid of them
|
|
if ($MQ) {
|
|
foreach ($_FORM as $name => $value) {
|
|
$_FORM[$name] = stripslashes($value);
|
|
}
|
|
}
|
|
|
|
// We received something to search for
|
|
if (!empty($_FORM['pattern'])) {
|
|
|
|
// Never allow a comma in the show string, that would confuse our JS
|
|
$_FORM['show'] = str_replace(",", "", $_FORM['show']);
|
|
|
|
// Mailing list search base URL
|
|
$ml_url = "http://marc.info/?r=1&w=2&q=b&";
|
|
$ucp = urlencode($_FORM['pattern']);
|
|
|
|
// Do redirections for external search engines
|
|
switch ($_FORM['show']) {
|
|
|
|
case "quickref" :
|
|
$langparam = (isset($EXPL_LANG) ? "&lang=$EXPL_LANG" : "");
|
|
mirror_redirect("/manual-lookup.php?pattern={$ucp}{$langparam}");
|
|
|
|
case "maillist" :
|
|
mirror_redirect("{$ml_url}l=php-general&s={$ucp}");
|
|
|
|
case "devlist" :
|
|
mirror_redirect("{$ml_url}l=php-internals&s={$ucp}");
|
|
|
|
case "phpdoc" :
|
|
mirror_redirect("{$ml_url}l=phpdoc&s={$ucp}");
|
|
|
|
case "bugdb" :
|
|
// Redirect to bug page in case of exact number
|
|
if (preg_match("!^\\d+$!", $_FORM['pattern'])) {
|
|
mirror_redirect("http://bugs.php.net/{$ucp}");
|
|
}
|
|
|
|
// Redirect to bug search page in case of some other pattern
|
|
else {
|
|
mirror_redirect(
|
|
"http://bugs.php.net/search.php?" .
|
|
"cmd=Display+Bugs&status=All&bug_type=Any&search_for={$ucp}"
|
|
);
|
|
}
|
|
|
|
case "manual":
|
|
mirror_redirect($MYSITE . "results.php?q={$ucp}&p=manual&l=$LANG");
|
|
break;
|
|
|
|
case "news_archive":
|
|
$p = urlencode($_FORM['show']);
|
|
mirror_redirect($MYSITE . "results.php?q=title:news%2Barchive+{$ucp}&p=local");
|
|
break;
|
|
|
|
case "changelogs":
|
|
$p = urlencode($_FORM['show']);
|
|
mirror_redirect($MYSITE . "results.php?q=title:changelog%2Barchive+{$ucp}&p=all");
|
|
break;
|
|
|
|
// Covers the rest
|
|
default:
|
|
$p = urlencode($_FORM['show']);
|
|
mirror_redirect($MYSITE . "results.php?q={$ucp}&l=$LANG&p=$p");
|
|
break;
|
|
}
|
|
}
|
|
|
|
// No pattern provided, print search page
|
|
else {
|
|
|
|
// Print out common header
|
|
$link = array(
|
|
"rel" => "search",
|
|
"type" => "application/opensearchdescription+xml",
|
|
"href" => $MYSITE . "phpnetimprovedsearch.src",
|
|
"title" => "Add PHP.net search"
|
|
);
|
|
site_header("Search", array("link" => array($link)));
|
|
?>
|
|
<p>
|
|
The autocompleting search feature is accessible via the form elements at the top
|
|
right of php.net pages. You should be able to use this feature in a reasonably modern
|
|
browser by selecting the 'function list' search option and typing in some letters
|
|
into the searchbox. Features:
|
|
</p>
|
|
<ul>
|
|
<li>Dynamically changing list of function names starting with the substring you typed</li>
|
|
<li>Navigate in the list with up and down keys</li>
|
|
<li>Autocomplete with pressing the space key</li>
|
|
<li>Go to a function by clicking on its name with your mouse</li>
|
|
</ul>
|
|
<p>
|
|
If you are not interested in this feature, you can turn it
|
|
off for yourself on the <a href="/my.php">My PHP.net</a> page.
|
|
</p>
|
|
<p>
|
|
In case you find any bugs, <a href="http://bugs.php.net/">we are interested</a>
|
|
in a detailed writeup, including JS error messages, operating system and browser
|
|
information. The source code of this feature is released under the PHP License and
|
|
is available <a href="http://cvs.php.net/cvs.php/phpdoc/scripts/quickref">from the
|
|
PHP CVS server</a> without any support.
|
|
</p>
|
|
<?php
|
|
if (FALSE) {
|
|
if (isset($EXPL_LANG)) {
|
|
$lang_input = " <input type=\"hidden\" name=\"lang\" value=\"{$EXPL_LANG}\" />\n";
|
|
} else {
|
|
$lang_input = "\n";
|
|
}
|
|
|
|
?>
|
|
<h1>Search</h1>
|
|
<form action="/search.php" method="post">
|
|
<p><?php echo $lang_input ?>
|
|
Search for:
|
|
<input type="text" name="pattern" value="" size="30" />
|
|
in the
|
|
<select name="show">
|
|
<?php
|
|
if (empty($_FORM['show'])) { $_FORM['show'] = 'quickref'; }
|
|
$searchoptions = array(
|
|
"quickref" => "function list",
|
|
"all" => "all php.net sites",
|
|
"local" => "this mirror only",
|
|
"manual" => "online documentation [en]",
|
|
"bugdb" => "bug database",
|
|
"news_archive" => "Site News Archive",
|
|
"changelogs" => "All Changelogs",
|
|
"pear" => "just pear.php.net",
|
|
"pecl" => "just pecl.php.net",
|
|
"talks" => "just talks.php.net",
|
|
"maillist" => "general mailing list",
|
|
"devlist" => "developer mailing list",
|
|
"phpdoc" => "documentation mailing list",
|
|
);
|
|
|
|
// Print out an <option> for all search options
|
|
foreach ($searchoptions as $key => $value) {
|
|
echo ' <option value="' . $key . '"' .
|
|
($key == $_FORM['show'] ? ' selected="selected"' : '') .
|
|
'>' . $value . "</option>\n";
|
|
}
|
|
?>
|
|
</select>
|
|
<input type="submit" value=" Search " />
|
|
</p>
|
|
</form>
|
|
<?php
|
|
}
|
|
echo '<script type="text/javascript">loadSuggestCode();</script>';
|
|
site_footer(array("functionsjs"));
|
|
}
|