brotkrueml / schema-virtuallocation
TYPO3 schema 扩展的附加组件,提供待定类型 VirtualLocation
v2.1.0
2024-02-04 11:23 UTC
Requires
- php: >=8.1
- brotkrueml/schema: ^3.0
- typo3/cms-core: ^11.5.19 || ^12.4 || ^13.0
Requires (Dev)
- brotkrueml/coding-standards: ~5.1.0
- ergebnis/composer-normalize: ~2.42.0
README
本扩展是 TYPO3 schema 扩展 的附加组件,并提供 VirtualLocation 类型。它可以分配给事件类型。由于目前它是一个待定类型,它不由 schema 扩展提供。当这个类型被纳入核心词汇表时,此扩展将变得过时。
此外,此扩展还作为使用自定义类型模型和视图助手扩展 schema 扩展的蓝图。
要求
最新版本的扩展支持 TYPO3 v11 LTS、TYPO3 v12 LTS 和 TYPO3 v13。使用旧版本以与 TYPO3 v9 LTS 或 TYPO3 v10 LTS 兼容。
安装
使用 Composer
composer req brotkrueml/schema-virtuallocation
用法
使用 API
<?php declare(strict_types=1); namespace MyVendor\MyExtension\Controller; use Brotkrueml\Schema\Type\TypeFactory; final class MyController { public function __construct( private readonly TypeFactory $typeFactory, ) {} public function doSomething(): void { // ... $location = $this->typeFactory->create('VirtualLocation'); $location->setProperty('url', 'https://example.org/join/12345'); $event = $this->typeFactory->create('Event'); $event ->setProperty('name' 'A virtual event') ->setProperty('location', $location) ; // ... } }
使用视图助手
<schema:type.event name="A virtual event"> <schema:type.virtualLocation -as="location" url="https://example.org/join/12345" /> </schema:type.event>
两种情况都会产生以下 JSON-LD 输出
{ "@context": "http://schema.org", "@type": "Event", "location": { "@type": "VirtualLocation", "url": "https://example.org/join/12345" }, "name": "A virtual event" }
有关更多信息,请参阅 schema 文档。