我不是开发人员,但需要与我的Web开发人员交谈的帮助。我们有一个公司网站,其中包含使用TYPO3制作的员工资料。在每个个人资料网站上,我们希望将URL嵌入存储库网站,该网站将显示该人的出版物列表。 URL对此存储库的SOLR搜索字符串进行编码。因此,除中间某处的个人标识符外,所有员工资料的URL均相同。与其在每个员工资料页面上都不输入完整的URL,我更希望使用这样的占位符构造一个URL
placeholderA + staffID + placeholderB
如果将来SOLR搜索字符串发生更改(即在此搜索中排除某些文档类型或更改排序),我们将只需要更改占位符,而不必更改每个配置文件页面中的完整URL。必须有一种简单的方法来执行此操作,但是我的Web开发人员告诉我,这将需要一个具有职员ID和大量脚本的数据库。是吗由于我们必须触摸每个个人资料页面以最初包括URL,因此可以在每个个人资料页面上输入并存储唯一的员工标识符。我只想避免在需要更改时再次触摸每个页面。
这是一个非常有用的概念,必须已经有一个插件或一些东西可以做到这一点。您可以在接下来的讨论中给我一些关键词或提示吗?
答案 0 :(得分:0)
您的URl如何构建?
通常,URL由多个部分组成
[[[<protocol>]<domain>]<path>[?<parameters>]][#<anchor>]
现在,我们需要确定要插入staffID
的位置:
是在<path>
还是<parameter>
中?
在TYPO3中,我们没有真实的<path>
。这只是一个隐藏基本URL index.php
和一些参数的图像。首先是参数&id=123
。
其他参数可以作为参数或路径段出现。无论如何,TYPO3将处理虚拟路径和参数(诸如realurl或核心之类的扩展名)之间的转换。对于URL生成,您可以调用TYPO3来提供参数列表,或者如果调用了“页面”,则将以参数列表结尾,这将决定渲染。
然后您可以混合使用URL生成:
您采用生成的URL并在“猜测”它们时添加路径段,而无需使用TYPO3。这可能会导致问题,因为您将使用未知的URL调用服务器TYPO3,因为它尚未生成。如果TYPO3生成URL,则会将URL连同“翻译”存储到参数中。
realurl可以猜测翻译,但有时会失败,尤其是在使用小括号的情况下。
cHashes
是什么?
带有cHashes的TYPO3可以针对不相关的参数保护页面缓存。如果生成页面,则取决于参数。任何其他参数都可能导致另一个页面,因此TYPO3将参数的哈希存储在每个缓存的页面中。为了进行验证,可以将此哈希添加到URL。此附加参数也存储在“翻译”表中。
如果现在将参数添加到存储的URL,并将其转换回参数,则您将拥有一个cHash
参数,用于标识缓存的页面。但仅用于一部分参数。生成页面并将其存储在缓存中时,您添加的参数未知,也不会考虑。如果已交付缓存的页面,则您的其他参数将丢失。
因此,在使用TYPO3进行URL生成时必须包含所有参数。
staffID
的添加必须使用TYPO3完成,并且不能是HTML模板(或javascript)中路径段的串联。
如果以后要更改参数,则需要更改URL的生成。
我建议将staffID
作为字段添加到记录中,并使用TYPO3生成指向文档列表的URL。