drupal path alias 和drupal path auto module 的逻辑简单总结

我刚才测试了drupal path alias 的运行逻辑。
drupal 的系统(默认)路径的格式是node/nid,taxonomy/term/tid,user/uid ...,如果需要自定义路径的话,可以在编辑页面里填写 user alias 来添加一个自定义的路径。在渲染页面时,drupal会在 url_alias 表里面 通过系统路径和语言 找到相应的alias,并显示出来。
为了方便统一的管理url alias,可以用path auto,path auto 的运行逻辑是( 用content举例 )当为某个content type建立一个pattern 后,当保存这个type 的 content时,会按照所选择的语言和这个content type得到 pattern,并且自动按照这个pattern生成url alias,pattern 只在这个时候起到作用。如果一个文章的语言是Language neutral,就会用Default path pattern for Life。在代码里, Pattern for all language neutral Life paths  这个配置被过滤了,没有用
    sites/all/modules/pathauto/pathauto.module
    function pathauto_pattern_load_by_entity(){
    ...
    if ($language != LANGUAGE_NONE) {
      $variables[] = "pathauto_{$entity}_{$bundle}_{$language}_pattern";
    }
    ...
    
    }
 
    BULK UPDATE 的逻辑是取到所有没有 path alias 的nodes,然后按照每个node的language和type找到pattern,如果有pattern的话,就按照这个生成一个url alias,并不会按照node的type找到所有语言的pattern,然后分别生成alias。
 
 

你可能感兴趣的:(drupal)