2

我正在尝试升级一个老式 PHP 站点(http://cordair.com/)以与运行 Ubercart 的 Drupal 一起使用。关键的事情之一是确保人们收藏的 URL 保持不变。

我的分类看起来像这样

Catalog
 + Artists
    + Pablo Picaso
    + Lenardo DaVinci
 + Medium
    + Sculpture
    + Painting
    + Print

分类是多选的。因此,每个人都有 1 位艺术家和可能的多种媒介(例如,某些东西既可以是原画,也可以是印刷品)。我希望该站点能够在http://foo.com/picaso上提供一个页面,该页面列出了 Pablo Picaso 或其下方的所有项目。我还希望能够有一个像http://foo.com/paintings这样的页面,列出所有艺术家的所有画作。

最好的方法是什么?看起来我需要使用 Path Auto,但是弄清楚正确的设置是什么真的很令人困惑。我也看不到自定义分类术语转换为 URL 的方式的方法。现在我只是得到身份证。看起来有一种使用术语名称的方法,但我尝试构建的 URL 只使用姓氏而不是名字。

原谅我的 Drupal 菜鸟,因为我确信这一切都是可能的,而且可能比我想象的要容易。

4

2 回答 2

2

可能但有问题的方法:

为了只提取姓氏,您需要为分类术语实现一个自定义标记,该标记将执行必要的字符串操作。(您需要创建默认[cat]标记的变体。此自定义节点标题标记的示例也可能有助于理解该过程。)

但是,这种方法有一些严重的缺点:

推荐的替代方法:

为避免处理上述歧义问题,并且鉴于您要替换的站点到目前为止只有一小部分目标名称,我只使用标准[cat]令牌,使用 URL 的全名(Pathauto 允许您指定特殊字符的默认替换,例如下划线或破折号的空格)。然后,您可以将所有旧的“仅姓氏”URL 添加到站点 .htaccess 文件的重定向规则,以在推广新版本时保持它们的功能:

# http://example.com/picasso  => http://example.com/pablo_picasso
RewriteRule ^picasso $ http://example.com/pablo_picasso [L,R=301]
# ... and so on for all old urls that changed

(您也可以检查路径重定向模块作为 .htaccess 操作的“Drupal 内部”替代方案)。


此外,我建议将“目录”层次结构拆分为两个单独的词汇表,例如“艺术家”和“媒体”。虽然这会在节点输入表单上产生两个单独的分类字段,但它符合语义差异,并且会为过滤、排序和分组节点提供更大的灵活性。

于 2010-07-04T15:54:02.053 回答
0

路径自动用于根据内容的属性自动生成内容的路径别名。

似乎您更多地谈论具有一些不同的内容类型(cck)并将这些类型与节点引用模块相关联。然后,您的 picaso 和绘画 URL 是简单的视图,可以接受参数或使用暴露的过滤器来进一步限制显示的节点。

于 2010-07-02T22:16:27.010 回答