Real Name
Andy Postnikov
Модуль path использует hook_nodeapi с операцией load, соответственно, если модуль включен, то при загрузке каждого материала происходит дополнительный запрос алиаса, что является совершенно бесполезным действием.
Исключением является страница редактирования материала, где эта операция необходима, чтобы построить форму правки. Чтобы отключить сие придется хакать ядро - добавить провеку на тип страницы на которой находится пользователь, чтобы выполнять подгрузку алиса только для страниц формата node/*/edit
Варианты решения:
<?php
case 'load':
if (arg(0) == node && arg(2) == 'edit') {
$path = 'node/'. $node->nid;
$alias = drupal_get_path_alias($path, $language);
if ($path != $alias) {
$node->path = $alias;
}
}
break;
?>Если используется языковой префикс пути
<?php
case 'load':
if (drupal_match_path($_GET['q'], 'node/*/edit')) {
$path = 'node/'. $node->nid;
$alias = drupal_get_path_alias($path, $language);
if ($path != $alias) {
$node->path = $alias;
}
}
break;
?>
Комментарии
Ну во первых не всегда
Ну во первых не всегда бесполезным.
Или вы хотите сказать, что если пользователю понадобиться аиас он при темизации ноды сам его получит?
Да и вообще, мне я никак не могу выработать однозначного мнения по поводу ТАКИХ оптимизаций.
Очевидно что такой запрос будет выполнять не более миллисекунды. А следовательно ЗАЧЕМ?