andersundsehr / ssi-include
允许定期从anders und sehr GmbH创建ssi包含
1.1.0
2024-06-13 15:37 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- ocramius/package-versions: ^2.1.0
- typo3/cms-fluid: ^10.4.0 || ^11.5.0 || ^12.4.0
- typo3/cms-frontend: ^10.4.0 || ^11.5.0 || ^12.4.0
- webimpress/safe-writer: ^2.2.0
Requires (Dev)
- composer/composer: ^2.5.5
- pluswerk/grumphp-config: ^7.0
- saschaegerer/phpstan-typo3: ^1.10.0
- ssch/typo3-rector: ^2.5.0
Replaces
- typo3-ter/ssi-include: 1.1.0
This package is auto-updated.
Last update: 2024-09-13 16:13:16 UTC
README
此扩展可以帮助您更快地更新菜单和其他部分,如果它们在所有页面上渲染相同。
它使用SSI技术在不立即渲染的情况下包含部分。
它缓存typo3temp/tx_ssiinclude/内的文件,因此将重复使用相同的部分来响应每个请求。
部分将根据站点配置、sys_language和您给出的部分名称而有所不同。
要求
- TYPO3 >=10
- 服务器上启用了SSI
- 禁用了SSI错误(否则后端将出现错误)
安装
composer req andersundsehr/ssi-include
在web服务器上启用SSI
您需要在您的Web服务器上启用SSI
仅与nginx进行了测试。应与apache兼容,
在您的配置的fastcgi部分中
location ~ \.php$ { # add next 2 lines: ssi on; #this must be on ssi_silent_errors on; #this should be on fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_read_timeout 600; }
如果您使用staticfilecache,您应该使用它♥️
您还需要在该部分中添加ssi配置
... location @sfc { # add next 2 lines: ssi on; #this must be on ssi_silent_errors on; #this should be on ... charset utf-8; default_type text/html; try_files /typo3temp/tx_staticfilecache/https_${host}_443${uri}/index /typo3temp/tx_staticfilecache/${scheme}_${host}_${server_port}${uri}/index =405; } ...
现在是最有趣的部分。您可以用ViewHelper s:renderInclude
替换任何部分的渲染。
该部分将在每5分钟内仅渲染一次整个网站(站点配置,而不是页面)。
唯一的不同之处在于通过站点配置、语言和提供的名称。
可选地,您可以添加cacheLifeTime来定义部分的生存时间(以秒为单位)。如果您想以不同的参数渲染相同的部分,只要名称相同,内容仍然相同。
之前
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:section name="Main">
<div class="something something">
<f:render partial="Menus/MainMenu" arguments="{_all}"/>
</div>
</f:section>
之后
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:s="http://typo3.org/ns/AUS/SsiInclude/ViewHelpers" data-namespace-typo3-fluid="true"> <f:section name="Main"> <div class="something something"> <s:renderInclude name="mainMenu" cacheLifeTime="900" partial="Menus/MainMenu" arguments="{_all}"/> </div> </f:section>
来自anders und sehr GmbH的♥️
如果某些东西没有工作 😮
或者您喜欢这个扩展 🥰,请告诉我们。