чё тут думать - лезть в код и править
файл path.inc
Вместо
ставить
-
<?php
-
function drupal_init_path() {
-
global $map_alias;
-
{
-
$sql = "Select src,dst FROM {url_alias} ";
-
$res=db_query($sql);
-
while( $row=db_fetch_array($res))
-
{
-
$map_alias[$row['src']]=$row['dst'];
-
}
-
}
-
}
-
else {
-
$_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
-
}
-
}
-
?>
вместо
-
<?php
-
function drupal_lookup_path($action, $path = '') {
-
static $count = NULL;
-
if ($count === NULL) {
-
$count = db_result(db_query('SELECT COUNT(pid) FROM {url_alias}'));
-
}
-
if ($action == 'wipe') {
-
}
-
elseif ($count > 0 && $path != '') {
-
if ($action == 'alias') {
-
return $map[$path];
-
}
-
if ($alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s'", $path))) {
-
$map[$path] = $alias;
-
return $alias;
-
}
-
else {
-
$map[$path] = $path;
-
}
-
}
-
elseif ($action == 'source') {
-
return $alias;
-
}
-
if ($src = db_result(db_query("SELECT src FROM {url_alias} WHERE dst = '%s'", $path))) {
-
$map[$src] = $path;
-
return $src;
-
}
-
}
-
}
-
}
-
return FALSE;
-
}
-
?>
ставим
-
<?php
-
function drupal_lookup_path($action, $path = '') {
-
global $map_alias;
-
if ($action == 'wipe') {
-
}
-
elseif ($path != '') {
-
if ($action == 'alias') {
-
return $map_alias[$path];
-
}
-
elseif ($action == 'source') {
-
return $alias;
-
}
-
else return False;
-
}
-
}
-
return FALSE;
-
}
-
?>
В итоге получаем один запрос к базе вместо 60-70.
Комментарии
хм... на самом деле, быстрее заработало... прямо скачет... спаси
хм... на самом деле, быстрее заработало...
прямо скачет...
спасибо за хак...
а для какого друпала это работает?
пробовал на версии 4.7.3 и 4.7.4 - поначалу действительно залетало, а потом тупо грузиться перестало.
а у вас что за версии?
у меня 4.7.0 с патчами, наверное поэтому и работает, в версиях 4
у меня 4.7.0 с патчами, наверное поэтому и работает, в версиях 4.7.3 и 4.7.4 достаточно много изменений, а вообше лучше уже наверное 5-ю версию ставить, там и без патчей всё хорошо работает...
А как с пятеркой быть?
А как с пятеркой быть?
Сам же и отвечу на свой вопрос — с пятеркой быть очень неплохо =
Сам же и отвечу на свой вопрос — с пятеркой быть очень неплохо =) Попробовал, опять таки — визуально стало все гораздо веселее =)
здесь для пятёрки от того же автора...посмотр
...документ 901 - здесь для пятёрки от того же автора...
посмотрите раздел Настройка Друпала, там есть ещё интересные решения...