Commit Graph

97 Commits (5628256e6979335a58e7f9f873037873f24dae27)

Author SHA1 Message Date
Dries Buytaert 6e3eb60aab - Removed some cruft: left-over xxx_help_page() functions. 2004-12-11 14:13:24 +00:00
Steven Wittens 925bd41585 Search: wrong parameter order on search_wipe(). 2004-12-02 06:45:18 +00:00
Dries Buytaert 29337ad8bb - Patch #13581 by Steven: Db_query() allows a variable amount of parameters so you can pass the query arguments in. There is however an alternative syntax: instead of passing the query arguments as function arguments, you can also pass a single array with the query arguments in it. For example the following two statements are equivalent:
db_query($query, $a, $b, $c);
db_query($query, array($a, $b, $c));

This usage is particularly interesting when the query is constructed dynamically, and the amount of arguments to pass varies. In that case we use the second method to avoid using call_user_func_array(). This behaviour is not documented explicitly, but it is used in several places.

However, db_query_range() and pager_query() do not support this syntax properly, which means there are several pieces of code which still revert to the ugly call_user_func_array() call.

This patch updates db_query_range() and pager_query() so they support the array-passing method. I also added documentation about this method to each of the db functions.

I also cleaned up the code for db_query (it was weird and hard to understand) and moved db_query() and db_queryd() from database.xxxxx.inc to database.inc: it was the same between both mysql and pgsql, as it doesn't do anything database specific. It just prefixes the tables and inserts the arguments. The actual db query is performed in _db_query(), which is still in database.xxxxx.inc.

Finally, I updated several places with the new syntax, and the code is a lot cleaner. For example:
- array_unshift($params, "SELECT u.* FROM {users} u WHERE $query u.status < 3");
- $params[] = 0;
- $params[] = 1;
- $result = call_user_func_array('db_query_range', $params);
+ $result = db_query_range("SELECT u.* FROM {users} u WHERE $query u.status < 3", $params, 0, 1);

and

- return call_user_func_array('db_query_range', array_merge(array($query), $args, array((int)$pager_from_array[$element], (int)$limit)));
+ return db_query_range($query, $args, (int)$pager_from_array[$element], (int)$limit);

I've tested it on mysql. I didn't alter the actual db behaviour, so pgsql should be okay too.

This patch is important because many people avoid the call_user_func_array() method and put data directly into the db query.  This is very, very bad because the database prefix will be applied to it, and strip out braces. It's also generally bad form as you have to call check_query() yourself.  With the new, documented syntax, there is no more excuse to put data directly in the query.
2004-11-29 13:13:29 +00:00
Dries Buytaert 4726c93156 - Patch #13443 by Moshe: got rid of the semi-implemented 'page link' feature. All themes currently support primary and secondary links so page links are now deprecated. Check your contributed modules and update them accordingly. 2004-11-24 22:56:21 +00:00
Steven Wittens dc32e54f31 Search.module:
- Caching index statistics
- Minor code cleanup
2004-11-18 21:28:34 +00:00
Dries Buytaert b6eee48c88 - Patch #12232 by Steven: more search improvements:
+ When a comment is posted, a node needs to be re-indexed. Luckily, we can use node_comment_statistics for this easily.
   + When a node is deleted, it should be deleted from the search index as well.
   + The search wipe didn't properly remove links to nodes from the index.
   + Section url was faulty in _help.
   + Minor code rearrangement.
2004-11-04 06:47:03 +00:00
Steven Wittens d13943e245 Fixing bad UTF-8. 2004-11-04 03:33:26 +00:00
Dries Buytaert bd6ae69345 - Patch by Steven:
+ Display 'friendly' name rather than module name in search watchdog
     messages.
   + Remove left-over from search_total table.
   + Add index wipe button to the admin
   + Moved the admin to admin/settings/search
   + Prevented menu bug when node modules update the breadcrumb in view
     (thanks JonBob).
   + Changed search_total table's word key to PRIMARY.
