From f137b26979754e3e94bec73ea947cd87d08594a2 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Wed, 11 Feb 2004 19:21:14 +0000 Subject: - Patch 4902 by Goba: + only adds an optional parameter to url() and l(), so individual links can be set to be absolute + modifies drupal_goto() to accept the parameters of url() without the $absolute parameter, so cleaner invocations can be used + rework of some code in node_feed, making it much better to look at (the current code uses foreach with an immediate brake to get the first key of the associative array, geeeeez) + added xml:base to the rss tag generated by node_feed() + set all user mail URLs to be absolute + fix a small fragmented URL in user.module --- modules/comment.module | 6 +++--- modules/comment/comment.module | 6 +++--- modules/forum.module | 2 +- modules/forum/forum.module | 2 +- modules/node.module | 21 ++++++++++++--------- modules/node/node.module | 21 ++++++++++++--------- modules/user.module | 20 ++++++++++---------- modules/user/user.module | 20 ++++++++++---------- 8 files changed, 52 insertions(+), 46 deletions(-) (limited to 'modules') diff --git a/modules/comment.module b/modules/comment.module index 702c6c368..ae6e0a1e3 100644 --- a/modules/comment.module +++ b/modules/comment.module @@ -837,7 +837,7 @@ function comment_page() { case t("Moderate comments"): case t("Moderate comment"): comment_moderate($edit); - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); break; case "reply": print theme("page", comment_reply(check_query(arg(3)), check_query(arg(2))), t("Add new comment")); @@ -851,7 +851,7 @@ function comment_page() { print theme("page", $error_body, $error_title); } else { - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); } break; case t("Save settings"): @@ -861,7 +861,7 @@ function comment_page() { $comments_per_page = $_POST["comments_per_page"]; comment_save_settings(check_query($mode), check_query($order), check_query($threshold), check_query($comments_per_page)); - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); break; } } diff --git a/modules/comment/comment.module b/modules/comment/comment.module index 702c6c368..ae6e0a1e3 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -837,7 +837,7 @@ function comment_page() { case t("Moderate comments"): case t("Moderate comment"): comment_moderate($edit); - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); break; case "reply": print theme("page", comment_reply(check_query(arg(3)), check_query(arg(2))), t("Add new comment")); @@ -851,7 +851,7 @@ function comment_page() { print theme("page", $error_body, $error_title); } else { - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); } break; case t("Save settings"): @@ -861,7 +861,7 @@ function comment_page() { $comments_per_page = $_POST["comments_per_page"]; comment_save_settings(check_query($mode), check_query($order), check_query($threshold), check_query($comments_per_page)); - drupal_goto(url(comment_referer_load())); + drupal_goto(comment_referer_load()); break; } } diff --git a/modules/forum.module b/modules/forum.module index a4ea08380..7437346c0 100644 --- a/modules/forum.module +++ b/modules/forum.module @@ -402,7 +402,7 @@ function forum_page() { if (arg(2) == 'new') { if ($nid = _forum_new($tid)) { - drupal_goto(url("node/view/$nid")); + drupal_goto("node/view/$nid"); } } diff --git a/modules/forum/forum.module b/modules/forum/forum.module index a4ea08380..7437346c0 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -402,7 +402,7 @@ function forum_page() { if (arg(2) == 'new') { if ($nid = _forum_new($tid)) { - drupal_goto(url("node/view/$nid")); + drupal_goto("node/view/$nid"); } } diff --git a/modules/node.module b/modules/node.module index 9bebdb4b0..9d513fe95 100644 --- a/modules/node.module +++ b/modules/node.module @@ -1011,19 +1011,22 @@ function node_feed($nodes = 0, $channel = array()) { */ $item = node_load(array('nid' => $node->nid)); - $link = url("node/view/$node->nid"); + $link = url("node/view/$node->nid", NULL, NULL, 1); $items .= format_rss_item($item->title, $link, ($item->teaser ? $item->teaser : $item->body), array('pubDate' => date('r', $item->changed))); } - $output .= "\n"; + $channel_defaults = array( + 'version' => '0.92', + 'title' => variable_get('site_name', 'drupal') .' - '. variable_get('site_slogan', ''), + 'link' => $base_url, + 'description' => variable_get('site_mission', ''), + 'language' => (($key = reset(array_keys($languages))) ? $key : 'en') + ); + $channel = array_merge($channel_defaults, $channel); + + $output = "\n"; $output .= "]>\n"; - if (!$channel['version']) $channel['version'] = '0.92'; - if (!$channel['title']) $channel['title'] = variable_get('site_name', 'drupal') .' - '. variable_get('site_slogan', ''); - if (!$channel['link']) $channel['link'] = $base_url; - if (!$channel['description']) $channel['description'] = variable_get('site_mission', ''); - foreach ($languages as $key => $value) break; - if (!$channel['language']) $channel['language'] = $key ? $key : 'en'; - $output .= "\n"; + $output .= "\n"; $output .= format_rss_channel($channel['title'], $channel['link'], $channel['description'], $items, $channel['language']); $output .= "\n"; diff --git a/modules/node/node.module b/modules/node/node.module index 9bebdb4b0..9d513fe95 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1011,19 +1011,22 @@ function node_feed($nodes = 0, $channel = array()) { */ $item = node_load(array('nid' => $node->nid)); - $link = url("node/view/$node->nid"); + $link = url("node/view/$node->nid", NULL, NULL, 1); $items .= format_rss_item($item->title, $link, ($item->teaser ? $item->teaser : $item->body), array('pubDate' => date('r', $item->changed))); } - $output .= "\n"; + $channel_defaults = array( + 'version' => '0.92', + 'title' => variable_get('site_name', 'drupal') .' - '. variable_get('site_slogan', ''), + 'link' => $base_url, + 'description' => variable_get('site_mission', ''), + 'language' => (($key = reset(array_keys($languages))) ? $key : 'en') + ); + $channel = array_merge($channel_defaults, $channel); + + $output = "\n"; $output .= "]>\n"; - if (!$channel['version']) $channel['version'] = '0.92'; - if (!$channel['title']) $channel['title'] = variable_get('site_name', 'drupal') .' - '. variable_get('site_slogan', ''); - if (!$channel['link']) $channel['link'] = $base_url; - if (!$channel['description']) $channel['description'] = variable_get('site_mission', ''); - foreach ($languages as $key => $value) break; - if (!$channel['language']) $channel['language'] = $key ? $key : 'en'; - $output .= "\n"; + $output .= "\n"; $output .= format_rss_channel($channel['title'], $channel['link'], $channel['description'], $items, $channel['language']); $output .= "\n"; diff --git a/modules/user.module b/modules/user.module index 4a120df97..572b61637 100644 --- a/modules/user.module +++ b/modules/user.module @@ -341,7 +341,7 @@ function user_block($op = "list", $delta = 0) { */ if (empty($edit)) { - $edit["destination"] = url($_GET["q"]); + $edit["destination"] = $_GET["q"]; } // NOTE: special care needs to be taken because on pages with forms, such as node and comment submission pages, the $edit variable might already be set. @@ -527,7 +527,7 @@ function user_login($edit = array(), $msg = "") { */ if ($user->uid) { - drupal_goto(url('user')); + drupal_goto('user'); } if (user_deny('user', $edit['name'])) { @@ -638,7 +638,7 @@ function user_login($edit = array(), $msg = "") { */ if (empty($edit)) { - $edit["destination"] = url($_GET["q"]); + $edit["destination"] = $_GET["q"]; } $output .= form_hidden("destination", $edit["destination"]); @@ -687,7 +687,7 @@ function user_logout() { unset($user); } - drupal_goto(url()); + drupal_goto(); } function user_pass($edit = array()) { @@ -716,7 +716,7 @@ function user_pass($edit = array()) { ** Mail new password: */ - $variables = array("%username" => $account->name, "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $account->mail, "%date" => format_date(time()), '%login_uri' => url('user/login'), '%edit_uri' => url('user/edit')); + $variables = array("%username" => $account->name, "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $account->mail, "%date" => format_date(time()), '%login_uri' => url('user/login', NULL, NULL, TRUE), '%edit_uri' => url('user/edit', NULL, NULL, TRUE)); $subject = _user_mail_text("pass_subject", $variables); $body = _user_mail_text("pass_body", $variables); $headers = "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"; @@ -764,7 +764,7 @@ function user_register($edit = array()) { */ if ($user->uid) { - drupal_goto(url("user/edit")); + drupal_goto("user/edit"); } if (!(is_null($edit['name']) && is_null($edit['mail']))) { @@ -804,14 +804,14 @@ function user_register($edit = array()) { $account = user_save("", array_merge(array('name' => $edit['name'], 'pass' => $pass, "init" => $edit['mail'], "mail" => $edit['mail'], "rid" => _user_authenticated_id(), "status" => (variable_get("user_register", 1) == 1 ? 1 : 0)), $data)); watchdog('user', "new user: '". $edit['name'] ."' <". $edit['mail'] .">", l(t("edit user"), "admin/user/edit/$account->uid")); - $variables = array("%username" => $edit['name'], "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $edit['mail'], "%date" => format_date(time()), "%login_uri" => url('user/login'), "%edit_uri" => url("user/edit")); + $variables = array("%username" => $edit['name'], "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $edit['mail'], "%date" => format_date(time()), "%login_uri" => url('user/login', NULL, NULL, TRUE), "%edit_uri" => url("user/edit", NULL, NULL, TRUE)); //the first user may login immediately, and receives a customized welcome e-mail. if ($account->uid == 1) { user_mail($edit['mail'], t("drupal user account details for %s", array("%s" => $edit['name'])), strtr(t("%username,\n\nYou may now login to %uri using the following username and password:\n\n username: %username\n password: %password\n\n%edit_uri\n\n--drupal"), $variables), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); // This should not be t()'ed. No point as its only shown once in the sites lifetime, and it would be bad to store the password $output .= "

Welcome to Drupal. You are user #1, which gives you full and immediate access. All future registrants will receive their passwords via e-mail, so please configure your e-mail settings using the Administration pages.

Your password is $pass. You may change your password on the next page.

Please login below.

"; - $output .= form_hidden("destination", url("user/edit")); + $output .= form_hidden("destination", "user/edit"); $output .= form_hidden('name', $account->name); $output .= form_hidden('pass', $pass); $output .= form_submit(t("Log in")); @@ -836,7 +836,7 @@ function user_register($edit = array()) { $body = _user_mail_text("approval_body", $variables); user_mail($edit['mail'], $subject, $body, "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); - user_mail(variable_get("site_mail", ini_get("sendmail_from")), $subject, t("%u has applied for an account.\n\n%uri", array("%u" => $account->name, "%uri" => url("admin/user/edit/$account->uid"))), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); + user_mail(variable_get("site_mail", ini_get("sendmail_from")), $subject, t("%u has applied for an account.\n\n%uri", array("%u" => $account->name, "%uri" => url("admin/user/edit/$account->uid", NULL, NULL, TRUE))), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); return t("Thank you for applying for an account. Your account is currently pending approval by the site administrator.
In the meantime, your password and further instructions have been sent to your e-mail address."); } } @@ -1710,7 +1710,7 @@ function user_help($section = "admin/help#user") { return user_save(\$user, array(\"julia_favingredient\" => \$edit[\"julia_favingredient\"])); } } - ", array("%user-role" => url("admin/user/role"), "%user-permission" => url("admin/user/permission"), "%jabber" => "http://www.jabber.org", "%delphiforums" => "http://www.delphiforums.com", "%drupal" => "http://www.drupal.org", "%da-auth" => url("user/help#da"), "%php-sess" => "http://www.php.net/manual/en/ref.session.php", "%user-prefs" => url("user/edit"), "%admin-user" => url("admin/user"), "%da-devel" => "http://www.drupal.org/node/view/316", "%xml" => "http://www.xmlrpc.org", "%http-post" => "http://www.w3.org/Protocols/", "%soap" => "http://www.soapware.org", "%dis-module" => url("admin/system/modules"), "%blogger" => "http://www.blogger.com", "%blogger-source" => "http://cvs.drupal.org/viewcvs.cgi/contributions/modules/authentication/Bloggar/?cvsroot=contrib", "%contrib-cvs" => "http://cvs.drupal.org/viewcvs/contributions/?cvsroot=contrib", "%blogger-api" => "http://plant.blogger.com/API", "%cvs" => "http://cvs.drupal.org/viewcvs.cgi/contributions/README?rev=HEAD&cvsroot=contrib&content-type=text/vnd.viewcvs-markup", "%drupal-lists" => "http://drupal.org/mailing-lists", "%drupal-org" => "http://www.drupal.org", "%registration" => url("user/register"), "%user-acct" => url('user'), "%user-admin" => url("admin/user"), "%profile-module" => "http://cvs.drupal.org/viewcvs/drupal/modules/profile.module")); + ", array("%user-role" => url("admin/user/role"), "%user-permission" => url("admin/user/permission"), "%jabber" => "http://www.jabber.org", "%delphiforums" => "http://www.delphiforums.com", "%drupal" => "http://www.drupal.org", "%da-auth" => url("user/help", NULL, 'da'), "%php-sess" => "http://www.php.net/manual/en/ref.session.php", "%user-prefs" => url("user/edit"), "%admin-user" => url("admin/user"), "%da-devel" => "http://www.drupal.org/node/view/316", "%xml" => "http://www.xmlrpc.org", "%http-post" => "http://www.w3.org/Protocols/", "%soap" => "http://www.soapware.org", "%dis-module" => url("admin/system/modules"), "%blogger" => "http://www.blogger.com", "%blogger-source" => "http://cvs.drupal.org/viewcvs.cgi/contributions/modules/authentication/Bloggar/?cvsroot=contrib", "%contrib-cvs" => "http://cvs.drupal.org/viewcvs/contributions/?cvsroot=contrib", "%blogger-api" => "http://plant.blogger.com/API", "%cvs" => "http://cvs.drupal.org/viewcvs.cgi/contributions/README?rev=HEAD&cvsroot=contrib&content-type=text/vnd.viewcvs-markup", "%drupal-lists" => "http://drupal.org/mailing-lists", "%drupal-org" => "http://www.drupal.org", "%registration" => url("user/register"), "%user-acct" => url('user'), "%user-admin" => url("admin/user"), "%profile-module" => "http://cvs.drupal.org/viewcvs/drupal/modules/profile.module")); foreach (module_list() as $module) { if (module_hook($module, "auth")) { diff --git a/modules/user/user.module b/modules/user/user.module index 4a120df97..572b61637 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -341,7 +341,7 @@ function user_block($op = "list", $delta = 0) { */ if (empty($edit)) { - $edit["destination"] = url($_GET["q"]); + $edit["destination"] = $_GET["q"]; } // NOTE: special care needs to be taken because on pages with forms, such as node and comment submission pages, the $edit variable might already be set. @@ -527,7 +527,7 @@ function user_login($edit = array(), $msg = "") { */ if ($user->uid) { - drupal_goto(url('user')); + drupal_goto('user'); } if (user_deny('user', $edit['name'])) { @@ -638,7 +638,7 @@ function user_login($edit = array(), $msg = "") { */ if (empty($edit)) { - $edit["destination"] = url($_GET["q"]); + $edit["destination"] = $_GET["q"]; } $output .= form_hidden("destination", $edit["destination"]); @@ -687,7 +687,7 @@ function user_logout() { unset($user); } - drupal_goto(url()); + drupal_goto(); } function user_pass($edit = array()) { @@ -716,7 +716,7 @@ function user_pass($edit = array()) { ** Mail new password: */ - $variables = array("%username" => $account->name, "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $account->mail, "%date" => format_date(time()), '%login_uri' => url('user/login'), '%edit_uri' => url('user/edit')); + $variables = array("%username" => $account->name, "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $account->mail, "%date" => format_date(time()), '%login_uri' => url('user/login', NULL, NULL, TRUE), '%edit_uri' => url('user/edit', NULL, NULL, TRUE)); $subject = _user_mail_text("pass_subject", $variables); $body = _user_mail_text("pass_body", $variables); $headers = "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"; @@ -764,7 +764,7 @@ function user_register($edit = array()) { */ if ($user->uid) { - drupal_goto(url("user/edit")); + drupal_goto("user/edit"); } if (!(is_null($edit['name']) && is_null($edit['mail']))) { @@ -804,14 +804,14 @@ function user_register($edit = array()) { $account = user_save("", array_merge(array('name' => $edit['name'], 'pass' => $pass, "init" => $edit['mail'], "mail" => $edit['mail'], "rid" => _user_authenticated_id(), "status" => (variable_get("user_register", 1) == 1 ? 1 : 0)), $data)); watchdog('user', "new user: '". $edit['name'] ."' <". $edit['mail'] .">", l(t("edit user"), "admin/user/edit/$account->uid")); - $variables = array("%username" => $edit['name'], "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $edit['mail'], "%date" => format_date(time()), "%login_uri" => url('user/login'), "%edit_uri" => url("user/edit")); + $variables = array("%username" => $edit['name'], "%site" => variable_get("site_name", "drupal"), "%password" => $pass, "%uri" => $base_url, "%uri_brief" => substr($base_url, strlen("http://")), "%mailto" => $edit['mail'], "%date" => format_date(time()), "%login_uri" => url('user/login', NULL, NULL, TRUE), "%edit_uri" => url("user/edit", NULL, NULL, TRUE)); //the first user may login immediately, and receives a customized welcome e-mail. if ($account->uid == 1) { user_mail($edit['mail'], t("drupal user account details for %s", array("%s" => $edit['name'])), strtr(t("%username,\n\nYou may now login to %uri using the following username and password:\n\n username: %username\n password: %password\n\n%edit_uri\n\n--drupal"), $variables), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); // This should not be t()'ed. No point as its only shown once in the sites lifetime, and it would be bad to store the password $output .= "

Welcome to Drupal. You are user #1, which gives you full and immediate access. All future registrants will receive their passwords via e-mail, so please configure your e-mail settings using the Administration pages.

Your password is $pass. You may change your password on the next page.

Please login below.

"; - $output .= form_hidden("destination", url("user/edit")); + $output .= form_hidden("destination", "user/edit"); $output .= form_hidden('name', $account->name); $output .= form_hidden('pass', $pass); $output .= form_submit(t("Log in")); @@ -836,7 +836,7 @@ function user_register($edit = array()) { $body = _user_mail_text("approval_body", $variables); user_mail($edit['mail'], $subject, $body, "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); - user_mail(variable_get("site_mail", ini_get("sendmail_from")), $subject, t("%u has applied for an account.\n\n%uri", array("%u" => $account->name, "%uri" => url("admin/user/edit/$account->uid"))), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); + user_mail(variable_get("site_mail", ini_get("sendmail_from")), $subject, t("%u has applied for an account.\n\n%uri", array("%u" => $account->name, "%uri" => url("admin/user/edit/$account->uid", NULL, NULL, TRUE))), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from"); return t("Thank you for applying for an account. Your account is currently pending approval by the site administrator.
In the meantime, your password and further instructions have been sent to your e-mail address."); } } @@ -1710,7 +1710,7 @@ function user_help($section = "admin/help#user") { return user_save(\$user, array(\"julia_favingredient\" => \$edit[\"julia_favingredient\"])); } } - ", array("%user-role" => url("admin/user/role"), "%user-permission" => url("admin/user/permission"), "%jabber" => "http://www.jabber.org", "%delphiforums" => "http://www.delphiforums.com", "%drupal" => "http://www.drupal.org", "%da-auth" => url("user/help#da"), "%php-sess" => "http://www.php.net/manual/en/ref.session.php", "%user-prefs" => url("user/edit"), "%admin-user" => url("admin/user"), "%da-devel" => "http://www.drupal.org/node/view/316", "%xml" => "http://www.xmlrpc.org", "%http-post" => "http://www.w3.org/Protocols/", "%soap" => "http://www.soapware.org", "%dis-module" => url("admin/system/modules"), "%blogger" => "http://www.blogger.com", "%blogger-source" => "http://cvs.drupal.org/viewcvs.cgi/contributions/modules/authentication/Bloggar/?cvsroot=contrib", "%contrib-cvs" => "http://cvs.drupal.org/viewcvs/contributions/?cvsroot=contrib", "%blogger-api" => "http://plant.blogger.com/API", "%cvs" => "http://cvs.drupal.org/viewcvs.cgi/contributions/README?rev=HEAD&cvsroot=contrib&content-type=text/vnd.viewcvs-markup", "%drupal-lists" => "http://drupal.org/mailing-lists", "%drupal-org" => "http://www.drupal.org", "%registration" => url("user/register"), "%user-acct" => url('user'), "%user-admin" => url("admin/user"), "%profile-module" => "http://cvs.drupal.org/viewcvs/drupal/modules/profile.module")); + ", array("%user-role" => url("admin/user/role"), "%user-permission" => url("admin/user/permission"), "%jabber" => "http://www.jabber.org", "%delphiforums" => "http://www.delphiforums.com", "%drupal" => "http://www.drupal.org", "%da-auth" => url("user/help", NULL, 'da'), "%php-sess" => "http://www.php.net/manual/en/ref.session.php", "%user-prefs" => url("user/edit"), "%admin-user" => url("admin/user"), "%da-devel" => "http://www.drupal.org/node/view/316", "%xml" => "http://www.xmlrpc.org", "%http-post" => "http://www.w3.org/Protocols/", "%soap" => "http://www.soapware.org", "%dis-module" => url("admin/system/modules"), "%blogger" => "http://www.blogger.com", "%blogger-source" => "http://cvs.drupal.org/viewcvs.cgi/contributions/modules/authentication/Bloggar/?cvsroot=contrib", "%contrib-cvs" => "http://cvs.drupal.org/viewcvs/contributions/?cvsroot=contrib", "%blogger-api" => "http://plant.blogger.com/API", "%cvs" => "http://cvs.drupal.org/viewcvs.cgi/contributions/README?rev=HEAD&cvsroot=contrib&content-type=text/vnd.viewcvs-markup", "%drupal-lists" => "http://drupal.org/mailing-lists", "%drupal-org" => "http://www.drupal.org", "%registration" => url("user/register"), "%user-acct" => url('user'), "%user-admin" => url("admin/user"), "%profile-module" => "http://cvs.drupal.org/viewcvs/drupal/modules/profile.module")); foreach (module_list() as $module) { if (module_hook($module, "auth")) { -- cgit v1.2.3