Skip to content
Snippets Groups Projects
Setup.ts 1.88 KiB
#[page["author"] && {$plugin.tx_sgnews.settings.publisher} && {$plugin.tx_sgnews.settings.publisherLogo}]

# @todo See if this can replace the stuff from "SingleView.html"

lib.sgNews.sg_news_schema = COA
lib.sgNews.sg_news_schema {
	10 = TEXT
	10 {
		typolink.parameter.field = uid
		typolink.forceAbsoluteUrl = 1
		typolink.returnLast = url
		htmlSpecialChars = 1
		wrap = "mainEntityOfPage": { "@type": "WebPage", "@id": "|" },
	}

	20 = TEXT
	20 {
		field = subtitle
		stdWrap.replacement.10 {
			search = "
			replace = \"
		}

		wrap = "headline": "|",
	}

	30 = FILES
	30 {
		references {
			table = pages
			uid.data = page:uid
			fieldName = tx_sgnews_teaser1_image
		}

		renderObj = TEXT
		renderObj {
			typolink {
				parameter.stdWrap {
					cObject = IMG_RESOURCE
					cObject {
						file.import.data = file:current:uid
						file.treatIdAsReference = 1
					}
				}

				returnLast = url
				forceAbsoluteUrl = 1
			}

			wrap = "image": [ "|" ],
		}
	}

	40 = TEXT
	40 {
		value {
			field = crdate
			strftime = %c
			wrap = "datePublished": "|",
		}
	}

	50 = TEXT
	50 {
		value {
			field = lastUpdated
			strftime = %c
			wrap = "dateModified": "|",
		}
	}

	60 = TEXT
	60 {
		field = author
		wrap = "author": { "@type": "Person", "name": "|" },
	}

	70 = COA
	70 {
		# @todo only implement if both values are set!
		701 = TEXT
		701 {
			value = {$plugin.tx_sgnews.settings.publisher}
			wrap = "publisher": { "@type": "Organization", "name": "|",
		}

		702 = TEXT
		702 {
			value = {$plugin.tx_sgnews.settings.publisherLogo}
			wrap = "logo": { "@type": "ImageObject", "url": "|" }},
		}
	}


	80 = TEXT
	80 {
		field = description
		stdWrap.replacement.10 {
			search = "
			replace = \"
		}

		wrap = "description": "|"
	}

	/*
	Things one could implement:
	- "comment" tag for comments
	- "commentCount"
	- "thumbnailUrl"
	- "translationOfWork" for additional language versions
	*/
}

# [GLOBAL]