2004-11-03 16:46:58 +00:00
Dries Buytaert 8daed9cbf3 - Patch #12232 by Steven/UnConed: search module improvements.
1) Clean up the text analyser: make it handle UTF-8 and all sorts of characters. The word splitter now does intelligent splitting into words and supports all Unicode characters. It has smart handling of acronyms, URLs, dates, ...

2) It now indexes the filtered output, which means it can take advantage of HTML tags. Meaningful tags (headers, strong, em, ...) are analysed and used to boost certain words scores. This has the side-effect of allowing the indexing of PHP nodes.

3) Link analyser for node links. The HTML analyser also checks for links. If they point to a node on the current site (handles path aliases) then the link's words are counted as part of the target node. This helps bring out commonly linked FAQs and answers to the top of the results.

4) Index comments along with the node. This means that the search can make a difference between a single node/comment about 'X' and a whole thread about 'X'. It also makes the search results much shorter and more relevant (before this patch, comments were even shown first).

5) We now keep track of total counts as well as a per item count for a word. This allows us to divide the word score by the total before adding up the scores for different words, and automatically makes noisewords have less influence than rare words. This dramatically improves the relevancy of multiword searches. This also makes the disadvantage of now using OR searching instead of AND searching less problematic.

6) Includes support for text preprocessors through a hook. This is required to index Chinese and Japanese, because these languages do not use spaces between words. An external utility can be used to split these into words through a simple wrapper module. Other uses could be spell checking (although it would have no UI).

7) Indexing is now regulated: only a certain amount of items will be indexed per cron run. This prevents PHP from running out of memory or timing out. This also makes the reindexing required for this patch automatic. I also added an index coverage estimate to the search admin screen.

8) Code cleanup! Moved all the search stuff from common.inc into search.module, rewired some hooks and simplified the functions used. The search form and results now also use valid XHTML and form_ functions. The search admin was moved from search/configure to admin/search for consistency.

9) Improved search output: we also show much more info per item: date, author, node type, amount of comments and a cool dynamic excerpt à la Google. The search form is now much more simpler and the help is only displayed as tips when no search results are found.

10) By moving all search logic to SQL, I was able to add a pager to the search results. This improves usability and performance dramatically.
2004-10-31 03:03:27 +00:00
Steven Wittens a35ff36673 search: Removing iso-8859-1 characters from update_index() and adding the same stripping to do_search().
This fixes the embarrasing bug of not being able to search for "4.5.0" because it is indexed as "450".
2004-10-15 22:01:41 +00:00
Dries Buytaert 4a6e2258ba - Patch #10982 by TDobes: usability improvement: changed the link in search.module watchdog entries from "view results" to "results". This better matches watchdog entries from other modules. 2004-09-21 18:35:30 +00:00
Dries Buytaert 5c7983c4de - Patch #8179 by JonBob: reintroduced menu caching. 2004-09-16 07:17:56 +00:00
Dries Buytaert b84b6e42cf - Patch #10663 by JonBob: documentation improvements: fixed some typos and improved consistency to the use of Doxygen/api.module commands in the comments. 2004-09-09 05:51:08 +00:00
Dries Buytaert 94e30bf776 - Patch by JonBob: for consistency and readability, add brief descriptions of each source file inside the @file comment block at the head of the file. This helps with Doxygen indexing, and also allows neophytes to see what a file does immediately on opening the source, regardless of the organization of the hooks. 2004-08-21 06:42:38 +00:00
Dries Buytaert 83a739bd89 - Code improvements by Stefan: made all status messages consistent (and easier to translate). 2004-08-18 19:57:27 +00:00
Dries Buytaert cd632f6251 - Alternative fix for search module bug. 2004-07-28 20:32:21 +00:00
Dries Buytaert 4c630e8fe6 - Patch #8497 by JonBob: check the length of a search key before inserting it. 2004-07-28 20:30:37 +00:00
Dries Buytaert ac5b5616c0 - More tab-improvements by JonBob: improved support for the default tabs! 2004-07-10 15:51:48 +00:00
Dries Buytaert 54b77d6435 Tabs patch!
CHANGES
-------

 + Introduced tabs. First, we extended the menu system to support tabs. Next, a tab was added for every link that was (1) an administrative action other than the implicit 'view' (2) relevant to that particular page only. This is illustrated by the fact that all tabs are verbs and that clicking a page's tab leads you to a subpage of that page.

 + Flattened the administration menu. The tabs helped simplify the navigation menu as I could separate 'actions' from 'navigation'. In addition, I removed the 'administer > configuration'-menu, renamed 'blocks' to 'sidebars' which I hope is a bit more descriptive, and made a couple more changes. Earlier, we already renamed 'taxonomy' to 'categorization' and we move 'statistics' under 'logs'.

 + Grouped settings. All settings have been grouped under 'administer > settings'.

