Оптимизация в модуле path и сравнение путей

Модуль 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;
?>

Comments

Ну во первых не всегда

Ну во первых не всегда бесполезным.

Или вы хотите сказать, что если пользователю понадобиться аиас он при темизации ноды сам его получит?

Да и вообще, мне я никак не могу выработать однозначного мнения по поводу ТАКИХ оптимизаций.

Очевидно что такой запрос будет выполнять не более миллисекунды. А следовательно ЗАЧЕМ?