Commit:    ed329ef22c59228b5736cf2750283fedf87f733a
Author:    Sobak <[email protected]>         Sun, 4 Dec 2016 07:25:16 +0100
Parents:   48fd4fb67a5224060ff0cb6c17e7273598496d93
Branches:  master

Link:       
http://git.php.net/?p=web/master.git;a=commitdiff;h=ed329ef22c59228b5736cf2750283fedf87f733a

Log:
Allow to search notes within a specfified section

Changed paths:
  M  include/functions.inc
  M  manage/user-notes.php


Diff:
diff --git a/include/functions.inc b/include/functions.inc
index dfac701..ce915a1 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -40,7 +40,7 @@ function head($title="", $config = array()) {
         $SEARCH = array("method" => "get", "action" => "/manage/event.php", 
"placeholder" => "Search Events", "name" => "search");
     }
     if (strstr($_SERVER["SCRIPT_FILENAME"], "user-notes.php")) {
-        $SEARCH = array("method" => "get", "action" => 
"/manage/user-notes.php", "placeholder" => "Search notes (keyword or ID)", 
"name" => "keyword");
+        $SEARCH = array("method" => "get", "action" => 
"/manage/user-notes.php", "placeholder" => "Search notes (keyword, ID or 
sect:)", "name" => "keyword");
     }
     if (isset($_SESSION['credentials'])) {
         array_unshift($LINKS, array("href" => "/manage/users.php?username=" . 
$_SESSION["credentials"][0], "text" => "My Profile"));
diff --git a/manage/user-notes.php b/manage/user-notes.php
index e77e465..12ead05 100644
--- a/manage/user-notes.php
+++ b/manage/user-notes.php
@@ -94,6 +94,10 @@ if (!$action) {
       if (is_numeric($_REQUEST['keyword'])) {
         $search_heading = 'Search results for #' . (int) $_REQUEST['keyword'];
         $sql .= 'note.id = ' . (int) $_REQUEST['keyword'];
+      } elseif (substr($_REQUEST['keyword'], 0, 5) == 'sect:') {
+        $search_heading = 'Search results for <em>' . 
hscr($_REQUEST['keyword']) . '</em>';
+        $section = real_clean(str_replace('*', '%', 
substr($_REQUEST['keyword'], 5)));
+        $sql .= "note.sect LIKE '$section' GROUP BY note.id ORDER BY 
note.sect, note.ts LIMIT $limit, 10";
       } else {
         $search_heading = 'Search results for <em>' . 
hscr($_REQUEST['keyword']) . '</em>';
         $sql .= "note.note LIKE '%" . real_clean($_REQUEST['keyword']) . "%' 
GROUP BY note.id LIMIT $limit, 10";
@@ -437,6 +441,7 @@ if (!$action) {
 <p><a href="<?= PHP_SELF ?>?view=notes&type=4">View bottom 10 rated 
notes</a></p>
 <p><a href="<?= PHP_SELF ?>?view=notes&type=5">View votes table</a></p>
 <p><a href="<?= PHP_SELF ?>?view=notes&type=6">IPs with the most votes</a></p>
+<p><a href="<?= PHP_SELF ?>?action=sect">Search notes within a section</a></p>
 <?php
   foot();
   exit;
@@ -744,6 +749,32 @@ case 'deletevotes':
           );
   }
   exit;
+case 'sect':
+  head('user notes');
+?>
+<h2>Search within a section</h2>
+<p>
+  You can search notes within specified section of the PHP manual using form 
below or
+  by prepending your query with <em>sect:</em> in regular search form (like 
<em>sect:book.mysql</em>).
+</p>
+<p>
+  You can use <em>*</em> as a wildcard, like <em>mysql.*</em>. Query like 
<em>function.json-*</em> should
+  show all notes for JSON functions (use <em>sect:function.json-*</em> in case 
of generic form).
+</p>
+<form method="get" action="<?= PHP_SELF ?>">
+  <strong>Section:</strong>
+  <input type="hidden" name="action" value="sect" />
+  <input type="text" name="query" /><br />
+  <input type="submit" value="Search" />
+</form>
+<?php
+  if (isset($_GET['query'])) {
+    header('Location: user-notes.php?keyword=sect:' . $_GET['query']);
+    exit;
+  }
+
+  foot();
+  exit;
   /* falls through */
 default:
   head('user notes');


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to