summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2005-12-07 20:57:45 +0000
committerDries Buytaert <dries@buytaert.net>2005-12-07 20:57:45 +0000
commit94d6b9abf046278d87640eadce2fa45591968778 (patch)
treea558c7b7530f0f6721d29b0cbf8ebf3b08da0d4d
parent9e007c11aaf9cb39a566bc2215f7d373de8828ad (diff)
downloadbrdo-94d6b9abf046278d87640eadce2fa45591968778.tar.gz
brdo-94d6b9abf046278d87640eadce2fa45591968778.tar.bz2
- Patch #29326 by Morbus: optimized performance of URL aliasing for newly installed sites.
There are a number of small optimizations we could add; like, we should never do more lookup queries than the number of unique URL aliases in the database. When the size of the static cache equals the number of unique URL aliases in the database, we can stop doing lookups. I think this could be implemented with a 2-line change. Takers?
-rw-r--r--database/database.mysql2
-rw-r--r--database/database.pgsql2
-rw-r--r--database/updates.inc9
-rw-r--r--modules/node.module11
-rw-r--r--modules/node/node.module11
5 files changed, 20 insertions, 15 deletions
diff --git a/database/database.mysql b/database/database.mysql
index 4893bb165..d29567b9b 100644
--- a/database/database.mysql
+++ b/database/database.mysql
@@ -863,8 +863,6 @@ INSERT INTO variable (name,value) VALUES ('filter_html_1','i:1;');
INSERT INTO locales_meta (locale, name, enabled, isdefault) VALUES ('en', 'English', '1', '1');
-INSERT INTO url_alias (src, dst) VALUES ('node/feed', 'rss.xml');
-
INSERT INTO variable (name, value) VALUES ('node_options_forum', 'a:1:{i:0;s:6:"status";}');
INSERT INTO menu VALUES (2, 0, '', 'Primary links', '', 0, 115);
diff --git a/database/database.pgsql b/database/database.pgsql
index bf4ef150a..945a09009 100644
--- a/database/database.pgsql
+++ b/database/database.pgsql
@@ -856,8 +856,6 @@ INSERT INTO variable (name,value) VALUES ('filter_html_1','i:1;');
INSERT INTO locales_meta (locale, name, enabled, isdefault) VALUES ('en', 'English', '1', '1');
-INSERT INTO url_alias (src, dst) VALUES ('node/feed', 'rss.xml');
-
INSERT INTO variable (name, value) VALUES ('node_options_forum', 'a:1:{i:0;s:6:"status";}');
INSERT INTO menu VALUES (2, 0, '', 'Primary links', '', 0, 115);
diff --git a/database/updates.inc b/database/updates.inc
index 0c06471c2..79b9014b3 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -4,7 +4,7 @@
function system_version($type) {
switch ($type) {
case SCHEMA:
- return 155;
+ return 157;
case SCHEMA_MIN:
return 110;
@@ -1100,3 +1100,10 @@ function system_update_156() {
system_themes();
return array();
}
+
+function system_update_157() {
+ $ret = array();
+ $ret[] = update_sql("DELETE FROM {url_alias} WHERE src = 'node/feed' AND dst = 'rss.xml'");
+ $ret[] = update_sql("INSERT INTO {url_alias} (src, dst) VALUES ('rss.xml', 'node/feed')");
+}
+
diff --git a/modules/node.module b/modules/node.module
index 33e1721d0..d119f6c90 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -886,6 +886,10 @@ function node_menu($may_cache) {
'access' => user_access('access content'),
'type' => MENU_ITEM_GROUPING,
'weight' => 1);
+ $items[] = array('path' => 'rss.xml', 'title' => t('rss feed'),
+ 'callback' => 'node_feed',
+ 'access' => user_access('access content'),
+ 'type' => MENU_CALLBACK);
}
else {
if (arg(0) == 'node' && is_numeric(arg(1))) {
@@ -1375,7 +1379,7 @@ function node_block($op = 'list', $delta = 0) {
}
else if ($op == 'view') {
$block['subject'] = t('Syndicate');
- $block['content'] = theme('xml_icon', url('node/feed'));
+ $block['content'] = theme('xml_icon', url('rss.xml'));
return $block;
}
@@ -1916,7 +1920,7 @@ function node_page_default() {
drupal_add_link(array('rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => t('RSS'),
- 'href' => url('node/feed', NULL, NULL, TRUE)));
+ 'href' => url('rss.xml', NULL, NULL, TRUE)));
$output = '';
while ($node = db_fetch_object($result)) {
@@ -1947,9 +1951,6 @@ function node_page() {
}
switch ($op) {
- case 'feed':
- node_feed();
- return;
case 'view':
if (is_numeric(arg(1))) {
$node = node_load(arg(1), $_GET['revision']);
diff --git a/modules/node/node.module b/modules/node/node.module
index 33e1721d0..d119f6c90 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -886,6 +886,10 @@ function node_menu($may_cache) {
'access' => user_access('access content'),
'type' => MENU_ITEM_GROUPING,
'weight' => 1);
+ $items[] = array('path' => 'rss.xml', 'title' => t('rss feed'),
+ 'callback' => 'node_feed',
+ 'access' => user_access('access content'),
+ 'type' => MENU_CALLBACK);
}
else {
if (arg(0) == 'node' && is_numeric(arg(1))) {
@@ -1375,7 +1379,7 @@ function node_block($op = 'list', $delta = 0) {
}
else if ($op == 'view') {
$block['subject'] = t('Syndicate');
- $block['content'] = theme('xml_icon', url('node/feed'));
+ $block['content'] = theme('xml_icon', url('rss.xml'));
return $block;
}
@@ -1916,7 +1920,7 @@ function node_page_default() {
drupal_add_link(array('rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => t('RSS'),
- 'href' => url('node/feed', NULL, NULL, TRUE)));
+ 'href' => url('rss.xml', NULL, NULL, TRUE)));
$output = '';
while ($node = db_fetch_object($result)) {
@@ -1947,9 +1951,6 @@ function node_page() {
}
switch ($op) {
- case 'feed':
- node_feed();
- return;
case 'view':
if (is_numeric(arg(1))) {
$node = node_load(arg(1), $_GET['revision']);