if (!FTV::getInstance()->isArticleOnline($article->getId())) { FTV\Site::redirectToErrorPage(); return; } if (!FTV_Amp::isAmpArticle($article->getId())) { FTV\Site::redirectToArticle($article->getId()); return; } if ($article instanceof FTV\Articles\MovieArticle) { echo (new FTV\Articles\Views\Amp\MovieAmpArticleView($article))->renderContent(); } elseif ($article instanceof FTV\Articles\SeriesArticle) { echo (new FTV\Articles\Views\Amp\SeriesAmpArticleView($article))->renderContent(); } elseif ($article instanceof FTV\Articles\NewsArticle) { echo (new FTV\Articles\Views\Amp\NewsAmpArticleView($article))->renderContent(); } return; } $amp = new stdClass(); $amp->idart = $_REQUEST["id"]; $cArticle = new cApiArticleLanguage(); $cArticle->loadByArticleAndLanguageId($amp->idart, FTV::DEFAULT_LANG); $amp->article = $cArticle; if ($amp->article->isLoaded() && $amp->article->getField('online') == 1) { // Contenido stuff $amp->idtpl = FTV::getInstance()->getArticleIdtpl($amp->article->get('idtplcfg')); $amp->idcat = FTV::getInstance()->getArticleIdcat($amp->idart); if (!FTV_Amp::isAmpArticle($amp->idart, $amp->idtpl)) { FTV\Site::redirectToArticle((int)$amp->idart); return; } // General $amp->url = FTV::getInstance()->getArticleUrl($amp->idart); $amp->shortUrl = sprintf("film.tv/go/%s-a", $amp->idart); // Meta $amp->meta = new stdClass(); $amp->meta->pagetitle = FTV::getInstance()->getArticlePageTitle($amp->idart); $amp->meta->description = FTV::getInstance()->getArticleDescription($amp->idart); $amp->meta->keywords = FTV::getInstance()->getArticleKeywords($amp->idart); $amp->meta->title = str_replace(['\"', '"', "\'"], "'", $amp->meta->pagetitle); // NSFW $amp->nsfw = FTV::getInstance()->getArticleConfigValue(FTV::CONT_FB_SETTINGS, FTV::KEY_NSFW, $amp->idart); if ($amp->nsfw != "") { FTV_Ads::getInstance()->addKeyword(['nsfw', 'sensitive18']); } // Sponsored $amp->sponsored = FTV::getInstance()->getArticleConfigValue(FTV::CONT_FB_SETTINGS, FTV::KEY_SPONSORED, $amp->idart); // VG Wort $amp->vgWortPixel = new stdClass(); $amp->vgWortPixel->activated = !empty(FTV::getInstance()->getArticleConfigValue(FTV::CONT_VG_WORT, 1, $amp->idart)); $amp->vgWortPixel->code = FTV::getInstance()->getArticleConfigValue(FTV::CONT_OUTER_FRAME, FTV::KEY_VG_WORT_ID, $amp->idart); if ($amp->vgWortPixel->activated && empty($amp->vgWortPixel->code)) { $amp->vgWortPixel->code = FTV::getInstance()->getArticleConfigValue(FTV::CONT_VG_WORT, 2, $amp->idart); } $amp->vgWortPixel->activated = !empty($amp->vgWortPixel->code); // Ads FTV_Ads::getInstance()->addKeyword([$idart, 'amp']); FTV_Ads::getInstance()->setPage(in_array($amp->idtpl, [FTV::TPL_ID_TRAILER]) ? 'trailer' : 'news'); $adTemplate = new cTemplate(); $adTemplate->set('s', 'DOMAIN', FTV_Ads::getInstance()->getDomain()); $adTemplate->set('s', 'SITE', FTV_Ads::getInstance()->getSiteId()); $adTemplate->set('s', 'PAGE', FTV_Ads::getInstance()->getPageId()); $adTemplate->set('s', 'TARGET', implode(';', FTV_Ads::getInstance()->getKeywords())); $adTemplate->set('s', 'FORMAT', FTV_Ads::getInstance()->getFormatId('rectangle')); $adTemplate->set('s', 'WIDTH', 300); $adTemplate->set('s', 'HEIGHT', 250); $amp->ads = new stdClass(); $amp->ads->codes = new stdClass(); $amp->ads->codes->rectangle = $adTemplate->generate($cfg['path']['html_templates'].'template.ad.adsense_rectangle_amp.html', true); $amp->ads->codes->recommendations = $adTemplate->generate($cfg['path']['html_templates'].'template.ad.adsense_recommendations_amp.html', true); $amp->ads->adsense = new stdClass(); $amp->ads->adsense->isPrinted = false; $amp->ads->adsense->code = sprintf('
%s
', $adTemplate->generate($cfg['path']['html_templates'].'template.ad.smartadserver_amp.html', true)); // Create AMP scripts array $amp->head = new stdClass(); $amp->head->scripts = []; // General data $dataCollector = [ "genre" => [FTV::CONT_ART_INFO, FTV::KEY_GENRE], "fsk_film" => [FTV::CONT_ART_INFO, FTV::KEY_FSK_FILM], "fsk_trailer" => [FTV::CONT_ART_INFO, FTV::KEY_FSK_TRAILER], "age_recommendation" => [FTV::CONT_ART_INFO, FTV::KEY_AGE_RECOMMENDATION], "duration" => [FTV::CONT_ART_INFO, FTV::KEY_DURATION], "copyright" => [FTV::CONT_ART_INFO, FTV::KEY_COPYRIGHT], "copyright_alternative" => [FTV::CONT_ART_INFO, FTV::KEY_COPYRIGHT_ALTERNATIVE], "original_title" => [FTV::CONT_PLAYER, FTV::KEY_TITLE_ORIGINAL], "top_actors" => [FTV::CONT_PLAYER, FTV::KEY_TOP_ACTORS], "autostart_deactivated" => [FTV::CONT_PLAYER, FTV::KEY_PLAYER_DEACTIVATE_AUTOSTART], // "picture_shot" => [FTV::CONT_CONFIG_VIDEO, FTV::KEY_CONFIG_PICTURE] ]; $amp->data = new stdClass(); // Go through the general data foreach ($dataCollector as $name => $module) { if ($value = FTV::getInstance()->getArticleConfigValue($module[0], $module[1], $amp->idart)) { $amp->data->$name = $value; } } $amp->data->autostart = empty($amp->data->autostart_deactivated); // Start dates data // Get NEW and OLD field keys $amp->data->start_dates = new stdClass(); $startDatesCollector = [ "cinema" => [FTV::KEY_START_DATE_CINEMA, FTV::KEY_START_DATE_CINEMA_OLD], "dvd_bd" => [FTV::KEY_START_DATE_DVD_BD, FTV::KEY_START_DATE_DVD_BD_OLD], "vod" => [FTV::KEY_START_DATE_VOD, FTV::KEY_START_DATE_VOD_OLD], "tv" => [FTV::KEY_START_DATE_TV, FTV::KEY_START_DATE_TV_OLD] ]; // Go through all start date types foreach ($startDatesCollector as $name => $type) { if ($new = FTV::getInstance()->getArticleConfigValue(FTV::CONT_ART_INFO, $type[0], $amp->idart)) { // Add start date in NEW format if exists // Returns timestamp and has to be formatted $amp->data->start_dates->$name = date('d.m.Y', $new); } elseif ($old = FTV::getInstance()->getArticleConfigValue(FTV::CONT_ART_INFO, $type[1], $amp->idart)) { // Otherwise add start date in OLD format if exists // Returns string $amp->data->start_dates->$name = $old; } } // Player data $amp->data->player = new stdClass(); $playerCollector = [ "server" => FTV::KEY_PLAYER_SERVER_DEFAULT, "filename" => FTV::KEY_PLAYER_FILE_NAME_DEFAULT, "trailerShowHeadline" => FTV::KEY_PLAYER_TRAILER_SHOW_HEADLINE ]; // Go through all player data foreach ($playerCollector as $value => $module) { $amp->data->player->$value = FTV::getInstance()->getArticleConfigValue(FTV::CONT_PLAYER, $module, $amp->idart); } $amp->data->player->poster = new stdClass(); if ($amp->data->player->server == "youtube") { $amp->data->player->poster->url = "https://img.youtube.com/vi/".$amp->data->player->filename."/maxresdefault.jpg"; // $amp->data->player->filename = "https://www.youtube.com/watch?v=" . $amp->data->player->filename; } else { $shotPicturePath = FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_CONFIG_PICTURE, $amp->idart); if ($shotPicturePath != "") { $amp->data->player->poster->url = FTV_Helper::changePictureSizeUrl(1, $shotPicturePath, "thumb-960"); } if (empty($amp->data->player->poster->url) || false === ($imageInfo = @getimagesize($amp->data->player->poster->url))) { $amp->data->player->poster->url = "https://www.film-tv.at/upload/design/neutralimage.jpg"; $amp->data->player->poster->width = 750; $amp->data->player->poster->height = 422; } else { [$amp->data->player->poster->width, $amp->data->player->poster->height] = $imageInfo; } } // Cast Trailer-Show Headline to a boolean $amp->data->player->trailerShowHeadline = empty($amp->data->player->trailerShowHeadline) ? false : true; // Set player embed url $amp->data->player->embed = "https://www.film-tv.at/embed/".$amp->idart."?noTracking=1&=1"; // YouTube data $amp->data->youtube = new stdClass(); if ($amp->idtpl == FTV::TPL_ID_YOUTUBE && $amp->data->player->server == "youtube" && !empty($amp->data->player->filename)) { $amp->data->youtube->id = $amp->data->player->filename; $amp->head->scripts["amp-youtube"] = "amp-youtube-0.1"; } // News data $amp->data->news = new stdClass(); $newsCollector = [ "lead" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_LEAD_TEXT], "date" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_VIDEO_DATE], "picture_path" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_GIGA_PICTURE], "picture_subtitle" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_GIGA_PICTURE_SUBTITLE], "related_movie" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_RELATED_MOVIE], "top_actor_1" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_TOP_ACTOR_1], "top_actor_2" => [FTV::CONT_PLAYER, FTV::KEY_NEWS_TOP_ACTOR_2], "author" => [FTV::CONT_AUTHOR, FTV::KEY_AUTHOR_NAME], "author_alternative" => [FTV::CONT_AUTHOR, FTV::KEY_AUTHOR_ALTERNATIVE_NAME], "author_rating" => [FTV::CONT_AUTHOR, FTV::KEY_AUTHOR_RATING], "author_url" => [FTV::CONT_AUTHOR, FTV::KEY_AUTHOR_URL] ]; // Go through all news data foreach ($newsCollector as $name => $module) { if ($value = FTV::getInstance()->getArticleConfigValue($module[0], $module[1], $amp->idart)) { $amp->data->news->$name = $value; } } if (empty($amp->data->news->date)) { $amp->data->news->date = date_format(date_create($amp->article->get('published')), 'd.m.Y H:i'); } // Poster list data $amp->data->posterList = new stdClass(); $posterListCollector = [ "idarts" => [FTV::CONT_POSTER_LIST, 1], "startDateType" => [FTV::CONT_POSTER_LIST, 2], "showRanking" => [FTV::CONT_POSTER_LIST, 3] ]; // Go through all poster list data foreach ($posterListCollector as $name => $module) { if ($value = FTV::getInstance()->getArticleConfigValue($module[0], $module[1], $amp->idart)) { $amp->data->posterList->$name = $value; } } // Clean poster list idarts $amp->data->posterList->idarts = array_values(array_filter(explode(";", $amp->data->posterList->idarts), function ($idart) { return !empty($idart); })); // Cast poster list showRanking Headline to a boolean $amp->data->posterList->showRanking = empty($amp->data->posterList->showRanking) ? false : true; // Text data $amp->data->html = new stdClass(); $textCollector = [ "belowHeadline" => 9, "newsText" => 12, "newsBody" => 1, "belowSurftipps" => 6, "belowComments" => 4 ]; // Go through all news text types foreach ($textCollector as $type => $htmlId) { // Get news text (already converted to AMP) and scripts $text = [ "amp" => FTV_Amp::getInstance()->convert($amp->article->getContent("html", $htmlId)), "scripts" => FTV_Amp::getInstance()->scripts() ]; // Set news text and add scripts if ($text["amp"]) { $amp->data->html->$type = $text["amp"]; foreach ($text["scripts"] as $tag => $script) { $amp->head->scripts[$tag] = $script; } } } $amp->data->news->text = $amp->data->html->newsText; $amp->data->news->body = $amp->data->html->newsBody; // When author is not set or is not a real author ('unbekannt') // => Set alternative author if exists if ((!$amp->data->news->author || $amp->data->news->author == "unbekannt") && $amp->data->news->author_alternative ) { $amp->data->news->author = $amp->data->news->author_alternative; } // If author is still not set or is not a real author ('unbekannt') // => Check last alternative or set to FILM.TV if (!$amp->data->news->author || $amp->data->news->author == "unbekannt") { $amp->data->news->author = FTV::getInstance() ->getArticleConfigValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_AUTHOR_NAME, $amp->idart, "FILM.TV"); } $amp->data->news->author_image = FTV_Include::getAuthorImageForName($amp->data->news->author); // Related news data $relatedNewsCollector = [ FTV::KEY_RELATED_NEWS_1_IDART => FTV::KEY_RELATED_NEWS_1_TEXT, FTV::KEY_RELATED_NEWS_2_IDART => FTV::KEY_RELATED_NEWS_2_TEXT ]; // Init related news $amp->related_news = []; // Go through all related news foreach ($relatedNewsCollector as $idart => $text) { $idart = FTV::getInstance()->getArticleConfigValue(FTV::CONT_PLAYER, $idart, $amp->idart); $text = FTV::getInstance()->getArticleConfigValue(FTV::CONT_PLAYER, $text, $amp->idart); if (!empty($idart) && is_numeric($idart) && FTV::getInstance()->isArticleOnline($idart)) { $amp->related_news[] = [ "idart" => $idart, "url" => FTV::getInstance()->getArticleUrl($idart), "text" => $text ]; } } // Set external related news if exists and valid $externalRelatedNewsUrl = FTV::getInstance()->getArticleConfigValue(FTV::CONT_PLAYER, FTV::KEY_RELATED_NEWS_3_URL, $amp->idart); $externalRelatedNewsText = FTV::getInstance()->getArticleConfigValue(FTV::CONT_PLAYER, FTV::KEY_RELATED_NEWS_3_TEXT, $amp->idart); if (!empty($externalRelatedNewsUrl) && filter_var($externalRelatedNewsUrl, FILTER_VALIDATE_URL)) { $amp->related_news[] = [ "url" => $externalRelatedNewsUrl, "text" => $externalRelatedNewsText ]; } // Embeds data $amp->data->embeds = new stdClass(); if ($pinterest = FTV_Data::configValue(FTV::CONT_FILM_INFO, 24, $amp->idart)) { $amp->data->embeds->pinterest = $pinterest; $amp->head->scripts["amp-pinterest"] = "amp-pinterest-0.1"; } if ($podcast = FTV_Data::configValue(FTV::CONT_FILM_INFO, 27, $amp->idart)) { $amp->data->embeds->podcast = $podcast; } // Init bildershow data $amp->data->bildershow = false; $pagesType = FTV::getInstance()->getArticleConfigValue(FTV::CONT_FILM_INFO, FTV::KEY_PAGES_TYPE, $amp->idart); $pagesItems = FTV::getInstance()->getArticleConfigValue(FTV::CONT_FILM_INFO, FTV::KEY_PAGES_ITEMS, $amp->idart); if ($pagesType == "bilder" && $pagesItems != "") { $amp->data->bildershow = new stdClass(); $amp->data->bildershow->item = new stdClass(); $bildershowItems = explode(";;;", $pagesItems); foreach ($bildershowItems as &$item) { $item = explode("+++", $item); } $amp->data->bildershow->item->url = "https://www.film-tv.at/upload/bilder/filmshot_klein/".$bildershowItems[0][0]; [$amp->data->bildershow->item->width, $amp->data->bildershow->item->height] = @getimagesize($amp->data->bildershow->item->url); if (empty($amp->data->bildershow->item->width) && empty($amp->data->bildershow->item->height)) { $amp->data->bildershow->item->width = 960; $amp->data->bildershow->item->height = 540; } $amp->data->bildershow->item->title = $bildershowItems[0][1]; $amp->data->bildershow->count = count($bildershowItems); } // Film info data $filmInfoCollector = [ FTV::KEY_STORY => "Die Story", FTV::KEY_CAST => "Schauspieler", FTV::KEY_DIRECTORS => "Regie", FTV::KEY_PRODUCTION => "Produktion", FTV::KEY_SCRIPT => "Drehbuch", FTV::KEY_BACKGROUND => "Hintergrund", FTV::KEY_TECHNIQUE => "Technikinfos", FTV::KEY_SOUNDTRACK => "Filmmusik", FTV::KEY_COUNTRY_AND_YEAR => "Produktionsland & Jahr", FTV::KEY_SPECIALS => "Specials", FTV::KEY_ASPECT_RATIO => "Bildformat", FTV::KEY_LANGUAGES => "Sprachen", FTV::KEY_SUBTITLES => "Untertitel", FTV::KEY_OFFICIAL_WEBSITE_URL => "Offizielle Website", FTV::KEY_FACEBOOK_URL => "Facebook-Seite" ]; // Init film info data $amp->data->film_info = []; // Go through the film info data foreach ($filmInfoCollector as $module => $label) { if ($value = FTV::getInstance()->getArticleConfigValue(FTV::CONT_FILM_INFO, $module, $amp->idart)) { $amp->data->film_info[] = [ "label" => $label, "value" => $value ]; } } // Actor -> Character data $cast = FTV_Data::configValue(FTV::CONT_FILM_INFO, FTV::KEY_CAST, $amp->idart); $characters = FTV_Data::configValue(FTV::CONT_FILM_INFO, FTV::KEY_CHARACTERS, $amp->idart); $cast = explode(",", $cast); $characters = explode(",", $characters); array_walk($cast, function (&$actor) { $actor = trim($actor); }); array_walk($characters, function (&$character) { $character = trim($character); }); $amp->data->characters = (count($cast) == count($characters)) ? array_combine($cast, $characters) : []; $amp->data->characters = array_filter($amp->data->characters, function ($actor, $character) { return !empty($actor) && !empty($character); }, ARRAY_FILTER_USE_BOTH); // Init reviews $amp->data->reviews = []; // FILM.TV-Check Trailer $amp->data->reviews[] = [ "rating" => FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_RATING, $amp->idart), "text" => FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_TEXT, $amp->idart), "hot" => [ FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_HOT_1, $amp->idart), FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_HOT_2, $amp->idart) ], "not" => [ FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_NOT_1, $amp->idart), FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_TRAILER_CHECK_NOT_2, $amp->idart) ] ]; // FILM.TV-Check Film $amp->data->reviews[] = [ "rating" => FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_RATING, $amp->idart), "text" => FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_TEXT, $amp->idart), "hot" => [ FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_HOT_1, $amp->idart), FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_HOT_2, $amp->idart) ], "not" => [ FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_NOT_1, $amp->idart), FTV_Data::configValue(FTV::CONT_CONFIG_VIDEO, FTV::KEY_FILM_CHECK_NOT_2, $amp->idart) ] ]; // Review validation $amp->data->reviews = array_filter($amp->data->reviews, function ($review) { return !empty($review["rating"]) && !empty($review["text"]); }); array_walk($amp->data->reviews, function (&$review) { $review["text"] = htmlspecialchars($review["text"]); foreach (["hot", "not"] as $type) { if (!is_array($review[$type])) { $review[$type] = []; return; } $review[$type] = array_filter($review[$type], function ($argument) { return !empty($argument); }); if (count($review[$type]) != 2) { $review[$type] = []; } } }); /* // Picture data $pictureCollector = [ "play" => "play" ]; // Go through all picture data foreach ($pictureCollector as $name => $suffix) { $filename = FTV_Helper::changePictureSizeUrl(1, $amp->data->picture_shot, $suffix); $imageData = @getimagesize($filename); if ($imageData) { $amp->data->pictures->$name->url = $filename; $amp->data->pictures->$name->width = $imageData[0]; $amp->data->pictures->$name->height = $imageData[1]; } } */ } else { FTV\Site::redirectToErrorPage(); } ?>

Ausschnitt aus Pakt Der Rache: Krankenhaus

Bild von Sebastian Lorenz
Veröffentlicht

Simon versucht Will im Krankenhaus zu überreden, den Deal einzugehen, um den Vergewaltiger töten zu lassen. Erklärende Einleitung für die spannende Story des Films.

Gesprächswert74%
Mit Material vonUniversum Film

Ähnliche Artikel