summaryrefslogtreecommitdiff
path: root/modules/title.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2004-07-07 20:18:22 +0000
committerDries Buytaert <dries@buytaert.net>2004-07-07 20:18:22 +0000
commit3568ed57e1fc0b0a46ad683b529ea5823a7b78d4 (patch)
tree2a7271215466e90c67bca910bde224e9f405c8cf /modules/title.module
parentbddcee534fb666890d82089742ec709a718588dc (diff)
downloadbrdo-3568ed57e1fc0b0a46ad683b529ea5823a7b78d4.tar.gz
brdo-3568ed57e1fc0b0a46ad683b529ea5823a7b78d4.tar.bz2
- Moving the title.module from core to contrib as discussed on the mailing list.
Diffstat (limited to 'modules/title.module')
-rw-r--r--modules/title.module102
1 files changed, 0 insertions, 102 deletions
diff --git a/modules/title.module b/modules/title.module
deleted file mode 100644
index 907dd007e..000000000
--- a/modules/title.module
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-// $Id$
-
-/**
- * Implementation of hook_help().
- */
-function title_help($section) {
- switch ($section) {
- case 'admin/modules#description':
- return t('Enables users to link to stories, articles or similar content by title.');
- case 'filter#short-tip' :
- return t('<a href=\"%title-help\">Link to content</a> on this site using <em>[title|text]</em>.', array("%title-help" => url('filter/tips', NULL, 'filter-title')));
- case 'filter#long-tip' :
- return '<p>' . t('You may quickly link to content on the site using this syntax: <em>[title|text]</em>. This will generate a link labeled "text" to the content with the title "title". If you omit "|text", the label becomes "title".') . '</p>';
- }
-}
-
-/**
- * Implementation of hook_menu().
- */
-function title_menu() {
- $items = array();
- $items[] = array('path' => 'title', 'title' => t('search'),
- 'callback' => 'title_page',
- 'access' => user_access('access content'),
- 'type' => MENU_CALLBACK);
- return $items;
-}
-
-/**
- * Menu callback; displays the matching node or a list of search results.
- */
-function title_page($query) {
- $title = urldecode($query);
- $result = db_query("SELECT n.*, u.name, u.uid FROM {node} n INNER JOIN {users} u ON n.uid = u.uid WHERE n.title = '%s' AND n.status = 1 ORDER BY n.created DESC", $title);
-
- $title = trim(str_replace(array('_', '%', '*'), ' ', $title));
- if (db_num_rows($result) == 0) {
- // No node with exact title found; try a substring.
- $result = db_query("SELECT n.*, u.name, u.uid FROM {node} n INNER JOIN {users} u ON n.uid = u.uid WHERE n.title LIKE '%%%s%%' AND n.status = 1 ORDER BY n.created DESC", $title);
- }
-
- if (db_num_rows($result) == 0 && module_exist('search')) {
- // Still no matches, so return a full-text search.
- search_view($title);
- }
- else if (db_num_rows($result) == 1) {
- $node = db_fetch_object($result);
- $node = node_load(array('nid' => $node->nid));
- print theme('page', node_show($node, NULL), $node->title);
- }
- else {
- $header = array(t('Type'), t('Title'), t('Author'));
- while ($node = db_fetch_object($result)) {
- $type = ucfirst(module_invoke($node->type, 'node', 'name'));
- $title = l($node->title, "node/$node->nid");
- $author = format_name($node);
- $rows[] = array(array('data' => $type, 'class' => 'type'), array('data' => $title, 'class' => 'content'), array('data' => $author, 'class' => 'author'));
- }
-
- $output = '<div id="title">';
- $output .= theme('table', $header, $rows);
- $output .= '</div>';
-
- drupal_set_title(t('Matching Posts'));
- print theme('page', $output);
- }
-}
-
-/**
- * Implementation of hook_filter().
- */
-function title_filter($op, $text = '', $node = NULL) {
- switch ($op) {
- case 'name':
- return t('Title filter');
- case 'process':
- return _title_filter_process($text);
- case 'settings':
- return _title_filter_settings($text);
- default:
- return $text;
- }
-}
-
-/**
- * Filter [Node title|Description] links. '|Description' is optional.
- */
-function _title_filter_process($text) {
- $pattern = '\[([^\|\]\n]+)(?>\|?)([^\]\n]*)\]';
- // $1 == title: matches at least 1 char up to the first '|' or ']'.
- // $2 == text: matches all after a following '|' (if there is) up to the next ']'.
- // May include '|'s.
- $replacement = 'l(\'$2\' ? \'$2\' : \'$1\', \'title/\'. urlencode(\'$1\'))';
- return preg_replace("/$pattern/e", $replacement, $text);
-}
-
-function _title_filter_settings() {
- return form_group(t('Title filter'), t('Wiki-like [node title|text] links are enabled. These shortcuts generate a link labeled "text" to the node with the title "node title". If you omit "|text", the label becomes "node title". You may use a substring of a node title if desired. When multiple matching titles are found, a list of matching nodes will be displayed. If no matching titles are found, a full-text search is returned.'));
-}
-
-?>