TODO
----

 + Update core themes: only Xtemplate default supports tabs and even those look ugly.  Need help.

 + Update contributed modules.  The menu() hook changed drastically.  Updating your code adhere the new menu() function should be 90% of the work.  Moreover, ensure that your modue's admin links are still valid and that URLs to node get updated to the new scheme ('node/view/x' -> 'node/x').
2004-06-18 15:04:37 +00:00
Dries Buytaert c0b85a5721 - Patch #4950 by Stefan (and Morbus): made watchdog messages translatable. 2004-06-02 19:01:40 +00:00
Kjartan Mannes 2954836fba - Fixed empty searches being performed.
- Fixed empty searches being logged.
- Trim whitespace from start and end of search key.
2004-05-30 21:04:07 +00:00
Dries Buytaert 7231c88a32 - Added support for 403 handling. Patch by JonBob. As a side benefit,
administrators will be able to define a custom 403 page, just as they
  can define 404 pages now.

  This needs to be documented in the "Changes since / migrating to ..."
  pages.
2004-04-21 13:56:38 +00:00
Dries Buytaert fd0ef2cc48 - Patch #7088 by TDobes: fixed incorrect comment links in search results. 2004-04-13 21:33:27 +00:00
Dries Buytaert 4b0b2d02ee - Patch by Steven: removed redundant permission checks. These are no longer
required thanks to the new 404 handling.
2004-02-15 20:09:46 +00:00
Dries Buytaert b85eb11e11 Patch 5287 by Stefan: multiline help texts should become inside a single $output. 2004-01-23 18:42:43 +00:00
Dries Buytaert 1d5a29a357 - Log the search terms in a new watchdog category. 2004-01-02 16:44:11 +00:00
Dries Buytaert 21a0e8b904 - Updated code to use new semantics of url() and l(). 2003-12-29 19:49:11 +00:00
Dries Buytaert 80f34e5ab0 - XHTML improvements: <b> -> <strong>. Patch by Stefan. 2003-12-29 17:14:27 +00:00
Dries Buytaert d5c8026454 - Updated the calls to menu() to use MENU_HIDE instead of 1 2003-12-17 22:27:23 +00:00
Dries Buytaert 3904790e03 - Tidied up the DoxyGen comments. Patch by Kjartan. 2003-12-08 06:32:19 +00:00
Dries Buytaert 800a58f571 - Removed duplicated code. Reported by Goba. 2003-11-30 10:39:15 +00:00
Dries Buytaert c0494c0a2b - Committed phase 4 of JonBob's menu system changes. 2003-11-25 19:26:21 +00:00
Dries Buytaert 06045ff7fc Patch by Ax to fixe and improve to the core doxygen PHPdoc:
* fixes all doxygen warnings [#]_ in the current code base
    + changes @param style from phpDocumentor (@param type $var desc) to doxygen (@param $var desc)
    + documents all undocumented parameters
    + escapes / fixes html warnings
    + fixes @defgroup in theme.inc
  * adds more groupings [#]_
    + drupal_{set|get}_title, drupal_{set|get}_breadcrumb
    + pager.inc: pager_api (pager_query(), pager_display()), pager pieces
  * adds a new group "themeable" which contains all themeable functions.
2003-11-24 22:46:03 +00:00
Dries Buytaert 26735ac5dd - Committed phase 3 of JonBob's menu changes. Adds an API for modules to
define titles and breadcrumbs for their pages, and updates the theme
  system to display them.
2003-11-23 10:41:04 +00:00
Dries Buytaert 4bdac4333b - Patch by JonBob:
Phase 2 of the menu system integration project. This unifies the interface
  used by admin and non-admin pages, and deprecates the _page hook in favor of
  explicit callbacks from menu(). Breadcrumbs, titles, and help text go away
  as a result of this patch; they will return in the phase 3 patch, printed
  by the theme.
2003-11-20 21:51:23 +00:00
Dries Buytaert 951b553a98 - Committed stage 2 of the theme system improvements! Patch by CodeMonkeyX. 2003-11-09 23:27:22 +00:00
Dries Buytaert ef0fa006ed - Usability improvement: replaced many selection boxes by radio buttons.
Patch by Stefan.
2003-11-07 19:03:35 +00:00
Dries Buytaert 90e5e355cb - Bugfix: fixed problem with search key replacement. Patch by Kjartan. 2003-10-21 20:55:33 +00:00
Dries Buytaert 1a5fcacdd9 - Committed part 3 of Michael's help system improvements: removed the $help
parameter from the menu() function.
2003-10-09 18:53:22 +00:00
Dries Buytaert 22c889e7c0 - Help system improvements: eliminated the _system hook. Patch by Michael.
- Bloggerapi module fixes.  Patch by Kjartan.

- Coding style fixes.  Patch by Michael.
2003-10-07 18:16:41 +00:00
Dries Buytaert 058971c33b - Help improvements and translation improvements from Michael. Thanks! 2003-10-03 14:55:27 +00:00
Dries Buytaert 2fbc7fcf27 - Committed a partial administration page integration patch. 2003-09-19 07:41:55 +00:00
Dries Buytaert 01f3bcfc75 - Added page titles. Patch 0105 by Kendow. 2003-09-16 15:04:02 +00:00
Dries Buytaert ad5fb6cd6d - Noiseword fix. Patch by Matt. Reported by Bart. 2003-09-10 16:48:00 +00:00
Dries Buytaert 9b74d0b83c - Patch from Matt:
"The noise words description says that whitespace and line breaks will be
  stripped out, but the code never does any trimming.  This simple patch strips
  the whitespace from the noise words.  This probably takes care of bug #2804."
2003-09-10 07:56:06 +00:00
Dries Buytaert 2e22798a8d - More help system updates by Michael F. 2003-08-25 16:57:55 +00:00
Dries Buytaert 337b3c9de9 - Committed a slightly modified version of Slavica's table prefix patch. 2003-07-10 17:46:44 +00:00
Dries Buytaert 3bb6ddee4b - Bugfix: fixed problem with search terms not being escaped properly. 2003-06-30 19:42:19 +00:00
Dries Buytaert f4df719502 - Reworked the CXX checking; now, _any_ user input will be checked
and the request will be terminated when something suspicious is
detected.  This will be logged in the watchdog.  With help from Marco.

- Fixed translation issue in the archive module.  Patch by Gerhard.

- Removed dead parameter from variable_get().  Patch by Chris Johnson.
Fixes bug #2111.

- Improved input checking of taxonomy module.  Patch by Gerhard.
Fixes bug #2112.
2003-06-27 17:48:20 +00:00
Dries Buytaert e95aa56e02 - Bugfix: fixed bug in the search module that prevented the title module
from working properly.  Patch by Moshe.  Fixes bug #1852.
2003-06-25 22:10:54 +00:00