' . localize($this->metaTitleKey) . ''); echo(''); echo(''); // OpenGraph tags echo(''); echo(''); echo(''); echo(''); echo(''); echo(''); // Twitter tags echo(''); echo(''); echo(''); echo(''); echo(''); if(!is_null($this->twitterCardImageAltKey)) { echo(''); } echo(''); } static function from_json(array $json_data): ?ContentMetadata { // Checking required fields foreach(["metaTitleKey", "metaDescriptionKey", "metaAuthor", "openGraphTitleKey", "openGraphDescriptionKey", "openGraphType", "openGraphUrl", "openGraphImage", "openGraphImageMime", "twitterCardType", "twitterCardSite", "twitterCardTitleKey", "twitterCardDescriptionKey", "twitterCardImageUrl", "twitterCardCreatorHandle"] as $wantedKey) { if(!key_exists($wantedKey, $json_data)) { return null; } } // Preparing optional fields foreach(["twitterCardImageAltKey"] as $optionalKey) { if(!key_exists($optionalKey, $json_data)) { $json_data[$optionalKey] = null; } } $metadata = new ContentMetadata(); $metadata->metaTitleKey = $json_data["metaTitleKey"]; $metadata->metaDescriptionKey = $json_data["metaDescriptionKey"]; $metadata->metaAuthor = $json_data["metaAuthor"]; $metadata->openGraphTitleKey = $json_data["openGraphTitleKey"]; $metadata->openGraphDescriptionKey = $json_data["openGraphDescriptionKey"]; $metadata->openGraphType = $json_data["openGraphType"]; $metadata->openGraphUrl = $json_data["openGraphUrl"]; $metadata->openGraphImage = $json_data["openGraphImage"]; $metadata->openGraphImageMime = $json_data["openGraphImageMime"]; $metadata->twitterCardType = $json_data["twitterCardType"]; $metadata->twitterCardSite = $json_data["twitterCardSite"]; $metadata->twitterCardTitleKey = $json_data["twitterCardTitleKey"]; $metadata->twitterCardDescriptionKey = $json_data["twitterCardDescriptionKey"]; $metadata->twitterCardImageUrl = $json_data["twitterCardImageUrl"]; $metadata->twitterCardImageAltKey = $json_data["twitterCardImageAltKey"]; $metadata->twitterCardCreatorHandle = $json_data["twitterCardCreatorHandle"]; return $metadata; } } ?>